Yet another in the series on building a new leg for the quad A1:
Tag Archives: quada1
A new leg for the quad A1 – Part 2
In the spirit of my last post on the topic, here is another video-only update on a new leg design for the quad A1:
FAB16 Festival Videos
I and the quad A1 had a great time at the FAB16 festival in Somerville this past weekend. The robot got to do a lot of running around, it and I got to meet a lot of new people, and two bands showed up!
Here’s a video of the quad A1 and Spot hanging out trying tricks:
And here’s another one of a “dance off” (kinda) with the School of Honk band. Note that although both robots collapsed at the end of this video, the quad A1 got back up and kept dancing. (Spot wasn’t broken, they just didn’t want to right it when close-ish to people). Thanks to Kathleen and Josh from BD for inviting me into their area and for being such good sports!
At the very end of the day I managed to drive the quad A1 into a sewer grate… here’s the robot carnage that resulted:

Fortunately, only 3D printed parts were broken, so it will be an easy repair.
FAB16 Festival postponed to Sunday, August 15th
The title says it all! Check out the quad A1 and friends there!
mjbots will be at FAB16 in Somerville – Saturday August 14th
Check out the quad A1 and all the mjbots products at the FAB16 festival in Somerville, MA this Saturday August 14th from 10am to 4pm (with a rain date on Sunday).

Working on a new leg for the quad A1 – Part 1
I’m going to try something new for this effort, and instead of making a bunch of blog posts culminating in a video, I’m going to make a bunch of intermediate progress videos. They may, but may not, culminate in an overview blog post. Here’s the first!
mjbots November 2020 Update
Here’s the approximately annual giant video update:
If you’re interested in any of the topics in more detail, I’ve collected links to individual posts for each of the referenced items below.
Thanks for all your support in the last year!
Moteus
Announcement of moteus r4.3: Production moteus controllers are here!
Automated programming and test setup: Programming and testing moteus controllers
Dynamometer: Measuring torque ripple, Initial dynamometer assembly
Continuous rotation: Unlimited rotations for moteus
The virtual wall control mode: New “stay within” control mode for moteus
Handling magnetic saturation: Dealing with stator magnetic saturation
qdd100
Discussion of the overall design, and details on individual sub-components:
- moteus servo mk2
- moteus servo mk2: Planet Input
- moteus servo mk2: Outer housing
- moteus servo mk2: Front housing
- moteus servo mk2: Back housing
- moteus servo mk2: Functional test
- Making the reduced weight servo mk2
- moteus servo mk2: Reduced weight test
And the pre-production mk2 servos: Pre-production mk2 servos
Accessories
fdcanusb: Introduction and bringing it up
power_dist: The failed r2, the closer to working r3, and the final r3.1
pi3hat: Initial announcement, bringing it up, and measuring its performance
Demonstrations
Ground truth torque testing: Ground truth torque testing for the qdd100
Skyentific’s telepresence clone: qdd100 telepresence demo
kp and kd tuning: Spring and damping constants
quad A1 – Hardware
Lower leg updates:
- The first quad A1 leg: Update leg design for mk2 servo
- The first foam cast foot: quad A0 – Improved foot design
- Longer and with a knee gear reduction: quad A1 leg updates
- A fixture to assemble legs: Quad feet construction fixture
- One of the feet failures: Another foot failure
Chassis: The first introduction, and some minor tweaks
Cable conduit changes: New leg cable management
quad A1 – Software
Cartesian coordinate control: Cartesian leg PD controller
Pronking: Successful pronking!
tplot2 and its sub-pieces:
- Updated serialization library
- Revised mjlib serialization design
- C++ serialization API
- Log file format
- tplot2
- Video in tplot2
- 3D rendering in tplot
- Video and telemetry synchronization
Simulation: Resurrected quadruped simulator
nrf24l01 transceiver and its sub-components
- Spread spectrum RF control and telemetry
- Spread spectrum protocol design
- Spread spectrum implementation
- Spread spectrum integration
Smooth leg motion: Improved swing trajectory
Balancing
- Primitive gait balancing – 1D
- Balancing gait in 2D
- Balancing on estimated terrain
- Testing real-life hill operation
All four feet off the ground: Higher speed gait formulation, and Stable gait sequencing
Improved stand up sequence: quad A1 stand-up sequence part N
Speed records:
- 0.5 m/s: Balancing gait in 2D
- 1.7 m/s: First look at higher speed gaits
- 2.0 m/s: Another speed record: 2 m/s
- 2.5 m/s: Another quad A1 speed record – 2.5 m/s
Another quad A1 speed record – 2.5 m/s
In two previous posts (part 1, part 2) I discussed some changes I made to the gait sequencing on the quad A1. Things are working relatively well now, sufficient that I was able to take this compilation video in one sitting without any gait or mechanical failures! I actually took a lot of the outdoor shots from this video in the same session, so things are definitely getting more robust.
Snow day
It’s only October, but the weather is what it is and robots will do what they do!
Walking in semi-rugged terrain
While testing the improved gait sequencing for the quad A1 I got some footage of it traversing a few different types of outdoor semi-rugged terrain.
Tree roots
The first clip shows it walking over some tree roots. In this particular instance, it just uses a high stepping gait, which allows the feet to get on top of the root. The gait sequencing doesn’t handle walking over the taller part of the root very well yet… the robot can get “high centered” on two legs, with the other two flailing in the air.
Gravel
In the second clip the robot runs across some loose gravel and leaves. Here each foot fall skids around a fair amount and kicks up loose debris, but otherwise wasn’t too challenging.
Raised pavers
For the third clip, the quad A1 walks through some grass and over some pavers, which are around 1-3″ raised above the baseline grass level. Here raised steps allow the robot to move at nearly the same speed over the pavers as it can move over the grassy terrain.
Loose bricks
In the final clip, it walks over some loose bricks. With each footfall, the gait sequencing is looking for when contact is made with the ground. That allows the robot to stop pushing once contact is made. The current formulation does attempt to get the legs back to their “average” Z position at the end of each cycle, which is sufficient for this type of terrain, although a longer-term outlook would allow it to tackle even tougher terrain.