QGC局域网内连接PX4模拟器JMAVSim

news/2024/11/25 21:56:39/

环境

  • QGroundControl 开源地面站系统; 代码地址: https://github.com/mavlink/qgroundcontrol
  • PX4 开源飞控系统; 代码地址: https://github.com/PX4/PX4-Autopilot
    QGC可以直接下载运行包.
    PX4 请根据代码中的说明,进行环境的配置和运行.
    通过代码去build地面站和PX4的步骤见官网说明.

下面重点介绍,在局域网内,一台电脑运行QGC, 另一台电脑运行 PX4 模拟器. 如何通过端口进行连接.

我的本地环境

QGC 运行在 windows11 系统上;
模拟器JMAVSim 运行在优麒麟22.04上.

1. 启动模拟器

执行命令: make px4_sitl_default jmavsim
在这里插入图片描述
在这里插入图片描述
出现以上界面的话,表示模拟器已经成功启动,而且是待起飞状态.在界面上回车,我们会得到下面界面:
在这里插入图片描述
我们需要注意一下,上面那条信息, MAVLink only on localhost.
说是要设置参数能够使能网络. 我测试下了,设置了参数也还不能直接在局域网中连接,那位大牛知道这个怎么配置的话,可以告诉下,提前谢过.

上面这条的意思就是 mavlink模式是只能在本地使用,也就是你的QGC和模拟器在同一台电脑的话,会直接连接上. 但如果是我这样的环境,是无法连接的,mavlink是不会把数据通过端口发出去的. 地面站也就连接不上了.

2. 启动地面站

如图,地面站一直是处于断开连接状态.(界面我做了稍微的改动,大家不用太关注).
在这里插入图片描述

3. 如何启动模拟器,才能在局域网和QGC通信?

  • 我们首先去px4的官网看下文档,然后会看到要通过mavlink命令进行转发.
    在这里插入图片描述
    在这里插入图片描述
    重点是下看这段话
    在这里插入图片描述
    既然这样,那我们就按照文档中说的这个来.在模拟器界面我们输入mavlink看会出来什么?

pxh> mavlink

Description

This module implements the MAVLink protocol, which can be used on a Serial link or UDP network connect
Usage: mavlink [arguments…]
Commands:

start Start a new instance
[-d ] Select Serial Device
values: <file:dev>, default: /dev/ttyS1
[-b ] Baudrate (can also be p:<param_name>)
default: 57600
[-r ] Maximum sending data rate in B/s (if 0, use baudrate / 20)
default: 0
[-p] Enable Broadcast
[-u ] Select UDP Network Port (local)
default: 14556
[-o ] Select UDP Network Port (remote)
default: 14550
[-t ] Partner IP (broadcasting can be enabled via -p flag)
default: 127.0.0.1
[-m ] Mode: sets default streams and rates
values: custom|camera|onboard|osd|magic|config|iridium|minimal|extvision|extvisionmin|gimbal|uavionix,
[-n ] 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 ] Select Mavlink instance via local Network Port
[-d ] 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 ] Select Mavlink instance via local Network Port
[-d ] Select Mavlink instance via Serial Device
values: <file:dev>
-s Mavlink stream to configure
-r Rate in Hz (0 = turn off, -1 = set to default)

boot_complete Enable sending of messages. (Must be) called as last step in startup script.
Command ‘mavlink’ failed, returned 1.

命令很多,我们按照刚才文档中说的 + 一个-p 试试.
输入: mavlink start -p 后,我们得到下面这个信息. 看结果,显然是不对的,怎么会去找ttyS1, 这应该是默认的串口.
[-d ] Select Serial Device
values: <file:dev>, default: /dev/ttyS1
也就是说,默认是选择串口设备的.
在这里插入图片描述
再看下mavlink的参数.
[-o ] Select UDP Network Port (remote)
default: 14550
发现 -o是UDP,用这个试试.
输入: mavlink start -p -o 14550

成功了.

在这里插入图片描述
再看下地面站,如下图,已经和远端的模拟器连接上了.
在这里插入图片描述

连接上,就可以通过地面站来操作模拟器了.
在这里插入图片描述

在这里插入图片描述

除了使用mavlink start -p -o 14550命令
还可以使用-t命令,和特定的IP通信.
mavlink start -p -t 192.168.x.x -o 14550

要停止所有飞机实例的话,可以通过 mavlink stop-all
在这里插入图片描述
地面站状态:

以上就可以在局域网内进行地面站和px4模拟器在不同电脑上进行通信.

当然,手机端安装QGC也可以进行对模拟器的操作,如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


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

相关文章

对话ChatGPT,大模型时代到来,文末可获得ChatGPT免费访问地址

文章目录 1. 你觉得大模型时代已经到来了吗&#xff1f;2. 大模型和以前的模型有什么区别&#xff1f;3. 列举一下你知道的大模型有哪些4. ChatGPT与传统的智能助手有什么区别&#xff1f;5. ChatGPT有什么优势和劣势&#xff1f;6. ChatGPT有哪些应用场景&#xff0c;请举例说…

魔术表演-第14届蓝桥杯省赛Scratch中级组真题第1题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第136讲。 魔术表演&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第1题&#xf…

【Linux之进程间通信】05.僵尸进程

【Linux之进程间通信】 项目代码获取&#xff1a;https://gitee.com/chenshao777/linux-processes.git &#xff08;麻烦点个免费的Star哦&#xff0c;您的Star就是我的写作动力&#xff01;&#xff09; 05.僵尸进程 僵尸进程&#xff1a; 指的是进程终止后&#xff0c;资源…

( 动态规划) 115. 不同的子序列 ——【Leetcode每日一题】

❓115. 不同的子序列 难度&#xff1a;困难 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数。 题目数据保证答案符合 32 位带符号整数范围。 示例 1&#xff1a; 输入&#xff1a;s “rabbbit”, t “rabbit” 输出&#xff1a;3 解释&…

Linux---文件操作命令(touch、cat、more)

1. touch命令 可以通过touch命令创建文件 语法&#xff1a;touch [选项] Linux路径 touch命令&#xff0c;参数必填&#xff0c;表示要创建的文件路径&#xff0c;相对、绝对、特殊路径符均可以使用。 touch 命令不光可以用来创建文件&#xff08;当指定操作文件不存在时&a…

[比赛简介]Parkinson‘s Freezing of Gait Prediction

比赛链接&#xff1a;https://www.kaggle.com/competitions/tlvmc-parkinsons-freezing-gait-prediction 比赛简介 本次比赛的目标是检测步态冻结&#xff08;FOG&#xff09;&#xff0c;这是一种使人衰弱的症状&#xff0c;困扰着许多帕金森病患者。您将开发一个机器学习…

【内部类匿名内部类反射LambdaStream流的使用】

一、内部类和匿名内部类 匿名内内部类和lambda表达式主要的区别在于 1、匿名内部类他必须实现继承类的所有方法 2、匿名内部类在重写时有override标识&#xff0c;而lambda没有 3、lambda表达式继承的接口只能有一个抽象方法 在使用匿名内部类的过程中&#xff0c;我们需要注意…

2023年最新VMware 17+虚拟机详细配置安装【程序员使用指南】!!

文章目录 Vmware版本选择17Pro安装自定义安装填写对应的许可证正式安装虚拟机进行对应的配置配置镜像文件选择对应的语言&#xff1a;到这个界面&#xff0c;选择中文 安装结束连接对应的xshell Vmware版本选择17Pro安装 ● 最开始从这里出发 自定义安装 ● 记得自定义在自…