Dashing Diademata, the Future of ROS
Written by Nikos Vaggalis   
Wednesday, 19 June 2019

The new distribution of ROS2, code named "Dashing Diademata", is the first Long Time Support release following last year's "Crystal". 

Along with it, there are many new features that aim to establish ROS as an industry wide standard, to be used safely in commercial applications. But Diademata also breaks ties with its ROS1 predecessor, a move that signifies time to upgrade.

That aside, API compatibility, even between ROS2's forthcoming distributions, is not to be guaranteed; the only guarantee that can be safely given is that both API and ABI are going to remain stable between the updates of Dashing. API incompatibility might sound risky, but it also signifies the resurgence the project is undergoing.

A quick look on Dashing's release notes reveals some of those API changes. For example:

ament_cmake
The CMake function ament_index_has_resource used to return either TRUE or FALSE. As of this release it returns either the prefix path, if the resource was found, or FALSE.

If you are using the return value in a CMake condition like this:

ament_index_has_resource(var ...)if(${var})

you need to update the condition to ensure it considers a string value as TRUE:

if(var)

rclcpp
Behavior Change for Node::get_node_names()
The function NodeGraph::get_node_names(), and therefore also Node::get_node_names(), now returns a std::vector<std::string> containing fully qualified node names with their namespaces included, instead of just the node names.

 The main changes however revolve around improvements in components, intra-process communication and quality-of-service:

  • Components are now the recommended way to write your node. They can be used standalone as well as being composed within a process and both ways are fully support from launch files.

  • The intra-process communication (C++ only) has been improved - both in terms of latency as well as minimizing copies.

  • The Python client library has been updated to match most of the C++ equivalent and some important bug fixes and improvements have landed related to memory usage and performance.

  • Parameters are now a complete alternative to dynamic_reconfigure from ROS 1 including constraints like ranges or being read-only.

  • By relying on (a subset of) IDL 4.2 21 for the message generation pipeline it is now possible to use .idl files (beside .msg / .srv / .action files). This change comes with support for optional UTF-8 encoding for ordinary strings as well as UTF-16 encoded multi-byte string.

  • Command line tools related to actions and components.

  • Support for Deadline, Lifespan & Liveliness QoS

  • MoveIt 2.0 alpha release 32

  • OpenEmbedded Thud (2.6)/webOS OSE 33 as Tier 3 supported platform

 

Operating system aside, ROS also forms the backbone on which other tools are built, for example Gazebo, as we learned back in 2016 with the article Gazebo Robot Simulator Makes Version 7.

Reflecting on it, with Gazebo, which resembles a CAD tool, instead of designing buildings you could instead design robots before they got manufactured. To do so, Gazebo builds on the shoulders of ROS to emulate working with models which start from a simple biped robot with leg joints up to Nasa's Robonaut 2; this way you could test all combinations of sensor payloads and flight modes virtually before moving to the real hardware.

Since that article, ROS has grown into a complete operating system catering for the every need of the researcher or integrator, therefore posing as a trustworthy solution to robot automation.

Diademata seals that claim.

 

More Information

Releasing Dashing Diademata

 

Related Articles

Gazebo Robot Simulator Makes Version 7

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


Dart Adds WebAssembly Support
20/02/2024

Google has released Dart 3.3 with experimental support for applications compiled to WebAssembly, along with new extension types and a revamped JavaScript interop model.



Google Adds Multiple Database Support To Firestore
04/03/2024

Google has announced the general availability of Firestore Multiple Databases, which can be used to manage multiple Firestore databases within a single Google Cloud project.


More News

 

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Wednesday, 19 June 2019 )