The journey of build the quadruped robot(Stanford Pupper)

The journey of build the quadruped robot(Stanford Pupper)

In March, when I knew the Stanford robot team would release an inexpensive and open-source quadruped robot, I was so excited and looking for it. In my option, it is an amazing project because the quadruped robot BOM cost is much cheaper than others. After they released to GitHub, I started my journey. Finally, I built two Puppers. I’d like to share my know-how with everyone. You can find my demo video as below link,

https://www.youtube.com/watch?v=ML8riPCMWrU

Summary

1. During my journey, the most out of control item is the shipping time because of the coronavirus situation.

2. The official website BOM cost does not include the extra materials in case you break any during assembly or use.

3. Regarding technical questions, please refer to the below FAQ.

About serve motors

About CLS6336 Servo, Nathan recommends to buy a few extra servo motors in case you break any during assembly or use. I have to say the suggestion is very important for not so experienced guys, especially for me, I broke 4 motors for my stupid operation. It means I lost more than $100. For the first time, I bought only 12 motors, but I have to buy additional ones later. In my opinion, I don’t suggest you use Loctite at first except you have enough experience. I drove myself to do more housework to prevent my wife’s challenge. So, God bless you.

No alt text provided for this image

 

About routed carbon fiber

I made an order (2 sets to prevent unpredictable potential mistakes) on great3d.com, the manufacture, and shipping fee ($120) is much more expensive than the real BOM cost ($84/2 sets). Anyway, I didn’t stop my journey because of the price. I cooked a cup of coffee for my wife and said her son should like the robot. You know, my wife supports me.

No alt text provided for this image

The good news is NOW you can buy them online with ONLY $95, free shipping is restricted to US Orders Only, it means if you are not in US, need additional shipping & handling fee and especially for the shipping time(I made my order on 23-March, but I got them until 30-April because of the coronavirus situation, I locate in Beijing, China).

No alt text provided for this image

About inner and outer hips, I printed PLA on www.3dhubs.com. You know, I don’t care much about the price, but the shipping time.

About the shipping

The official website BOM cost does not include the shipping fee and time. To me, I spent more than $150 shipping fee. You know, there are many materials come from different vendors. What worries me more is the shipping time. If you are not in US, it is hard to know when you will get your materials.

About the documents

Until now, I have not seen any more document except the README on the GitHub website. Nathan recommend a book named Legged Robots That Balance written by Marc H.Raibert. Of course, Rome was not built in a day. Hope there will be more documents soon.

If you have any questions, you can ask on the below link, Nathan often give quickly feedback, https://groups.google.com/forum/#!forum/stanford-quadrupeds

 

How to get one Pupper quickly and cheaply?

In general, when you buy something, it is hard to get the discount if you buy ONLY one, but if you buy some you can get the discount. To me, my real cost is about more than $1000 because of my stupid operation. If you have no much experience and try to DIY one, the cost is hard to less than $900 including the necessary tools (Battery Charger, SD card) but NOT including the express fee.

I am an engineer, but also familiar with the supply chain. If you want to buy one, you can send me an e-mail(afreez.gan@gmail.com), or go to my website(www.mangdang.net/Product?_l=en).

 

--FAQ (from https://groups.google.com/forum/#!forum/stanford-quadrupeds)--

Q1: The robot cannot walk in the "trot mode". I think the robot's speed is too fast. Can you tell me where I can control the speed of the robot? Also, I want to interpret the dynamics of robot behavior.

A1: You can adjust the frequency of the trot in the config file here: https://github.com/stanfordroboticsclub/StanfordQuadruped/blob/master/pupper/Config.py. Look for the two variables: self.overlap_time and self.swing_time. I unfortunately don't have anything on the dynamics of trotting/walking.

Overlap time refers to the duration which all four feet are on the ground before picking up one pair of legs. Swing_time refers to how long a leg will be in the air per step. One cycle of trot is broken up into four phases: 1) all four feet are on the ground (duration=overlap_time), then 2) one pair of diagonals legs lift up and swing to their next locations (duration=swing_time), then 3) all four feet are on the ground again, and finally 4) the other pair of diagonal legs lift up and move to their next locations. So as you might be able to deduce, one complete cycle of trot takes 2*overlap_time + 2*swing_time.

If you'd like to slow the trot by 2x, then you can double each of these values to overlap_time=0.2 and swing_time=0.3. However, the robot becomes unstable if the frequency isn't quite right and you'll have to experiment a bit yourself.

We unfortunately don't have a walk implemented since walking is actually tricker to implement than trotting. This is because you're actually more unstable during a walk then a trot since a walk is asymmetric.

Q2: How to select Servo?

A2: With regards to choosing a servo, we previously had used the Savox 1260MG which cost quite a bit ($80per) and would overheat very quickly when pupper was just standing. We then switched to the CLS6327HV, which is slightly faster and slightly weaker than the CLS6336 but our first batch of those servos were jittery and was quite noisy. We then bought new CLS6336 and CLS6327 servos, and for some reason (new firmware?), both types were smoother and quieter. In the end we selected the CLS6336 as the official servo in case people wanted to put more payload on the robot. Basically, the main criteria for choosing new motors are 1) they don't over heat 2) can move fast enough to track the swing trajectories correctly and 3) have enough torque to support pupper on 2 feet. For the last requirement, we look for servos with a peak force to weight ratio of at least 4.0 so that when pupper is standing on just 2 feet, it has a T/W ratio of at least 2.0. I haven't tested any servos slower than the CLS6336, but it's possible they'd work too. You might be limited in terms of how fast the robot can walk around.

Q3: About the IMU

A3: The IMU was previously being used to help stabilize Pupper, but we found that even though our compensation method made the robot walk more smoothly, it also tended to make the robot walk with its body tilted to the side (bug, not a feature) so we ended up scrapping it for the time being. The method that we used was like a chicken-head stabilization type of thing, but instead of stabilizing the head, we stabilized the feet, so that even if the robot was falling over, it would still put its feet correctly on the ground. On top of that, we added a small term to attempt to bring the body back to horizontal, but we couldn't find a satisfactory balance between strong correction and smooth walking.

Q4: Is there any theory book for reference?

A4: Please refer to <Legged Robots That Balance> by Marc H.Raibert

Others:

I(Nathan) like the idea of merging the joystick code with the main code and removing the UDPComms dependency. We might still stick with our python PS4 joystick library since then we have control over the rumble and led color.