Part I: The ROS 2 stack · §7 of 43

# A) Robot only + RViz
ros2 launch openarm_bringup openarm.bimanual.launch.py arm_type:=v10 use_fake_hardware:=true
 
# B) Robot + MoveIt + RViz MotionPlanning
ros2 launch openarm_bimanual_moveit_config demo.launch.py arm_type:=v10

Healthy start (ros2 control list_controllers):

joint_state_broadcaster           joint_state_broadcaster/JointStateBroadcaster          active
left_joint_trajectory_controller  joint_trajectory_controller/JointTrajectoryController  active
right_joint_trajectory_controller joint_trajectory_controller/JointTrajectoryController  active
left_gripper_controller           joint_trajectory_controller/JointTrajectoryController  active
right_gripper_controller          joint_trajectory_controller/JointTrajectoryController  active

mock_components/GenericSystem copies each position command straight into the position state. There is no dynamics, no gravity, no limits enforcement, and motion is exactly the commanded trajectory. Good for checking joint names, frames, planning and your own code, but not for tuning.

Harmless messages you can ignore:

  • “unrealistic inertia” on finger links
  • controller_manager overrun warnings
  • “Could not enable FIFO RT scheduling” (in sim)
  • XDG_RUNTIME_DIR not set
  • groups: cannot find name for group ID 992
  • MoveIt “No 3D sensor plugin(s) defined for octomap updates”
  • move_group exiting with code −11 when you press Ctrl+C (a known MoveIt shutdown crash)