Changes between ROS-1 and ROS-2

This section specifies the differences between ROS-1 and ROS-2 so that you can understand what upgrades are targeted in ROS-2. For ease of understanding, they're represented in the following table:

ROS-1 ROS-2
Platforms

Continuous Integration for Ubuntu 16.04

Community support: macOS.

Continuous Integration for Ubuntu 16.04 and 18.04, OS X EL Capitan, and Windows 10.

OS layers Linux and macOS. Linux, macOS, Windows, and RTOS.
Languages

C++ 03

Python 2.

C++ 11, 14, and 17

Python 3.5.

Build system catkin. ament and colcon.
Environment setup Here, the build tool generates scripts that would need to be sourced into the environment to use the packages built in the workspace. Here, the build tool generates package-specific and workspace-specific scripts so that only those specific packages are sourced into the environment for usage.
Build multiple packages Multiple packages are built in a single CMake context, hence the possibility of colliding target names. Isolated builds are supported where each package is built separately.
Node initiation Only one node per process.

Multiple nodes allowed per process.

Apart from the preceding changes, there are other changes, all of which can be found at http://design.ros2.org/articles/changes.html.

Now that we have covered the fundamentals of ROS-2, let's look at the ROS-2 client libraries.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.19.211.134