Home » Turtlebot入门教程 » Turtlebot入门-编码实现定点自导航

Turtlebot入门-编码实现定点自导航

编码实现定点自导航

现在你已经发现turtlebot可以去相对特定的姿势(姿势=位置+方向),去学习,去地图上的具体位置,这也许是不足为奇的。

让我们试着告诉turtlebot去我们的对接站附近。

在这篇文章中,我们假定你已经克隆GitHub库创建一个地图(在/tmp/mymap中保存)。如果你没有,按照这些文章的步骤,并返回到这一个。

首先,我们需要加载的地图和更新的脚本与一个姿势,是接近我们的对接站。离车站大约一米远的地方是完美的。

在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

在RViz,选择“二维姿态估计”,点击地图约在turtlebot是对准箭头指示方向。

下一步,选择“发布点”,将鼠标悬停在你的地图(但不要点击),你想turtlebot去当你运行你的脚本。在屏幕的左下角旁边“选择这一点”,你会注意到三个数字,当你移动鼠标。这是你的观点,所以写下这些数字吧。

提示:第三个数字是高度。它可能会显示一个数字,不是完美的0,但不管它说什么,使用0。

在一个新的终端窗口运行:

gedit ~/helloworld/go_to_specific_point_on_map.py

寻找这条代码行(行83):

position = {'x': 1.22, 'y' : 2.56}

重写X,Y值与你写下的数字时,做“发布点”。保存和退出。

然后运行:

python ~/helloworld/go_to_specific_point_on_map.py

注:如先前看到的,turtlebot会避开障碍物,要计算一个合理的路径,只要rospy.duration期限没有过期。

提示:如果你认为你amcl_demo.launch终端运行它将显示一个报告,告诉你的时候,TurtleBot已经放弃了试图达成一个目标。

精度

我们还记得我们的航位推算实验(draw_a_square.py),精度是一个重要的问题,如果仅仅依靠速度和航向。ROS的移动基础算法的好消息是,turtlebot连续使用环境来确定它的位置在地图上,因此不会迷路。在详细阅读提示了解这

开始看到我们的目标

在制作咖啡运送机器人的任务中,你可以开始把人们的课桌当作一个已知点的列表。你甚至可以处理和设置定位每个人的桌子,点完全对他们的修改quaternion()价值。我们最不想做的事情是让我们的同事们不得不把机器人变成咖啡!

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: turtlebot入门