Description: 本教程将讨论获取更多知识的途径,以帮助你更好地使用ROS搭建真实或虚拟机器人。
Tutorial Level: BEGINNER
此时你应该已经对ROS中的一些核心概念有了一定的理解。
给你一台运行ROS的机器人,你应该能够运用所学知识来列出机器人上发布和订阅的各种话题(topic),查看话题中发布的消息,然后编写你自己的节点(node)来处理传感器数据,最后让机器人在真实环境中动起来。
ROS真正的吸引力不在于它自己发布或订阅的中间件,而在于ROS为世界各地的开发者提供了一种标准机制来分享他们的代码。ROS最大的特色在于庞大的社区。
大量现成可用的程序包(packages)已经势不可挡。所以本教程试图让你知道接下来能做什么?
使用模拟器
即使你有一台真实的机器人,先从模拟器开始学习也是一个不错的选择,这样出问题的时候你不用担心机器人会伤害到你自己或者损坏一台昂贵的机器人。
你可以从PR2 模拟器 或者 Turtlebot 模拟器入手。还可以搜索一台机器人并查看它是否提供了自己的模拟器。
现在你可能会尝试使用'teleop'程序包(package)来控制模拟的机器人(比如:turtlebot_teleop)或者运用你掌握的知识来查看话题(topic),编写程序发布恰当的消息来驱动你的机器人。
使用 RViz
RViz是一款强大的可视化工具,它允许你查看机器人中的传感器和内部状态。rviz用户指南会教你如何使用。
理解 TF
TF程序包(package)提供在机器人所使用到的各种坐标系之间的变换功能,并保持跟踪这些变换的变化。当你使用任何真实的机器人时理解好TF是必不可少的,所以学习TF相关的教程是值得的。
如果你正在打造一台你自己的机器人,此刻你可能会考虑给你的机器人设计一个URDF 模型。如果你正在用的是一台“标配”的机器人,可能已经有人帮你设计好了。不过,你可能依然值得去简单了解一下URDF程序包(package)。
更进一步
现在,你可能已经准备好开始让你的机器人去执行更复杂的任务,那么下面的链接可能会对你有帮助:
actionlib - actionlib 程序包(package)为可抢占式的任务提供一个标准接口,并广泛应用在ROS中的“高层次”程序包(packages)中。
navigation - 2D 导航: 绘图及路径规划。
MoveIt - 用来控制机器人的手臂. |