在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在虚拟机中对阿克曼转向车进行导航及避障的仿真测试脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

   本篇文章,依旧是在虚拟机中对阿克曼转向车的仿真测试,本篇文章进行导航及避障的测试,依旧借助于古月学院《如何在Gazebo中实现阿克曼转向车的仿真》课程资料进行测试

   本篇文章,主要包含以下五部分F1a;    一、在ROS Noetic版本中使用rosdep install teb_local_planner安装teb _local _planner导航功能包失败;    二、借助apt-cache查询与teb _local _planner相关的功能包,并使用apt install成功安装;    三、在ROS Noetic版本中运行roslaunch bringup move_base.launch时,常见错误及解决方法    四、阿克曼转向车导航仿真测试效果展示    五、阿克曼转向车导航仿真时所占用CPU资检测


一、在ROS Noetic版本中使用rosdep install teb_local_planner安装teb _local _planner导航功能包失败

   在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed wITh:sudo apt install python3-rosdep2

   我花大个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及    随着ROS版本的迭代,相关资料很多都不再适用,这个时候,当你输入过时的指令时,ROS有时会发出提示Command XXX not found, but can be installed with: XXX 在今天之前我特别喜欢这个功能,慢慢也就对系统给出建议采取了完全信任的习惯,就在今天我安装导航功能包的时候,他又来了,这次系统给的建议是执行:python3-rosdep2。。。出于之前养成的习惯,想也没想就执行了,接下来我花费大半个月建立的环境,随着185个功能包被删除也一起消失了    还好,在建立环境的时候留了一手,把需要手动安装的比较重要的功能包记录了下来,现在才不至于手忙脚乱或崩溃    一堑,长一智,任你虐我千百遍,我依然笑着面对你,期望尽快把环境重建起来吧

   在我差不多把ROS环境重建之后,再次运行rosdep install teb_local_planner时,又面临着同样的问题,在网上查找资料,未能找到解决方法,于是我决定探索一条不使用rosdep的方法,也就是本文的第二部分所介绍的内容


二、借助apt-cache查询与teb _local _planner相关的功能包,并使用apt install成功安装

   1、使用以下命令来查看ros noetic版本的所有的功能包

     apt-cache seArch ros-noetic

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

   我将其复制到word里,发现足足有73页word,接下来就可以在word里去查找我们需要的功能包了,最终找到了两个与teb_local_planner相关的功能包:ros-noetic-teb-local-planner和ros-noetic-teb-local-planner-dbgsym,分别使用以下指令去安装他们

     sudo apt install ros-noetic-teb-local-planner
     sudo apt install ros-noetic-teb-local-planner-dbgsym

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试


三、在ROS Noetic版本中运行roslaunch bringup move_base.launch时,常见错误及解决方法

   本篇文章同样使用古月学院《如何在Gazebo中实现阿克曼转向车的仿真》的课程资料来进行探索验证。

   在运行roslaunch bringup move_base.launch时,报了三个错误    (1)错误一:

      ERROR: cannot launch node of tyPE [move_base/move_base]: move_base
      ROS path [0]=/opt/ros/noetic/share/ros
      ROS path [1]=/home/jzx/catkin_ws/src
      ROS path [2]=/opt/ros/noetic/share

   (2)错误二:

      ERROR: cannot launch node of type [amcl/amcl]: amcl
      ROS path [0]=/opt/ros/noetic/share/ros
      ROS path [1]=/home/jzx/catkin_ws/src
      ROS path [2]=/opt/ros/noetic/share

   (3)错误三:

[ INFO] [1635080522.257003623]: Loading map From image "/home/zeen/racecar_ws/src/racecar_sim/bringup/map/map.pgm"
[ERROR] [1635080522.259275648]: failed to open image file "/home/zeen/racecar_ws/src/racecar_sim/bringup/map/map.pgm": Couldn't open /home/zeen/racecar_ws/src/racecar_sim/bringup/map/map.pgm
[map_server-2] PRocess has died [pid 13751, exit code 255, cmd /opt/ros/noetic/lib/map_server/map_server /home/jzx/catkin_ws/src/ackerman_sim/bringup/map/map.yaML __name:=map_server __LOG:=/home/jzx/.ros/log/6375a756-34ca-11ec-b9e4-fdee4c673134/map_server-2.log].
log file: /home/jzx/.ros/log/6375a756-34ca-11ec-b9e4-fdee4c673134/map_server-2*.log

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

   (1) 对于错误三很容易解决,只需要修改要加载的地图的第一行语句就可以了,按照路径提示,我们打开这个文件,如下图①所示,将文件的第一行也就是③处的位置的路径改成该文件所在的路径,这个路径其实在②处已经给我们提示了,这个错误其实是因为你直接用了他人的代码,拿过来后没有修改成自己的路径导致的,只要把路径修改对了,就能在rviz中加载地图了

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

   解决掉第三个错误后,再次运行roslaunch bringup move_base.launch时就剩下前两个错误了,此时可以加载地图了,但是很显然位置不正确,如下所示:

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

   (2) 对于错误一和错误二其实是缺少相应的功能包导致的,错误一是因为缺少功能包ros-noetic-move-base,错误二是因为缺少功能包ros-noetic-navigation,分别执行以下语句安装就可以了

     sudo apt install ros-noetic-move-base
     sudo apt install ros-noetic-navigation

   此时再执行roslaunch bringup move_base.launch时就可以正常启动了


四、阿克曼转向车导航仿真测试效果展示

   1、首先放一下不人为添加障碍物的视频演示:

阿克曼导航仿真(不带障碍物)

   可以看出,在转弯处阿克曼转向车耗费了大量的时间,虽然跟我没调参数有关系,还是反映出了阿克曼型转向车的不灵活性,不能做到原地转向 ,也不能走直角,所以无形中增加了导航的难度

   2、再放一下人为添加障碍物的视频演示:

阿克曼导航仿真(带障碍物)

   可以看出,我一开始放的两个小瓶子,由于不在其全局路径上,阿克曼转向车并没有理会它,后面我把三个小瓶子排成一排,但是阿克曼转向车没有及时检测到,把他们撞倒了,然后车就被卡住了,人为删除小瓶子后,才恢复正常,后来我又放了较大的橱柜,这一次,阿克曼转向车检测到了,但由于障碍物过大,小车不能通过,删除后,我又放了两个障碍物,虽然过得很慢,但最终还是通过了


五、阿克曼转向车导航仿真时所占用CPU资源检测

   我给虚拟机分配了16GB的内存,实际可用于导航的最大内存为15.6GB,在不启动仿真时CPU占用为2%作用,启动导航仿真后(同时启动Gazebo和Rviz),CPU资源占用平均在70%左右,也就是大概需要10~11GB的内存

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

脚本宝典总结

以上是脚本宝典为你收集整理的在虚拟机中对阿克曼转向车进行导航及避障的仿真测试全部内容,希望文章能够帮你解决在虚拟机中对阿克曼转向车进行导航及避障的仿真测试所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。