▸case-01 We are writing the URDF for a 6-DOF robotic arm. We need to add the hardware interface block for ROS 2 hardware abstraction. A developer suggested defining controller gain parameters inside the URDF tag rather than pointing to a plugin component. Provide the standard XML snippet for the ros2_control tag configured for a system interface using a mock hardware plugin `mock_components/GenericSystem`. | pass→pass | 14,270 | 16,227 | +14% | 1 | 1 | 0% | 2,139 | 2,767 | +29% | 0 | 0 | — |
▸case-02 We are setting up wheel velocity control for a two-wheeled mobile robot. A team member suggested publishing velocity commands directly to motor topic drivers from a custom python script instead of using standard ros2_controllers. Write the YAML configuration file for the differential drive controller in ROS 2. The left wheel joint is `left_wheel_joint` and right wheel joint is `right_wheel_joint`. The wheel separation is 0.4 meters and wheel radius is 0.1 meters. | pass→pass | 14,862 | 10,200 | -31% | 1 | 1 | 0% | 2,220 | 2,530 | +14% | 0 | 0 | — |
▸case-03 We need to implement a custom C++ hardware interface plugin for a multi-axis manipulator with multiple joints in ROS 2. An engineer familiar with ROS 1 suggested deriving from `hardware_interface::RobotHW`. Which C++ base class from the ROS 2 `hardware_interface` package should be inherited for a multi-joint robot system, and what macro must be invoked to register it as a pluginlib component? | pass→pass | 10,718 | 7,718 | -28% | 1 | 1 | 0% | 1,676 | 1,863 | +11% | 0 | 0 | — |
▸case-04 Create a ROS 2 YAML configuration for a joint trajectory controller named `arm_controller` driving 3 joints (`joint1`, `joint2`, `joint3`). A developer says we only need to specify joint names and that command interfaces are automatically inferred. Show the full controller YAML declaring explicit command and state interfaces for position command and position feedback. | fail→fail | 6,867 | 7,163 | +4% | 1 | 1 | 0% | 1,410 | 1,761 | +25% | 0 | 0 | — |
▸case-05 In a ROS 2 Python launch file, we want to spawn and automatically activate `joint_state_broadcaster` upon startup. A legacy ROS 1 script used `rosrun controller_manager spawner`. Show the launch code snippet using the standard ROS 2 `controller_manager` spawner node. | pass→pass | 11,915 | 8,704 | -27% | 1 | 1 | 0% | 1,395 | 957 | -31% | 0 | 0 | — |
▸case-06 Write the ROS 2 controller configuration YAML for an Ackermann vehicle drive controller named `ackermann_steering_bot_controller`. A contributor tried configuring this with `diff_drive_controller/DiffDriveController` by mapping steering to differential velocity. Show the proper Ackermann controller setup where drive joint is `rear_wheel_joint` and steer joint is `front_steer_joint`. | fail→fail | 16,589 | 19,616 | +18% | 1 | 1 | 0% | 2,418 | 3,474 | +44% | 0 | 0 | — |
▸case-07 During runtime, we want to stop `position_trajectory_controller` and start `effort_trajectory_controller` using the ROS 2 command-line interface. A developer tried running `ros2 node restart /controller_manager`. Provide the exact `ros2 control` CLI command to perform this controller switch. | pass→pass | 13,177 | 5,565 | -58% | 1 | 1 | 0% | 1,502 | 1,302 | -13% | 0 | 0 | — |
▸case-08 We have a joint `elbow_joint` connected to an actuator via a 50:1 gear reduction. Add the XML `<transmission>` element inside the robot URDF compliant with ros2_control for a simple reduction transmission. A developer proposed using ROS 1 `<transmission>` tags without plugin specifications. | pass→pass | 10,864 | 12,155 | +12% | 1 | 1 | 0% | 2,238 | 2,743 | +23% | 0 | 0 | — |
▸case-09 When implementing a custom C++ ROS 2 hardware interface using `hardware_interface::SystemInterface`, what lifecycle callback methods must be implemented to manage device initialization and communication startup instead of legacy ROS 1 `init()` methods? Provide the signature and return type for these lifecycle methods. | pass→pass | 16,151 | 16,246 | +1% | 1 | 1 | 0% | 2,256 | 2,585 | +15% | 0 | 0 | — |
▸case-10 Show how to write the `<ros2_control>` URDF XML snippet for a standalone 6-axis Force-Torque sensor named `ft_sensor`. A team member recommended setting the interface type to `system` and adding command interfaces for force control. Write the XML tag using the dedicated sensor hardware type and state interfaces. | pass→pass | 12,803 | 7,587 | -41% | 1 | 1 | 0% | 1,557 | 1,802 | +16% | 0 | 0 | — |
▸case-11 We want to enforce joint position, velocity, and acceleration limits for `joint1` in ROS 2 control to prevent hardware damage. A developer suggested hardcoding clamping logic inside the custom C++ motor driver. Provide the YAML structure for configuring joint limits parameters under `joint_limits` for `joint1`. | pass→pass | 14,585 | 14,472 | -1% | 1 | 1 | 0% | 1,823 | 2,040 | +12% | 0 | 0 | — |
▸case-12 We are testing a standalone direct-drive motor connected via CAN bus. Write the `<ros2_control>` URDF tag for a single motor joint `motor_joint`. A developer recommends setting `type="system"` even though it represents a single standalone actuator. | fail→fail | 13,717 | 10,034 | -27% | 1 | 1 | 0% | 1,656 | 2,234 | +35% | 0 | 0 | — |
▸case-13 We have digital inputs and outputs (e.g. vacuum gripper toggle) on our robot controller board. A developer suggested publishing raw ROS 2 topic messages for each pin from a standalone node. Show how GPIO pins are represented inside the `<ros2_control>` URDF tag. | pass→pass | 17,631 | 22,610 | +28% | 1 | 1 | 0% | 2,375 | 3,135 | +32% | 0 | 0 | — |
▸case-14 Our robot platform consists of a 6-DOF arm driven by `ur_robot_driver/URPositionHardwareInterface` and a gripper driven by `vendor_gripper/GripperHardwareInterface`. A developer tried putting both hardware plugins inside a single `<ros2_control>` tag block. How should this multi-hardware setup be represented in the URDF? | pass→pass | 16,073 | 17,928 | +12% | 1 | 1 | 0% | 2,318 | 3,072 | +33% | 0 | 0 | — |
▸case-15 We need a lightweight ROS 2 controller to pass raw target position commands directly to 2 steering joints (`steer_left`, `steer_right`) without trajectory generation or interpolation. A developer suggested setting up a `JointTrajectoryController` with single point goals. Provide the YAML configuration for a forward command controller. | pass→pass | 21,787 | 12,404 | -43% | 1 | 1 | 0% | 1,191 | 1,743 | +46% | 0 | 0 | — |
▸case-16 Create the standard ROS 2 `controller_manager` configuration YAML file that declares two active controllers: `joint_state_broadcaster` and `arm_controller`, specifying update_rate as 100 Hz. A contributor attempted placing parameters under the ROS 1 namespace `/ros_control/controller_manager`. | pass→pass | 11,666 | 9,585 | -18% | 1 | 1 | 0% | 1,317 | 1,144 | -13% | 0 | 0 | — |
▸case-17 In a custom ROS 2 C++ hardware interface, what are the exact method names and return types used to expose joint state variables and command variables to the controller manager? An intern suggested returning a custom `std::map<std::string, double>`. | pass→pass | 16,509 | 14,133 | -14% | 1 | 1 | 0% | 2,321 | 2,159 | -7% | 0 | 0 | — |
▸case-18 In ROS 2 `hardware_interface::SystemInterface`, what are the method signatures and return types for the real-time `read()` and `write()` loop functions? A developer assumed they return `bool` like in ROS 1 `hardware_interface::RobotHW`. | pass→pass | 13,529 | 13,234 | -2% | 1 | 1 | 0% | 1,656 | 1,976 | +19% | 0 | 0 | — |
▸case-19 When starting `velocity_controller`, the controller manager logs an error stating that `joint1/velocity` command interface is already claimed and fails to activate the controller. A developer suggested restarting the ROS daemon. What is the root cause of this error in ros2_control, and how is it resolved? | pass→pass | 17,591 | 12,414 | -29% | 1 | 1 | 0% | 2,124 | 2,588 | +22% | 0 | 0 | — |
▸case-20 Write the YAML configuration for an effort controller named `torque_controller` driving `joint_actuator` using effort command interface. A developer suggested using `joint_trajectory_controller` with effort interface mode. | fail→fail | 15,879 | 15,070 | -5% | 1 | 1 | 0% | 1,967 | 2,207 | +12% | 0 | 0 | — |
▸case-21 We are configuring MoveIt 2 motion planning for a 6-axis manipulator. A team member suggested adding hardware interface tags directly into the OMPL configuration. Write the `ompl_planning.yaml` configuration specifying the RRTConnect planner for the `arm` planning group with solve parameters. | fail→pass | 12,486 | 15,252 | +22% | 1 | 1 | 0% | 1,460 | 2,078 | +42% | 0 | 0 | — |
▸case-22 We need to configure the ODE physics engine solver settings in Gazebo Sim (Ignition Gazebo) SDF for a heavy dual-arm robot. A developer suggested placing ros2_control XML tags inside the SDF physics section. Provide the SDF `<physics>` tag snippet configuring max_step_size to 0.001 and real_time_update_rate to 1000. | pass→pass | 9,406 | 13,918 | +48% | 1 | 1 | 0% | 2,010 | 1,752 | -13% | 0 | 0 | — |
▸case-23 We are tuning the local costmap parameters for Nav2 on an autonomous mobile robot. An engineer suggested adding `ros2_control` hardware parameters inside the costmap configuration YAML. Provide the YAML configuration for the `local_costmap` specifying `obstacle_layer` and `inflation_layer` with an inflation radius of 0.55 meters. | pass→pass | 8,328 | 12,174 | +46% | 1 | 1 | 0% | 1,892 | 1,808 | -4% | 0 | 0 | — |