Turtlebot入门-编码实现前进和壁障
编码实现前进和壁障
通过这一点你克隆本系列文章GitHub库,成功地创建了一个地图(在/tmp/mymap
中保存)您的当前位置。(如果您已经更改了地图生成文章的位置,创建一个新的地图。)
不避障turtlebot
让我们再次运行我们的第一个脚本。在turtlebot运行:
roslaunch turtlebot_bringup minimal.launch
- 在工作站运行:
python ~/helloworld/goforward.py
你的turtlebot将前进。故意站在它面前,turtlebot撞你的脚。按CTRL+C停止它。
避障的turtlebot
- 手工放置turtlebot某方向,可以前进3米没有撞到任何东西。在turtlebot运行:
roslaunch turtlebot_bringup minimal.launch
roslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.yaml
- 在工作站运行:
roslaunch turtlebot_rviz_launchers view_navigation.launch --screen
urtlebot不能可靠地确定其初始姿态(在哪里)所以我们就把它用“2D Pose Estimate”。选择“2D Pose Estimate”和指定的位置turtlebot。保持rviz打开,我们可以监视它的路径规划。
提示:在你估计turtlebot的姿势可以可靠地知道它在哪里,甚至在旅行。
- 在一个单独的终端运行:
python ~/helloworld/goforward_and_avoid_obstacle.py
当它在驾驶时, 尝试走到机器人的路径,看看它如何响应。
为什么它会在转圈?
turtlebot四处寻找特征,比较他们的地图,以确定它的位置。这个过程被称为本地化。
让我们看一看代码:
gedit ~ / HelloWorld / goforward_and_avoid_obstacle.py
它也可用于查看GitHub上。
请注意,而不是说“向前几秒钟”,我们说:“无论什么路径,我们想在前进3米位置的地方结束”。turtlebot可能需要60秒来试图找到一个路径到这个位置。
参考:
[amcl - probabilistic localization system for a robot moving in 2D][4]
[RViz - 3D visualization tool][5]
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号