http://www.ncnynl.com/archives/201609/798.html
http://learn.turtlebot.com/2015/02/01/12/
自主驾驶
现在让我们见识ROS的强大。通过ROS编写少量的代码就可以让turtlebot(或任何其他机器人)从一个地方到另一个的同时避免静态和动态障碍物。
注意:请确保您已经创建了您的地图之前,开始本教程。
停止从之前的教程都turtlebot和工作站的一切。在turtlebot运行:
roslaunch turtlebot_bringup minimal.launch
roslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.yaml
如果你看到 odom received!
说明已经正常运行。
问题
如果你收到一个警告:Waiting on transform...
,先重启minimal.launch
,重新启动amcl_demo.lauch
。您可能需要尝试重新启动几次。同时,关闭Kobuki基站并重开。
turtlebot成功运行,在工作站运行:
roslaunch turtlebot_rviz_launchers view_navigation.launch --screen
- rviz应该公开展示你的地图。turtlebot不能够估计在启动姿态,尽管它可以在你初始化它的姿态。
-
选择“2D Pose Estimate”在地图上的turtlebot位置点击并按住。当你握着鼠标的时候,一个箭头会出现在鼠标指针的下方,用这个来估计它的方向。
-
设置后估计的姿态,选择“2D Nav Goal”,点击你想让turtlebot去的地方。您还可以指定一个目标方向,使用相同的技术如“2D Pose Estimate”。
-
turtlebot现在应该朝着你的目录自主前进。尝试指定一个目标,并走在前面,看看它如何反应的动态障碍。
Turtlebot充电桩:自主充电
-
它可能不是太令人惊讶的听到TurtleBot知道当它的电池是越来越低,与充电桩可以自主充电。
-
确保对接站插入(所以红灯亮)和靠墙,否则turtlebot可推站周围一边充电。闭上turtlebot所有终端和工作站。
-
从充电桩在视线可达3米,在任何地方turtlebot。从那里,它可以自主停靠使用它的三个红外接收器。
在turtlebot运行:
roslaunch turtlebot_bringup minimal.launch
在工作站终端运行:
roslaunch kobuki_auto_docking minimal.launch --screen
在另一个终端运行:
roslaunch kobuki_auto_docking activate.launch --screen
turtlebot可以旋转360度,确定接站的理想路径。通常它将第一个驱动器垂直于该站,所以它可以计算出理想的路径。
参考:
- http://wiki.ros.org/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map
- http://wiki.ros.org/kobuki/Tutorials/Testing%20Automatic%20Docking