前言
最近在制作鸿蒙无人机地面站,模仿的是QGroundControl,协议使用mavlink,记录一下本地模拟mavlink协议通过tcp/udp发送
废话不多说直接上命令
1.启动docker的桌面端
启动之后才能使用docker命令来创建容器
docker run --rm -it jonasvautherin/px4-gazebo-headless:1.14.3
创建成功
mavlink命令详情
Commands:
start Start a new instance
[-d <val>] Select Serial Device
values: <file:dev>, default: /dev/ttyS1
[-b <val>] Baudrate (can also be p:<param_name>)
default: 57600
[-r <val>] Maximum sending data rate in B/s (if 0, use baudrate / 20)
default: 0
[-p] Enable Broadcast
[-u <val>] Select UDP Network Port (local)
default: 14556
[-o <val>] Select UDP Network Port (remote)
default: 14550
[-t <val>] Partner IP (broadcasting can be enabled via -p flag)
default: 127.0.0.1
[-m <val>] Mode: sets default streams and rates
values: custom|camera|onboard|osd|magic|config|iridium|minimal|extvision|extvisionmin|gimbal|uavionix,
[-n <val>] wifi/ethernet interface name
values: <interface_name>
[-f] Enable message forwarding to other Mavlink instances
[-w] Wait to send, until first message received
[-x] Enable FTP
[-z] Force hardware flow control always on
[-Z] Force hardware flow control always off
stop-all Stop all instances
stop Stop a running instance
[-u <val>] Select Mavlink instance via local Network Port
[-d <val>] Select Mavlink instance via Serial Device
values: <file:dev>
status Print status for all instances
[streams ] Print all enabled streams
stream Configure the sending rate of a stream for a running instance
[-u <val>] Select Mavlink instance via local Network Port
[-d <val>] Select Mavlink instance via Serial Device
values: <file:dev>
-s <val> Mavlink stream to configure
-r <val> Rate in Hz (0 = turn off, -1 = set to default)
英文不好的伙伴看中文
start 命令
启动一个新的 MAVLink 实例,通常用于开始与一个设备或网络的通信。
-d <val>
选择串行设备:指定连接的串口设备。默认值是 /dev/ttyS1,可以指定为文件路径(如 /dev/ttyUSB0)。
-b <val>
波特率:设置串行通信的波特率。默认是 57600。可以通过 p:<param_name> 的方式设置为某个参数值。
-r <val>
最大发送数据率:设置最大数据发送速率(字节/秒)。如果设置为 0,则使用默认的波特率除以 20。
-p
启用广播:启用广播模式,这意味着不需要指定目标地址,消息将广播到所有连接的设备。
-u <val>
选择 UDP 网络端口(本地):指定本地监听的 UDP 网络端口。默认端口是 14556。
-o <val>
选择 UDP 网络端口(远程):指定远程设备的 UDP 网络端口,默认是 14550。
-t <val>
指定合作伙伴的 IP 地址:指定远程设备的 IP 地址。默认值是 127.0.0.1(本地回环地址)。可以使用此选项来设置与远程设备的连接。
-m <val>
模式:设置 MAVLink 实例的默认流和速率。可选的模式包括:
custom
camera
onboard
osd
magic
config
iridium
minimal
extvision
extvisionmin
gimbal
uavionix
每个模式都有不同的流设置和数据传输速率。
-n <val>
Wi-Fi 或以太网接口名称:指定使用的网络接口名称。例如,eth0 或 wlan0。
-f
启用消息转发:将接收到的消息转发到其他 MAVLink 实例。
-w
等待直到收到第一条消息:启动时等待直到接收到第一条消息,然后开始发送数据。
-x
启用 FTP:启用文件传输协议功能,可以用来从设备上传或下载文件。
-z
始终启用硬件流控:强制始终启用硬件流控制。
-Z
始终禁用硬件流控:强制始终禁用硬件流控制。
stop-all 命令
停止所有正在运行的 MAVLink 实例。
stop 命令
停止一个正在运行的 MAVLink 实例。
-u <val>
选择通过本地网络端口选择 MAVLink 实例:通过指定本地网络端口来选择要停止的实例。
-d <val>
通过串行设备选择 MAVLink 实例:通过指定设备路径来选择要停止的实例。
status 命令
显示所有 MAVLink 实例的状态。
streams
打印所有启用的流:列出当前实例启用的所有数据流。
stream 命令
配置运行中的 MAVLink 实例的数据流发送速率。
-u <val>
通过本地网络端口选择 MAVLink 实例:通过指定本地网络端口来选择要配置的实例。
-d <val>
通过串行设备选择 MAVLink 实例:通过指定串行设备来选择要配置的实例。
-s <val>
MAVLink 数据流名称:选择要配置的流类型。例如,heartbeat、gps、attitude 等。
-r <val>
发送速率(Hz):设置该数据流的发送频率。0 表示关闭该流,-1 表示使用默认值。
启动UDP
mavlink start -t 172.20.10.8 -o 14550 -u 14555
测试
打开QGC地面站即可进行测试,QGC默认的端口即为14550