Skip to content

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
Figure 1: ROS Equation

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