# 中國大學MOOC---《機器人操作系統入門》課程講義

## 前言
歡迎來到中國大學MOOC---[《**機器人操作系統入門**》](https://www.icourse163.org/)課程,本書是課程的配套講義,由[中科院軟件所](http://www.is.cas.cn/)和[重德智能公司](http://www.droid.ac.cn/)共同推出,課程分為十個章節,與視頻課程相對應,介紹ROS的基本原理和用法。歡迎各位朋友在中國大學MOOC平臺上選修這門課程。
本講義希望帶給讀者最**準確**、**生動**、**易懂**的ROS入門指導,為了方便讀者操作練習,我們同時附有配套的[**教學代碼示例**](https://github.com/DroidAITech/ROS-Academy-for-Beginners),歡迎各位下載、學習和分享。
本講義將**長期維護**,**永久公開**。如果你有任何問題,可在Github的issues里提出,也可以直接聯系我們的郵箱。由于我們課程團隊的精力實在有限,本書難免存在錯誤和瑕疵,歡迎各位朋友拍磚,我們將不斷更新,一直努力。
## 出品

## 作者
* 柴長坤 [chaichangkun@droid.ac.cn](chaichangkun@droid.ac.cn)
* 武延軍 [yanjun@iscas.ac.cn](yanjun@iscas.ac.cn)
* 常先明 [cxm@droid.ac.cn](cxm@droid.ac.cn)
## 致謝
* 安傳旭 [1179735683@qq.com](1179735683@qq.com)
* 韓昊旻 [hanhaomin008@126.com](hanhaomin008@126.com)
* 韓錦飛 [hanjf\_robin@163.com](hanjf_robin@163.com)
- 前言
- 第一章 ROS簡介
- 機器人時代的到來
- ROS發展歷程
- 什么是ROS
- 安裝ROS
- 安裝ROS-Academy-for-Beginners教學包
- 二進制與源碼包
- 安裝RoboWare Studio
- 單元測試一
- 第二章 ROS文件系統
- Catkin編譯系統
- Catkin工作空間
- Package軟件包
- CMakeLists.txt
- package.xml
- Metapacakge軟件元包
- 其他常見文件類型
- 單元測試二
- 第三章 ROS通信架構(一)
- Node & Master
- Launch文件
- Topic
- Msg
- 常見msg類型
- 單元測試三
- 第四章 ROS通信架構(二)
- Service
- Srv
- Parameter server
- Action
- 常見srv類型
- 常見action類型
- 單元測試四
- 第五章 常用工具
- Gazebo
- RViz
- Rqt
- Rosbag
- Rosbridge
- moveit!
- 單元測試五
- 第六章 roscpp
- Client Library與roscpp
- 節點初始、關閉與NodeHandle
- Topic in roscpp
- Service in roscpp
- Param in roscpp
- 時鐘
- 日志與異常
- 第七章 rospy
- Rospy與主要接口
- Topic in rospy
- Service in rospy
- Param與Time
- 第八章 TF與URDF
- 認識TF
- TF消息
- tf in c++
- tf in python
- 統一機器人描述格式
- 附錄:TF數學基礎
- 三維空間剛體運動---旋轉矩陣
- 三維空間剛體運動---歐拉角
- 三維空間剛體運動---四元數
- 第九章 SLAM
- 地圖
- Gmapping
- Karto
- Hector
- 第十章 Navigation
- Navigation Stack
- move_base
- costmap
- Map_server & Amcl
- 附錄:Navigation工具包說明
- amcl
- local_base_planner
- carrot_planner
- clear_costmap_recovery
- costmap_2d
- dwa_local_planner
- fake_localization
- global_planner
- map_server
- move_base_msg
- move_base
- move_slow_and_clear
- navfn
- nav_core
- robot_pose_ekf
- rotate_recovery