Dronekit是一个与无人机飞控搭配使用,方便开发者使用代码控制无人机。个人认为它会比搭建ros来控制无人机更容易上手一些。
对于Dronekit,PX4被支持的较少,不可以进行模式切换,而对Ardupilot支持的比较多,可调用的函数也比较多。
PX4 官网的官方文档dronekit部分 https://dev.px4.io/en/robotics/dronekit.html
对于Ardupilot与无人机搭配使用,有一篇还不错的博客,本篇有些内容摘于此篇https://blog.youkuaiyun.com/liberatetheus/article/details/78004917
一、dronekit的安装
安装所需依赖
sudo apt-get install python-dev python3-dev libxml2-dev libxslt1-dev zlib1g-dev
git clone https://github.com/dronekit/dronekit-python.git
cd ./dronekit-python
sudo python setup.py build
sudo python setup.py install
二、连接于获取数据
目前没有实际设备,所以还是在仿真下做
我们可以建立一个连接:
对于PX4 系统仿真提供的接口是:
127.0.0.1:14540
对于Ardupilot 系统仿真提供的接口是
127.0.0.1:14551
一小段代码可以测试一下连接,以及获取飞控板的数据(以PX4为例)
# Import DroneKit-Python
from dronekit import connect, Command, LocationGlobal
from pymavlink import mavutil
import time, sys, argparse, math
# Connect to the Vehicle
print "Connecting"
connection_string = '127.0.0.1:14540'
vehicle = connect(connection_string, wait_ready=True)
# Display basic vehicle state
print " Type: %s" % vehicle._vehicle_type
print " Armed: %s" % vehicle.armed
print " System status: %s" % vehicle.system_status.state
print " GPS: %s" % vehicle.gps_0
print " Alt: %s" % vehicle.location.global_relative_frame.alt
首先,启动模拟器,可以是gozebo ,也可以是jmavsim
之后,我们执行python代码使用命令 例如 python test.py
python 你要执行的文件名.python
执行后我们可以收到飞控的数据
三、执行飞行任务
3.1 px4
对于PX4 它不支持模式转换,但是官网还是给出了使PX4执行飞行任务的方法,代码如下:
################################################################################################
# @File DroneKitPX4.py
# Example usage of DroneKit with PX4
#
# @author Sander Smeets <sander@droneslab.com>
#
# Code partly based on DroneKit (c) Copyright 2015-2016, 3D Robotics.
##################