DroneKit教程(三):连接Pixhawk飞控
DroneKit提供了非常简便的代码,可通过多种方式与飞控连接。
连接飞控
使用DroneKit中的connect
函数,可以方便地连接到飞控。
connect
函数原型为:
def connect(ip, # 目标无人机的地址
_initialize=True,
wait_ready=None, # 函数返回之前,是否等待属性参数下载完成(通常设置为True)
status_printer=errprinter, # 输出诊断信息的途径,默认输出到运行程序的cmd
vehicle_class=None, # 返回值的类型,可以是"Vehicle"类本身或它的任意子类
rate=4, # 数据流的刷新频率,默认4Hz
baud=115200, # 使用串口连接时的波特率,默认115200
heartbeat_timeout=30, # 连接无人机的超时时间,默认30s
source_system=255, # 目标无人机的MAVLink ID,默认255
use_native=False) # 使用预编译的解析器
其中,ip, wait_ready, vehicle_class, baud
参数比较常用。connect
函数将返回一个Vehicle
类型的对象(或其他类型,当vehicle_class
不为None
时),可以通过该对象实现对无人机的控制。
连接飞控的示例代码为
from dronekit import connect
vehicle = connect('127.0.0.1:14551', wait_ready=True)
目标地址
连接类型 | 目标地址 |
---|
Linux计算机上的USB接口 | /dev/ttyUSB0 |
Linux计算机上的UART串口 | /dev/ttyAMA0,同时需要设置baud |
使用UDP连接到本地端口14551 | 127.0.0.1:14551 |
使用TCP连接到本地端口5760 | tcp:127.0.0.1:5760 |
OSX计算机的USB接口 | dev/cu.usbmodem1 |
Windows计算机的USB接口(例如COM14) | com14 |
Windows计算机连接的数传(例如COM14) | com14,同时需设置baud |
例如,飞控通过TCP连接到本地的5760端口(通常为SITL):
vehicle = connect('tcp:127.0.0.1:5760', wait_ready = True)
飞控通过UART串口连接到Linux计算机,且波特率为115200:
vehicle = connect('/dev/ttyAMA0', baud = 115200, wait_ready = True)
连接到多个飞控
通过多次使用connect
函数连接到不同的地址,即可在同一个代码文件内连接到多个飞控。
每次调用connect
,都会返回一个Vehicle类的对象。通过控制这些对象,即可在同一份代码中控制多架无人机。
版本信息
1.0 20170914 initial commit
本作品采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)