---
# System prepended metadata

title: <font color="#ED504C">ROS(Robot Operating System) 機器人作業系統 intro</font>
tags: [robot, ROS, operating system]

---

# <font color="#ED504C">ROS(Robot Operating System) 機器人作業系統 intro</font>
###### tags: `ROS` `robot` `operating system`
>ROS雖屬OS，但較像在負責為機器人的各個元件進行溝通與操作的一個框架，以機器人的行走為例，要讓機器人走路需要控制其底下的馬達、還有一些感測器以進行避障等等，ROS內就有這種類型的函式可以讓控制馬達的程式得以與接收感測器的程式溝通
## **<font color="#11ED91">Functions</font>**: 
硬體抽象描述、底層驅動程序管理、共用功能的執行、程序間消息傳遞、程序發行包管理
## **<font color="#11ED91">Features</font>**: 
**輕便**：ROS是設計得儘可能方便簡易。您不必替換主框架與系統，因為ROS編寫的代碼可以用於其他機器人軟體框架中。毫無疑問的，ROS更易於集成與其他機器人軟體框架。已完成與OpenRAVE、Orocos和Player的整合。

**ROS-agnostic庫**：建議的開發模型是使用clear的函數接口書寫ROS-agnostic庫。

**語言獨立性**：ROS框架很容易在任何程式語言中執行
1. Python
1. C++
1. Lisp
1. Octave
1. Java

**測試簡單**：ROS有一個**內建的單元/組合集測試框架，稱為「rostest」**。這使得集成調試和分解調試很容易。

**擴展性**：ROS適合於**大型的系統開發**項目。

## [Cheat Sheet](https://wiki.ros.org/Documentation?action=AttachFile&do=get&target=ROScheatsheet.pdf)
