Jetson机载电脑通过mavros无线连接电脑虚拟机进行仿真

目录

引言

1.PX4虚拟环境的安装

1.更新源

2.拉取源代码

3.安装PX4

4.PX4编译操作

2.QGC地面站的安装

3.mavros无线通信设置

1.Jetson机载电脑操作

2.虚拟机设置

测试

Jetson端测试

虚拟机端测试

测试结果


引言

在实际中想要测试一架无人机时在室外一旦出现错误将会带来非常大的损失,为此在真实场景测试前需要进行gazebo仿真操作,然而程序和环境在Jetson机载电脑中,需要Jetson发送ros命令给电脑虚拟机进行仿真,为此需要设置Jetson和虚拟机进行通信仿真。

1.PX4虚拟环境的安装

1.更新源

sudo apt-get update 
sudo apt-get install git 

2.拉取源代码

git clone https://github.com/Minderring/PX4-Autopilot.git

3.安装PX4

cd PX4-Autopilot 
	sudo bash ./Tools/setup/ubuntu.sh 
	sudo apt-get install libjpeg-dev zlib1g-dev
	sudo -H python3 -m pip install kconfiglib
	sudo -H python3 -m pip install pyros-genmsg
	sudo -H python3 -m pip install toml
	sudo -H python3 -m pip install numpy
	sudo -H python3 -m pip install jinja2
	sudo -H python3 -m pip install em 
	sudo -H python3 -m pip install jsonschema
	sudo -H python3 -m pip install packaging 
	sudo -H python3 -m pip install --ignore-installed empy
	sudo -H python3 -m pip install --ignore-installed future
	如果上面的命令安装后还是报错,可以用下面的命令安装:
	pip3 install kconfiglib
	pip3 install --user empy
	pip3 install --user jsonschema
	pip3 install --user jinja2
	pip3 install --user pyros-genmsg
	pip3 install --user packaging
	pip3 install --user toml
	pip3 install --user numpy 
	sudo apt-get install gcc-arm-none-eabi  
	sudo chmod 777 /usr/include/newlib/math.h 
	sudo apt-get install libgazebo9-dev 
	sudo apt install libopencv-dev python3-opencv 
	sudo apt-get install libeigen3-dev

	pip3 install kconfiglib
	pip3 install --user jsonschema
	sudo apt install python3-pip
	pip3 install kconfiglib
	sudo pip3 install jinja2
	pip3 install --user jsonschema

4.PX4编译操作

make list_config_targets   		查看所有可以用的编译命令
make distclean					重新清除或者将build文件夹删除
make clean						先清理编译缓存,再重新编译,
make micoair_h743-v2_bootloader	编译Bootloader 
make micoair_h743-v2_default    编译固件
make px4_sitl_default			启动SITL (Software In The Loop) 仿真环境
make px4_sitl_default gazebo	安装完环境后编译生成gazebo仿真所需的sdf文件  

1. px4_sitl_allyes
作用: 启动一个包含所有可能硬件和传感器的完整仿真配置。这个配置会启用所有的硬件模拟(传感器、飞控板、各种外设等)。
适用场景: 如果你需要一个完整的仿真环境来测试系统的各个方面,尤其是在没有实际硬件的情况下,适用于所有硬件都需要仿真的情况。
2. px4_sitl_default
作用: 启动一个默认的仿真环境,通常只包含飞行控制器和一些基本的传感器。相比 px4_sitl_allyes,它的功能和硬件支持会少一些,但速度通常会更快。
适用场景: 适用于大多数普通的仿真场景,只需要基础的飞行控制器和传感器仿真时使用。
3. px4_sitl_nolockstep
作用: 启动一个不使用锁步(lockstep)同步的仿真模式。锁步模式通常会保证仿真中的所有组件(比如飞控、传感器)在同一时间步同步执行,但在某些情况下,禁用锁步同步可以提高仿真的速度或处理特定问题。
适用场景: 如果你不需要严格的时间同步,或者在特定情况下禁用锁步同步可以提升性能或解决某些问题,可以使用这个模式。
4. px4_sitl_replay
作用: 这个命令允许你回放之前记录的仿真数据。它通常用于回放先前的仿真记录,以便分析飞行控制器的表现或调试。
适用场景: 用于调试、分析或者验证某次仿真中的问题,特别是当你已经有了仿真日志时。
5. px4_sitl_test
作用: 这个命令用于运行一些自动化测试,通常是测试系统中的某些功能是否正常。它可能会启动一个轻量级的仿真环境,专注于特定的测试用例。
适用场景: 用于单元测试、功能验证等场景,适合检查特定功能或测试模块的正确性。
6. px4_sitl_zenoh
作用: 启动基于 Zenoh 的仿真。Zenoh 是一个分布式的数据流平台,通常用于低延迟、高可靠性的数据传输。在仿真环境中,启用 Zenoh 可以模拟复杂的网络传输和通信。
适用场景: 如果你需要测试高效的数据传输和网络系统,或者在仿真环境中模拟更复杂的网络通信,使用这个命令是合适的。

2.QGC地面站的安装

1.首次安装QGroundControl之前:在终端依次输入一下命令

    sudo usermod -a -G dialout $USER
    sudo apt-get remove modemmanager -y
    sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
    sudo apt install libfuse2 -y
    sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y
    newgrp dialout


    2.下载.AppImage 文件
    (1)可以直接从QGroundControl 官方网站下载或者命令行下载如下:
    (2)命令行下载:

wget https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage -O QGroundControl.AppImage

    3.在下载好的文件位置处打开终端运行以下命令:

chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage 

完成后即可打开QGC地面站,如下图所示:

3.mavros无线通信设置

1.Jetson机载电脑操作

进入px4.launch进行更改

  <arg name="fcu_url" default="udp://@192.168.111.99:14557" />

IP地址为虚拟机地址,@表示只发不收,Jetson发送给PX4。

2.虚拟机设置

cd PX4-Autopilot
nano ~/PX4-Autopilot/ROMFS/px4fmu_common/init.d-posix/rcS

-u 14550:让 PX4 监听 UDP 14550 端口(Jetson 会向这个端口发送数据)

-r 40000:数据发送速率

-m onboard:运行在板载模式(也可使用 external,区别在于权限与心跳机制)

在文件后面加入

mavlink start -u 14557 -r 40000 -m onboard

这里面需要注意UDP端口要对应上,否则不报错但是接收不到消息

输入完成后ctrl+o保存、enter确认、ctrl+x退出

测试

Jetson端测试

roslaunch robot_bringup px4.launch fcu_url:=udp://@192.168.111.99:14557

192.168.180.99:14557:是飞控的 MAVLink 数据发送地址。

虚拟机端测试

使用netcat测试是否收到了MAVLink

cd PX-Autopilot
make px4_sitl_default gazebo
nc -u -l 14557

测试结果

Jetson机载电脑端发送数据

虚拟机仿真端接收数据

虚拟机端出现乱码并且不停的跳动说明通信正常!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值