1. Vulcanexus Overview¶
Vulcanexus, the ROS 2 all-in-one tool set, expands the ROS 2 environment improving the developer experience with ROS 2 providing open source features and tools not available with the current ROS 2 release. Consequently, Vulcanexus shares the underlying concepts, principles and architecture of ROS 2. For more information about ROS 2 please refer to the Robot Operating System 2: Design, architecture, and uses in the wild 1. This section will follow and summarize the most important points contained in this paper, pointing out the differences and improvements that Vulcanexus provides.
ROS 2 provides a software ecosystem to develop robotics applications (or also known as a Software Development Kit or SDK). It is not an Operating System (OS) in the traditional sense, but a framework that provides a huge range of libraries and tools intended to ease development for a wide variety of devices using several different technologies by providing a unified set of APIs and conventions. The main categories within this ecosystem are:
The middleware layer is charged with the communication between components. After considering several communication protocols the Object Management Group (OMG) DDS (Data Distribution Service) protocol was selected for being an open standard with a security extension, having a distributed dynamic discovery and being highly customizable for every kind of application. Several DDS vendors, both open source and licensed, are available within the ROS 2 environment. However, Vulcanexus supports eProsima’s Fast DDS open source implementation. The main advantage being that Vulcanexus releases are not tied to a specific Fast DDS version which is enforced by the ROS 2 ROS Enhancement Proposal (REP) 2004 1.vi. requirement:
Must have a policy that keeps API and ABI stability within a released ROS distribution.
Consequently, only patch releases that fix bugs without modifying API and ABI are considered for updates in the ROS 2 environment. Vulcanexus, on the other hand, updates the middleware layer any time eProsima Fast DDS releases a new version in order to benefit from the latest features and fixes. Vulcanexus takes charge of releasing a new binary stable distribution that is compatible with the potential ABI breaks so the Vulcanexus user has only to update its Vulcanexus distro to benefit from the latest Fast DDS release. For instance, Vulcanexus provides PKCS #11 security support whereas ROS 2 does not support it (as of January 2023).
Another category includes robotic application’s algorithms. Vulcanexus, being a ROS 2 all-in-one tool set, provides the algorithms included in ROS 2 ecosystem.
1.1.3. Developer Tools¶
ROS 2 provides several development tools for debugging, logging, visualization, introspection, simulation, etc. Vulcanexus adds to ROS 2 toolset the following tools:
ROS 2 Monitor: graphical desktop application to monitor ROS 2 communications.
ROS 2 Shapes Demo: first demo application to understand the most used ROS 2 Quality of Service (QoS) and test DDS and ROS 2 communication.
ROS 2 Router: end-user software application enabling the connection of distributed ROS 2 environments.
Webots: open-source three-dimensional mobile robot simulator.
This documentation provides several tutorials showcasing the capabilities and advantages of Vulcanexus.
1.2. ROS 2 Architecture¶
ROS 2 architecture is based on several abstraction layers.
Developers usually interact exclusively with the client libraries, which expose the core communication APIs.
Each one developed in a specific programming language to leave users freedom to choose the one that best applies to its application.
Below, a common interface,
rcl, connects with the ROS MiddleWare (RMW) layer where the essential communication APIs are defined.
Each DDS vendor provides its specific RMW implementation using their own DDS library.
Vulcanexus, supporting eProsima Fast DDS, constantly updates the
rmw_fastrtps library (Fast DDS previously was know as Fast-RTPS) in order to provide the latest features included in Fast DDS library to the Vulcanexus community, instead of having to wait to the next ROS 2 release.
For more information about ROS 2, the user is encouraged to read ROS 2 documentation which is included within Vulcanexus documentation in the following section, especially the Concepts chapter.
Macenski, T. Foote, B. Gerkey, C. Lalancette and W. Woodall, “Robot Operating System 2: Design, architecture, and uses in the wild”, Science Robotics vol. 7, May 2022