scout leg design & some M.A.T.H. [updates]
Scout's legs have a complicated story. They were designed in that there was math done behind them to verify that the legs and motors would be able to sustain the forces we were asking them to at least statically, but the leg in the above picture was "designed" mechanically in a not-so-traditional way. We'll go through the leg prototype mechanical design and assembly first, and then get into the math that proves it works.
leg design itself, mechanical
We started with the fact that the leg would need two actuators in the actual assembly (the third actuator for the leg's motion being mounted in the frame itself). The actuator mounted in the body moves the leg forward and backward with respect to the body. We need an actuator that moves the leg out and in (away and towards) and an actuator to move the lower leg with respect to the upper leg. We also know that there are two possible configurations of the actuator we designed, the actuator with a straight output shaft and an actuator with a 90deg output shaft (see the post on actuators).
The above drawing consists of some initial sketches on what we thought the actuator may look like. One regular actuator would mount to an L-Bracket that connects to the actuator mounted to the body. This finishes up our shoulder joint, and is how the leg mounts to the body. Then the 90 degree actuator mounts to the second shoulder actuator using some bracket system and the shaft points away from the body of the robot so it may rotate the lower leg in the correct direction.
This is all really interesting and fantastic, but how do we really build this device? Instead of spending time on the internet or McMaster or whatever, we took a trip to Home Depot to browse the aisles. Honestly, I know it's strange, but what's really helpful for me when I'm struggling to figure out how to build something, a walk around Home Depot looking at the options lying around is a great source of inspiration.
Walking around through the electrical section first, the electrical boxes wouldn't work, try ducting which also didn't work, maybe PVC, also failed, finally getting to the lumber section of all places and found simpson strong ties. Two specific ones, the 90 degree brackets and the plates that were perfectly the size of one the actuators. The sketches below represent the idea that resulted.
At its most basic, use two plate simpson strong ties to sandwich the actuators in the orientations we needed. We attach the actuators to the plates with standoffs (needed because the motor diameter is larger than the max width of the gearbox). Then an L-Bracket with a 1/2" Hex Hub bolted to it would attach to the actuator for the lower leg would mount to the lower leg itself: a tripod extension leg that I found in a box. I immediately ordered three more.
The parts from McMaster came in (including a thicker L-Bracket to mount the leg to the body, screws, and the standoffs above which are steel). Below is the build and assembly log.
If you look at the actual robot mounting, you'll notice the actuators in the rear at the top of the leg (the ones part of the shoulder joint) are actually flipped such that the NEO motors always point outwards from the body. This avoids any interference of the leg with the body.
Now there's only one thing left. The actual feet of the robot. Looking at the bottom of the robot, there's a nice solid metal stick sticking out the bottom of the lower leg because of the fact we used a tripod leg (it's actually a very precisely threaded 1/4"-20 screw thread). So we need to do something about the lower part of the leg and actually make it able to grab the ground.
On a trip to IDC, the printers printed in TPU which is a flexible rubber-like 3D printable material that's decently grippy enough for a robot foot, at least that's the current assumption. So we thought why not, let's try this, and see if it works.
The TPU feet got printed and attached to the robot leg, and they fit perfectly. See the pictures above for tolerances and things for the foot itself and how it was designed. Basically, the foot is a press-fit that takes advantage of TPU's flexible nature and is designed for the carbon-fiber legs we used.
math for leg design
Now it comes down to the number. All the numbers are being run with the assumption the actuator is able to handle 100Nm of torque, as is the rating of the Versa-planetary discussed in a different post.
background and assumptions
These are the very basic analysis of the system which just includes the constraints of the system and the assumptions as well as the manufacturing considerations that result from the assumptions.
now let's look at the loading conditions
The loading conditions try to figure out how each leg is taking the forces, how each motor is taking the forces and torques, it's just a basic intuitive analysis that will help us develop the mathematics later. We also looked into DH parameters and other initial methods of analysis, all of the methods were determine to be too complicated so we resort to a 2D assumption/simplification in the later calculations.
attempt number one [failed calculations]
This is the first attempt at calculating the required torques on each of the motors, the calculations were incorrect. Look through them and later it will be explained where the wrong assumptions came from. This is the first attempt at the 2D simplification.
So what was the problem with these calculations? It's explained with more detail and diagrams later, but the first assumption was there was no x-forces on the leg which is NOT TRUE there is always some friction. Also, it was assumed the lower leg was exerting forces in the incorrect directions. More explained later.
second attempt at calculations: the quasi-coefficient of friction
The second set of calculations fixed the force directions wrongly assumed in the first one, but this time also accounted for friction. Now we don't KNOW what friction is right? There's no way to know. We can assume it is static friction because the leg isn't slipping in the static case, we can assume that the friction less than the max static friction which is proportional to the normal force times some coefficient of static friction which we also don't know.
So what do we do about friction? We MAKE IT UP. That's right we MAKE IT UP. Let's assume that we are at some level of static friction and that friction is proportional to the normal force on the foot, meaning our friction force is mu_quasi*Fn (Fn being the normal force on the foot and the mu_quasi is the fake coefficient of friction). NOTE: this has NOTHING to do with real work physics this is NOT how static friction works. But this doesn't mean we are WRONG. The force of friction can be anything less than the max static friction which is mu_static*Fn, so as long as mu_quasi is less than mu_static then we are GOOD. This is the concept we call the quasi-coefficient of static friction. It's a COMPLETELY FAKE COEFFICIENT that just helps us do our calculations. We're going to assume the x-force on the foot is mu_quasi*Fn, and the y-force is just Fn, the whole weight of the robot W is applied to the joint at the top of the leg, and do all the calculations in terms of this mu_quasi. Then we will plot the torque required by the actuators based on the quasi-coefficient of static friction and then we will be able to determine the worst case scenario torque required.
Inutition says, no frition will mean the robot needs to handle the most torque. Let's see if the calculations match that.
Now, let's look at the results of this. One of the actuators requires 113Nm of torque about to keep the dog standing and the other 32Nm of torque in the standard standing position where both of the legs are at 45deg angles from the vertical. 45deg was estimated to be the location where the max torque would be required on any actuator in a static case. There may be more needed in the dynamic case depending on how the legs are position. For most normal cases of operation the 45deg angle should provide an accurate estimation for what the maximum torque required is. We will later run some more extensive analysis on ALL of the angles the robot legs can achieve for now we will use 45deg as an estimate.
Back to the analysis, the 113Nm of torque is higher than the 100Nm we rated the actuator at at max. However, this does assume that all of the robot's weight is on that one leg. We should at any time only have half the robot's weight on the leg. This also estimates the robot's weight to be 50kg. That's a heavy robot, and the robot should weigh less than that. This number also assumes there is no friction helping the robot stand. Which definetly isn't the case. Assuming friction only helps in this case, which makes intuitive sense and is supported by the graph and the free body diagrams, this number should be still smaller. The actuator should pass with a small safety factor. We also should not have many concerns with the Neo motor itself.
Remember, these are preliminary calculations based on the initial intuitions about the system. Dynamic testing and further math later will reveal any problems with the system.