1.安装TurtleBot相关的功能包
sudo apt-get install ros-kinetic-turtlebot-*
这个作为rospackge中提供的功能包,全部安装测试。里面包含Turtlebot真机与仿真的功能。
2.启动gazebo仿真模型,并加载Turtlebot机器人
export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"
roslaunch turtlebot_gazebo turtlebot_world.launch
第一行给环境变量TURTLEBOT_GAZEBO_WORLD_FILE,加载仿真地图。
3.slam建图
a. turtlebot_gazebo功能包里有使用gmapping实现slam建图的功能。里面需要适当的修改。
roscd turtlebot_gazebo/launch/
sudo gedit gmapping_demo.launch
主要是将gmapping.launch.xml的文件夹路径加进来。
b.使用gmapping
export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"
roslaunch turtlebot_gazebo gmapping_demo.launch
c.打开RVIZ,实时查看构图进程
export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"
roslaunch turtlebot_rviz_launchers view_navigation.launch
d.通过键盘控制turtlebot在仿真环境移动,实现构图。
export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"
roslaunch turtlebot_teleop keyboard_teleop.launch
注意:在构图中,turtlebot2不要碰到物体,碰到物体可能影响轮转计的精度.
e.slam结束后,保存地图。命名turtlebot_test_map
rosrun map_server map_saver -f turtlebot_test_map
默认保存在HOME文件夹里。有turtlebot_test_map地图和turtlebot_test_map.yaml参数文件。地图如下:
4.开始导航
turtlebot_gazebo里同样提供了实现导航的功能包,但需要稍微的修改。
a. 修改amcl.demo.launch
roscd turtlebot_gazebo/launch/
sudo gedit amcl.demo.launch
主要是将amcl.launch.xml前的文件夹路径添加进去。
b.关闭除仿真环境(gazebo)以外的其他节点和rviz。我们开启gezebo时,不止开启了模型环境,还有roscore,imu,move_bsae等一些导航需要的功能,所以不能关闭。关闭其他节点和rviz后,
export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"
roslaunch turtlebot_gazebo amcl_demo.launch
先配置环境,再加载导航功能。
export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/kinetic/share/turtlebot_gazebo/worlds/playground.world"
roslaunch turtlebot_rviz_launchers view_navigation.launch
使用rviz选择导航点。
点击2D Nav Goal即可选择目标点。
主要参考:古月居,创客智造,ROS_Robot_Programming.