ardusub使用gazebo仿真

3 篇文章 0 订阅
1 篇文章 0 订阅

前言

在进行gazebo仿真的时候首先要验证软件在环能否仿真,如果软件在环或者编译环境不会的话去看我上一篇博客。
单纯的软件在环只需在ardusub目录下输入终端命令:

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

如果在进行多次下载删除gazebo后可能在重新下载的时候会因为出现依赖项导致无法成功下载,这时候可以先一个个下载依赖项然后再进行下载,或者遇到文件冲突的时候可以进行强制覆盖等操作,例如

sudo dpkg -i --force-overwrite /var/cache/apt/archives/gazebo9_9.19.0-2~focal_amd64.deb

可以使用 dpkg 命令的 --force-overwrite 选项来实现。这样做将强制 dpkg 安装软件包,即使存在文件冲突也会覆盖已有文件。

请注意,这种操作可能导致系统不稳定或引起其他软件功能的问题,因为它可能破坏了现有软件包的期望行为。在决定执行这一步骤之前,请确保您理解潜在的风险并做好备份。

1.安装gazebo

我所使用的是ubuntu20.04.6,安装的gazebo9,官网给出的是gazebo7或8,9+以上是不能安装gazebo插件的。但是在浏览论坛时发现已经更新了gazebo插件,最新的gazebo插件地址:GitHub - ArduPilot/ardupilot_gazebo:使用 ArduPilot SITL 控制器在 Gazebo Sim 中进行车辆模拟的插件和模型

然而我在尝试后发现这个最新的gazebo插件地址所下载的插件是gazebo7的插件。暂时放弃了此次尝试。
接下来我将演示我的步骤。

ardusub官网的方法步骤参考:SITL · GitBook (ardusub.com)

安装gazebo9,在ubuntu终端输入

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update
sudo apt install gazebo9 libgazebo9-dev

安装成功后查看是否可以打开gazebo。

安装gazebo11的可以看下面的网址:

Gazebo : Tutorial : Ubuntu (gazebosim.org)

2.安装freebuoyancy_gazebo用于浮力模拟的插件

这个一般是不会有问题的,如果想要验证浮力插件是否安装成功可以在下载 BlueRov2 Gazebo 模型后仿真看看ardusub是否会在海面漂浮,如果没有这个浮力插件,ardusub在按下仿真开始键后会直接沉入海底。
 

该软件包构建了两个 Gazebo 插件:

freebuoyancy_gazebo(模型插件) 模拟来自水的浮力和粘性力

安装:在ubuntu终端输入

git clone https://github.com/bluerobotics/freebuoyancy_gazebo
cd freebuoyancy_gazebo
mkdir build
cd build
cmake ..
make
sudo make install

3.安装 ardupilot_gazebo/add_link 插件进行 ardupilot-gazebo 通信。add_link 是一个通过 sdf 链路提供驱动功能的分支,在 之后,必须运行 .git clone git checkout add_link

这一步是最重要的,由于旧版本的gazebo7/8已经淘汰,很多人都因为无法下载gazebo插件而导致仿真失败。

官方给的插件网址:GitHub - patrickelectric/ardupilot_gazebo at add_link

对比官方给的步骤我们稍作更改

我们安装gazebo9的插件,当然有用更高版本的可以进行尝试更改比如gazebo11,我这里用的是gazebo9

sudo apt install gazebo9 libgazebo9-dev
git clone https://github.com/patrickelectric/ardupilot_gazebo
cd ardupilot_gazebo
git checkout add_link
mkdir build
cd build
cmake ..
make -j4
sudo make install

下面切换到主文件夹的终端,根据以上的命令我们已经切换到ardupilot_gazebo/build路径下了,接下来的命令是在主文件夹下进行的,如何不会切换终端路径的命令,可以关闭终端重新开启就返回最初的终端窗口了。

echo 'source /usr/share/gazebo/setup.sh' >> ~/.bashrc

设置 Gazebo 模型的路径(将路径调整为克隆存储库的位置)

echo 'export GAZEBO_MODEL_PATH=~/ardupilot_gazebo/models' >> ~/.bashrc

设置 Gazebo 世界的路径(将路径调整为克隆仓库的位置)

echo 'export GAZEBO_RESOURCE_PATH=~/ardupilot_gazebo/worlds:${GAZEBO_RESOURCE_PATH}' >> ~/.bashrc
source ~/.bashrc

4.运行 BlueRov2 Gazebo 模型

(1)下载bluerov_ros_playground

终端窗口输入命令:

 git clone https://github.com/patrickelectric/bluerov_ros_playground

(2)运行 Gazebo 模型

cd bluerov_ros_playground
 source gazebo.sh
 gazebo worlds/underwater.world -u

输入完命令后就可以在gazebo上面看到ardusub的模型了,以后每次仿真只需运行上面的命令即可打开ardusub模型。最后不要忘记在gazebo界面点击仿真开始的功能键。

仿真开始后船会下落到海平面上,并且会有起伏的感觉,如果没有这种情况就是浮力插件没有装好,重新装浮力插件。

5.执行 ArduPilot SITL

这部分假设您已经在计算机上设置了 SITL。 首先必须位于 ArduSub 文件夹中

 sim_vehicle.py -f gazebo-bluerov2 -L RATBeach --out=udp:0.0.0.0:14550 --console

大概是这样一个界面,接下来打开qgc地面站就能直接连上进行仿真了

打开qgc地面站进行仿真操作。

  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值