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

前言

最近在制作鸿蒙无人机地面站,模仿的是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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952264.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Reinforcement Learning (李宏毅) 机器学习 2023 Spring HW12 (Boss Baseline)

1. Reinforcement Learning (强化学习)简介 1.1 什么是强化学习 强化学习是一种机器学习方法,它训练智能体在环境中采取行动,以最大化累积奖励。智能体通过试错与环境互动,学习哪些行动会带来奖励(正反馈),哪些行动会导致惩罚(负反馈)。通过不断地学习和调整策略,…

# Java 发送电子邮件示例

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c; 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把…

滤波电路学习笔记(一)——速通低通、高通、带通、带阻等滤波电路的基本认知

前言 &#xff1a;原稿写了一大段&#xff0c;感觉车轱辘话太多了&#xff0c;还是速通一下吧&#xff0c;本文作为初学者笔记内容&#xff0c;供遗忘时查阅&#xff0c;有不足或侵权之处&#xff0c;敬请指出。 一、基本概念与作用 滤波电路&#xff1a;对于信号频率具有选择…

Unity打包+摄像机组件

转换场景 使用程序集&#xff1a;using UnityEngine.SceneManagement; 切换场景相关代码&#xff1a;SceneManager.LoadScene(1);//括号内可放入场景名称&#xff0c;场景索引等 //Application.LoadLevel(""); 老版本Unity加载场景方法 打包相关 Bundle Identi…

【游戏设计原理】58 - 主题

一、理解这里的游戏主题 1. 什么是游戏的主题呢&#xff1f;用一句话描述。 游戏主题是游戏所要传达的中心思想。 2. Theme 和 Message 的区别 特性主题&#xff08;Theme&#xff09;主旨&#xff08;Message&#xff09;定义是游戏围绕的上下文或背景&#xff0c;指游戏的…

26、【OS】【Nuttx】用cmake构建工程

背景 之前wiki 14、【OS】【Nuttx】Nsh中运行第一个程序 都是用 make 构建&#xff0c;准备切换 cmake 进行构建&#xff0c;方便后续扩展开发 Nuttx cmake 适配 nuttx项目路径下输入 make distclean&#xff0c;清除之前工程配置 adminpcadminpc:~/nuttx_pdt/nuttx$ make …

donet (MVC)webAPI 的接受json 的操作

直接用对象来进行接收&#xff0c;这个方法还不错的。 public class BangdingWeiguiJiluController : ApiController{/// <summary>/// Json数据录入错误信息/// </summary>/// <param name"WeiguiInfos"></param>/// <returns></r…

从预训练的BERT中提取Embedding

文章目录 背景前置准备思路利用Transformer 库实现 背景 假设要执行一项情感分析任务&#xff0c;样本数据如下 可以看到几个句子及其对应的标签&#xff0c;其中1表示正面情绪&#xff0c;0表示负面情绪。我们可以利用给定的数据集训练一个分类器&#xff0c;对句子所表达的…

Kafka 会丢消息吗?

目录 01 生产者(Producer) 02 消息代理(Broker) 03 消费者(Consumer) 来源:Kafka 会丢消息吗? Kafka 会丢失信息吗? 许多开发人员普遍认为,Kafka 的设计本身就能保证不会丢失消息。然而,Kafka 架构和配置的细微差别会导致消息的丢失。我们需要了解它如何以及何时…

RPM包安装Nginx部署Zr.Admin Vue2前端

0、确认node环境 安装node 参考Linux Red Hat安装包安装nodejs 设置 registry 执行 npm set registry https://registry.npmmirror.com/ 1、安装依赖 进入代码根目录 cd /lsp/code/zradmin/ZR.Vue 安装依赖 执行 npm install 最后生成node_modules文件夹 2、测试运行 …

【SpringBoot】入门

【SpringBoot】入门 一、前言1 什么是 Spring Boot ?2 特点与优势3 发展历程 二、项目构建【基于IDEA】1 创建 Spring Boot 项目2 项目结构3 运行 Spring Boot 项目 三、补充1 Maven操作2 项目打 jar 包在本地运行 一、前言 1 什么是 Spring Boot ? Spring Boot最开始基于S…

如何在本地部署大模型并实现接口访问( Llama3、Qwen、DeepSeek等)

如何在本地部署大模型并实现接口访问&#xff08; Llama3、Qwen、DeepSeek等&#xff09; 如何在本地部署大模型并实现接口访问&#xff08; Llama3、Qwen、DeepSeek等&#xff09;模型地址模型下载模型部署指定显卡运行app.py 运行环境requirements 调用接口代码调用 结语 如何…

vmware-ubuntu22.04配置虚拟机win10,重新上网成功

打开问题显示 Hardware配置 Options配置 最后的Advanced&#xff0c;第一次用了BIOS&#xff0c;然后启动中有更新&#xff0c;然后关闭&#xff0c;再用UEFI启动

GDPU Android移动应用 重点习题集

目录 程序填空 ppt摘选 题目摘选 “就这两页ppt&#xff0c;你还背不了吗” “。。。” 打开ppt后 “Sorry咯&#xff0c;还真背不了&#x1f61c;” 更新日志 考后的更新日志 没想到重点勾了一堆&#xff0c;还愣是没考到其中的内容&#xff0c;翻了一下&#xff0c;原…

运行.Net 7 Zr.Admin项目(后端)

1.下载Zr.Admin代码压缩包 https://codeload.github.com/izhaorui/Zr.Admin.NET/zip/refs/heads/main 2.打开项目 我这里装的是VS2022社区版 进入根目录&#xff0c;双击ZRAdmin.sln打开项目 3.安装.net7运行时 我当时下载的代码版本是.net7的 点击安装 点击安装&#xff0…

代码随想录算法训练营第3天(链表1)| 203.移除链表元素 707.设计链表 206.反转链表

一、203.移除链表元素 题目&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 视频&#xff1a;手把手带你学会操作链表 | LeetCode&#xff1a;203.移除链表元素_哔哩哔哩_bilibili 讲解&#xff1a;代码随想录 注意&#xff1a; 针对头结点和非头结点的…

2024年总结及2025年目标之关键字【稳进】

1. 感受 时光荏苒&#xff0c;都731天&#xff08;2年时间&#xff09;下来了&#xff0c;从第一年的【坚持】&#xff0c;到第二年的【提速】&#xff0c;定目标&#xff0c;现在回头看&#xff0c;还是那句话【事非经过不知难】&#xff0c;那又怎么样呢&#xff0c;再难不是…

qt QLabel QPushButton 控件重写paintEvent后 控件消失

qt 继承自PushButton控件的类 重写paintEvent后 控件消失 解决办法&#xff0c;在paintevent结尾加上这条语句&#xff1a;QPushButton::paintEvent(event); void MyButton::paintEvent(QPaintEvent *event) {QPushButton::paintEvent(event); } 这里QPushButton不能写成Q…

苹果手机(IOS系统)出现安全延迟进行中如何关闭?

苹果手机&#xff08;IOS系统&#xff09;出现安全延迟进行中如何关闭&#xff1f; 一、设置二、隐私与安全性三、失窃设备保护关闭 一、设置 二、隐私与安全性 三、失窃设备保护关闭

ELK的搭建

ELK elk&#xff1a;elasticsearch logstatsh kibana统一日志收集系统 elasticsearch&#xff1a;分布式的全文索引引擎点非关系型数据库,存储所有的日志信息&#xff0c;主和从&#xff0c;最少需要2台 logstatsh&#xff1a;动态的从各种指定的数据源&#xff0c;获取数据…