[NAV2] Introcucing MaxL Controller (Plugin) for Nav2

We have released the plugin of MaxL controller for Nav2. MaxL is a motion primitive based controller. You can find the instructions on using it on this link.
The github repo of the plugin can be found here.

Here is a GIF of its simulation on Rosbot ( ROS1) with velodyne.
maxl_3x_11s99af14534ceaf46c.gif

In ROS1 (with Mowito’s navigation stack), we have tested it on ROSbot, Turtlebot3 and 3 other custom robots. In ROS2, we have tested it on a simulation of Turtlebot.

We are currently working on benchmarking the time it takes for calculating the velocities. We will update the documentation based on your feedback.

Advantages:

  1. It directly subscribes to LiDAR scan and has an internal local costmap. Therefore even when the localization fails, or costmap is not updated, the robot will not hit the obstacle.

Current limitations:

  1. Only available for differential drive ( not reverse motion)
  2. The binaries are only available for Ros2 Foxy and amd64 arch (will run on Intel based systems). In a couple of days, we will release it for arm64 arch too, so that you can try it out on Raspberry Pi and Jetson.

If you want to try it out on ROS1 (melodic, noetic), you can find the instructions here

Please try it out, and most importantly please give us your valuable feedback.

Merry Christmas!

1 Like

Just to clarify, this isn’t a plugin in the Nav2 stack directly, but happy to have more community driven plugins available!

I think it would be helpful to edit your post with a link to the source that people can check it out.

While I haven’t come up with an exact process yet for how to decide what plugins can be listed on the navigation plugins page, if you can provide 2 users outside of your organization that are using and happy with this plugin, I’d be more than happy to have it included on this list! I think that sounds like a fair solution for the short term to make sure that there’s some other folks that validate it as functional and ready for prime-time.

1 Like

@smac
this Makes sense. I am approaching different people to test out the controller. I will get back to you once I get feedback from them.

Quick question: do you specifically want users who are running Nav2 with MaxL on robots or users with ROS1 using MaxL controller on their robots, will also work? And for the purpose of listing, do you specifically want to it be tested on real robots? or simulation will also work?

I will edit the post to add the link to the repo too.

Real robots and using it as their control plugin of choice for their systems. That’s kind of the idea behind that list: a comprehensive list of plugins that are quality, stable, and used by others in the community. All the current plugins listed on that website have at minimum 2 commercial users leveraging them in their systems (most have many more, but speed/keepout zones are relatively new). The aim is to loosely validate that your work meets requirements for use on actual systems so that we can recommend its use to others via that page.

I suppose I’m not picky about ROS1/ROS2 as long as they’re both implemented the same minus the middleware of choice.

1 Like