我是使用的别人github上开源出来的代码
进入到你的ros工作空间下的src文件下,打开终端,下载源码包
git clone https://github.com/xmy0916/racecar.git
进入到工作空间下
cd catkin_ws/
catkin_make
这时候编译会遇到许多错误,依次解决吧
主要安装的版本需要与你自己的ubuntu版本相对应,我的ubuntu版本是18,下面装的都是melodic,16的话改成kinetic即可
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller
sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-ackermann-msgs
通过执行下面代码得到opencv的路径
locate OpenCVConfig.cmake
应该会得到多条路径,选择结尾为OpenCVConfig.cmake的
执行
gedit ~/catkin_ws/src/racecar-master/racecar_gazebo/CMakeLists.txt
修改第七行为你的opencv路径
打开这个cpp文件,修改头文件
将
#include
#include
#include
替换成
#include
#include
roslaunch racecar_gazebo racecar.launch
这时回启动gazebo,在里面可以看到一个小车的模型
运行出来的地图是作者已经做好的,我们后续可以自己创建地图
roslaunch racecar_gazebo racecar_runway.launch
运行
gazebo
将建立好的地图保存
关闭gazebo,随后在重新启动一次,选择前面保存好的模型
注意坐标点落在模型中的位置
在地图中加入障碍物
保存地图
将地图名字改为你保存好的地图名
再次运行赛道,就可以看到已经是你自己建立的赛道了
运行
roslaunch racecar_gazebo slam_gmapping.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch
通过WASD控制小车运动,来建图,不过小车运行比较慢,完整建立花费时间比较长
rosrun map_server map_saver -f test_map
这两个文件会保存在你的主目录下,如/home/xx/下,需要将这两个文件文件复制到map文件下
修改文件
启动导航和环境地图,启动rviz
roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch
控制小车运行过后
安装
sudo apt-get install ros-melodic-teb-local-planner
启动导航和环境地图,启动rviz
roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch
在启动py文件
rosrun racecar_gazebo path_pursuit.py
接着在rviz中选择2D Nav Goal给小车发布运动位置小车即可运动(但是运动速度堪忧!!慢的不行。再想想怎么提速吧!!)
到达目的后终端会显示信息
参考链接
个人博客链接