Embodied AI Glossary中文

Generalized Coordinates

广义坐标Common

The smallest set of independent variables — such as each joint's angle — that uniquely describes a robot's overall configuration.

Describing a multi-link robot could mean recording every link's position and orientation in space, but those are heavily redundant because the joints constrain them. Generalized coordinates instead use only the minimal set of independent parameters that uniquely fixes the configuration — for a serial arm, that's simply the joint angles q, and the count usually equals the number of degrees of freedom. Their time derivative q̇ is called the generalized velocity; the force paired with each coordinate, the one that does work along that coordinate, is the generalized force — for a revolute joint, that's just the joint torque. The Euler-Lagrange equations, the mass matrix, and most simulators all operate in generalized coordinates. In code, this looks like: MuJoCo stores position and velocity as qpos and qvel, and when a free joint or ball joint is present, orientation is stored as a quaternion, so the position dimension nq can exceed the velocity dimension nv; ROS's sensor_msgs/JointState message (usually published on a topic called /joint_states) publishes position, velocity, and effort arrays keyed by joint name, and is also where “joint state” comes from in many robot datasets.

ExampleFor a 7-DoF arm bolted to a table, q is simply its 7 joint angles. For the Unitree Go2 quadruped in MuJoCo, qpos is 7 (torso position plus quaternion) + 12 (leg joints) = 19-dimensional, and qvel is 6 + 12 = 18-dimensional.

Also called
Generalized Velocities, qpos / qvel, Joint State (joint_states)
Related
Degrees of Freedom (DoF) · Configuration Space (C-Space) · Euler-Lagrange Equations · Floating Base · Joint Space · Proprioception
Sources
Generalized coordinates - Wikipedia
MuJoCo Documentation - Overview (qpos / qvel, nq / nv)
ros2/common_interfaces - sensor_msgs/msg/JointState.msg

See it in the full glossary →