ROS学习指南
非初学者: 如果你已经很熟悉 ROS fuerte(要塞龟)或更早期版本的使用,而只是想使用在groovy(加岛象龟)和hydro(渔龟)中开始采用的最新编译构建系统catkin,那你可以深入学习catkin教程。 但是我们仍然建议所有人学完整个“初级”教程以方便理解新增的功能特性。
如果你是Linux初学者:也许先学习一些有关linux命令行工具的快速使用教程会对你很有帮助,这里有篇好教程(英文)。
目录
1.核心ROS教程
1.1 初级
1.2 中级
2.ROS标准
3.外部ROS资源
3.1 外部教程
3.2 外部研讨会或课件
4.在机器人上运行ROS
5.其它ROS函数库教程
6.提供ROS接口的函数库教程
1.核心ROS教程
1.1 初级
1.1.1 安装并配置ROS环境
本教程详细描述了ROS的安装与环境配置。
1.1.2 ROS文件系统介绍
本教程介绍ROS文件系统概念,包括命令行工具roscd、rosls和rospack的使用。
1.1.3 创建ROS程序包
本教程介绍如何使用roscreate-pkg或catkin创建一个新程序包,并使用rospack查看程序包的依赖关系。
1.1.4 编译ROS程序包
本教程介绍ROS程序包的编译方法
1.1.5 理解 ROS节点
本教程主要介绍 ROS 图(graph)概念 并讨论roscore、rosnode和 rosrun 命令行工具的使用。
1.1.6 理解ROS话题
本教程介绍ROS话题(topics)以及如何使用rostopic 和 rxplot 命令行工具。
1.1.7 理解ROS服务和参数
本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservice 和 rosparam的使用方法。
1.1.8 使用 rqt_console 和 roslaunch
本教程介绍如何使用rqt_console和rqt_logger_level进行调试,以及如何使用roslaunch同时运行多个节点。早期版本中的rqt工具并不完善,因此,如果你使用的是“ROS fuerte”或更早期的版本,请同时参考这个页面学习使用老版本的“rx”工具。
1.1.9 使用rosed编辑ROS中的文件
本教程将展示如何使用rosed来简化编辑过程。
1.1.10 创建ROS消息和ROS服务
本教程详细介绍如何创建并编译ROS消息和服务,以及rosmsg, rossrv和roscp命令行工具的使用。
1.1.11 编写简单的消息发布器和订阅器 (C++)
本教程将介绍如何编写C++的发布器节点和订阅器节点。
1.1.12 写一个简单的消息发布器和订阅器 (Python)
本教程将通过Python编写一个发布器节点和订阅器节点。
1.1.13 测试消息发布器和订阅器
本教程将测试上一教程所写的消息发布器和订阅器。
1.1.14 编写简单的Service和Client (C++)
本教程介绍如何用C++编写Service和Client节点。
1.1.15 编写简单的Service和Client (Python)
本教程介绍如何用Python编写Service和Client节点。
1.1.16 测试简单的Service和Client
本教程将测试之前所写的Service和Client。
1.1.17 录制与回放数据
本教程将教你如何将ROS系统运行过程中的数据录制到一个.bag文件中,然后通过回放数据来重现相似的运行过程。
1.1.18 roswtf入门
本教程介绍了roswtf工具的基本使用方法。
1.1.19 探索ROS维基
本教程介绍了ROS维基(wiki.ros.org)的组织结构以及使用方法。同时讲解了如何才能从ROS维基中找到你需要的信息。
1.1.20 接下来做什么?
本教程将讨论获取更多知识的途径,以帮助你更好地使用ROS搭建真实或虚拟机器人。
现在你已经完成了初级教程的学习,请回答这个 问卷来检验一下自己的学习效果。
1.2 中级
大多数客户端API的使用教程可以在相关程序包(roscpp, rospy, roslisp)中找到。
1.2.1 手动创建ROS package
本教程将展示如何手动创建ROS package
1.2.2 管理系统依赖项
本教程将展示如何使用rosdep安装系统依赖项.
1.2.3 Roslaunch在大型项目中的使用技巧
本教程主要介绍roslaunch在大型项目中的使用技巧。重点关注如何构建launch文件使得它能够在不同的情况下重复利用。我们将使用 2dnav_pr2 package作为学习案例。
1.2.4 ROS在多机器人上的使用
本教程将展示如何在两台机器上使用ROS系统,详述了使用ROS_MASTER_URI来配置多台机器使用同一个master。
1.2.5 自定义消息
本教程将展示如何使用ROS Message Description Language来定义你自己的消息类型.
1.2.6 在python中使用C++类
本教程阐述一种在python中使用C++类的方法。
1.2.7 如何编写教程
(概述:)本教程介绍在编辑ros.org维基时可以用到的模板和宏定义,并附有示例以供参考。
- ROS标准
2.1 ROS开发者指南 有关代码风格和软件包布局等相关指南。
2.2 标准测量单位和坐标约定。
- 外部ROS资源
3.1 外部教程
3.1.1 ANU的ROS视频教程
3.1.2 NooTriX的手把手ROS教程
3.1.3 Jonathan Bohren的ROS教程
3.1.4 Clearpath Robotics 的知识库
3.2 外部研讨会或课件
3.2.1 由位于东京的TORK提供的面向企业基础培训的研讨会
- 在机器人上运行ROS
4.1 创建你自己的URDF文件 创建一个定制的通用机器人格式化描述文件。
4.2 ros_control 使用ROS的标准控制器框架来与硬件连接。
4.3 在Gazebo中使用URDF 在Gazebo机器人模拟器中添加必要的标记。
4.4 搭建 MoveIt! 建立配置程序包(configuration package)来使用MoveIt!运动规划框架。
- 其它ROS函数库教程
5.1 Robot Model
5.2 Visualization
5.3 actionlib
5.4 pluginlib
5.5 nodelets
5.6 navigation
5.7 TF
- 提供ROS接口的函数库教程
6.1 Stage
6.2 PCL with ROS