README
Nova Carter Docking
This package contains utility nodes, params, and launch files for working with the nova carter robot for auto-docking using opennav_docking
. It can be seen as a demonstration of using the Docking Server with detection and a custom dock.
The dock plugin is used by the framework to transact with the dock to get its pose, charging state information, and contact status. For this robot, we can use a certain configuration of the options in the simple charging dock plugin.
The dock_pose_publisher
takes in the output of Isaac ROS’ GPU optimized apriltags detector and republishes out a PoseStamped
of the particular docking tag pose of interest.
The launch files provided launch the robot’s basic hardware and sensors, the isaac_ros_apriltags
server, the dock_pose_publisher
node, and the pre-configued Docking Server.
This setup can use afixed apriltags (demo shown here) or other dock detection methods (i.e. FoundationPose, 2D lidar dock wedge detection, or 3D lidar detection) by removing the dock_pose_publisher
and publishing the detected dock pose using your method of choice on the detected_dock_pose
topic with type PoseStamped
.
You can find the apriltags used in these demos in the media
folder. Note: you must set up your printer to print to the exact scale - measure to make sure they are 6 inches wide.
Brief Developer Instructions
Add opennav_docking
on the appropriate branch to your isaac_ros-dev
workspace generated using the Nova Carter instructions and Dockerfile. Build the entire workspace in Docker before continuing with --symlink-install
.
# Add robot's IP to your /etc/hosts to ssh by name, add key to prevent password prompts (ssh-copy-id)
ssh nvidia@nova
# Must ensure robot is not connected to charging cable (dock OK) and bluetooth controller already connected if you want to use
cd $ISAAC_ROS_WS/src/isaac_ros_common && ./scripts/run_dev.sh $ISAAC_ROS_WS
# Launches the robot base, all the cameras, apriltag detector, dock pose publisher, and docking server
source install/setup.bash
ros2 launch nova_carter_docking demo_setup.launch.py
# Run test script that you wish
# ... python3 demo.py