ALEX HATTORI

View Original

Wheeled Biped Pt. 2 Mechanical Design

I’ve spent the past few days ironing out the details of the wheeled biped so I wanted to summarize my design process to keep the consistency with blogging about this project.

First I have a quick note relating to the last section regarding simulating the balance controller/segging functionality of the robot. I forgot to take into account how much traction my robot would actually have, and as a result the simulated behavior was way too aggressive. That being said, the math was correct, but the tuning of the LQR weights and the simulated behavior would require wheels that would have a lot of traction. Here’s a video of me commanding a very large forward velocity so it constantly accelerates (while maintaining balance).

In reality, the max acceleration the robot can achieve is mu*g, and when taking into account the rough weight approximated for the robot (~5kg total), the wheel motor could slip the wheel with around a 2:1 of reduction. As a result, the gearbox was scrapped, and the only necessary reduction needed could be done with the belting from the wheel motor to the wheel. In the end I went with a slightly bigger reduction of 2.5:1 for safety. The pulleys after the motor are printed and so with a change of belts, the reduction can be changed.

First, like most of my more complicated designs (AKA not a vertical spinner Battlebot), I began the design with a 2D sketch in Solidworks. Because I was in quarantine, I took my time and made the sketch something that I was confident in, was easy to modify, and was easy to understand, meaning almost every dimension/relation in the sketch had a non-intuition based reasoning for it. Not all of them, but a majority.

On the left is a typical stair height and length, in the middle is the actual designed linkage setup, and on the right is a moveable sketch model which shows the linkage behavior. The moveable sketch is shown in this video. I changed some dimensions/relations since that video so I wouldn’t recommend copying it from that video.

Like Ascento, this design uses a 4 bar linkage (I know they claim to use a 3-bar, but it is actually a 4-bar) to control the upper and lower leg angles and maintain constant X-position of the body. This simplifies the control process by decoupling vertical body movement and balance control. The link lengths I chose to use do a close job of having purely vertical motion, but in reality the body moves in a parabola with a peak X-movement of ~.25” over ~6” of vertical travel. The reasoning for this imperfection is because of how I had to lay out the linkage mates in 3D without parts colliding and keeping in mind belt covers etc. Ascento has similar link proportions and so likely has a similar X-axis “wub”.

As mentioned before, the robot is designed to use a Mini Cheetah/MC Knockoff module for the hip/knee, and a PropDrive 4248 for the wheel. Unsurprisingly, the robot shares many of the design aesthetics of Mini Cheetah from my time with Ben. A completed leg model is shown below. The belts run almost completely internally, and are tensioned with set screws that push on the levers with bearings. Torsion springs on the link on the far right compensate most of the mass of the body. I’m not sure how to model them in simulation yet, but I think a magic force that acts upward on the COM (then Jacobianified to become a Generalized Torque) will do the trick. Will see next week.

Here’s a view of the 3D link layout

And a screenshot of how the legs go together. I put the hip actuators on the outside for a few reasons. One, the wheel motors are quite clunky and cantilevered and gross. And 2nd, wire routing will be easier with the fixed module external rather than having the wires from a moving, external motor on the outside trying to sneak their way into the body.

Here’s the current state of CAD.

As for current specs, the robot is about 6'“-12” tall and weighs ~3.3 kg as shown above (each leg weighs 1.5 kg). I still need to figure out battery, but I’m aiming for a 5ah 6s Lipo. As for other electronics, the controls should all be able to run on a Nucleo, and I’ll probably use some sensor fusion board that spits out euler angles or quaternions (I just ordered a breakout board from Adafruit to test). For controls, I think I’ll have some pre-computed jump trajectory, which will run separately from the LQR balance controller, and human control will probably happen through my Frsky QX7.

Now its time for more detailed modeling of the system!