This week I’ve been learning MuJoCo and have some informal things to share about what I’ve learned so far^[I’m talking about the python interface in this article.]:
- There is an opportunity for a design-focused mujoco course / book / tutorial series to introduce people.
- Mujoco’s XML documentation doesn’t serve as a full spec, and is not sufficient for most people to be able to understand its inner workings.
- Few examples of good working dynamic robots exist in the wild
- especially ones with built-in compliance, closed kinematic loops
- good examples of implementing constraints for one or two bodies are hard to come by and don’t span all the corner cases
That said, I’ve learned a couple important things so far:
- It seems that unless you can explicitly calculate a desired pose for your robot, it is hard to implement constraints between two bodies at anything other than the XML-specified, spawned initial position (I don’t mean t=0).
- So far, I don’t know how to – or whether it is possible to – declare your system using one set of coordinates, and then initialize your system in XML to a starting configuration. So far it seems like you can only move joints in Python after the simulation has been imported and all constraints established.
This means, so far, that constraints must be consistent with the way the robot is declared in XML.
More on this soon.