The Robot Operating System (ROS) is a common middleware enabling communication between different software processes for robots. In robotics, there are many different problems which must be solved to enable complex behavior, and various programs have been written to solve the independent problems. ROS was created to enable people to use various independently developed programs together in one system. The first generation of ROS will soon be deprecated and is being replaced by ROS 2.

This knowledge base is going to introduce the concepts of robotics and frame it in terms of ROS.

Introduction to ROS

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.

Introduction (ROS)

Getting started with ROS

Getting started with ROS can be daunting, as it is best supported on Ubuntu, which means that to get started with ROS also means getting started with Ubuntu and Linux.

Getting Started (ROS)

Once you start working with multiple computers, you may need to look into your networking configuration to get everything communicating.

Networking (ROS)


Interacting with the Robot

With a method for writing programs and facilitating communication between them, we can do all sorts of things. We can listen to the sensor data and read it into visualization software. We can define the robot’s physical parameters so that programs can associate the sensor data with the robot’s embodiment. We can take in sensor data and run it through algorithms to locate our robot.

Robotics Tools

ROS 2 comes with a variety of tools out-of-the-box for visualization of data and communication between programs.

Rviz

rqt_image_view