ROS
Contents
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
Advantages | Disadvantages |
---|---|
Provides lots of infrastructure, tools and capabilities | Approaching maturity, but still changing |
Easy to try other people's work and share your own | Security and scalability are not first-class concerns |
Large community | OSes other than Ubuntu Linux are not well supported |
Free, open source, BSD license | |
Great for open-source and researchers | Not great for mission-critical tasks |
ROS Tutorial #1 - https://www.youtube.com/watch?v=9U6GDonGFHw&t=1s
Plumbing | Tools | Capabilities | Ecosystem |
---|---|---|---|
Process management | Simulation | Control | Package organization |
Inter-process communication | Visualization | Planning | Software distribution |
Device drivers | Graphical user interface | Perception | Documentation |
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.