Robonomics is an open-source platform that facilitates both simple IoT services and complex robotics, enabling effective communication between agents, whether they are human or robotic. To integrate robots into this system, we utilize ROS. In this article, we aim to provide an overview of our process for integrating Robonomics into ROS 2.
ROS, the Robot Operating System, is one of the oldest open-source frameworks for robotics. It's a collection of software libraries and tools for making robots work. It has everything from the basics to advanced features and comes with handy tools for programmers. It's widely used by universities worldwide for teaching and research in robotics, so it's well-established, works with many types of robots, and has a big community of developers.
Since ROS was started in 2007, significant changes have taken place in the field of robotics and within the ROS community. As a response to these developments, ROS 2 was introduced with the aim of adapting to these changes. It builds upon the strengths of ROS 1 while addressing its limitations. We've been utilizing ROS in Robonomics from the very beginning, and now it's time for us to migrate to ROS 2.
There are numerous open-source robots and complex robotic platforms that support ROS. This means you can create an impressive multi-robot system to achieve your specific objectives. For the most current list of supported robots, please visit the ROS website.
Let's see how ROS is used within the Robonomics framework by picturing the entire system with Robonomics acting as different layers:
On the 'Machine Interface' layer, we require tools to seamlessly connect robots with software. ROS 2 provides a robust set of developer tools perfectly suited for this task.
Building a multi-robotic system often involves the challenge of connecting devices from various vendors, or even devices within a single vendor, each using different protocols. Whether it's for a smart home setup or automated manufacturing, effective communication among your machines is crucial. ROS (and, of course, ROS 2) offers various modes to address this. What if you could customize tasks while ROS manages communication between nodes?
The Robonomics team has created various packages for ROS to make robots smarter and handle specific tasks as needed. To see the tasks we've accomplished with ROS, check out our R&D cases page. Almost every interaction with a robot relies on ROS. You can find our open-source Robonomics packages for ROS on GitHub, and here are some of them:
Robonomics combines Robotics with Web3 technologies, and we aim to grow in these areas. Since the introduction of ROS 2, we've identified three main challenges that involve supporting the ROS 2 community and improving the capabilities of Robonomics: