chip updates: programming in a much more basic model [updates]
Okay so today I’m going to spend time developing and programming in the new leg model for chip. First lets describe what we have tried so far, why it didn’t work, and what the order of the next steps is.
First, we tried using very basic 2D inverse kinematics to just get the values of the shoulder angle and knee angle we need to move the foot to a certain XY coordinate. This worked mathematically but what happened is when we took the output thetas and commanded the motors - since we were doing PID control and the error was huge - the system over current and shut off.
So the next logical thing to do was generate a trajectory and go step by step in x and y. And I thought if we were going to do that the logical thing would be to use our more complicated Jacobian model which is more accurate to the leg but also gives us the ability to recalculate at each time step since we were diving the point to a linear trajectory.
So in theory the Jacobian model would work but the problem is when we implemented it - even if the leg did go to the right place - it was really really slow because we had to recalculate so many things at each time-step. What we realized is that we shouldn’t be generating a stream of xy coordinates on the robot. We should take an xy coordinate, find a closed form theta, and THEN generate a trajectory of THETAS to limit the speed of the leg like that!
So that’s exactly what we are going to do. Use the simple math model and generate a theta trajectory not a xy one.
Note on simplifications: our 2D model does NOT allow for the Z component. What we will likely do is create a new simplification for Z dependent on xy and theta. But not now. We want to get this to work first.
KEEP IT SIMPLE.