Practical Integration of Open-Source Control Architectures on Custom Quadruped Robots: Simulation Validation and Hardware Interfacing
Abstract
1. Introduction
- A systematic analysis of the low-level architectural assumptions and integration barriers encountered when adapting the tightly coupled MIT Mini Cheetah framework to non-standard hardware ecosystems.
- The design and implementation of a custom top-level state machine controller featuring an integrated web-based GUI to manage native operational states lacking in the base CHAMP framework.
- A simulation-based validation demonstrating walking gaits in Gazebo and seamless transitions across operational states to verify the control pipeline.
- A functional hardware interface layer enabling full-duplex SPI-to-CAN communication, joint-level command mapping, and live parameter telemetry tracking for manual calibration.
- An open access repository (https://github.com/Vichu95/Scotty) (accessed on 22 July 2026) containing comprehensive hardware integration logs, software configuration files, and troubleshooting documentation to serve as a reproducible roadmap for custom quadruped developers.
2. Related Work and Framework Selection
2.1. MIT Mini Cheetah Framework
2.2. CHAMP Framework
2.3. Framework Selection Rationale
3. Robot Platform: Scotty
3.1. Mechanical Design and Physical Metrics
- The abduction/adduction (abad) joint, located at the base of the lateral shoulder frame, which regulates side-to-side hip motion and weight-shifting balance.
- The hip joint, positioned on the upper leg assembly, which governs the forward and backward rotational sweep of the thigh to drive horizontal propulsion.
- The knee joint, which regulates lower leg bending and ground-contact extension via an integrated chain and gear transmission mechanism featuring a 24:16 teeth sprocket ratio (yielding a gear reduction scaling).
3.2. Sensors and Actuators
3.3. Computing and Communication Architecture
- Master-to-Slave SPI Network: The UP Board operates as a full-duplex SPI master interface, establishing concurrent communication pipelines with the two STM32 slaves mapped to dedicated system nodes (/dev/spidev2.0 and /dev/spidev2.1).
- Slave-to-Actuator CAN Network: Each low-level STM32 microcontroller governs two independent legs using dual hardware CAN transceivers. To optimize bus bandwidth and eliminate latency bottlenecks, each leg operates on an isolated, dedicated CAN bus path supporting three daisy-chained joint actuators (Abad, Hip, and Knee), resulting in four parallel CAN networks across the entire system topology.
4. MIT Mini Cheetah Framework: Integration Attempt and Lessons
4.1. Integration Approach and Low-Level Optimizations
- Firmware SPI Error Callbacks: Within the low-level STM firmware, dedicated re-initialization routines were embedded directly into the SPI peripheral error callbacks (HAL_SPI_ErrorCallback). This design forcibly reinitializes the communication module in interrupt mode following data link drops, bypassing manual hardware resets and ensuring continuous streaming connectivity.
- CAN Bus Inter-Message Timing: In accordance with architectural recommendations from Ben Katz’s research, a precise 300 s execution delay was introduced between consecutive outgoing CAN messages. This timing adjustment accommodates physical bus propagation and prevents transmission packet collisions across the multi-actuator network layout.
- Dual Range Separation Limits: To prevent severe data misinterpretations during float-to-integer conversion packing, the STM firmware decouples localized scaling constraints from global actuator boundaries. Local safety thresholds (e.g., limiting torque dynamically to a restricted range of ±2 Nm) are applied within a localized software layer, while the mapping equations retain the global native motor scaling ranges (±65 Nm) to accurately output correct raw 12-bit unsigned integer commands via the CAN bus line.
- Motor Control Mode Sequence Management: The firmware explicitly handles sequential mode transitions by feeding specific CAN code frames directly to the internal actuator drivers. A systematic command sequence analysis established that initializing the motors requires issuing an ENTER motor control command, followed by a localized ZERO command sequence to calibrate the vertical physical position reference baseline, and an EXIT frame to cleanly terminate the high-torque mode loops.
4.2. Encountered Integration Challenges
4.2.1. Simulation-to-Hardware Spatial Mismatch
4.2.2. Motor Direction Mapping
4.2.3. Transmission Gear Ratio Scaling
- Position and Velocity Scaling: Outgoing high-level position and velocity commands are multiplied by before transmission to the low-level controllers ( and ). Conversely, incoming motor encoder feedback is divided by to yield the actual joint-level position and velocity state ( and ).
- Torque and Feed-forward Scaling: Due to mechanical advantage, the torque at the knee joint is amplified by the reduction ratio. Therefore, outgoing feed-forward joint torque commands must be divided by before being sent to the motor driver (). Correspondingly, raw motor telemetry torque feedback is multiplied by to calculate the actual torque acting on the leg link ().
4.2.4. Rigid-Body Dynamics Configurations
4.2.5. SPI Bus Line Transmission Collisions
4.2.6. Oscillatory Instability
- Ground Force Estimation vs. Measurement: The MIT framework does not measure ground reaction forces directly (as Scotty lacks tactile foot sensors); instead, contact state is estimated heuristically based on gait scheduling and kinematic residuals. The convex MPC controller solves for optimal ground reaction forces to support the torso, mapping them to target joint torques via the Jacobian transpose: .
- Kalman Filter State Estimator Divergence: The core state estimator uses a Kalman filter to track the robot’s base position and velocity by fusing IMU orientation with leg kinematics. When a foot is scheduled to be in contact with the ground (stance phase), the estimator enforces the constraint that the foot velocity relative to the ground is zero (). However, because Scotty was suspended in a safety rig, the feet moved unhindered in mid-air. When the controller commanded joint torques , the limbs accelerated rapidly in the absence of opposing ground forces. This kinematic violation caused the Kalman filter velocity estimates to diverge rapidly, reporting false, high-frequency base attitude and velocity drifts.
- Whole-Body Control Overcorrection: The high-level Whole-Body Control (WBC) and MPC loops perceived these estimator drifts as massive external disturbances. To compensate, the loops commanded rapid, maximum-effort torque corrections, causing the limbs to enter a violent, self-exciting oscillatory cycle.
- Mismatched Gain Calibration: The default framework gains were calibrated for the original MIT Mini Cheetah, which features extremely light, direct-drive shin links (approx. kg). In contrast, Scotty’s hardware utilized a significantly heavier knee link (approx. kg) and a chain-and-sprocket reduction mechanism. When the physical test was executed under Mode 1 with proportional gain N·m/rad and derivative gain N·m·s/rad, the high stiffness gains coupled with the larger inertia and chain backlash directly excited mechanical resonance.
4.3. Testing Results and Diagnostic Analysis
- Mode 0 (Initialization): Initial testing revealed that default framework parameters induced wide link extensions, threatening structural collisions with the laboratory testing frame. To guarantee a safe initialization sequence, the configuration file (initial_jpos_ctrl.yaml) was modified to command a uniform forward knee bend target vector. Under this layout, the joints successfully converged to their designated starting coordinates with active Proportional–Derivative (, ) gains. However, tests initiated with backwards knee-flexion configurations encountered data clamping bottlenecks; the low-level STM firmware strictly enforced asymmetrical soft joint constraints, restricting the final command outputs and leading to unresponsive joints. This was stabilized by implementing extended, symmetrical testing limits across the code base. Figure 11 shows the snapshots of the robot during Mode 0.
- Mode 1 (Standing): Upon engaging the standing loop, the limbs developed rigid resistance, validating the delivery of targeted joint torques. However, the physical limbs immediately entered a state of severe vibrational resonance rather than holding a constant, static torque configuration. Increasing the torque threshold limits within the microcontroller safety functions to mitigate potential saturation did not eliminate the issue, which instead became marginally more acute. This confirmed that the instability was rooted in ungrounded chassis dynamics, as the aggressive default and gains amplified corrections in the absence of opposing ground reaction forces.
4.4. Lessons for the Community
- Empirical Zero-Position and Gear Scaling Calibration: Actuator zero positions cannot be assumed out of the box and must be physically locked with the limbs oriented perfectly vertical downward before issuing alignment frames. Furthermore, non-direct drive systems, such as Scotty’s knee sprocket-and-chain transmission, mandate that bidirectional coordinate scaling arithmetic be strictly enforced within the data pipeline to prevent spatial tracking loops.
- Empirical Verification of Directional Axes: Coordinate frame conventions must be derived through systematic single-joint physical testing rather than relying solely on simulation models or secondary documentation. Moreover, direction compensation should be integrated centrally within the high-level kinematic abstraction layers rather than distributed across embedded sub-systems to maintain architectural compliance.
- Bridge Software Architecture Gaps with High-Precision Logs: Transitioning from simulation models to actual physical hardware requires intermediate validation stages utilizing high-precision telemetry. Standard float-to-CSV logging configurations (e.g., %f) induce rounding errors that alter the IEEE 754 binary representation of state vectors, provoking persistent checksum failures upon data unpack re-entry. Developers must enforce high-precision parsing formats (e.g., %.9g) to preserve binary integrity across processing layers.
- NaN Detection and Exception Handling: Faulty dynamics computations or simulator unresponsiveness in the high-level controller can propagate NaN values through the command pipeline. The low-level firmware must implement explicit validation checks that scan incoming SPI data structures for non-numeric values before committing updates to motor command registers. In our implementation, a dedicated check_nan_in_spi_rx() routine iterates across all floating-point fields in the received command packet; if any NaN is detected, the entire frame is rejected and the motors retain their last valid state. This safeguard prevented multiple potential runaway torque scenarios during MIT framework testing.
- Multi-Tier Clamping and Range Safeguards: Joint limits and torque overrides must be implemented independently across multiple hierarchical software layers (actuator internal drive, low-level microcontroller, and high-level control code), ensuring that a single software fault cannot bypass all safety boundaries.
- Decoupled Processing Hooks for Incremental Debugging: The tightly coupled nature of the native framework complicates localized troubleshooting. Firmware design should explicitly isolate background CAN communication loops from interrupt-driven SPI buses. Additionally, introducing dedicated live expression tracking variables (e.g., an exit_command loop hook) ensures that active testing cycles can be terminated gracefully, sending safe exit codes to the actuators and cleanly closing communication lines.
- Incremental Gain Tuning from Conservative Baselines: When adapting torque-based controllers to custom hardware with different mass distributions and actuator responses, default framework gains are rarely transferable. We recommend initiating parameter tuning from deliberately conservative (low) and values, then incrementally increasing stiffness and damping while monitoring for vibrational resonance. This approach should first be validated under suspended or reduced-load conditions before transitioning to full ground-contact testing. In our MIT integration attempt, the default configuration’s aggressive gains-calibrated for the original Mini Cheetah’s lighter, direct-drive limbs-amplified oscillatory behavior when applied to Scotty’s heavier, chain-driven knee mechanism. A structured, incremental tuning protocol would have isolated this mismatch earlier and reduced hardware risk.
5. CHAMP Framework: Architecture and Implementation
5.1. URDF Generation and Configuration Setup
5.1.1. SolidWorks to URDF Export
- Geometric Alignment: Positioning all legs perfectly vertical downward to match CHAMP’s expected zero-position configuration reference baseline, as illustrated in Figure 12;
- Kinematic Tree Definition: Structuring the precise parent–child link hierarchy mapped across every limb: , ensuring a seamless kinematic chain propagation (Figure 13);
- Coordinate Systems Designation: Assigning localized coordinate origins and reference rotation axes for each individual joint, keeping the main torso as the global center node (Figure 14);
- Joint Constraints Profile: Selecting appropriate joint type classifications, such as defining revolute mechanisms for the active abad, hip, and knee configurations while pinning the foot links as fixed joints, and populating their respective mechanical limit boundaries.
5.1.2. Xacro Enhancement
- Floating Joint and World Anchor: A floating joint connecting the structural base_link to a virtual fixed world frame to enable unconstrained 6-DoF dynamics during Gazebo execution;
- Sensor Simulation Hardware Plugins: An integrated Inertial Measurement Unit (IMU) link node combined with an automated Gazebo IMU sensor plugin to stream real-time simulated linear accelerations and angular velocities;
- ROS Control Integrations: Unified ros_control packages [26] to manage joint trajectory controllers, simulate localized hardware loop behaviors, and calculate virtual odometry states;
- Transmission Elements Mapping: Explicit transmission tag definitions for all active revolute joints, pairing individual software control interfaces with physical motor actuator variables;
- Surface Contact Dynamics Parameters: Specialized Gazebo surface contact friction properties () applied to the foot links to prevent slipping and ensure valid ground reaction forces during stance phases.
5.1.3. CHAMP Setup Assistant Configuration
5.2. Simulation Environment
5.2.1. RViz Visualization and Kinematic Verification
- roslaunch scotty_config bringup.launch rviz:=true
5.2.2. Gazebo Integration and Critical Framework Bottlenecks
- The “Stuck in Mid-Air” Bug: As shown in Figure 16 (left), when spawning into the simulated world, the robot remained completely immobilized and suspended in mid-air above the structural ground plane. Monitoring active transform trees tracked this constraint back to a structural flaw in the raw URDF export, which mistakenly anchored the robot chassis to a fixed, unyielding virtual world origin frame. To restore dynamic physical behaviors, the rigid world joint was removed, and an unconstrained 6-DoF floating joint parameter was mapped between the main base_link frame and the trunk link structure. This re-architecture allowed Scotty to drop naturally and settle onto the dynamic world plane under realistic simulated gravitational forces.
- The “Stiff Legs” Problem: Once grounded on the world plane, the robot’s limbs immediately became completely stiff and unyielding, failing to bend or articulate in response to interactive simulation inputs, as depicted in Figure 16 (right). Analyzing the active network graph using the rqt_graph diagnostic utility revealed that the underlying CHAMP trajectory generation node was continuously publishing static stand position arrays to the joint command topic (/joint_group_position_controller/command), locked at a fixed execution frequency. This continuous stream completely blocked teleoperation inputs by overwriting dynamic movement vectors with static position configurations.
5.3. Custom State Controller Design
5.3.1. State Machine Architecture
- Idle: The starting point of the software, where internal parameters are set up and the simulation environment is initialized;
- Ready: The system stands by, confirming that all background connections and nodes have loaded successfully;
- Down: The robot lowers its body smoothly into a resting position close to the ground;
- Stand: The robot pushes up from the ground into an upright, stable standing posture;
- Walk: Active locomotion is enabled, allowing the robot to accept movement commands from the CHAMP controller;
- Shutdown: A safe exit routine that brings the robot to a low rest before cleanly turning off active nodes;
- Reset: Clears the current environment and restarts the simulation cleanly.
5.3.2. Implementation Details
5.3.3. Graphical User Interface
- A live connection indicator showing the status (On/Off) of the data bridge;
- A clear display showing the active operational state of the robot;
- Interactive state buttons that automatically turn on or grey out based on whether a transition is allowed from the current pose;
- Large, red, single-click override buttons for Shutdown, Reset, and Emergency Stop;
- A color-coded scrolling terminal console displaying live logs categorized into informational messages, warnings, and errors.
5.3.4. Safety Mechanisms
- Valid Transition Enforcement: If a user sends an illegal state request, the controller instantly rejects the message and prints a warning log, leaving the active leg configuration untouched;
- Emergency Stop Control: As illustrated in Figure 19, a separate, high-priority emergency node can be called at any point. This script instantly overrides all background threads, cuts command lines, and safely terminates active processes to freeze the limbs immediately;
- Controller Resource Management: The controller ensures that joint controllers are properly stopped before new trajectory files are loaded, entirely eliminating topic conflicts.
5.4. State Implementation Details and Simulation Results
5.4.1. Idle and Restart States
- rosservice call /gazebo/set_model_configuration
5.4.2. Down and Stand States
- /joint_group_position_controller/command
5.4.3. Walk State
5.4.4. Simulation Results Summary
- Accurate visual validation and teleoperation tracking inside RViz;
- Stable gravity-based dropping and unconstrained body balancing inside Gazebo;
- Repeatable, smooth posture transitions between the Down and Stand states without causing controller crashes;
- Real-time steering and gait generation via CHAMP teleoperation controls;
- Instantaneous safety cutoff verification using the independent Emergency Stop node;
- Successful cycling through the complete operational life loop: .
- Physics Engine Configuration: The Gazebo simulation utilized the default Open Dynamics Engine (ODE) solver with a fixed time step of s ( physics update rate). The friction coefficient for the rubber foot links in the URDF model was set to a nominal value of against the ground plane.
- Joint Controller Configuration: The simulated joints were actuated using ROS joint position controllers. The proportional–derivative (PD) gains for the abduction (abad) joints were set to N·m/rad and N·m·s/rad, while the hip and knee joints were configured with N·m/rad and N·m·s/rad to provide adequate joint stiffness under gravity.
6. Hardware Interface Layer
6.1. SPI Communication Protocol
- Command Structure (Master-to-Slave): The UP Board packages high-level trajectory data into a compact array containing the targeted control parameter arrays for the abduction/adduction (abad), hip, and knee joints. For each individual joint, the structure packs the desired position float, target velocity, desired feed-forward torque, proportional gain (), and derivative gain ().
- State Structure (Slave-to-Master): Concurrently during the same SPI bus clock cycle, the STM32 controllers shift back a state telemetry package containing the physical feedback metrics of each joint. This feedback includes the actual measured joint position, current angular velocity, active motor torque output, and low-level diagnostic status flags.
6.2. Standalone SPI Verification
6.3. ROS Integration
6.3.1. Simple Subscriber Node
- /joint_group_position_controller/command
6.3.2. Hardware Interface Node
- Subscribe: It listens to the active joint position and velocity commands streaming from the high-level CHAMP walking planner;
- Convert: It maps these dynamic movement vectors into our custom fixed-width SPI command structure, matching the pre-tested MIT data layout;
- Transmit: It drives the hardware lines to send the packed command structures down to the two STM32 leg microcontrollers over the full-duplex SPI bus lines;
- Receive: Concurrently during the same clock cycle, it extracts the incoming state telemetry buffers sent back by the STM32 controllers;
- Publish: It unpacks the raw actuator state parameters (actual positions, velocities, and torques) and translates them back into a standard ROS message, publishing them to the global network over the /joint_states topic.
6.4. Joint Control Test GUI
- Individual Joint Position Publishing: Operators can select a specific limb and use interactive sliders or input boxes to send precise position commands to a single joint at a time;
- Real-Time Telemetry Tracking: The interface listens directly to the feedback streams coming up from the STM32 microcontrollers, displaying real-time plots of actual joint positions, velocities, and motor torque outputs;
- Isolated Parameter Tuning: Users can adjust Proportional–Derivative (, ) control gains on the fly, allowing individual limb behaviors to be fine-tuned before deploying the full-body walking stack.
7. Preliminary Hardware Integration and Validation
7.1. Extension to Hardware Mode
- SPI Communication Initialization: Configuring the userspace spidev interface files via IOCTL system calls to open full-duplex, bidirectional communication channels over the master device paths /dev/spidev2.0 and /dev/spidev2.1.
- Clock and Date Synchronization: Implementing an explicit temporal alignment protocol between the external ground station computer and the onboard x86 UP Board single-board computer to eliminate persistent timestamp warnings within the ROS master node network.
- Safe Startup Sequence Execution: Structuring a defensive initialization state machine to actively detect, intercept, and manage invalid initial actuator feedback states during the initial power-on sequence.
7.2. Validation Results
- SPI/CAN Bridge Reliability: Bidirectional full-duplex communication was operated at a loop frequency of 100 Hz. To verify stability after implementing the firmware-level MISO select tri-state fix (resolving bitwise OR bus collisions), stress tests were conducted. In the two longest uninterrupted runs, the interface successfully processed 197,020 packets (≈32.8 min of continuous operation) and 116,408 packets (≈19.4 min of continuous operation) without a single checksum mismatch or packet drop (0.00% packet error rate). The CAN bus was operated at 1 Mbit/s, enforcing a deterministic 300 s inter-message transmission delay between successive joint commands to prevent network congestion.
- Joint Tracking Calibration Errors: Localized joint-level movement tests were performed using a GUI calibration slider to map command inputs to actual actuator motion. Tracking errors () were computed offline from logged feedback telemetry, as summarized in Table 4. The hip and knee joints exhibited high tracking precision (mean errors rad), whereas the abduction/adduction (abad) joint showed a higher mean error range ( to rad) and standard deviation ( rad) due to structural backlash in the physical leg mounting brackets.
7.3. Issues Encountered
- Old Values Warning and Time Synchronization: The central ROS network generated continuous system warnings regarding outdated values received over the global /joint_states topic. This temporal mismatch was resolved via a practical workaround by forcing an interactive date synchronization command from the ground control PC over the local network to align clocks with the onboard x86 UP Board:
- sudo date --set "$(ssh scotty@192.168.2.40 ’date -u’)"
where 192.168.2.40 represents the static IP address of the UP Board. Testing verified that rigorous time-matching is mandatory to ensure correct sequential message handling and to prevent joint state TF transforms from being dropped by the high-level ROS navigation stack. While this manual alignment served as a practical workaround for the current prototype setup, a more robust and automated synchronization method (such as utilizing Chrony or NTP daemon protocols over a local server) would be preferable in future production-grade hardware deployments. - Hip Motor Abnormal Values: Intermittent high-frequency data spikes and unusual numerical readings were observed coming from the hip motor controller under active test cycles, which are currently being analyzed under localized diagnostics (Figure 27). These abnormal readings, which could stem from communication interference, encoder noise, or instability/defects within the motor actuator hardware itself, represent a key limitation of the current hardware validation phase. They prevent reliable feedback tracking and pose risks to closed-loop stability, restricting physical testing to static or localized joint movements. To mitigate this in the current prototype, validity checks were performed at startup to ensure that the motor states are within the expected range, and future work will require dedicated hardware-level filtering, actuator debugging, and diagnostic troubleshooting.
7.4. Safe Start Procedure
- Issue the specific CAN code frame to command the actuators to enter motor control mode;
- Intercept and read the incoming raw motor feedback states across the parallel CAN bus networks;
- Validate the received data packets by verifying that the joint position, velocity, and torque parameters fall strictly within expected, realistic physical limits;
- If any data point is flagged as invalid or unparsable, reject the packet immediately and retry the loop up to a configured maximum number of attempts;
- If the incoming telemetry completely satisfies the validation parameters, confirm the startup status and proceed to normal system operation;
- If the maximum number of retries is exceeded without receiving valid data, halt the process immediately, isolate the actuators, and enter a safe error state.
8. Discussion: Lessons Learned and Recommendations
8.1. Framework Selection Paradigms
8.2. Simulation-First Development Boundaries
- Network Packet Timing Gaps: Simulation handles data transfers perfectly, but physical hardware introduces communication lag and processing queue delays.
- Clock Desynchronization Errors: Small timing differences between the operator’s ground control station and the onboard UP Board single-board computer generated immediate timestamp errors in the ROS network, requiring active date-matching loops.
- Physical Locomotion Constraints: Shifting from simulation to hardware requires a highly disciplined, incremental validation sequence: moving sequentially from single-joint validation, to full-limb benchmarking, suspended rig testing, and finally ground-contact closed-loop locomotion tuning.
8.3. The Engineering Overhead of Motor Startup Loops
8.4. Open Science and Community Contributions
8.5. Recommendations for Future Builders
9. Conclusions
- A transparent, systematic assessment of the low-level architectural assumptions and integration barriers encountered when attempting to adapt the tightly coupled MIT Mini Cheetah framework to non-standard hardware ecosystems;
- A complete ROS-based control framework using the CHAMP locomotion engine enhanced with a custom, top-level finite state machine controller to handle operational state transitions missing in the base package;
- A functional hardware interface layer design that establishes a reliable, full-duplex SPI communication pipeline between the high-level computer and the low-level STM32 microcontroller motor drivers;
- A practical hardware integration methodology that explicitly maps out hardware-mode constraints, date-synchronization requirements, and power-on validation protocols.
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| ROS | Robot Operating System |
| URDF | Unified Robot Description Format |
| Xacro | XML Macros |
| SPI | Serial Peripheral Interface |
| CAN | Controller Area Network |
| IMU | Inertial Measurement Unit |
| LCM | Lightweight Communications and Marshalling |
| GUI | Graphical User Interface |
| CHAMP | CHAMP Quadruped Robot Framework |
| MIT | Massachusetts Institute of Technology |
| STM | STMicroelectronics Microcontroller |
| NSS | Slave Select |
| MISO | Master In Slave Out |
| MOSI | Master Out Slave In |
| SCK | Serial Clock |
| PID | Proportional–Integral–Derivative |
| PD | Proportional–Derivative |
| FR | Front Right |
| FL | Front Left |
| RR | Rear Right |
| RL | Rear Left |
| BR | Back Right |
| BL | Back Left |
| HTML | Hyper Text Markup Language |
| API | Application Programming Interface |
| CSV | Comma Separated Values |
| CAD | Computer Aided Design |
| RT | Real-Time |
| PREEMPT | Pre-emptive scheduling |
| UART | Universal Asynchronous Receiver–Transmitter |
References
- Boston Dynamics. Spot Robot. Available online: https://www.bostondynamics.com/spot (accessed on 8 June 2026).
- Unitree. Go1 Quadruped Robot. Available online: https://www.unitree.com/products/go1 (accessed on 8 June 2026).
- Di Carlo, J. Software and Control Design for the MIT Cheetah Quadruped Robots; Massachusetts Institute of Technology: Cambridge, MA, USA, 2020; Available online: https://dspace.mit.edu/handle/1721.1/129877 (accessed on 8 June 2026).
- MIT Mini Cheetah Software. Available online: https://github.com/mit-biomimetics/Cheetah-Software (accessed on 8 June 2026).
- Katz, B.G. A Low Cost Modular Actuator for Dynamic Robots. Master’s Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2018. Available online: https://dspace.mit.edu/handle/1721.1/118671 (accessed on 8 June 2026).
- Bledt, G.; Wensing, P.M.; Ingersoll, S.; Kim, S. Contact Model Fusion for Event-Based Locomotion in Unstructured Terrains. In Proceedings of the 2018 IEEE International Conference on Robotics and Automation (ICRA), Brisbane, Australia, 21–25 May 2018; pp. 4399–4406. [Google Scholar] [CrossRef]
- Di Carlo, J.; Wensing, P.M.; Katz, B.; Bledt, G.; Kim, S. Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control. In Proceedings of the 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, Spain, 1–5 October 2018; pp. 1–9. [Google Scholar] [CrossRef]
- Katz, B.; Di Carlo, J.; Kim, S. Mini Cheetah: A Platform for Pushing the Limits of Dynamic Quadruped Control. In Proceedings of the 2019 IEEE International Conference on Robotics and Automation (ICRA), Montreal, QC, Canada, 20–24 May 2019; pp. 6295–6301. [Google Scholar] [CrossRef]
- Bledt, G.; Powell, M.J.; Katz, B.; Di Carlo, J.; Wensing, P.M.; Kim, S. MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot. In Proceedings of the 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, Spain, 1–5 October 2018; pp. 2245–2252. [Google Scholar] [CrossRef]
- Park, H.W.; Park, S.; Kim, S. Variable-Speed Quadrupedal Bounding Using Impulse Planning: Untethered High-Speed 3D Running of MIT Cheetah 2. In Proceedings of the 2015 IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, USA, 26–30 May 2015; pp. 5163–5170. [Google Scholar] [CrossRef]
- Katz, B.G. Low Cost, High Performance Actuators for Dynamic Robots. Master’s Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2016. Available online: https://dspace.mit.edu/handle/1721.1/105580 (accessed on 8 June 2026).
- Jimeno, J.M. CHAMP: CHAMP Quadruped Robot Framework. Available online: https://github.com/chvmp/champ (accessed on 8 June 2026).
- Lee, J. Hierarchical Controller for Highly Dynamic Locomotion Utilizing Pattern Modulation and Impedance Control: Implementation on the MIT Cheetah Robot. Master’s Thesis, Massachusetts Institute of Technology, Cambridge, MA, USA, 2013. Available online: https://dspace.mit.edu/handle/1721.1/85490 (accessed on 8 June 2026).
- CHAMP Setup Assistant. Available online: https://github.com/chvmp/champ_setup_assistant (accessed on 8 June 2026).
- Di Massa, G.; Malfi, P.; Pagano, S.; Rocca, E.; Savino, S. Analysis, Modeling, and Simulation of a Rocker–Bogie System Overcoming a Harmonic Bump. Machines 2026, 14, 103. [Google Scholar] [CrossRef]
- Real-Time Linux Wiki. PREEMPT_RT Patch. Available online: https://wiki.linuxfoundation.org/realtime/start (accessed on 8 June 2026).
- Ubuntu-RT-UP-Board. Available online: https://github.com/qiayuanl/Ubuntu-RT-UP-Board (accessed on 8 June 2026).
- Huang, A.S.; Olson, E.; Moore, D.C. LCM: Lightweight Communications and Marshalling. In Proceedings of the 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Taipei, Taiwan, 18–22 October 2010; pp. 4057–4062. [Google Scholar] [CrossRef]
- Mudalige, N.D.W.; Zhura, I.; Babataev, I.; Nazarova, E.; Fedoseev, A.; Tsetserukou, D. Hyperdog: An Open-Source Quadruped Robot Platform Based on ROS2 and Micro-ROS. arXiv 2022. [Google Scholar] [CrossRef]
- CubeMars. AK10-9 V2.0 KV60 Motor Datasheet; CubeMars: Dongguan, China, 2023; Available online: https://www.cubemars.com/goods-1141-AK10-9+V20+KV60.html (accessed on 8 June 2026).
- VectorNav Technologies. VN-100 Rugged Datasheet; VectorNav: Dallas, TX, USA, 2023; Available online: https://www.vectornav.com/products/detail/vn-100 (accessed on 8 June 2026).
- AAEON. UP Board Computer Board for Professional Makers. Available online: https://www.aaeon.com/en/product/detail/up-board-computer-board-for-professional-makers (accessed on 8 June 2026).
- STMicroelectronics. STM32F446RE-Arm Cortex-M4 MCU with DSP and FPU. Available online: https://www.st.com/en/microcontrollers-microprocessors/stm32f446re.html (accessed on 8 June 2026).
- MiLAB. MiLAB-Cheetah-Software. Available online: https://github.com/allen-quad-robot/MiLAB-Cheetah-Software (accessed on 8 June 2026).
- SolidWorks to URDF Exporter. Available online: http://wiki.ros.org/sw_urdf_exporter (accessed on 8 June 2026).
- Chitta, S.; Marder-Eppstein, E.; Meeussen, W.; Pradeep, V.; Tsouroukdissian, A.R.; Bohren, J.; Coleman, D.; Magyar, B.; Raiola, G.; Lüdtke, M.; et al. ros_control: A Generic and Simple Control Framework for ROS. J. Open Source Softw. 2017, 2, 456. [Google Scholar] [CrossRef]
- Robot Web Tools. Rosbridge Suite. Available online: http://wiki.ros.org/rosbridge_suite (accessed on 8 June 2026).
- URDF Viewer Online. Available online: https://gkjohnson.github.io/urdf-loaders/javascript/example/bundle/index.html (accessed on 8 June 2026).
- Kurumbaparambil, V.; Rajanayagam, S.; Twieg, S. Scotty. Available online: https://github.com/Vichu95/Scotty (accessed on 22 July 2026).




























| Feature | MIT Mini Cheetah | CHAMP |
|---|---|---|
| Control type | Torque-based PD | Position-based trajectory |
| Documentation | Minimal | Extensive |
| ROS integration | None | Native |
| Real-time kernel | Required | Not required |
| Hardware abstraction | Custom SPIne | ROS Control standard |
| Simulation | Custom Qt-based | Gazebo/RViz |
| Community support | Limited | Active |
| Integration effort for custom hardware | Very high | Moderate |
| Parameter | Specification/Value |
|---|---|
| Total physical mass (stripped config) | kg |
| Chassis dimensions (L × W × H) | mm |
| Total foot span (L × W) | mm |
| Degrees of Freedom (DoF) | 12 (3 active joints per leg) |
| Abad link length/offset | m |
| Thigh (hip) link length | m |
| Shin (knee) link length | m (including foot radius) |
| Actuators | CubeMars AK10-9 V2.0 KV60 brushless DC motors |
| Actuator reduction ratio | (planetary gear) |
| Knee transmission ratio | (chain and sprocket, total knee reduction ) |
| Peak torque per motor | 48 Nm |
| Continuous torque limit | 18 Nm |
| Motor torque constant () | Nm/A |
| Phase-to-phase resistance | 195 m |
| Back-drive torque | Nm |
| Power supply voltage | 24 V nominal (operating range 24–48 V) |
| Control loops frequency | SPI: 100 Hz; CAN: 100 Hz; ROS: 100 Hz |
| Joint angular limits | Abad: ( to rad); Hip Pitch: to ( to rad); Knee Pitch: to (0 to rad) |
| Control modes | Joint Position Control (CHAMP)/Joint Torque Control (MIT attempt) |
| Aspect | Status | Evidence |
|---|---|---|
| SPI communication | Validated | 100 Hz loop, 0% checksum error over stress tests of 197,020 packets (≈32.8 mins) and 116,408 packets (≈19.4 mins) |
| Motor command mapping | Validated | Desired joint positions match physical leg movements; mean tracking error ranges rad |
| Motor state feedback | Validated | 100 Hz position, velocity, and torque telemetry successfully received over CAN (1 Mbit/s speed, 300 s delay) |
| Safe startup sequence | Implemented | Startup data validity filters and automated retry sequence (max 5 retries) verified |
| CHAMP walking on hardware | Not yet achieved | Motor synchronization issues at startup under full system weight require further parameter tuning |
| Full closed-loop locomotion | Future work | Physical walk bounded by project time constraints and dynamic parameter calibration limits |
| Joint | Mean Tracking Error Range [rad] | Standard Deviation [rad] |
|---|---|---|
| Abduction/Adduction (Abad) | – | |
| Hip Pitch | – | |
| Knee Pitch | – |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Kurumbaparambil, V.; Rajanayagam, S.; Twieg, S. Practical Integration of Open-Source Control Architectures on Custom Quadruped Robots: Simulation Validation and Hardware Interfacing. Sensors 2026, 26, 4730. https://doi.org/10.3390/s26154730
Kurumbaparambil V, Rajanayagam S, Twieg S. Practical Integration of Open-Source Control Architectures on Custom Quadruped Robots: Simulation Validation and Hardware Interfacing. Sensors. 2026; 26(15):4730. https://doi.org/10.3390/s26154730
Chicago/Turabian StyleKurumbaparambil, Vishnudev, Subashkumar Rajanayagam, and Stefan Twieg. 2026. "Practical Integration of Open-Source Control Architectures on Custom Quadruped Robots: Simulation Validation and Hardware Interfacing" Sensors 26, no. 15: 4730. https://doi.org/10.3390/s26154730
APA StyleKurumbaparambil, V., Rajanayagam, S., & Twieg, S. (2026). Practical Integration of Open-Source Control Architectures on Custom Quadruped Robots: Simulation Validation and Hardware Interfacing. Sensors, 26(15), 4730. https://doi.org/10.3390/s26154730

