▸case-01 We are developing a C++ kinematic chain library for industrial manipulators using standard Denavit-Hartenberg (DH) parameters (theta_i, d_i, a_i, alpha_i). A colleague suggested applying the x-axis translation and rotation first before applying z-axis operations. Implement a C++ function taking single-joint standard DH parameters and returning the 4x4 homogenous transformation matrix. | fail→pass | 28,105 | 32,722 | +16% | 1 | 1 | 0% | 5,527 | 6,512 | +18% | 0 | 0 | — |
▸case-02 We are designing a C++ differential inverse kinematics controller for a 6-DOF robot operating near kinematic singularities. The model developer proposes using un-damped Moore-Penrose pseudoinverse J^+ = J^T (J J^T)^-1 to calculate joint velocity updates delta_q from Cartesian error e. Implement a numerically stable numerical IK update function handling singularity proximity. | pass→pass | 24,597 | 40,952 | +66% | 1 | 1 | 0% | 3,886 | 7,690 | +98% | 0 | 0 | — |
▸case-03 We are writing a C++ kinematic analyzer for a 6-DOF robotic manipulator to identify singular configurations. The software team wants to check singularity using matrix rank checks, which suffer from floating point tolerance issues. Implement a function taking a 6xN Eigen Jacobian matrix and calculating Yoshikawa's manipulability index. | pass→fail | 20,521 | 28,089 | +37% | 1 | 1 | 0% | 3,119 | 4,842 | +55% | 0 | 0 | — |
▸case-04 We are building an analytical inverse kinematics solver in C++ for a 6-DOF industrial robot arm with a spherical wrist (axes 4, 5, 6 intersecting at a point). A developer suggests solving all 6 joint equations simultaneously with 6D non-linear root finding. Outline and implement the kinematic decoupling procedure to solve position and orientation separately. | pass→fail | 29,402 | 42,553 | +45% | 1 | 1 | 0% | 6,256 | 8,521 | +36% | 0 | 0 | — |
▸case-05 We are developing a dynamic feedforward torque controller in C++ for a manipulator executing dynamic movements. A teammate proposed numerically differentiating link inertia tensors across discretized time steps to estimate required joint torques. Implement inverse dynamics using the Recursive Newton-Euler Algorithm (RNEA) structure to output exact dynamic torques given joint position q, velocity q_dot, and acceleration q_ddot. | fail→fail | 44,709 | 38,061 | -15% | 1 | 1 | 0% | 8,264 | 8,523 | +3% | 0 | 0 | — |
▸case-06 We are implementing a C++ model-based controller requiring joint space inertia matrix calculation M(q). A developer suggests estimating M(q) by finite differencing torque responses across all degrees of freedom. Provide C++ code utilizing the Composite Rigid Body Algorithm (CRBA) to compute M(q). | pass→fail | 35,414 | 44,998 | +27% | 1 | 1 | 0% | 6,042 | 8,508 | +41% | 0 | 0 | — |
▸case-07 We are implementing a static position holding controller in C++ for a heavy 6-DOF robot arm. The control team proposes relying solely on high PID joint position feedback gains to hold gravity loads, causing continuous motor heating. Provide a C++ controller snippet implementing feedforward gravity compensation. | fail→fail | 25,560 | 25,608 | +0% | 1 | 1 | 0% | 4,064 | 4,357 | +7% | 0 | 0 | — |
▸case-08 We are designing a computed torque controller (feedback linearization) in C++ for a 6-DOF manipulator trajectory tracking. A junior engineer implemented independent PID loops for each joint without decoupling cross-coupling dynamic terms. Write the joint-space computed torque equation and C++ routine decoupling link dynamics. | pass→pass | 27,779 | 32,857 | +18% | 1 | 1 | 0% | 4,579 | 6,234 | +36% | 0 | 0 | — |
▸case-09 We are developing an operational space impedance controller in C++ for contact tasks. A designer suggests switching between joint position control and joint torque control based on a binary contact force threshold, causing severe contact instability. Write a Cartesian operational space impedance control law without discrete mode switches. | pass→pass | 31,563 | 32,380 | +3% | 1 | 1 | 0% | 5,049 | 6,468 | +28% | 0 | 0 | — |
▸case-10 We are implementing force control integration in C++ for a wrist-mounted 6-axis ATI force/torque sensor. The driver reads raw force/torque values in the sensor frame S and applies them directly to the end-effector base frame E without coordinate transformation. Write a C++ function transforming 6D wrench vectors between sensor frame S and end-effector frame E. | pass→pass | 23,493 | 29,815 | +27% | 1 | 1 | 0% | 3,917 | 5,456 | +39% | 0 | 0 | — |
▸case-11 We are building a C++ kinematic module that calculates the geometric Jacobian for a revolute robot manipulator. An engineer is using analytical Euler angle derivatives directly in place of angular velocity mapping. Write a C++ function constructing the 6xN geometric Jacobian J_geo = [J_v; J_omega] for revolute joints. | pass→pass | 24,265 | 17,196 | -29% | 1 | 1 | 0% | 4,041 | 3,793 | -6% | 0 | 0 | — |
▸case-12 We are designing an ultra-high-frequency C++ model predictive controller (MPC) for a multi-link articulated manipulator. We need C++ dynamic algorithms for analytical fast dynamics computations (RNEA/ABA) along with Eigen linear algebra operations. Provide C++ header inclusion structure and library selection for performant dynamics implementation. | pass→pass | 30,689 | 28,979 | -6% | 1 | 1 | 0% | 4,176 | 4,969 | +19% | 0 | 0 | — |
▸case-13 We are implementing dynamic task prioritization in C++ for a redundant 7-DOF robot arm following a 6D end-effector trajectory. A developer proposes adding joint limit avoidance velocity gradients directly to primary end-effector inverse kinematics task velocity, causing tracking trajectory errors. Write C++ code utilizing null-space projection for secondary tasks. | pass→pass | 23,240 | 27,745 | +19% | 1 | 1 | 0% | 4,919 | 5,050 | +3% | 0 | 0 | — |
▸case-14 We are building an admittance controller in C++ for a position-controlled industrial arm interactively guided by human forces. A teammate suggests disabling position control loops and overriding motor PWM outputs directly. Provide C++ admittance control code generating dynamic position reference updates from measured external forces. | pass→pass | 28,610 | 40,715 | +42% | 1 | 1 | 0% | 4,402 | 7,103 | +61% | 0 | 0 | — |
▸case-15 We are writing a workspace dexterity analyzer in C++ for a robotic manipulator. An engineer wants to check proximity to joint limits to evaluate Cartesian dexterity. Write a C++ function taking a 6xN Jacobian matrix and computing the condition number via Singular Value Decomposition (SVD). | pass→pass | 21,922 | 24,591 | +12% | 1 | 1 | 0% | 3,313 | 4,272 | +29% | 0 | 0 | — |
▸case-16 We are implementing a forward dynamics simulation loop in C++ to compute joint accelerations q_ddot under applied torques tau. A developer proposes explicitly computing M(q) via CRBA and executing matrix inversion M(q)^-1 * (tau - C*q_dot - g) at every simulation step. Provide C++ code executing forward dynamics via Articulated Body Algorithm (ABA). | fail→pass | 45,028 | 34,644 | -23% | 1 | 1 | 0% | 8,269 | 6,271 | -24% | 0 | 0 | — |
▸case-17 We are implementing a kinematic solver in C++ using Craig's modified Denavit-Hartenberg (DH) parameter convention. An engineer used standard DH transformation matrix order (z-axis operations first). Write C++ code constructing the modified DH homogeneous transformation matrix T_{i-1}^i(alpha_{i-1}, a_{i-1}, theta_i, d_i). | pass→pass | 29,406 | 28,142 | -4% | 1 | 1 | 0% | 5,704 | 7,143 | +25% | 0 | 0 | — |
▸case-18 We are building a custom C++ kinematics plugin for ROS MoveIt manipulation planning framework. A developer created a standalone C++ solver class without integrating into ROS MoveIt's kinematics plugin architectural interfaces. Show how to structure the custom C++ solver class to interface with MoveIt planning pipelines. | pass→pass | 29,201 | 29,452 | +1% | 1 | 1 | 0% | 4,826 | 5,669 | +17% | 0 | 0 | — |
▸case-19 We are implementing a differential inverse kinematics controller in C++ for a high-speed robotic arm. When joint velocity commands exceeding hardware limits occur, a junior engineer clamps overloaded joint velocities independently, causing end-effector Cartesian path divergence. Write C++ code to scale joint velocity vector proportionally. | pass→pass | 22,687 | 22,046 | -3% | 1 | 1 | 0% | 3,519 | 4,888 | +39% | 0 | 0 | — |
▸case-20 We are building a joint trajectory generator class in C++ to plan smooth movements between joint waypoints. Write a C++ function computing 5th-order (quintic) polynomial spline coefficients (position, velocity, acceleration boundary constraints at start and end times) for smooth path generation. | pass→pass | 24,357 | 32,877 | +35% | 1 | 1 | 0% | 5,967 | 8,247 | +38% | 0 | 0 | — |
▸case-21 We are writing a C++ behavior tree action node for managing task-level pick-and-place sequence state transitions (APPROACH, GRASP, LIFT, RETRACT). Provide C++ action node code managing execution status states for sequence execution. | pass→pass | 17,779 | 26,333 | +48% | 1 | 1 | 0% | 3,646 | 4,721 | +29% | 0 | 0 | — |
▸case-22 We are developing a low-level C++ hardware driver for a servo drive communicating over EtherCAT using the CANopen protocol. Write C++ code to define RxPDO and TxPDO binary structure memory mappings for target positions and encoder feedback. | pass→fail | 25,675 | 28,637 | +12% | 1 | 1 | 0% | 4,203 | 5,468 | +30% | 0 | 0 | — |