chip updates: can we walk already [updates]
So today my goal is to try to get CHIP to walk around at least do kind of a shimmy or something. The plan is as follows:
(1) we implemented the PID control on the body meaning if it leans any way the legs should counter-act the lean, so...
(2) in theory, if we lift a leg, the platform should automatically stabilize itself...
no, this is not a final control technique, it's temporary because I don't know enough about state-space to even think about trying it. we're working through that issue in 6.302 right now... You have to start somewhere, this is where we're starting.
Okay so that really didn't work. What we're going to do now is bring back the concept of trajectory. And what we'll do is just test until when we can take weight off each foot and make it creep forward that way. I don't think we can get any further unless we achieve a creep gate in some way.
Okay we're going to ignore the IMU for now, we're going to change some parts of master. And we're going to write a new "walk-mode."And for the sake of cleanliness, why make it a whole new python file when we can put it in master for now. We will, of course, separate things later when we realize how much we need to in the autonomy sphere.
Here is the fully written trajectory runner class:
As we can see, we went through a few iterations of the design of this class. The print statements were for debugging purposes so we could choose good epsilon. But basically anytime we want to go to a point on the craft. We add it to the trajectory runner. Then the trajectory runner will go to that point and track the progress to that point using the current_foot positions, and only command the next point when we've reached.
Unlike the old design where this was on the RIO, this does NOT interfere with any IMU stabilization we add later because the IMU stabilization is added directly to the COMMANDS not to the XYZ positions so trajectory has no affect on stability!
And another decision that was made was, since the MASTER class needs to know where the foot positions currently are for the trajectory runner to work. We need a FK callback - from that node's data. And we're going to put trajectory runner in that node so its constantly running at like 60Hz.
We're going to deal completely with the IMU later -- for now we want to figure out the trajectory that will allow chip to walk in a creep gate right.
NOW NEXT STEPS:
So in Master.py we brought back test mode. In TEST mode, there's a little script that allows us to take weight off the individual feet and then lift the feet using joystick commands. So basically, we're going to hard-code in values for lifting and taking weight off and etc until we get the legs to take weight off and lift without the robot falling over. This is going to take some testing and some time. We're going to need the robot off the stand for this one.
And just when you thought we were DONE fixing the encoder wires-a leg decides to perform a 360 and whoops there goes the FR shoulder. Yeet here we go.
So we're going to do a little more of this I think on TUESDAY.