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:
- Constraints are consistent with the way the robot is declared in XML.
- Constraints are relative to the local frame of the bodies you are working in. This means that you should try to declare bodies that don’t need to be drastically re-oriented in order to line them up to each other before “welding” them together, if possible.
- You can initialize your system to a state in which the constraints are more easily solved, so that even if the xml defines states where the representation is easy but it is in some sort of singularity, you can still solve it in the way you want.
More on this soon….