Announcing the MoveIt 2 Port

Exciting news – the MoveIt! port to ROS 2.0 has begun! We are happy to announce that Acutronic Robotics is partnering with PickNik to sponsor a MoveIt! codesprint to begin the port to ROS 2.

image

Acutronic Robotics has agreed to allocate their internal resources. Two engineers for 4 months of engineering time will begin the port of MoveIt! along with funding technical support from PickNik.

This collaborative effort is a natural co-development due to Acutronic’s extensive experience working with ROS 2 and PickNik’s lead maintenance support of MoveIt!. Acutronic Robotics will be focused on porting the code to enable their MARA modular robotic arm in the MoveIt! ecosystem. The entire MoveIt2 port will be a large undertaking and we expect other organizations will co-sponsor in the near future. We welcome others to contribute to this effort as much as possible.

The MoveIt! migration is important for a numbers of reasons, a key one being that it will accelerate ROS 2 adoption. Many companies and R&D teams report they are waiting to migrate to ROS 2 once MoveIt 2 is ready. This was similarly true when ROS Kinetic was released; months later when MoveIt! was ready for Kinetic, adoption picked up dramatically.

Some key objectives and approaches of this development include:

  • Basic migration to the colcon build system, DDS-based middleware, and other new ROS2 tools
  • Strategic planning of migration roadmap and release strategy of the MoveIt 2.0 port
  • Involving MoveIt! community throughout the development process
  • Focusing on best approaches to keep the ROS 1 project synchronized with the ROS 2 fork during the transitional period
  • Quality control through extensive code reviews to ensure best practices and MoveIt!'s style guidelines are followed
  • Documenting changes in MoveIt! on ROS 2
  • Releasing the basic form of native MoveIt! support in ROS 2.0

We would like to thank Acutronic Robotics for agreeing to sponsor this code sprint and would like to highlight their modular robotic arm, MARA, the first modular cobot.

12 Likes

Is there a simple timeline published somewhere? I’d like to start using a manipulator in my ROS 2 tutorials as soon as possible, so knowing when MoveIt will be usable will help with planning.

1 Like

Two sources:

2 Likes

@gbiggs stick to @davetcoleman’s pointers for the official MoveIt! 2 repos but if you’re looking for the latest, cutting edge changes/situation on the port, have a look at https://github.com/AcutronicRobotics/moveit2#milestones.

We update that pretty much every day.

Alas, beginner MoveIt users are more likely to be put off by cutting-edge stuff! But thanks for the pointers. It looks like there will be a usable release in time for one larger tutorial I’m going to be running.

Looking at the roadmap, I noticed that aside from reorganising the source, most of it is focused on “port X to ROS 2”. There isn’t much about taking advantage of the new features of ROS 2 or fixing any problems with the existing MoveIt design. By contrast, the navigation group has taken a from-scratch approach to allow them to fix problems and to take advantage of architectural features that ROS 2 enables. Do you plan to do this work later in the timeline?

I also noticed the item to make “ROS 2 nodelets”. Nodelets don’t exist in ROS 2, but nodes that can be structured as components (i.e. no main function by default) do. Maybe it’s just terminology but it helps to use the right words when doing searches.

1 Like

@gbiggs,

Do you plan to do this work later in the timeline?

This is simply a matter of limited resources. We could promise more but it might be an empty promise. Additionally, I’m getting a lot of push back from moveit 1.0 maintainers who want us to maintain the ability to back port / forward port changes between the two branches. I think its wise to keep this ability for the next few months, until MoveIt 2.0 is actually running.

Nodelets don’t exist in ROS 2

Yes, we should be more rigorous with our terminology, but I think more people know what we mean by using the ROS1 term “nodelets” than the new term “components”. IMHO “components” is far more ambiguous to non-expert ROS2 users as its used in general software engineering all the time.

1 Like

I disagree. I think that they do not. I think that “nodelet” heavily implies “not a node”. It is in the interest of your users to get the terminology correct for when they go to ROS Answers for help. If “component” will confuse them, then I think a better solution is to make or point them at a ROS 2 porting guide that includes a glossary.

Could you point me to the documentation for ROS2 Components? :wink:

https://index.ros.org/doc/ros2/Tutorials/Composition/

3 Likes

This is actually my bad, I recall it was me the one who accepted those changes in the roadmap. I’d say, feel free to suggest changes directly @gbiggs, input and contributions are more than welcome as we said in several threads.

Does that actually exist? I use actively <no title> but I’m not aware of a ROS 2 glossary. Which by the way, it’s a rather good idea, even beyond the MoveIt! 2 port.

1 Like

I don’t think one does, but I agree that it’s a fantastic idea. :wink:

Really a good news for MoveIt 2.
I’ve just uploaded a ROS2 grasp library, being excited to work with MoveIt 2 soon.