I shared this video with Peter, who then asked:
I saw that a couple days ago. Awesome! And has some cool practical applications. I [couldn't] quite tell if the pitch of the robot was adjustable by the user, or of it always jumped in the same direction. Did you get a sense for that?
It was a good question and one I didn’t have an immediate answer to.
I would actually guess that I don’t have immediate answers to at least 50% of questions people ask me. I have to do some amount of thinking, and sometimes even some research. I think people tend to think I know the answer off the top of my head, I assure you: I am not that smart.
I do have an inquisitive mind, I do know where to look, and I do know how to ask the right question.
I decided to remedy this question though by talking it through, instead of just giving an answer. This is basically my thought processes as it occurred. Except that I got Sin and Cos mixed up and didn’t realize it until I had finished my conclusion. So I had to redo my entire analysis, and that’s what you see here. Please note this is still really just a paper napkin answer:
As far as angle, I’m not sure. I suspect there would be some angle change.
Elevation angle can affect two things, how high it goes and how far it goes forward, and these two things are intrinsically linked through SohCahToa. Height and forward distance can also be affected by the force applied (ceteris paribus). This gives a problem with two independent input variables (angle and power) and two dependent output variables (height and forward distance/range).
Since my primary goal is to jump, I’m going to put most of my energy into that. If I want to jump higher, I can either apply more force or make my elevation angle higher (as long as it’s < 90°). As the elevation angle nears 90° , more of my energy goes into going up than going forward. The proportion of energy applied to going up is defined by Sin and the proportion of energy applied to going forward is defined by Cos.
Also worth remembering is that the Sin[x] + Cos[x] is not a straight line, it’s another parabola that peaks at 45 degrees. The biggest bang for your average buck is to angle yourself at 45 degrees and shoot.
Additionally, Cos (forward) angles that are near 90° have a high rate of change (i.e. going from 80° to 81° has more of a difference than going from 10° to 11°), thus little changes in elevation angles near 90° have relatively larger impacts on how far forward I go. Conversely, Sin (height) angles that are near 90° have very low rates of change. The cross over point for rates of change between Sin and Cos is – you guessed it – at 45° .
Since the goal of the robot is to jump high (not far), it would make sense to only use high angles (above 45° ). To vary height significantly though, you are going to have vary power. Going from 46° to 90° only increases height by ~93% if the force remains the same. In comparison, going from 1 degree to 45 degrees increases height by 164,000%.
Math is great, but if you can’t implement it, it doesn’t matter so let’s turn to what’s practical:
One of the underlying assumptions is if the robot can vary the force it uses and if it could accurately set it’s elevation angle. Setting the angle is pretty easy using encoders, and accelerometers to determine which way is down (if you were jumping from an angled surface, for instance). We’ve also already seen that the jumping leg can move, so adding functionality for precision angle measurements (within a degree, let’s say) is pretty trivial.
The real question, I think, is how does it jump? Delivering energy quickly has always been a problem. Delivering a measured amount of energy quickly even more so. Based on jumping from the ground to the loading dock (1.5 meters in height at most) and then from the loading dock to the roof (probably at least 4 meters), that’s about a 166% increase in height, which is not quite enough as could be accomplished by just varying the angle from 46° to 90°.
Since you can’t gain that height just by altering the angle alone, it makes sense to assume that the jump force setting can be altered.
However, if you change the jump force setting, what does that do to the forward movement (we know it will make the robot jump higher)? It will, of course, move the robot forward even more. How much more?
I don’t know exactly, but probably enough to make some minor angle tweakage worth it. We would have to sit down and work on the math to verify the exact amount. I think it involves something with squaring the derivative of the force divided by the mass. Squaring always make numbers bigger, so I tend to think it would be significant. Suffice it to say, if you don’t want to proportionally more forward when you jump significantly higher, you would have to adjust your jump elevation angle.
Thus I would assume there may be small changes in angle elevation, but that’s hard to estimate given the view-point the videos were shot at. It’s also pretty easy to solve for power required and angle needed to reach a particular height while moving forward only a certain amount (once you figure out what the maths are), so at least the implementation factor is pretty easy from a computing standpoint.
And I’ve spent way to much time on that answer.
As always, please check my work.