ROS教程
对于非初学者:如果你已经足够熟悉ROS fuerte或早期版本,只是想了解新的构建系统catkin(在groovy中引入、hydro及更新版本中被使用),你可以阅读更深入的catkin教程。不过,还是建议所有使用者都通读所有基本的新手入门教程以便探索最新特性。
对于Linux新手:先学习下Linux常用命令行工具可能会更有帮助。这里有个不错的快速教程。
ROS核心教程
初级教程
- 安装和配置ROS环境
本教程将指导您在计算机上安装ROS和配置ROS环境。
- ROS文件系统导览
本教程介绍ROS文件系统的概念,包括如何使用roscd、rosls和rospack命令行工具。
- 创建ROS软件包
本教程介绍如何使用roscreate-pkg或catkin创建新的ROS软件包,并使用rospack列出软件包的依赖关系。
- 构建ROS软件包
本教程介绍了构建软件包及使用的工具链。
- 理解ROS节点
- 理解ROS话题
- 理解ROS服务和参数
本教程介绍了ROS服务和参数的知识,以及命令行工具rosservice和rosparam的使用方法。
- 使用rqt_console和roslaunch
本教程介绍在ROS中使用rqt_console和rqt_logger_level进行调试,以及使用roslaunch同时启动多个节点。
- 使用rosed在ROS中编辑文件
本教程展示了如何使用rosed来简化编辑过程。
- 创建ROS消息和服务
本教程介绍如何创建和构建msg和srv文件,以及rosmsg、rossrv和roscp命令行工具的使用。
- 编写简单的发布者和订阅者(C++)
本教程介绍如何用C++编写发布者和订阅者节点。
- 编写简单的发布者和订阅者(Python)
本教程介绍如何用Python编写发布者和订阅者节点。
- 检验简单的发布者和订阅者
本教程将介绍如何运行及测试发布者和订阅者。
- 编写简单的服务和客户端(C++)
本教程介绍如何用C++编写服务和客户端节点。
- 编写简单的服务和客户端(Python)
本教程介绍如何用Python编写服务和客户端节点。
- 检验简单的服务和客户端
本教程将介绍如何运行及测试服务和客户端。
- 录制和回放数据
教你如何将正在运行的ROS系统中的数据记录到一个bag文件中,然后通过回放这些数据来来重现相似的运行过程。
- 从bag文件中读取消息
了解从bag文件中读取所需话题的消息的两种方法,以及ros_readbagfile脚本的使用。
- roswtf入门
简单介绍了roswtf工具的基本使用方法。
- 探索ROS维基
本教程介绍了ROS维基(wiki.ros.org)的组织结构以及使用方法。同时讲解了如何才能从ROS维基中找到你需要的信息。
- 接下来做什么?
本教程将讨论获取更多知识的途径,以帮助你更好地使用ROS搭建真实或虚拟机器人。
现在你已经完成了初级教程,有兴趣的话可以填写下这个简短的问卷。
中级教程
更多的客户端API教程可以在相应的软件包中找到(roscpp,rospy,roslisp)。
- 手动创建ROS package
本教程将展示如何手动创建ROS package
- 管理系统依赖项
本教程将展示如何使用rosdep安装系统依赖项.
- Roslaunch在大型项目中的使用技巧
本教程主要介绍roslaunch在大型项目中的使用技巧。重点关注如何构建launch文件使得它能够在不同的情况下重复利用。我们将使用 2dnav_pr2 package作为学习案例。
- ROS在多机器人上的使用
本教程将展示如何在两台机器上使用ROS系统,详述了使用ROS_MASTER_URI来配置多台机器使用同一个master。
- 自定义消息
本教程将展示如何使用ROS Message Description Language来定义你自己的消息类型.
- 在python中使用C++类
本教程阐述一种在python中使用C++类的方法。
- 如何编写教程
(概述:)本教程介绍在编辑ros.org维基时可以用到的模板和宏定义,并附有示例以供参考。
ROS标准
ROS开发者指南 有关代码风格和软件包布局等相关准则
Standard Units of Measure and Coordinate Conventions 标准计量单位和坐标约定
其他ROS库的教程
提供ROS接口的库的教程
外部ROS资源
外部教程
创客智造 中文机器人教程
Sıfırdan Uygulamalı ROS Eğitimi-Udemy (Turkish Language)
Temel ROS Eğitimi (Turkish Language)
ROS - Urdf ve Xacro ile Robot Modelleme (Turkish Language)
Uygulamalar ile ROS Eğitimi (Turkish Language)
Course on Udemy: Anis Koubaa, "ROS for Beginners: Localization, Navigation, and SLAM" (NEW)
Course on Udemy: Anis Koubaa, "ROS2 How To: Discover Next Generation ROS", the first online course on ROS2
Course on Udemy: Anis Koubaa, "ROS for Beginners: Basics, Motion, and OpenCV" Highest Rated
Udemy Course on ROS: Video tutorials on learning to program robots from scratch
Online ROS Tutorials:Learn ROS by programming online simulated robots
Programming Robots Using ROS: An introduction (Arabic Language)
Learn ROS using a URDF simulation model from basics through SLAM - by Husarion
Learn and Develop for Robots using ROS (Persian Language)
ROS Tutorial for Beginners, a YouTube playlist (Arabic Language)
外部研讨会和讲座
Short course on ROS programming 2020 by Institute for Systems and Robotics - Lisbon of Técnico
Free introductory seminar for enterprises by TORK in Tokyo
在你自己的机器人上使用ROS
Create your own URDF file 创建自定义通用机器人描述格式(URDF)文件
ros_control 使用ROS的标准控制器框架来与硬件交互
Using a URDF in Gazebo 添加必要的标签让你的机器人进入Gazebo机器人模拟器
Setting up MoveIt! 创建配置包来使用MoveIt!运动规划框架
Running ROS accross multiple REMOTE machines 适用于户外移动机器人的应用
Bringing ROS to real life: Barista 世界上第一个为餐桌端咖啡的服务机器人
Pilz robot manipulator PRBT 建模您的应用程序并控制一个pilz轻量级机械手模块PRBT6