StrideForge
Quadruped design and learned walking in MuJoCo
· Updated
I’m working on StrideForge to learn more about legged robots and simulation. The work now covers the leg mechanism, a four-legged CAD assembly, learned walking in MuJoCo, an initial dog-motion imitation run and a later generation-two walking audit. The physical robot is still to be built.
I’m keeping a public build journal with the design revisions, images and simulation results.
Leg mechanism
Each leg has three AK45-36 actuators: hip roll, hip pitch and knee. That gives the quadruped 12 actuated joints. The latest revision has separate left and right leg assemblies, with both knees folding rearward.
The thigh and shin each have 160 mm between joint centres. Short 3D-printed end fittings connect to purchased 20 × 20 × 80 mm aluminium profiles using standard fasteners. I’m using vendor-derived motor housings and output parts in FreeCAD to study the mechanism and how the parts fit together.
From CAD to simulation
The standing model has URDF and MuJoCo versions with a floating base. Its estimated mass is 8.731 kg. The simulation uses idealised actuators within the documented limits; the motor behaviour will need checking against measurements from a physical unit.
The earlier B2 standing test ran for six seconds with all four feet in contact with the ground. Peak joint torque was 4.596 N·m under an 8 N·m simulation cap, and the maximum body tilt was 1.87°.
That gave me an initial check of the assembled model, contacts and standing control. I then moved on to the B3 walking model and PPO training.
16 October: first dog-motion imitation run
The first imitation-training run is complete. I used the B3 MuJoCo model and a retargeted dog-trot reference, with PPO learning small joint-target corrections around the reference controller. This follows the earlier reward-only walking policy.
The run collected 1,001,472 transitions in about 18 minutes on CPU. The logged mean episode return rose from −4.49 to 56.90, and the final mean episode length reached the full 20-second limit. Those are training statistics; they don’t by themselves show how closely the robot follows the dog motion.
A separate 20-second check with the recorded training controller settings reached 3.39 m, averaging 0.170 m/s without falling. It is still below the reference’s 0.223 m/s, and foot lift is uneven, particularly at the rear. Repeating the same fixed-start check gave the same trajectory, so this doesn’t establish robustness to different starts or disturbances.
The motion reference comes from motion_imitation / AI4Animation, with source motion data licensed under CC BY-NC 4.0.
20 October: generation-two walking audit
This later experiment learns walking without a reference trajectory, separate from the first imitation run above. Its second generation is complete. All three candidates, C1, C2 and C3, finished 499,712 new training steps each, on top of a separate inherited 499,712-step parent history. Training stopped after this generation. I haven’t selected a winner or started another breeding round.
The final check used five held-out seeds per candidate, deterministic actions and frozen normalisation. All 15 trials reached the full 20 seconds with no recorded falls, non-foot ground contacts or self-contacts. That is a result from these simulation trials, not a hardware safety claim or a general robustness test.
The forward-speed target was 0.500 m/s. Mean speeds across the five seeds were 0.501 m/s for C1, 0.531 m/s for C2 and 0.545 m/s for C3. C1 was closest to the requested speed. C3 had the smallest sideways displacement: 0.14–0.43 m over 20 seconds, compared with 0.98–1.45 m for C1 and 1.03–1.34 m for C2. These displacements are measured relative to the starting heading.
Moving forwards is not the same as clean walking. Foot lift is still uneven, and the rear feet still slip while carrying load. C3’s rear-left foot had only about 5.5 mm of unloaded 95th-percentile clearance, averaged across the five seeds. This percentile is not a maximum lift, is not directly comparable to a peak-clearance reward target, and is not a guarantee of physical separation.
The rear-foot load-weighted contact slip measurements were 0.178 / 0.134 m/s for C1, 0.156 / 0.116 m/s for C2 and 0.181 / 0.120 m/s for C3, in rear-left / rear-right order. These measure tangential speed at the actual contact points, including foot rotation, and are averaged across seeds. C3’s straighter path therefore does not make it an automatic winner.
Keeping training failures in view
The clean final trials should not hide what happened during exploratory training. C1 recorded 11 non-foot ground-contact events, C2 recorded one, and C3 recorded one self-contact event. None recorded a fall. These are training events, separate from the 15 deterministic final tests.
The final clips replay recorded states from seed 2101, using the same prespecified 10–18 second interval for each candidate, at 25 fps and real speed. The enlarged visible floor, world-anchored 10 cm grid with darker 50 cm lines, and fill light are presentation-only changes. They do not change the recorded robot states or physics, and there is no frame interpolation or time stretching. Checkpoints and the raw evaluation records are retained for audit and restoration.
What comes next
The open questions are cleaner, more balanced foot lift, lower loaded slip and better straight-line tracking. A separate frozen-policy friction study is pending, to check how the same learned movement responds to changes in grip. No conclusions from that study are included in this unchanged baseline. More grip cannot be assumed to fix the gait. The physical robot is still to be built, and the actuator model still needs measurements from a real motor.
The build journal has the run settings, measured results, limitations and earlier design revisions.