Recently, within the robotics industry, platforms have been gaining much attention. Platforms are divided into two: software and hardware.
Software platforms include tools used to develop robotic programs such as hardware abstraction, low-level device control, sensing, recognition, SLAM (Simultaneous Localization And Mapping), navigation, manipulation, package management, libraries, debugging, and development tools. Meanwhile, hardware platforms focus on tangible, commercial components and systems or products, such as mobile robots, drones, and humanoids.
Notably, hardware abstraction occurs in tandem with software platforms, allowing application programs to be developed using a software platform even without prior knowledge of hardware. This is similar to how we can create mobile apps without knowing the hardware configuration or specifications of the most recent smartphone.
In other words, software platforms have allowed many people to contribute to robot development, and robot hardware is being designed according to the interface provided by software platforms.
Major software platforms include the Robot Operating System (ROS), the Japanese Open Robotics Technology Middleware (OpenRTM), the European real-time control-centered OROCOS, and the Korean OPRoS. Although their names differ, the fundamental reason for introducing robot software platforms is that there are far too many different types of robot software, and their complexities are causing numerous issues.
As a result, robot researchers from all over the world are working together to find a solution. Robot Operating System is the most widely used robot software platform (ROS). Many of the companies leading the industrial robot field that have joined this consortium are working to solve some of the industry’s most difficult and newly emerging problems, such as automation, sensing, and collaborative robot. Using a common platform, particularly a software platform, promotes collaboration to solve difficult problems and increase efficiency.
ROS does not necessitate the repeated development of existing systems and programs. Nonetheless, it is simple to convert a non-ROS system to a ROS system by inserting a few standardized codes. Furthermore, ROS provides a variety of commonly used tools and software. It enables users to concentrate on the features they are interested in or want to contribute to, reducing development and maintenance time.
Let us look at some of the five characteristics of ROS.
Reusability
Users can concentrate on the feature they want to develop and download the corresponding package for the remaining functions. At the same time, they can distribute the program they created so that others can use it. For example, NASA is said to have used not only in-house programs to control their robot Robonaut used in the International Space Station, but also ROS, which provides various drivers for multi-platforms, and OROCOS, which supports real-time control, message communication restoration, and reliability, to complete their mission in outer space. Another example of thoroughly implemented reusable programs is Robotbase.
Communication
Programs such as hardware drivers for sensors and actuators and features such as sensing, recognition, and operation are frequently developed in a single frame to provide a service. Each program and feature is divided into smaller pieces based on its function to achieve robot software reusability. According to the platform, this is known as componentization or modularization. Data should be exchanged among nodes (a process in ROS that performs computations), and platforms have all the necessary information for exchanging data among nodes. Network programming, which is extremely useful in remote control, becomes possible when node communication is based on the network and nodes are not limited by hardware. The Internet of Things (IoT) also uses network-connected minimal functions, so ROS can replace IoT platforms. Because programs divided into minimal functions can be debugged separately, it is extremely useful for finding errors.
Support of development tools
ROS provides debugging tools, a 2D visualization tool (rqt, rqt is a ROS software framework that implements various GUI tools in the form of plugins), and a 3D visualization tool (RViz) that can be used without developing the necessary robot development tools. There are numerous occasions when a robot model must be visualized while developing a robot. Users can directly check the robot’s model and simulate it using the provided 3D simulator by simply matching the predefined message format (Gazebo). The tool can also receive 3D distance data from the recently highlighted Intel RealSense or Microsoft Kinect and easily convert it into the form of a point cloud to display on the visualization tool. Aside from that, it can record data acquired during experiments and replay it whenever the exact experiment environment is required. One of ROS’s most important features is that it provides software tools required for robot development, which maximizes development convenience.
Active community
The robot academic world and industry, which were previously relatively closed, are changing to emphasize collaboration. Collaboration occurs through these software platforms regardless of individual objectives. A community for the open-source software platform is at the heart of this transformation. In 2017, there were over 5,000 packages that were developed and shared voluntarily for ROS. Individual user contributions have resulted in over 18,000 Wiki pages explaining their packages.
Furthermore, the Q&A section of the community has surpassed 36,000 posts, resulting in a collaboratively growing community. The community goes beyond simply discussing instructions, locating required components of robotics software, and developing regulations. Furthermore, this is progressing to the point where users come together to brainstorm what robot software should include to advance robotics and collaborate to fill the gaps in the puzzle.
Formation of the ecosystem
The smartphone platform revolution has occurred because software platforms such as Android or iOS created an ecosystem. This type of development is also taking place in the field of robotics. Initially, every hardware technology was abundant, but there was no operating system to integrate it. Various software platforms have emerged, with ROS’s most prestigious platform, now shaping its ecosystem. It creates a happy ecosystem for everyone, including robotic hardware developers such as the robot and sensor companies, the ROS development operational team, application software developers, and users. Although the beginning is still shaky, we can expect a vibrant ecosystem to emerge soon, given the growing number of users and robot-related businesses and the surge of related tools and libraries.