SITL Simulation with Mavros

参考资料:

Simulating Manual Control using Mavros

ArduSub S.I.T.L

Ardupilot SITL Simulator (Software in the Loop)

本文简单来说明一下Ardusub在SITL下面配合MAVROS的仿真过程。SITL的相关基础操作和基本命令大伙就自己去看一下官方文档吧。

MAVROS的安装这里就不再说了,详情可以看这篇:
最新mavros详细安装教程(亲测可行)


首先进入到ArduSub路径下

cd ardupilot/ArduSub

启动SITL(简单说一下–map和–console是分别打开小窗口地图和控制显示台)

sim_vehicle.py -L RATBeach --out=udp:0.0.0.0:14550 --map --console

运行该命令之后总共会有4个窗口:

MAP窗口
在这里插入图片描述
Console窗口:用于显示一些基本的参数信息
在这里插入图片描述
命令行显示窗口
在这里插入图片描述
以及你运行命令之后的终端窗口,正常运行的现实如下
在这里插入图片描述
如果你在linux下安装了QGC,也可以同时打开,其会完成自动连接,另外打开一个终端输入

./QGroundControl.AppImage

显示如下:

在这里插入图片描述


不过我们不打开QGC也可以进行仿真,这边还是先关闭QGC。可以在原来的终端窗口中输入一些命令,比如:

在这里插入图片描述
然后你就会看见ROV在地图中随意开始飘动,然而目前ArduSub对Guided模式支持尚不完善。

在这里插入图片描述

我们先返回Manual模式,输入

mode manual

另外再打开一个终端,输入以下命令将SITL和MAVROS相连接。

roslaunch mavros apm.launch fcu_url:=udp://0.0.0.0:14550@

然后准备ROV并且将其置为Guided模式

rosrun mavros mavsafety arm
rosrun mavros mavsys mode -c GUIDED

使用如下命令订阅当前ROV的位置

rostopic echo /mavros/local_position/odom/pose

显示如下:
在这里插入图片描述
此时我们可以开始发布对应线速度和角速度控制消息。另开一个终端,输入

rostopic pub -r 10 /mavros/setpoint_velocity/cmd_vel geometry_msgs/TwistStamped "{header: auto, twist: {linear: {x: -10.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}}"

ROV便会向着一个方向前进

在这里插入图片描述
ROS的位置订阅信息如下不断变化

在这里插入图片描述
然而可以看到在小地图上显示的还是有点问题的,此外ROV前进方向和输入的指令有所差异。

目前笔者也还在研究中,如有问题共同探讨。

猜你喜欢

转载自blog.csdn.net/moumde/article/details/109067916
今日推荐