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)
上一篇 2022年8月15日 上午8:16
下一篇 2022年8月15日 上午8:16


相关推荐

  • jar find小技巧

    jar find小技巧

    2021年5月12日
    146
  • 标准C语言程序设计第七版pdf,C语言程序设计(向华)7.pdf[通俗易懂]

    标准C语言程序设计第七版pdf,C语言程序设计(向华)7.pdf[通俗易懂]《C语言程序设计》《C语言程序设计》第7章函数第7章函数《C语言程序设计》清华大学出版社本章内容要点本章内容要点••函数的定义和调用。函数的定义和调用。••函数参数和函数的返回值。函数参数和函数的返回值。••变量的作用域。变量的作用域。《C语言程序设计》…

    2025年6月12日
    4
  • Nano Banana 终极提示指南

    Nano Banana 终极提示指南

    2026年3月16日
    2
  • 简易聊天系统-聊天服务

    聊天负责私人聊天,群组聊天。私人聊天接受信息后保存至数据库再转发给目标用户。群组聊天当前没有离线消息保存,也就是用户登录后无法知道多少消息未读,而是直接拉取指定数量群聊天。当有成员发送后会将聊天信息存储数据库(没有缓存进redis,因为在线用户会直接发送,目前没有这个优化必要),从redis中检索所有群组在线用户并通过消息队列发送至对应网关。大致代码如下://处理群消息funcDealGroupMsg(delivery*amqp.Delivery,transfer1*transfer)

    2022年4月4日
    39
  • 电商新宠—广告电商,转化产品的流量聚体地「建议收藏」

    电商新宠—广告电商,转化产品的流量聚体地「建议收藏」现在市面上通过看广告赚点零花钱的项目也是片地一把抓,在各大平台看广告,间接给平台赚钱,却不能给自己带来一些好处;而真正的并没有让消费者能长期的去坚持去做,一个月下来看广告收益也就十多二十元块钱,使大多数平台变得暗淡下去,最后无人问津。目前又听说在市面上流传了一个很火热的广告变现模式——广告电商,结合了“社交电商+广告分佣”,通过在平台购买商品,赠送同等或者一定量的积分,达到不同的门槛,可以根据不同的积分门槛看不同的广告(每天3分钟),实现广告变现,提现到微信、支付宝和对接的第三方支付服务平台。最终实现广告主

    2022年6月22日
    39
  • 手把手教你部署HY-1.8B-2Bit-GGUF:腾讯混元模型在CSDN的保姆级教程

    手把手教你部署HY-1.8B-2Bit-GGUF:腾讯混元模型在CSDN的保姆级教程

    2026年3月13日
    2

发表回复

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

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