MODULE 10 / DIGITAL WORKSHOP
Joints, frames & descriptions
Read the body and joint hierarchy in BDX-R’s model. Trace axes, origins, limits and actuator mappings, then build a small joint inventory with Python.
By the end, you can…
- Explain parent/child frames and the meaning of a positive joint angle.
- Read the main differences between URDF and MJCF organization.
- Inspect joint and actuator names without assuming array indices match.
Your software workbench
Physical → digital
At 90°, forward along the robot’s x-axis becomes movement along the world’s y-axis.
Frames travel with their bodies
A coordinate frame is an origin plus three axes. A point can have one coordinate in the room’s world frame and another in a moving torso frame. A transform describes the translation and rotation connecting them. When you move a parent body, its child geometry moves with it, while a child joint adds its own allowed motion.
Use the right-hand rule for a positive rotation: point your right thumb along the positive axis; your curled fingers show the positive turn. The axis is expressed in a specified frame. A vector written 0 1 0 does not always mean “up on the screen,” because the camera and body may be rotated. Inspect the model’s frames before changing signs.
Links and joints form a mechanical tree
URDF typically describes rigid links connected by named joints with parents, children, origins, axes and limits. MJCF nests bodies and places joints inside the body hierarchy. Both can represent a robot, but their supported features and defaults differ. Conversion requires checking the resulting meaning rather than assuming the text is interchangeable.
A fixed connection contributes no relative motion. A hinge or revolute joint permits one rotation. A free base lets the complete robot translate and rotate in the world. Its orientation representation can use four quaternion coordinates for three rotational degrees of freedom, so position-array length and velocity-array length need not match. Do not use the number of qpos entries as the motor count.
MuJoCo calls its position-coordinate array qpos and its velocity-coordinate array qvel. A free body contributes seven position coordinates: three for location and four for its quaternion orientation. It contributes six velocity coordinates: three linear and three angular. This is why the two arrays can have different lengths even though they describe the same moving body.
Map names before positions in an array
The audited bdxr.xml contains fourteen named actuators for the ten leg joints, neck pitch and three head movements. Its visible ears do not add two ear actuator entries to that map. A policy can list joints in a particular order that must be mapped to the simulator’s actual joint and actuator addresses. A matching count alone does not establish a correct mapping.
The selected model gives Left_Hip_Pitch an axis of 0 −1 0 and Right_Hip_Pitch an axis of 0 1 0. This is a concrete reminder that mirrored-looking parts can need opposite coordinate signs. These are model definitions, not verified electrical motor directions or encoder offsets for a physical build.
Describe, actuate and control are separate steps
A joint definition describes allowed movement. An actuator definition specifies how a control input produces force through a transmission. A controller decides the input over time. In BDX-R’s audited runtime, the backend modifies the XML actuator behavior into position control using policy gains. Opening the XML alone therefore does not reproduce the full walking controller.
A complete model handoff includes units, origins, inertias, collision geometry, limits, actuator semantics, default pose and joint mapping. Use a fixed pose to check geometry and directions, then controlled motion to check behavior. The next modules will load the model into MuJoCo and inspect these ideas dynamically.
WORDS YOU NOW KNOW
- Transform
- A translation and rotation relating two coordinate frames.
- Kinematic chain
- Bodies connected by joints whose motions combine to position an end part.
- URDF
- Unified Robot Description Format, commonly used to describe links and joints.
- MJCF
- MuJoCo’s native XML format for physical models and simulation settings.
YOUR CALL
Finished with this module?
0 of 7 lab steps checked. 0 of 3 questions answered. You decide when the module is complete. Revisiting or editing it will not change your decision.
You can reopen it later. Checking every box will not automatically complete it.Go to the source
Primary references for this module. Use the version and hardware revision named in the lesson.
Pinned BDX-R full model XMLMuJoCo body and joint referenceROS URDF tutorialsCoordinate conventions