首页 >> 大全

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

2023-06-24 大全 58 作者:考证青年

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

本篇文章,主要包含以下五部分:

一、在ROS 版本中使用 安装teb 导航功能包失败;

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

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

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

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

一、在ROS 版本中使用 安装teb 导航功能包失败

在我使用 去安装的时候,报错: ‘’ not found, but can be with:sudo apt -

我花大半个月好不容易建立起的一系列ROS环境,被-这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防

随着ROS版本的迭代,相关资料很多都不再适用,这个时候,当你输入过时的指令时,ROS有时会发出提示 XXX not found, but can be with: XXX 在今天之前我特别喜欢这个功能,慢慢也就对系统给出建议采取了完全信任的习惯,就在今天我安装导航功能包的时候,他又来了,这次系统给的建议是执行:-。。。出于之前养成的习惯,想也没想就执行了,接下来我花费大半个月建立的环境,随着185个功能包被删除也一起消失了

还好,在建立环境的时候留了一手,把需要手动安装的比较重要的功能包记录了下来,现在才不至于手忙脚乱或崩溃

吃一堑,长一智,任你虐我千百遍,我依然笑着面对你,期望尽快把环境重建起来吧

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

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

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

     apt-cache search ros-noetic

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

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

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

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

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

在运行 .时,报了三个错误

(1)错误一:

      ERROR: cannot launch node of type [move_base/move_base]: move_baseROS path [0]=/opt/ros/noetic/share/rosROS path [1]=/home/jzx/catkin_ws/srcROS path [2]=/opt/ros/noetic/share

(2)错误二:

      ERROR: cannot launch node of type [amcl/amcl]: amclROS path [0]=/opt/ros/noetic/share/rosROS path [1]=/home/jzx/catkin_ws/srcROS 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中加载地图了

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

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

     sudo apt install ros-noetic-move-base

     sudo apt install ros-noetic-navigation

此时再执行 .时就可以正常启动了

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

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

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

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

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

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

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

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

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

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了