A Brief Introduction to ROS

There are many different challenges when creating a robot. You need to process your inputs and perhaps transform your sensor data to a more usable format. You need to localize where your robot is in the world based on the sensor data. You need to plan a path through your environment. There are many more things you need to do for a robot to function. We don’t have time to reinvent the wheel for every vehicle.

ROS provides a common framework so people can create independent robotics programs that can easily communicate with one another, allowing for reuse. ROS provides various robotics tools and enables the communication between robotics programs, both within computers and between devices on networks.

Intro to Robotics Software

This playlist covers the software background, motivation, and basic functionality of ROS

Other robotics middleware and communication frameworks

Communication Between Programs

ROS has several key concepts which describe how programs communicate:

ROS Nodes

An Approach for Packaging Robotics Software

<aside> ❓ A commonly asked question is “Why do I need ROS?” Some might even say “ROS makes things too complicated! I want to just write my own software with no strings attached.” Indeed, there are situations where it might not make sense to use ROS, if what you are building is limited in scope. In some production systems, it might make more sense to use the underlying communication architecture DDS instead. When working on a complex robot, however, being able to plug-and-play (with some tweaks no doubt) other people’s software is essential.

</aside>

More resources