New: Nav2 Docking Server

Howdy! Its your Friendly Neighborhood Navigator here with an announcement in conjunction with NVIDIA’s Isaac 3.0 Release! We’ve been working closely with NVIDIA this year to bring new capabilities to the mobile robotics community and have a new capability in Nav2: OpenNav Docking!

This package is a complete and generalized autonomous docking solution! Auto-docking has been a long-missing low-hanging fruit in the ROS ecosystem for a long time. While other packages exist like those in fetch_open_auto_dock and open-rmf, they lack generalization for different types of robots, docks, situations, or detection methodologies to be directly appliable to non-Fetch robots or non-Apriltag based detection pipelines. So, opennav_docking includes:

  • ChargingDock plugins to specify dock specifics like detection, staging poses, and charging state
  • A SimpleChargingDock plugin is provided which handles many common situations using standard ROS APIs like BatteryState, JointStates which may work out of the box of a non-trivial number of potential users
  • An Action API to dock or undock a robot as a stand-alone feature and Behavior Tree nodes to compose this feature within your high level robot behaviors
  • A docking database allowing users to have many and different types of docks in an environment to use
  • Continuous vision-control loop to consider active detections to refine dock pose targeting
  • 90%+ Unit Test Coverage + a Tutorial about how to set it up with examples
  • Retry mechanisms to dock even in failure conditions

You can see this in action in the videos below!

These have >98% successful docking rates. The only failures are due to massive and intentionally caused delocalization error or putting the robots into particularly challenging or unusual situations to test its limits.

This is currently available in open-navigation/opennav_docking but will be migrated into the Nav2 stack directly in the coming days.

Thanks again to NVIDIA for sponsoring this project and allowing Open Navigation to open-source and support this for the entire community. The README for the project has a ton of great context, detail, and information (as you expect from a Nav2 package!) - in addition to the Configuration Guide and Tutorial that is live now at docs.nav2.org!

You can read more about NVIDIA’s release here in Gordon’s post! Isaac ROS May update, 3.0 release adds more AI + robot manipulation

Happy docking!

Steve Macenski
Open Navigation

19 Likes

Thank you for bringing us this much-anticipated server to the community!

We’ve been testing it throughout the last week, and it works flawlessly.

2 Likes

The migration into Nav2 has started! Adding Nav2 / Open Navigation Docking by SteveMacenski · Pull Request #4406 · ros-navigation/navigation2 · GitHub

1 Like