Robot Operating System (ROS)

Adapted from Adam Buynak.9, The Ohio State University

Foundational aspects:

Introduction to ROS

A Standard Framework for Robotics Software

The Robot Operating System is a flexible framework for developing robotic systems. This framework comes with a wide variety of tools, libraries, and conventions to simplify the process of creating complex, robust robotic behavior. – ros.org

Previous Practices: - Slow growth restricted by need to regularly recreate technologies into a custom solution for each robot - Every hardware solution was custom designed - Every software solution was rewritten from scratch to match - Very little code ‘carried forward’ into future projects

ros_slide.png

Slide from 2006 Proposal Pitch Deck at Stanford to begin developing a standard robotics framework. Credit: Keenan Wyrobeck & Eric Berger.

reinventing-the-wheel.png

Building any mechatronic / robotic system is hard. Plain and simple.

Tesla builds self-driving cars with two mechanical outputs: 1 – the powertrain motor driving the wheels 2 – the direction of the front wheels (turning left/right)

They invest billions of dollars each year optimizing… - computer vision - environment input sensors - control systems - user interface - self-driving algorithms - motor control

  • Tesla: USD 2,984 on R&D per car

  • Industry Average: USD 1000 on R&D per car

  • Tesla’s self-driving car is a robot

  • Automotive engineers have the convenience of a standard, 4-wheeled vehicle to implement code.

  • Robots come in many different forms, motor types, control schemas, etc.

  • Each subsystem requires development time.

This could be… - various mechanical joints (revolute, prismatic, etc) - integrating multiple OEMs - smaller/larger, weaker/stronger, slower/faster

ROS fundamentally enables collaboration of novices and experts to rapidly develop complex systems.

ros_community.png

A Typical Mobile Robot Software Stack

intel-robot
  • Don’t rebuild the wheel.
  • Leverage the existing capabilities in ROS.
  • Focus your time on new features.
  • Contribute new developments to the ROS community.

Nodes, Topics and Messages

Nodes

nodes

Topics

topics

Messages

topics

Services

topics

Message Formats

message_format

List shown is non-comprehensive!

Standard Messages

standard_messages

List shown is non-comprehensive!

Communication Interfaces

ROS nodes may communication using three methods: - Topics, Services, Actions

interfaces