Project Shelob is a hexapod robot that uses ROS and Python to solve complex navigation problems.
Apr 24, 2021
ROS stands for Robot Operating System and could be simply described as robotics middleware suite. The framework was originally designed to facilitate research on the academic environment but it’s used today also in companies and hobbyist communities. ROS can be divided into four main parts: plumbing, development tools, robot capabilities and the ROS ecosystem.
This includes a variety of process management tools and inter-process communication for communication between the modules of the robot. This can come in different core libraries or drivers (wrappers) for different devices.
The framework provides also a lot of tools for the development process. Since robots tend to operate in the real world, a lot of simulation is needed prior to jumping to the hardware. This is provided by a bundle of visualization, graphical interfaces and data logging tools for testing and debugging the software.
To solve a specific proposed novel problem, robots tend to rely on solutions for other complex problems already solved by the community. This is facilitated by libraries and modules for tasks such as robot control, task planning, environment perception, surroundings mapping, object manipulation and others.
As a framework, ROS is maintained by the community. This maintenance includes package organization, software distribution, documentation and tutorials. Most of this work can be found on the ros.org website.
ROS is composed of elements that together can form a graph is comprised of many nodes working in concert. For more on the ROS concepts like graph, nodes, topics, services, services, parameters, and actions, consider reading the ROS2 official documentation.
In this project, I will be using ROS2 Foxy running from my computer (Arch Linux) and on the embedded boards (Debian Linux).