ROS智能车定位导航仿真(原赛道自主导航,构建地图再导航)

新闻资讯 老翟笔记小编 2024-03-17 16:50:47 42 0

老翟笔记今日分享的是:ROS智能车定位导航仿真(原赛道自主导航,构建地图再导航)

文章目录 0.视频演示 1.智能车环境,空间,资源准备 a.初始化 b.克隆 racecar 源代码包,并编译 (1)遇到问题:Could NOT find driver_base_DIR (2)遇到问题:Could NOT find OpenCV (missing: OpenCV_DIR) (3)随带把环境变量添加了 2.gazebo查看原环境 a.看一看小车 b.看一看地图 3.手动导航,开启rviz画图 a.遇到问题:ImportError: No module named msg b.将鼠标焦点放在tk弹窗上,可以进行移动操作 c.翻车,重启绘图 d.保存地图 4.原赛道的小车自主导航 a.启动导航 b.遇到问题:Failed to create the teb_local_planner.... c.启动rviz d.点击 2D Nav Goal,设置目标位置 e.新建终端,开启自动导航 5.构建自己的环境模型 a.gazebo构建自己的模型 b.运行小车模型 c.加入自己的模型,设置一些障碍物 d.新建myWorld.launch 6.自己绘制赛道的小车自主导航 a.制图 b.保存地图 c.自主导航 (1)创建autocar.launch文件 (2)两个终端分别运行 (3)2D Nav Goal设置目标 (4)运行运动脚本 d.运行过程 7.总结 0.视频演示 地址链接 智能车自主导航 1.智能车环境,空间,资源准备 a.初始化 mkdir -p ~/ qianRuShi/racecar_ws/src cd qianRuShi/racecar_ws/src catkin_init_workspace b.克隆 racecar 源代码包,并编译 git clone https://github.com/xmy0916/racecar.git cd .. catkin_make (1)遇到问题:Could NOT find driver_base_DIR 解决方案:更新apt-get,下载它 sudo apt-get update sudo apt-get install ros-melodic-driver-base 这里需要注意,如果更新慢的话,请更换国内源参考链接 我的是Ubuntu18.04,所以是melodic,ros-你的版本-driver-base 缺少其它包的话,相同道理,自行下载。 (2)遇到问题:Could NOT find OpenCV (missing: OpenCV_DIR) 解决方案: 查看你的opencv路径 locate OpenCVConfig.cmake 更改 racecar_gazebo/CMakeLists.txt如下:(截图的最后一行) set(OpenCV_DIR /home/wangyang/opencv-3.4.1/build) (3)随带把环境变量添加了 gedit ~/.bashrc 根据自己的路径,在末尾添加工作空间的环境变量,并保存: source ~/qianRuShi/racecar_ws/devel/setup.bash 再次运行 source ~/.bashrc 2.gazebo查看原环境 a.看一看小车 roslaunch racecar_gazebo racecar.launch 关闭后 b.看一看地图 roslaunch racecar_gazebo racecar_runway.launch 效果如下: 3.手动导航,开启rviz画图 新建终端 roslaunch racecar_gazebo slam_gmapping.launch a.遇到问题:ImportError: No module named msg 解决方案:镜像下载就行 pip install msg -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/ 好吧,后来发现不是在python安装,如下安装: sudo apt-get install ros-melodic-ackermann-msgs b.将鼠标焦点放在tk弹窗上,可以进行移动操作 在racecar_ws/src/racecar/racecar_gazebo/scripts的keyboard_teleop.py可以看见 这里还容易翻车,大家注意了,开慢点,翻车了就重新来过 c.翻车,重启绘图 roslaunch racecar_gazebo racecar_runway.launch roslaunch racecar_gazebo slam_gmapping.launch 好吧,我翻车两次了,大致样子是这样的: 地图: 小车: d.保存地图 你要是顺利完成地图,可以保存起来,后面自主导航用自己的(我尝试过用他的地图,但是莫名其妙的,图出来不了): 保存到racecar_gazebo/map吧,就不用了在移动了 cd racecar/racecar_gazebo/map rosrun map_server map_saver -f map_racecar 4.原赛道的小车自主导航 可关闭上面的rviz进程了,然后 修改racecar_runway_navigation.launch文件,更改地图: a.启动导航 roslaunch racecar_gazebo racecar_runway_navigation.launch b.遇到问题:Failed to create the teb_local_planner… 解决方案: sudo apt-get install ros-melodic-teb-local-planner c.启动rviz roslaunch racecar_gazebo racecar_rviz.launch d.点击 2D Nav Goal,设置目标位置 e.新建终端,开启自动导航 rosrun racecar_gazebo path_pursuit.py 过程图: 终端的显示: 5.构建自己的环境模型 a.gazebo构建自己的模型 我原本准备使用的我以前构建的模型,如何创建,请自行百度------gazebo构建模型 发现被我删了,于是自己又搞了一个。 之前的终端都可以ctrl+c了。 b.运行小车模型 roslaunch racecar_gazebo racecar.launch c.加入自己的模型,设置一些障碍物 然后点击左侧的insert,将自己的模型拖进 再加入一些障碍物 Construction Cone(这里以前导入的模型库,没有自行百度,或者不要障碍物就是) 选择File->Save World As,保存到racecar/racecar_gazebo/worlds下: d.新建myWorld.launch cd racecar/racecar_gazebo/launch sudo gedit myWorld.launch 添加下列代码 <?xml version="1.0"?> <launch><!-- Launch the racecar --><include file="$(find racecar_gazebo)/launch/racecar.launch"><arg name="world_name" value="myWorld"/></include> </launch> 6.自己绘制赛道的小车自主导航 a.制图 重复上面的步骤,终端运行 roslaunch racecar_gazebo myWorld.launch 新建终端运行 roslaunch racecar_gazebo slam_gmapping.launch 同上,移动小车,绘制地图得到: b.保存地图 cd racecar_ws/src/racecar/racecar_gazebo/map rosrun map_server map_saver -f mycar_map c.自主导航 (1)创建autocar.launch文件 在racecar/racecar_gazebo/launch/下 gedit autocar.launch 添加: <?xml version="1.0"?> <launch><!-- Launch the racecar --><include file="$(find racecar_gazebo)/launch/racecar.launch"><arg name="world_name" value="myworld2"/></include><!-- Launch the built-map --><node name="map_server" pkg="map_server" type="map_server" args="$(find racecar_gazebo)/map/mycar_map.yaml" /><!--Launch the move base with time elastic band--><param name="/use_sim_time" value="true"/><node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen"><rosparam file="$(find racecar_gazebo)/config/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find racecar_gazebo)/config/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find racecar_gazebo)/config/local_costmap_params.yaml" command="load" /><rosparam file="$(find racecar_gazebo)/config/global_costmap_params.yaml" command="load" /><rosparam file="$(find racecar_gazebo)/config/teb_local_planner_params.yaml" command="load" /><param name="base_global_planner" value="global_planner/GlobalPlanner" /><param name="planner_frequency" value="0.01" /><param name="planner_patience" value="5.0" /><!--param name="use_dijkstra" value="false" /--><param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" /><param name="controller_frequency" value="5.0" /><param name="controller_patience" value="15.0" /><param name="clearing_rotation_allowed" value="false" /></node></launch> 前面的终端可以关了 (2)两个终端分别运行 roslaunch racecar_gazebo autocar.launch roslaunch racecar_gazebo racecar_rviz.launch (3)2D Nav Goal设置目标 (4)运行运动脚本 rosrun racecar_gazebo path_pursuit.py d.运行过程 至此包括一些扩展所有都已经全部完成, 7.总结 过程中,遇到了不少问题,但是好在github的源码地址有解决方案,在过程中,可能会有许多网络问题,如github资源下载慢,请参考我的另外一篇文章三步解决github下载慢的问题,另外,apt-get下载慢的话,也自己更换源,阿里,清华的都可以,参考这里。运行中途,小车容易翻车,开车慢点所以,不然要搞很久。更换地图,更换launch文件,一定记得修改相关的文件设置。

本文结束,感谢您的阅读和支持,希望以上内容能给你带来帮助。本文章来自网络,由老翟笔记小编团队整理发布。

  • 随机文章
  • 热门文章
  • 热评文章

评论区