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()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 字符串转成数字_python数字转十六进制字符串

    python 字符串转成数字_python数字转十六进制字符串在python列表操作中,面对需要把列表中的字符串转为礼拜的操作,无需强转,通过简单的几步就可以实现,本文介绍python中字符串转成数字的三种方法:1、使用join的方法;2、使用int函数将16进制字符串转化为10进制整数;3、使用列表生成式进行转换。方法一:使用join的方法num_list=[‘1′,’2′,’3’]str_list=”.join(num_str)#把列表中的元素连起来print(int(str_list))输出123方法二:使用int函数将16进制

    2022年8月31日
    2
  • CAS单点登录原理分析(一)

    CAS单点登录原理分析(一)一,业务分析在分布式系统架构中,假设把上述的三个子系统部署在三个不同的服务器上。前提是用户登录之后才能访问这些子系统。那么使用传统方式,可能会存在这样的问题:1.当访问用户中心,需要用户登录帐号2.当访问购物车,还需要用户登录帐号3.当访问商品结算,又一次需要用户登录帐号访问每一个子系统都需要用户登录帐号,这样的体验对于用户来说是极差。而使用单点登录就可以很好地解决上述的问题。二,单…

    2022年6月8日
    30
  • 渗透测试工具Burp Suite详解[通俗易懂]

    渗透测试工具Burp Suite详解[通俗易懂]BurpSuite的安装BurpSuite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击。BurpSuite由Java语言编写,基于Java自身的跨平台性,使这款软件学习和使用起来更方便。BurpSuite不像其他自动化测试工具,它需要手工配置一些参数,触发一些自动化流程,然后才会开始工作。BurpSuite可执行程序是Java文件类型的jar文件,免费版可以从官网下载。免费版的BurpSuite会有许多限制,无法使用很多高

    2022年8月12日
    7
  • HashMap扩容全过程

    HashMap扩容全过程 1.如果HashMap的大小超过了负载因子(loadfactor)定义的容量,怎么办?默认的负载因子大小为0.75,也就是说,当一个map填满了75%的bucket时候,和其它集合类(如ArrayList等)一样,将会创建原来HashMap大小的两倍的bucket数组,来重新调整map的大小,并将原来的对象放入新的bucket数组中。这个过程叫作rehashing,因为它调用hash方…

    2022年9月2日
    7
  • php集成环境总结(php新手)

    php集成环境总结(php新手)1、WampServer Wamp就是WindowsApacheMysqlPHP集成安装环境,即在window下的apache、php和mysql的服务器软件。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问php的安装问题了,WAMP一切都搞定了,这个软件在win平台上使用的较多。

    2022年6月28日
    26
  • 【python】如何使用pip安装、卸载包

    【python】如何使用pip安装、卸载包1、在安装python的时候要把pip勾选上(默认安装时勾选的)。这样你就已经安装了pip。2、打开命令提示符窗口开始→所有程序→附件→运行(快捷键Win+R),在对话框中输入cmd,回车确认即可3.安装想要的包。具体名称可以上PyPI或输入pipsearchXX确认一下,比如numpy。平常使用的过程中经常将其简写成np,在这里安装的时候不能简写,只能用numpy。

    2022年10月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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