User:Samirmenon/opcontrol

Operational space control describes how to control the euclidean space motions of actuated rigid bodies that are coupled by holonomic constraints. Operational space controllers compute appropriate actuator commands that make articulated bodies execute desired motions and apply desired contact forces, while compensating for the effects of any intrinsic dynamics. Such controllers are then used to execute any real world (euclidean-space) task that can be parameterized by motions and contact forces.

General description

Translating task specifications (typically euclidean motions and forces at the manipulator) to actuator commands (typically joint-space motor torques) is a challenging and can be solved with two general methods, operational space control [cite] and joint-space control [cite]. Joint space controllers invert the error in task specifications from euclidean- to joint-space and servo on the error at each joint. Operational space controllers, in contrast, servo on errors in task-space, compute the desired task-space forces, and translate them to joint-space actuator commands. Correcting errors directly in task-space helps operational space controllers achieve greater precision than joint space controllers.

Mathematical formulation The goal of operational space controllers is to specify actuator commands for an articulated body, given a task’s motion or force trajectory. Such controllers start by modeling how the articulated body moves according to the laws of physics. Three components which decide how the body moves are its spatial description, its kinematics and its dynamics.

The spatial description defines the geometry (shape, connectivity and spatial lengths) of the articulated body. It is described by a set of transformation matrices which map the spatial transformation from an arbitrary origin to any point on the body. The kinematics description consists of Jacobian matrices that map the velocities of the body’s generalized coordinates to the motion of arbitrary points on the body. Finally, the dynamics capture the inertias and describe how the body reacts to the application of forces.

We can use the Lagrangian formulation [cite] to derive the dynamics as:

Lagrangian = Kinetic Energy - Potential Energy d/dt ( del L/ del dq ) - del L/ del q = tau

Solving the Lagrangian equations for any arbitrary articulated body leads to a set of second order differential equations which describe the articulated body’s motion with respect to its generalized coordinates (q).

M(q) ddq + v(q,dq) + g(q) = tau,

where M(q) is the generalized inertia matrix, v(q,dq) is the vector of centrifugal and coriolis forces and g(q) is the gravity force vector. This dynamics formulation gives us a way to compute the torques required to generate a specific motion.

Given our estimates of M, v and g to be M’, v’ and g’ respectively, and given that we set the acceleration ddq’ to be equal to tau’ (an applied force on a unit mass), we have the generalized forces

tau = M’(q) tau’ + v’(q,dq) + g’(q),

applying which will make the robot accelerate according to

1.ddq = (M−1 M’)tau’ + M−1 [(v-v’) + (g-g’)]

which resolves to 1.ddq = tau’ if our estimates of M, v and g are perfect.

Setting an applied force on a unit mass tau’ thus equivalently generates a set of generalized forces tau that accelerate the system correspondingly. The simplest generalized coordinates for articulated bodies are their joint angles. These generalized coordinates, however, correspond to joint-space control laws since the generalized forces map to joint torques. Since most tasks are specified in euclidean space, specifying generalized forces for them is hard and requires solving an inverse dynamics problem.

Operational space control overcomes the problem of specifying generalized forces by choosing generalized coordinates in task-space (typically euclidean translation x, y, z, and rotation α, β, γ), and transforming the dynamic model with a Jacobian as

Mx = J−T MJ−1 vx = J−T v - (Mx dJ dq) gx = J−T g Fx = J−T Fq