As discussed in A Brief Introduction to ROS, ROS is not actually an operating system, but a service-oriented architecture that operates as a framework for communication between the components necessary to run robot software. ROS is invaluable because of its applicability to hardware, device drivers, communication, and data analysis. Robotic systems built with ROS involves complex interactions between several devices through processes called nodes, and ROS is the key to connecting and running those nodes.
As ROS is an open-source framework, there is a large and active community that surrounds this technology. With rich repositories and resources at a programmer’s fingertips, ROS encourages the reuse of code, allowing the community to apply pre-existing packaged systems towards its projects and workflows. This community continues to grow through the emergence of development environments like AWS RoboMaker or NVIDIA Isaac.
You Get a Package! And You Get a Package!
Once ROS is installed, the first step is to organize the key elements that make up your code, specifically – the packages. Packages contain nodes, libraries, and relevant files, among other elements. The key benefit of ROS packages is that there is one for virtually every application one could think of in robotics. Whether programming a remote control for a UGV or surveying terrain with a UAV, there is a package for that.
The Umbrella of ROS
Packages within a comprehensive control system like Kinesis require the development of several nodes throughout its workflow. Nodes carry out tasks that are designated to a particular element of the workflow. For instance, a node needs to be programmed to control individual elements of a platform like a UGV’s wheels, sensors, and arm(s).
Once a programmer understands the messaging protocol, setting up new parts of an application is relatively easy. And because programmers can implement pre-existing packages ROS mitigates the laborious coding process.
The Community of ROS
Keeping in mind that ROS is a flexible framework, programmers can choose to code with C++, Python, and Java (granted, Java is less common.) Code is generated into targets through a build system – the official build system of ROS is catkin. In order to employ catkin, the programmer must install it, and create a workspace within the directory.
Because of the flexible nature of ROS, it casts a wide net of interest throughout the world. The Open Source Robotics Foundation cites over 5,700 users contribute to the ROS Answers Q&A website, and over 22,000 wiki pages available for technical support.
ROS in the Real World
Within ROS, nodes are utilized within a launch file. This tool is responsible for connecting ROS to the appropriate platform. Whether it's a sensor or a function that dictates autonomous behavior, the nodes need to be connected from ROS to a device driver.
ROS not only supports great simulation tools but is also being used practically in the real world. Aiding in the development of renewable energy, disrupting traditional manufacturing practices, invaluable laboratory research – ROS is quickly becoming the lingua franca of robotics research and development. As a result, control systems like Kinesis can facilitate the communication between several platforms, each with its own system.
For more information on the applications and functionalities of ROS, please visit tomahawkrobotics.com/kinesis/.