新建终端进入racecar工作空间的src目录下
cd ~/racecar_ws/src
下载Gazebo搭建赛道功能包racecar
git clone https://github.com/xmy0916/racecar.git
新建一个终端,进行控件的安装(这个不安装后面会运行不起)
(1)driver_base的控件安装
sudo apt-get install ros-kinetic-driver-base
(2)controllers控件安装
sudo apt-get install ros-kinetic-gazebo-ros-control
sudo apt-get install ros-kinetic-effort-controllers
sudo apt-get install ros-kinetic-joint-state-controller
(3)ackermann_msgs控件安装
sudo apt-get install ros-kinetic-ackermann-msgs
(4)planner控件安装
sudo apt-get install ros-kinetic-global-planner
sudo apt-get install ros-kinetic-teb-local-planner
新建终端
cd ~/racecar_ws
catkin_make
#程序注册
source ./devel/setup.bash
#在终端输入以下命令,运行小车模型,测试编译是否成功
roslaunch racecar_gazebo racecar.launch
cd ~/racecar_ws
roslaunch racecar_gazebo racecar_runway.launch
通过锁定在tk窗口下,用WASD来控制小车,然后对比两图,发现小车确实动了,证明我们的仿真环境搭建的还是不错的。
(1)不关闭之前运行的程序终端,新建终端,运行rviz,进行gmapping建图
cd ~/racecar_ws
source ./devel/setup.bash
roslaunch racecar_gazebo slam_gmapping.launch
rosrun map_server map_saver -f test_map
绘制好的地图
在racecar工作空间下新建一个map文件夹保存跑好的地图
友情提示:在控制小车运动时,小车撞墙后很容易翻车。所以,不能急,慢慢控制跑动。
cd racecar_ws/
roslaunch racecar_gazebo racecar_runway_navigation.launch
新建终端
cd racecar_ws/
roslaunch racecar_gazebo racecar_rviz.launch
使用上排的2D Nav Goal标签发布信息,设置好起点和终点,它就会自动规划出来一条路线。(途中绿色的细线就为其规划好的路线)
cd ~/racecar_ws
rosrun racecar_gazebo path_pursuit.py
图1
图2
这里已经可以明显看出小车走了比较远了,然后导航上的绿色细线也覆盖了红色。(实际运行后小车路线会有不小的偏差
)
最后发现小车到达目的坐标,定位导航成功!!!