Ever wondered about what it takes to build your own all terrain Mars Rover?
We at Project Kratos welcome you all to our wonderful series: How to Train Your Rover. Our first post is about the Robotic Operating System.
What is ROS?
The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. In simple terms, it is a software which helps us run and control the hardware of robots even if the robot is comprised of multiple computing and electronic devices.
ROS is not an actual operating system, but a framework running on top of Linux OS that provides functionality of an operating system on a cluster of computers and devices that are connected to each other.
How was it built?
The foundation was laid in 2007 by two Stanford PhD students, Eric Berger and Keenan Wyrobek, who observed their colleagues’ lack of entry into the robotics field. ROS was developed to be a distributed and modular open-source platform, a baseline system, providing a starting place to build upon and help overcome hurdles in integrating different components.
How does it function?
ROS provides a way to connect various processes running on different devices with a central command hub. These network interprocesses allow the sharing of functional messages to occur within a robotic architecture.
In its core, ROS works by sending and receiving messages. A ROS system mainly consists of the following five components:
- ROS Master: a central manager hub.
- Nodes: an executable file capable of communicating with other such files.
- Topics: named buses over which nodes exchange messages.
- Publishers: nodes that transmit messages through a topic.
- Subscribers: nodes that receive messages from a topic.
Where do we and the world use ROS?
ROS acts as a backbone software for our rover as it is implemented in various facets not only limited to controlling and communicating with the rover remotely, but also handling various inputs from the environment, running simulations of algorithms and so on.
In 2014, ROS was set-up and run on Robonaut 2 (R2), a humanoid robot aboard the International Space Station (ISS).
Interested? Here are a few resources which you can follow to learn more about ROS:
Programming Robots with ROS: A Practical Introduction to the Robot Operating System by Morgan Quigley.
Mastering ros for robotics programming by Lentin Joseph.
TheConstruct (Also checkout their Website)
ROSwiki : ROS Tutorials
We will be adding more articles similar to this in the series which will highlight the tools of building a Rover. Let's learn and train our rover together!!
Author: Prabhutva Agrawal