【ubuntu20安装usv_sim_lsa (无人水面航行器模拟环境) - v0.3】
这里写自定义目录标题
- 前言
- usv_sim_lsa的介绍
- 安装过程(docker)
- 源码安装
- 第一步是安装ros kinetic
- 第二步是安装依赖
- 第三步是创建ros包的工作环境、git代码,运行安装脚本:
- 第四步就是一个麻烦的点
- 结语
前言
由于课题组需要一款虚拟仿真实验平台用以测试无人船各个模块的算法,这期博文主要介绍usv_sim_lsa的安装过程中遇到的问题,可以为之后安装的同行做参考。博主这几天并未安装成功,本文仅仅做交流,不足之处,还请批评指正,谢谢大家。
usv_sim_lsa的介绍
该模拟器的主要目的是提供一个试验平台,开发人员可以在更接近灾难场景的场景中测试无人水面航行器 (USV) 的导航和控制方法,其中风、水流和波浪会对 USV 任务性能产生重大影响。
该模拟器结合使用了多种物理包来构建 USV 的测试环境。首先,可以使用它来开发和测试 USV 的控制和轨迹策略。但它可以轻松地适应其他应用(例如无人机或水下航行器)。它包含多个机器人模型,如动力船(舵船、差速船、气垫船)和帆船。船只会受到波浪、风和水流的影响。
为此,目前使用 UWsim 进行水面建模,项目还加载了HEC-RAS输出文件,其中包含河流和水道模拟的水速。UWsim的地址:https://github.com/uji-ros-pkg/underwater_simulation
项目使用OpenFoam模拟器模拟风流。所有这些功能都可以以逼真的方式干扰船只的运动。
安装过程(docker)
安装方式有两种,源码基于ubuntu16和 ros kinetic ,推荐使用docker进行安装。
docker安装首先要先安装docker,此处不再赘述。安装过程没有什么问题,直接构建镜像,运行镜像即可。可参考这位大佬的博文:https://blog.csdn.net/m0_67487238/article/details/140880642
本文在运行镜像时,并未成功启动gazebo,报错如下:
经查询,应该是镜像无法启动主机的GUI,一番乱八七糟的操作之后成功的把电脑整黑屏了。
尽管本文并未成功运行项目的镜像,但还是推荐后来的同行使用docker镜像的方式运行该项目,因为直接运行源码会更费劲,请看下文。。。。。。。
源码安装
源码基于ubuntu16和 ros kinetic ,官网给出的
第一步是安装ros kinetic
那么对于本文ubuntu20来说,需要修改为安装ros noetic ,直接参考大佬的博文去一键安装即可:https://blog.csdn.net/jianlai_/article/details/123545130
第二步是安装依赖
需要根据官网的依赖安装指令,修改为适合ubuntu20系统的依赖:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential python-rosdep python-wxtools python-lxml python-pathlib python-h5py python-scipy python-geolinks python-gdal -y
sudo apt-get install libfftw3-* libxml++2.6-* libsdl-image1.2-dev libsdl-dev -y
此处还是ubuntu16的,本文使用的依赖安装指令后续发出。
第三步是创建ros包的工作环境、git代码,运行安装脚本:
cd ~/catkin_ws/src/usv_sim_lsa
chmod +x ./install_usv_sim
./install_usv_sim
运行到此处会发现,没有这个安装脚本,不要慌,去release下载最新的源码包,复制到指定的位置即可。
脚本只有一行指令,是将.uwsim移动到根目录,又会发现,git下来的包没有这个, 还是得从最新版的release包去copy,如果还没有的话要去gitee上找。
第四步就是一个麻烦的点
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
此处应该修改为符合 ros noetic版本的指令,运行之后,会安装一系列的依赖包。其中会安装osg3.6.4几个的依赖包。
而,这个项目是多年以前开发的,并不适配osg3.6.4,需要降版本。
根据usv_sim项目的指引,osg的版本可以尝试osg3.2.3,项目链接为:https://github.com/CUSail-Navigation/usv_sim
手动安装osg的过程中,或许还会遇到FFMpeg这个包不匹配的问题,经本文尝试,FFMpeg2.8.11这个版本能够与osg3.2.3匹配。
一切依赖包装完,准备编译,在编译到这几个包的时候,又会遇到一些不兼容的问题。本文暂时放弃,后来有编译成功的,请评论区留言,向大佬有偿学习。
结语
总的来说,如果必须使用usv_sim_lsa这个项目的话,还是推荐使用docker镜像去安装,如果必须源码安装的话,建议做好每一步的安装记录,方便回溯,毕竟是个几年前的项目,使用新系统安装必然存在一些不兼容的问题,做好记录,方便回溯到以前,不影响其他项目的运行。