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

1 篇文章 0 订阅

环境

  • 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也可以进行对模拟器的操作,如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值