The MoveIt motion planning framework is an open source software for motion planning, manipulation, 3D perception, kinematics, control and navigation. It is built on top of the Robot Operating System (ROS 2) and altogether, remains the third most popular package in the ROS world. MoveIt provides an easy-to-use platform for developing advanced robotics applications, evaluating new robot designs, and building integrated robotics products for industrial, commercial, R&D, and other domains. MoveIt 2 is is the ROS 2 version of MoveIt.
This is the fifth of a series of articles that describe our learning experience and contributions with the MoveIt 2 and ROS 2 communities. The complete series is listed below:
- why MoveIt 2?
- porting and understanding
moveit_core
- first demonstrator in ROS 2, planning to a joint-space goal
- sensorless collision detection with ROS 2
- announcing MoveIt 2 alpha release (this article)
In this fifth part we announce the alpha release of MoveIt 2 and discuss the status of the port including the packages ported so far.
Status of the port and contributions
It's been more than a month since our last update. Over this period our team has been very busy with much progress on the port of MoveIt 2. Additional engineers jumped into the fray summing a total of 4 from Acutronic Robotics. Together with @anasarrak and myself (@vmayoral), @LanderU and @ahcorde (our CTO) have been supporting to get everything in place while pushing community contributions upstream[2]. This resulted in a much faster progress and an overall engineering hour count of more than 1300 from Acutronic Robotics!
At the time of writing, our MoveIt 2 fork[1] allows to run some simple examples fulfilling the initial promise we made. Particularly, we now can plan to a joint-space goal!
Motivated by this and the upcoming release of ROS 2 Dashing Diademata, we are proud to announce the alpha release of MoveIt 2.
MoveIt 2.0 alpha release
This release delivers the following:
Description
- ROS 2 distro: Dashing Diademata
- OS support: Ubuntu 18.04 and Mac OS X 10.14 (some minor issues detected with OS X and are being fixed)
- CI infrastructure for
moveit2
and ROS 2 (source code) - Unit tests available for most packages ported
- Preliminar instructions on how to install and test our work via a) a Docker container, b) the CI infrastructure and c) directly through the source code (both in OS X and Ubuntu)
- Capability to make simple plans to joint-space goals
- Co-release of a simple ROS 2 control framework for MARA modular robot (source code)
- Video with a first demonstrator (link)
ROS packages ported
The following ROS 2 packages have been ported as part of this release:
moveit2
moveit_core
(as reported in a previous article)moveit_ros_perception
-
occupancy_map_monitor
move_group
moveit_ros_planning
-
rdf_loader
-
collision_plugin_loader
-
kinematics_plugin_loader
-
robot_model_loader
-
constraint_sampler_manager_loader
-
planning_request_adapter_plugins
-
planning_pipeline
-
planning_scene_monitor
-
trajectory_execution_manager
-
plan_execution
planning_interface
-
common_planning_interface_objects
-
planning_scene_interface
-
move_group_interface
(partially) -
test
moveit_planner
-
ompl
moveit_kinematics
-
kdl_kinematics_plugin
-
lma_kinematics_plugin
moveit_plugins
-
moveit_fake_cotroller_manager
-
moveit_simple_controller_manager
External dependencies
moveit_msgs
geometry2
geometric_shapes
eigen_stl_containers
object_recognition_msgs
octomap_msgs
random_numbers
srdfdom
urdf_parser_py
octomap
moveit_resources
Known issues
At the time of writing, the following known issues have been identified and apply to the ROS 2 target distro (Dashing Diademata) creating conflicts with this release:
- ROS 2 actions not compiling in OpenSplice https://github.com/ros2/rosidl_typesupport_opensplice/issues/30 https://github.com/ADLINK-IST/opensplice/issues/92
- Docker port mapping issue affects the launch of the demonstrator from the Docker image.
- Issues with rviz2 in OS X https://github.com/ros2/rviz/issues/385 (update: fixed)
- Issues with Qt5 in OS X (udpate: fixed provisionally)
Future ahead of this alpha release
This release came out of our fork for several reasons. First, we didn't have enough time to get all contributions upstream in time but still, thought that an "unofficial" release would give the MoveIt community something to start playing with. With that in mind, by no means, we aim to impose the existing MoveIt! maintainers the weight of supporting you all with MoveIt 2. Instead, we'd be happy to offer limited support to reproduce what's being announced in this alpha release.
Second, this release is tightly connected to the first demonstrator we announced in a previous article which fulfills our initial commitment: "contribute with the community and put together the first stones to have some basic form of native MoveIt! support in ROS 2.0". We believed that getting a first demonstrator was a must and thereby, accelerated the speed of the port by relaxing our internal software development practices (as nicely highlighted by Dave here).
Over the following weeks we will have internal discussions on whether we will be able to continue contributing at the same level or differently. We hope to get back to the MoveIt and ROS 2 communities with the same level of commitment but meanwhile, we invite all other parties interested in MoveIt to jump in and contribute.
Acknowledgements
We’d like to credit and thank our partners at PickNik for their support aligning our work with the community. Similarly, we’d like to thank Robert Haschke, William Woodall, Dirk Thomas, Tully Foote, Chris Lalancette or Brian Gerkey among others at Open Robotics for their help and input throughout the development and release process.