Tutorial: Docking with Nova Carter Using Nav2 and FoundationPose in Sim
Prerequisites
Finish the Tutorial for FoundationPose with Isaac Sim.
Instructions
Set up Isaac Sim:
Install and launch Isaac Sim following the Isaac Sim Setup here.
Add the charging dock at the path
localhost/NVIDIA/Assets/Isaac/Props/NVIDIA/Carter/ChargingDock/charging_station_galileo.usd
to the Isaac ROS Sample scene.Adjust docking and robot transforms as desired. For example: set dock to (-10.0, 14.0, 0.01, 0.0, 0.0, 180) and set robot to (-2.0, 14.0, 0.0, 0.0, 0.0, 180).
Press Play to initiate data publishing from Isaac Sim.
Build and install the required packages:
Make sure you followed the Prerequisites and you are inside the Isaac ROS Docker container.
Install the prebuilt Debian package:
sudo apt-get install -y ros-humble-nova-carter-bringup
Make sure you followed the Prerequisites and you are inside the Isaac ROS Docker container.
Use
rosdep
to install the package’s dependencies:sudo apt update rosdep update rosdep install --from-paths ${ISAAC_ROS_WS}/src/nova_carter/nova_carter_bringup --ignore-src -y
Build the package from source:
cd ${ISAAC_ROS_WS}/ && \ colcon build --symlink-install --packages-up-to nova_carter_bringup \ --packages-skip isaac_ros_ess_models_install isaac_ros_peoplesemseg_models_install
Source the ROS workspace:
Note
Make sure to repeat this step in every terminal created inside the Docker container.
Because this package was built from source, the enclosing workspace must be sourced for ROS to be able to find the package’s contents.
source install/setup.bash
Run the launch file:
ros2 launch nova_carter_docking docking_with_fp_sim.launch.py init_pose_x:=-2.0 init_pose_y:=14.0 init_pose_yaw:=3.14
Send a docking action:
ros2 action send_goal /dock_robot opennav_docking_msgs/action/DockRobot " { use_dock_id: false, dock_pose: { pose: { position: {x: -10.0, y: 14.0, z: 0.0}, orientation: {x: 0.0, y: 0.0, z: 1.0, w: 0.0} }, header: { frame_id: 'map' } }, dock_type: 'nova_carter_dock', navigate_to_staging_pose: true }"
Troubleshooting
If the Nova Carter does not establish contact with the dock after the docking process is complete, consider
adjusting the external_detection_translation_x
parameter in
/workspaces/isaac_ros-dev/src/nova_carter/nova_carter_docking/params/nova_carter_docking_fp.yaml
.
The default value is -0.15
. You may increase this value to bring the Nova Carter closer to the dock.
More details for docking parameters can be found on GitHub.