RM2025 Engineer Robot
Embedded Lead · System Integration
The robot picks up, stores, and exchanges ore blocks during matches. I owned its three-node embedded system, coordinating the six-axis arm, swerve chassis, lift, and vacuum mechanisms through full-robot integration.
- My role
- Three-node firmware, control tasks, and integration
- System
- 38 kg · six-axis arm · swerve chassis
- Use
- 2025 season and All-Star Game
Background
The engineer robot picks up, stores, and exchanges ore blocks during matches, alongside lifting, chassis movement, and rescue interactions.
I owned embedded architecture, control tasks, and full-robot integration, working with mechanical, vision, and operator teammates. The assembly and field material show the robot in which this work was integrated.
My contribution
- Designed and maintained a three-node embedded architecture with clear input, vehicle-decision, and actuation boundaries.
- Implemented manipulator kinematics and joint control, swerve control, lift coordination, and vacuum actuation.
- Added homing, timeouts, speed/steering constraints, and observable states for full-robot integration.
- Worked with mechanical, vision, and operator teams to iterate task flows and troubleshoot under competition pressure.
- Technical environment
- STM32G473 / STM32G431 · FreeRTOS · FDCAN / Modbus RTU · 6-DoF Arm · Swerve Chassis · Kinematics · Vacuum System
Implementation
Input and status
The gimbal/arm controller collects VTM and custom-controller inputs, then reports state to the chassis controller through 0xBA frames.
Vehicle decisions
The chassis controller owns operating modes and interlocks, issuing coordinated 0xAA command frames to the arm side.
Redundant link
Modbus 485 is the primary inter-board link, with FDCAN3 retained as a backup path and both represented in timeout logic.
Actuation
A 6-DoF arm, four swerve modules, lift, gimbal, vacuum pumps, and valves are sequenced by explicit states.
0xBA state return → ← 0xAA commands · Modbus 485 primary / FDCAN3 backup
Implementation status
| Capability | Status | Evidence |
|---|---|---|
| Joint loops and gravity / static compensation | Deployed | Called by the field task path; compensation for joints two and three is enabled in output calculation. |
| Automatic inverse-kinematics target path | Tested, not shipped | The solver and experimental path exist, but the complete automatic IK path was not enabled for final tasks. |
| Arm workspace limiting | Tested, not shipped | The limiting function was implemented and tested; its formal task-path call remained disabled. |
| Dynamic rollover model | Abandoned / disabled | Not shipped; speed and steering constraints plus operating procedure managed the field risk. |
| Teleoperation force feedback | Abandoned / disabled | Removed from formal task modes because link rate and model fidelity were insufficient. |
Technical decisions
A deployable model over full inverse dynamics
- Context
- A full RNE model was highly sensitive to mass, center-of-mass, and friction parameters that were difficult to identify reliably during the season.
- Choice
- Kept kinematics and joint control, using gravity/static compensation and damping.
Managing a 38 kg robot with explicit constraints
- Context
- The long arm created substantial inertia and center-of-mass shifts, while a dependable online rollover model was not available.
- Choice
- Used speed and steering-rate constraints, homing, pose checks, and operating procedures; the dynamic rollover model remained disabled.
Suction detection from available feedback
- Context
- The weight budget did not allow an independent pump and pressure sensor for every suction cup.
- Choice
- Used M3508 pump speed/current for the arm suction state and pressure feedback for storage suction cups.
Problem & changes
Force-feedback experiments and the final control approach
Force feedback was explored on the custom controller. Link rate and model accuracy limited its usefulness, and the final competition version used input mapping and compensation.
Fixes
- Force feedback remained an experiment and was not used for competition operation.
- The deployed system used joint control, gravity/static compensation, and speed and steering constraints.
Validation & field records
- URDF and MATLAB models were used to check arm geometry, coordinate frames, and joint directions.
- Development footage records early arm motion and controller experiments; the operator video shows input and arm movement during later full-robot tasks.
- One RM2025 All-Star Level-4 exchange was timed at 5.8 seconds. My responsibility was embedded control and field debugging.