使用Docker模拟PX4固件的无人机用于辅助地面站开发

前言

最近在制作鸿蒙无人机地面站,模仿的是QGroundControl,协议使用mavlink,记录一下本地模拟mavlink协议通过tcp/udp发送

废话不多说直接上命令

1.启动docker的桌面端

启动之后才能使用docker命令来创建容器

bash 复制代码
docker run --rm -it jonasvautherin/px4-gazebo-headless:1.14.3

创建成功

mavlink命令详情

bash 复制代码
 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)

英文不好的伙伴看中文

bash 复制代码
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

bash 复制代码
mavlink start -t 172.20.10.8 -o 14550 -u 14555

测试

打开QGC地面站即可进行测试,QGC默认的端口即为14550

相关推荐
jingshaoqi_ccc9 小时前
ubuntu 24下面安装docker
ubuntu·docker·eureka
关关长语10 小时前
Vue本地部署包快速构建为Docker镜像
前端·vue.js·docker
还是大剑师兰特10 小时前
cesium处理无人机碰撞检测方案
无人机·大剑师·cesium教程
天途小编11 小时前
无人机专业学什么
无人机
水滴与鱼11 小时前
DOCKER制作ROS运行的镜像文件
运维·docker·容器
洒家肉山大魔王13 小时前
Kubernetes中Pod 处于 CrashLoopBackOff 状态(生产环境)
linux·容器·kubernetes·pod·pod循环重启
杨浦老苏14 小时前
安全的消息传递和协作工具Virola Messenger
docker·即时通讯·群晖·im
Lynnxiaowen14 小时前
今天我们学习kubernetes内容Ingress资源对象
学习·容器·kubernetes
jason成都15 小时前
emqx的docker部署
运维·docker·容器
Echo_NGC223716 小时前
【AirSim 教程指南】Part 3:相机与传感器(RGB / 深度 / 分割 / LiDAR)
人工智能·计算机视觉·游戏引擎·ar·无人机·图形渲染·着色器