chip updates: getting 3D inverse kinematics to work!!!! [updates]
Yesss so as we mentioned a few posts ago we were looking at using PyBullet to control chip from now on as it was a little less accurate. We also tried to write our own 3D IK before but it was slow and not ideal. PyBullet + URDF solves most of this. We are having a slight issue though:
We posted the issue on GitHub here: https://github.com/bulletphysics/bullet3/issues/3217 we'll follow along but for now we want to list some things we learned and the process by which we did this.
First we built an inverse kinematics system for a single leg using a URDF file, we used the IK solver in PyBullet itself
The above script served as a test to see if we could do IK with one leg.
We then kind of followed a similar strategy as these guys: https://spotmicroai.readthedocs.io/en/latest/kinematic/
We used a very similar body kinematics model, then added in the "legs" to the model at the end.
We then send these commands to the legs to see what comes of them and we have the following results.
First, the "x" the "y" and "z" commands are working relatively well
The "roll" "pitch" and "yaw" are like correct but need some work
The issues really center around the strange leg geometry. To really get the behaviors we want, we probably need to set the RPY at the same time as XYZ? Yaw might need to be re-written all together. Here is a picture:
We're not covering any of this in super detail right now because the paper will cover in detail how we did this. The next steps are to figure out how to make these movements more interesting and fluid if that makes sense? Something like this:
We will see how it goes but for now we have some form of simulation running!