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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 移动端fastClick使用

    移动端fastClick使用作为一个新手,插件原理什么的研究不透,看的也是似懂非懂的,网上有很多大牛写的博文相当的好   在这里我只是简单的记录下简单的用法,还请大牛们不吝赐教     为什么存在延迟?     从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约300毫秒的等待时间。为什么这么设计呢?因为它想看看你是不是要进行双击(doubletap)操作。1、引入插件的jav…

    2022年6月19日
  • JQuery学习—JQuery-Validation 使用

    JQuery 的学习之 JQuery—Validate验证功能

    2022年2月24日
  • HTML5移动端手机网站开发

    HTML5移动端手机网站开发手写手机网站一般我们自己手动开发手机网站的话,基本可以划分两类来做到。一类是通过在网页头部添加meta标签进行实现(网页指html5的格式来开发)。另一类是通过CSS3的Media标签(媒介查询)来实现。    在这里我们详细讲解下,利用添加meta标签来做手机网站。基本在网页头部我们只需添加四个meta标签就可以实现一个手机网站的框架。我一起来看看是哪些meta标签。1、添加viewport标签…

    2022年6月21日
  • bwapp详细教程_bwapp之sql注入

    bwapp详细教程_bwapp之sql注入**HTMLInjection-Reflected(GET)**low:低级漏洞中,输入数据没有做校验Firstname:<script>alert(‘xss’)</script>Lastname:<script>alert(‘xss’)</script>出现xss即为成功。medium和low一样,但发现被全部显示抓包,会发现符号<>均被编码0,1,2分别对应三个等级找见对应的/bWAPP/bw

    2022年9月23日
  • 2010款汉兰达参数配置_windows安装程序兼容性报告

    2010款汉兰达参数配置_windows安装程序兼容性报告
    关于配置TFS2010的总结:
    TFS2010是我第一次配置,这个东西配置有点麻烦,我还从来没有用过,听经理说,他好像类似于一个大管家,将项目的的需求管理,跟踪,版本管理,测试管理等一系列功能综合在一起,免去了做一个项目要选择许多管理工具的繁琐问题,经理说要不惜一切代价搞定这个东西,在安装的过程中走了很多弯路。
     
    我是参考一篇关于TFS配置的文章配置的,文章介绍的很详细,有插图(我会将它分享给大家),但是我在实际安装的时候还是除了很多问题
    开始我很发愁

    2022年9月14日
  • pycharm突然打不开到底什么情况_pycharm运行没反应

    pycharm突然打不开到底什么情况_pycharm运行没反应当无法打开pycharm终端,出现以下情况1、打开pycharm设置2、打开一下界面3、在shell路径中选择windows下的cmd.exe,这样就可以将cmd命令路径连接到pycharm中,无法打开windows终端即可方便下载安装包4、重新启动pycharm…

    2022年8月26日

发表回复

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

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