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

news/2025/1/11 14:38:14/

前言

最近在制作鸿蒙无人机地面站,模仿的是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 Devicevalues: <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 ratesvalues: custom|camera|onboard|osd|magic|config|iridium|minimal|extvision|extvisionmin|gimbal|uavionix,[-n <val>]  wifi/ethernet interface namevalues: <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 offstop-all      Stop all instancesstop          Stop a running instance[-u <val>]  Select Mavlink instance via local Network Port[-d <val>]  Select Mavlink instance via Serial Devicevalues: <file:dev>status        Print status for all instances[streams  ] Print all enabled streamsstream        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 Devicevalues: <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


http://www.ppmy.cn/news/1562259.html

相关文章

深入Android架构(从线程到AIDL)_15 应用Android的UI框架02

3、 使用UI线程的MQ(Message Queue) // myView.java // ……… public class myView extends View {// ………Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);// ………// canvas.drawRect(….);invalidate();} } 我们可以透过Message方式来触发UI线程…

MR30分布式 IO革新饮料灌装机产线

在当今竞争激烈的饮料生产行业&#xff0c;高效、精准的生产控制是企业立足市场、赢得发展的关键所在。而MR30分布式 IO 模块的应用&#xff0c;正为饮料灌装机产线带来了前所未有的高效控制新局面&#xff0c;推动着整个生产流程朝着更智能、更稳定的方向大步迈进。 精准数据采…

学前端 4 个月想进中厂,该怎么做?

大家好&#xff0c;我是程序员鱼皮。收到一位编程导航鱼友的提问&#xff0c;想要自学前端 4 个月进入中厂工作&#xff0c;让我帮忙给出一份学习计划。 鱼友提问 我刚刚考完研和准备期末考试&#xff0c;大三基本上在备研所以没有专门学习一项技术栈&#xff0c;简单学习过 …

基于Qt的OFD阅读器开发原理与实践

摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践。通过解析OFD文件格式、构建文档结构、实现页面渲染、处理用户交互以及进行性能优化&#xff0c;本文展示了如何使用Qt框架开发一个功能强大、性能优异的OFD阅读器。文章还提供了示例代码和未来发展方向&#xff0c;为开发…

PyTorch:.max(1)和.max(0)的使用

目录 1&#xff09;.max(1)的使用&#xff1a; 2&#xff09;.max(0)的使用&#xff1a; 1&#xff09;.max(1)的使用&#xff1a; 假设有一个形状为 ( m , n ) 的 Tensor x &#xff0c;其中m表示行数&#xff0c;n表示列数。 x.max(1) &#xff0c;相当于x.max(dim1) 。作…

TypeScript语言的网络编程

TypeScript语言的网络编程 引言 在现代软件开发中&#xff0c;网络编程是一个不可或缺的部分。随着互联网的快速发展&#xff0c;网络应用程序越来越普遍&#xff0c;涉及到从简单的个人网站到复杂的企业级应用。TypeScript作为一种强类型的JavaScript超集&#xff0c;近年来…

【Unity-和WPF结合的优势】

数据处理深度和灵活性的局限 在 Unity 中&#xff1a; Unity 虽然可以处理数据&#xff0c;但它的数据处理能力主要侧重于游戏开发场景相关的数据。对于工业仿真软件中的复杂数据结构和深度业务逻辑处理相对有限。例如&#xff0c;在工业生产中可能涉及到大量的设备参数、工艺…

Bash语言的软件工程

Bash语言的软件工程 引言 在现代软件工程中&#xff0c;使用脚本语言来处理自动化任务、系统管理、数据处理等问题已经成为一种常见的做法。Bash&#xff08;Bourne Again SHell&#xff09;作为一种强大且广泛使用的命令行解释器&#xff0c;凭借其简洁性和强大功能&#xf…