Dronekit代码学习(三)控制无人机前后左右升降俯仰

Dronekit代码学习(三)控制无人机前后左右升降俯仰Dronekit代码学习(三)控制无人机前后左右升降俯仰控制无人机前后左右升降俯仰代码如下:起飞5m后,右5m,前方5m,升2m,返航,关闭连接升降是反的#-*-coding:utf-8-*-”’—————————————————————————控制无人机前后左右升降俯仰…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Dronekit代码学习(三)控制无人机前后左右升降俯仰

在这里插入图片描述
控制无人机前后左右升降俯仰

代码如下:

起飞5m后,右5m,前方5m,升2m,返航,关闭连接
升降是反的

# -*- coding: utf-8 -*-
'''
---------------------------------------------------------------------------
控制无人机前后左右升降俯仰
---------------------------------------------------------------------------
'''
from __future__ import print_function
import time
from dronekit import connect, VehicleMode, LocationGlobalRelative
from pymavlink import mavutil
#连接
vehicle = connect('127.0.0.1:14551', wait_ready=True)
#起飞
def arm_and_takeoff(aTargetAltitude):
print("起飞前检查...") 
while not vehicle.is_armable:
print (" 等待飞机初始化...") 
time.sleep(1)
print ("切换至GUIDED模式...")
vehicle.mode    = VehicleMode("GUIDED")
print ("解锁...")
vehicle.armed   = True
while not vehicle.armed:
print ("等待解锁...")
time.sleep(1)
print ("起飞!!!...")
vehicle.simple_takeoff(aTargetAltitude) 
while True:
print (" 当前高度: ", vehicle.location.global_relative_frame.alt)
if vehicle.location.global_relative_frame.alt>=aTargetAltitude*0.95:
print ("到达目标高度...")
break
time.sleep(1)
#前后左右上下移动
def send_ned_velocity(velocity_x, velocity_y, velocity_z, duration):
"""
Move vehicle in direction based on specified velocity vectors.
"""
msg = vehicle.message_factory.set_position_target_local_ned_encode(
0,       
0, 0,    
mavutil.mavlink.MAV_FRAME_LOCAL_NED, 
0b0000111111000111, 
0, 0, 0, 
velocity_x, velocity_y, velocity_z, 
0, 0, 0, 
0, 0)    
#循环发送几次
for x in range(0,duration):
#发送指令
vehicle.send_mavlink(msg)
time.sleep(1)
#偏航
def condition_yaw(heading, relative=False):
if relative:
is_relative=1 
else:
is_relative=0 
msg = vehicle.message_factory.command_long_encode(
0, 0,  
mavutil.mavlink.MAV_CMD_CONDITION_YAW, 
0, 
heading,    
0,         
1,         
is_relative, 
0, 0, 0)   
#发送指令
vehicle.send_mavlink(msg)
#起飞
arm_and_takeoff(10)
#移动
send_ned_velocity(5, 5, -2, 1)
time.sleep(3)
#偏航45
condition_yaw(45)
time.sleep(3)
print("设置模式返航...")
vehicle.mode = VehicleMode("RTL")
print("关闭连接")
vehicle.close()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170570.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • go语言切片的三种方法_病理会诊蜡块还是切片

    go语言切片的三种方法_病理会诊蜡块还是切片Go语言入门之切片的概念

  • keil5破解失败【经验分享】

    keil5破解失败【经验分享】有些小伙伴在输入license时会出现这种情况解决办法:使用管理员方式运行keil5

  • 2021Eclipse下载与安装教程

    2021Eclipse下载与安装教程2021Eclipse下载与安装教程2021Eclipse下载与安装教程具体步骤如下:1.下载1.1官方下载1.2国内镜像下载【推荐】2.安装3.安装插件2021Eclipse下载与安装教程具体步骤如下:1.下载Eclipse软件下载可以在Eclipse官方下载,也可以在国内镜像地址下载。由于Eclipse官方地址服务器在国外,下载速度比较慢,国内镜像地址下载速度会快很多。1.1官方下载官方下载地址:https://www.eclipse.org/downloads/packages/r

  • pycharm自己设置补全内容

    pycharm自己设置补全内容pycharm自己设置补全内容学习网络爬虫时,发现我们写一个代码总是要到浏览器上复制User-Agent,或者到自己之前保存好的文件里复制,当然直接能把浏览器的User-agent一个字母不拉的写出来的牛人不在此列。所以我在pycharm上自定义了一个补全模板,可以帮我快速填写User-agent,如下图:1.首先打开pycharm的–》设置,然后选择–》编辑器>活动模板2.然后点右边的‘+’添加自定义代码内容3.然后编辑这个模板说明:缩写:User-Agent这里填写的是

  • CGLIB(Code Generation Library)详解[通俗易懂]

    CGLIB(Code Generation Library)详解[通俗易懂]什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib为什么

  • gcc编译器如何使用_gcc编译器用什么语言写的

    gcc编译器如何使用_gcc编译器用什么语言写的一、gcc编译流程GCC编译器在编译一份C代码的时候,需要经过以下4个步骤:预处理(preprocessing):对.c源文件进行预处理,生成.i文件。编译(compilation):对

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号