Introduction
ROS aka Robotic Operating System is not a OS itself but a framework and middleware.
- Software Framework for programming robots
- Prototype from Standfort AI Research Institute and created by Willow Garage in 2007
- Since 2013 maintained by the Open Source Robotics Foundation (OSRF)
- Consists of infrastrucutre, tools, capabilities and a ecosystem
Source : ROS Tutorial #1 - https://www.youtube.com/watch?v=9U6GDonGFHw&t=1s
+-----------------------------------+----------------------------------+
| Advantages | Disadvantages |
+===================================+==================================+
| Provides lots of infrastructure, | Approaching maturity, but still |
| tools and capabilities | changing |
+-----------------------------------+----------------------------------+
| Easy to try other people's work | Security and scalability are not |
| and share your own | first-class concerns |
+-----------------------------------+----------------------------------+
| Large community | OSes other than Ubuntu Linux are |
| | not well supported |
+-----------------------------------+----------------------------------+
| Free, open source, BSD license | |
+-----------------------------------+----------------------------------+
| Great for open-source and | Not great for mission-critical |
| researchers | tasks |
+-----------------------------------+----------------------------------+

ROS Equation
+----------------+----------------+--------------+----------------+ | Plumbing | Tools | Capabilities | Ecosystem | +================+================+==============+================+ | Process | Simulation | Control | Package | | management | | | organization | +----------------+----------------+--------------+----------------+ | Inter-process | Visualization | Planning | Software | | communication | | | distribution | +----------------+----------------+--------------+----------------+ | Device drivers | Graphical user | Perception | Documentation | | | interface | | | +----------------+----------------+--------------+----------------+ | | Data logging | Mapping | Tutorials | +----------------+----------------+--------------+----------------+ | | | Manipulation | | +----------------+----------------+--------------+----------------+
Philosophy
-
Peer to peer - Individual programs communicate over defined API (ROS messages, services, etc.).
-
Distributed - Programs can be run on multiple computers and communicate over the network.
-
Multi-lingual - ROS modules can be written in any language for which a client library exists (C++, Python, MATLAB, Java, etc.).
-
Thin - The ROS conventions encourage contributors to create standalone libraries and then wrap those libraries so they can send and receive messages to and from other ROS modules.
-
Free and open source - The core of ROS is released under the permissive BSD license, which allows commercial and noncommercial use.
.. _Content: #content .. _Introduction: #introduction .. _Additional Informations: #additional-informations .. _ROS Installation: ros-install.md .. _ROS Basics: ros-basics.md .. _ROS Commands: ros-commands.md .. _ROS Launch: ros-launch.md .. _ROS TF2: ros-tf2.md .. _ROS Tools: ros-tools.md .. _ROS Packages: ros-packages.md .. _ROS External Packages: ros-ext-packages.md .. _ROS Rviz: ros-rviz.md .. _ROS Books Summary: ros-books-summary.md .. _Lidar Driver: ros-lidar-driver.md