# 简介

本ROS教程整理自`ROS Wiki`，采用`ROS indigo`版本，并使用catkin编译。

书籍地址 <https://songapore.gitbook.io/ros-tutorials>

欢迎大家留言交流！

## 目录

* 1.安装并配置ROS环境

本教程详细描述了ROS的安装与环境配置。

* 2.ROS文件系统介绍

本教程介绍ROS文件系统概念，包括命令行工具roscd、rosls和rospack的使用。

* 3.创建ROS程序包

本教程介绍如何使用roscreate-pkg或catkin创建一个新程序包,并使用rospack查看程序包的依赖关系。

* 4.编译ROS程序包

本教程介绍ROS程序包的编译方法

* 5.理解 ROS节点

本教程主要介绍 ROS 图（graph）概念 并讨论roscore、rosnode和 rosrun 命令行工具的使用。

* 6.理解ROS话题

本教程介绍ROS话题（topics）以及如何使用rostopic 和 rxplot 命令行工具。

* 7.理解ROS服务和参数

本教程介绍了ROS 服务和参数的知识，以及命令行工具rosservice 和 rosparam的使用方法。

* 8.使用 rqt\_console 和 roslaunch

本教程介绍如何使用rqt\_console和rqt\_logger\_level进行调试，以及如何使用roslaunch同时运行多个节点。早期版本中的rqt工具并不完善，因此，如果你使用的是“ROS fuerte”或更早期的版本，请同时参考这个页面学习使用老版本的“rx”工具。

* 9.使用rosed编辑ROS中的文件

本教程将展示如何使用rosed来简化编辑过程。

* 10.创建ROS消息和ROS服务

本教程详细介绍如何创建并编译ROS消息和服务，以及rosmsg, rossrv和roscp命令行工具的使用。

* 11.编写简单的消息发布器和订阅器 (C++)

本教程将介绍如何用 C++ 编写发布器节点和订阅器节点。

* 12.写一个简单的消息发布器和订阅器 (Python)

本教程将通过Python编写一个发布器节点和订阅器节点。

* 13.测试消息发布器和订阅器

本教程将测试上一教程所写的消息发布器和订阅器。

* 14.编写简单的服务器和客户端 (C++)

本教程介绍如何用 C++ 编写服务器 Service 和客户端 Client 节点。

* 15.编写简单的Service和Client (Python)

本教程介绍如何用Python编写Service和Client节点。

* 16.测试简单的Service和Client

本教程将测试之前所写的Service和Client。

* 17.录制与回放数据

本教程将教你如何将ROS系统运行过程中的数据录制到一个.bag文件中，然后通过回放数据来重现相似的运行过程。

* 18.roswtf入门

本教程介绍了roswtf工具的基本使用方法。

* 19.探索ROS维基

本教程介绍了ROS维基(wiki.ros.org)的组织结构以及使用方法。同时讲解了如何才能从ROS维基中找到你需要的信息。

* 20.接下来做什么？

本教程将讨论获取更多知识的途径，以帮助你更好地使用ROS搭建真实或虚拟机器人。
