Tutorial

This tutorial assumes the workspace has already been installed, built, and sourced as described in Installation and Build.

Verify the Robot Description

Open the robot description in RViz:

ros2 launch ros2_control_blue_reach_5 view_robot.launch.py

This checks the xacro/URDF description and the RViz model display before starting the full runtime stack.

Launch Interactive Simulation

Start one fully simulated UVMS in the interactive task:

ros2 launch ros2_control_blue_reach_5 robot_system_multi_interface.launch.py \
    use_manipulator_hardware:=false \
    use_vehicle_hardware:=false \
    sim_robot_count:=1 \
    task:=interactive

The launch starts ros2_control, simulated vehicle/manipulator hardware, controllers, SimLab interactive controls, planner nodes, and RViz.

Common Launch Arguments

  • use_manipulator_hardware:=false: use the simulated manipulator.

  • use_vehicle_hardware:=false: use the simulated vehicle.

  • sim_robot_count:=1: spawn one simulated UVMS.

  • task:=interactive: run RViz menus, planning, replay, and optional manual joystick command input.

  • task:=manual: run PS4 direct command teleoperation.

  • task:=direct_thrusters: run keyboard direct-thruster control.

  • record_data:=true: start the rosbag2 MCAP recorder.

  • gui:=false: run without RViz.

Use the interactive task for the normal simulator tutorial path. See Controls, Menus, and Teleoperation for the menu and joystick behavior of each task.

Inspect the Runtime

List active controllers:

ros2 control list_controllers

List available hardware interfaces:

ros2 control list_hardware_interfaces

Inspect the central state stream:

ros2 topic echo /dynamic_joint_states

The exact controller names depend on robot count, task, and hardware/simulation selection. See Services, Actions, and Topics for the main runtime interfaces.

Record Data

Enable rosbag recording at launch:

ros2 launch ros2_control_blue_reach_5 robot_system_multi_interface.launch.py \
    use_manipulator_hardware:=false \
    use_vehicle_hardware:=false \
    sim_robot_count:=1 \
    task:=interactive \
    record_data:=true

Bags are saved as uvms_bag_YYYYmmdd_HHMMSS in the launch working directory.