# 1.2 ROS發展歷程
## 1.2.1 ROS起源與發展
本世紀開始,關于人工智能的研究進入了大發展階段,包括全方位的具體的AI,例如斯坦福大學人工智能實驗室STAIR(Stanford Artificial Intelligence Robot)項目,該項目組創建了靈活的、動態的軟件系統的原型,用于機器人技術。在2007年,機器人公司Willow Garage和該項目組合作,他們十分具有前瞻性的,提供了大量資源進一步擴展了這些概念,經過具體的研究測試實現之后,無數的研究人員將他們的專業性研究貢獻到ROS核心概念和其基礎軟件包,這期間積累了眾多的科學研究成果。ROS軟件的開發自始至終采用開放的BSD協議,在機器人技術研究領域逐漸成為一個被廣泛使用的平臺。
Willow Garage公司和斯坦福大學人工智能實驗室合作以后,在2009年初推出了ROS0.4,這是一個測試版的ROS,現在所用的系統框架在這個版本中已經具有了初步的雛形。之后的版本才正式開啟了ROS的發展成熟之路。
## 1.2.2 歷代ROS版本
ROS1.0版本發布于2010年,基于PR2機器人開發了一系列機器人相關的基礎軟件包。隨后ROS版本迭代頻繁,目前已經發布到了Lunar。 目前使用人數最多的是Kinetic和Indigo這兩個Long Term Support版本。
| ROS版本 | 發布時間 |
| :------: | :------: |
| Lunar Loggerhead | 2017.5 |
| Kinetic Kame | 2016.5 |
| Jade Turtle | 2015.5 |
| Indigo lgloo | 2014.7 |
| Hydro Medusa | 2013.9 |
| Groovy Galapagos | 2012.12 |
| Fuerte Turtle | 2012.4 |
| Electric Emys | 2011.8 |
| Diamondback | 2011.3 |
| C Turtle | 2010.8 |
| Box TurtleBox Turtle | 2010.3 |

## 1.2.3 展望
ROS的發展逐漸的趨于成熟,近年來也逐步是面對著Ubuntu的更新而更新,這說明ROS已經初步進入一種穩定的發展狀態,每年進行一次更新的頻率同時還保留著長期支持的版本,這使得ROS在穩步的前進發展同時,也有著開拓創新的方向。目前越來越多的機器人、無人機甚至無人車都開始采用ROS作為開發平臺,盡管ROS在實用方面目前還存在一些限制,但前途非常光明。
2018年ROS2 1.0版將發布,未來ROS2將如何影響機器人領域,我們拭目以待。相信在人工智能的大發展、人機交互越來越密切、互聯網+的大時代,ROS會發揮出越來越重要的作用。
- 前言
- 第一章 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