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


Wing Python Offers Better Remote Dev Connections
20/09/2019

Wing Python 7.1.1 has been updated with better handling of remote development connections, and fixes so that Pandas DataFrame and Series values are displayed correctly among a number of improvements.

 [ ... ]



TypeScript 3.6 Generators Get Stricter
30/08/2019

TypeScript has been updated with stricter generators, improvements to the UX around Promises, and an improved TypeScript playground. TypeScript is a superset of JavaScript that adds optional static ty [ ... ]


More News

 

graphics

 



 

Comments




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

Last Updated ( Wednesday, 19 June 2019 )