Robot Manipulator Control

Position control, velocity control, force control, and WTF is impedance?

Introduction

For a given desired pose and orientation in task space (cartesian space) of the end-effector, how to control the robot arm?

Position Control

Poses and vels are provided from generated (task space) trajectory and we want to follow that.

  1. For time coming time t, get the pose
  2. Get the joint angles (and joint vels) using inverse kinematics (and diff ik)
  3. Use the resulting joint angles as the desired angles in a PID controller which outputs motor torques based on current joint angle.
  4. Repeat until end of trajectory

Based on the difference between desired angle and current angles (and the gains), the torques can be quite high and dangerous to humans.

Can use nested loops instead of simple one loop of feeding in pose and outputting power. Have an inner loop which accepts a target velocity and outputs power which runs more frequently. Makes the motion more smoother and accurate and stable.

Why position control?

Much more common then Torque Control For small robots, with large gear reductions, the number of dyn effects are very difficult to model (backlash, vibrations, and friction). - Simple relations between current and torque breaks down. - For Gear rations » 10, the unmodelled terms are so large, that torque cannot be simply related to current linearly. - Still, a monotonically increasing (tho not linear) relation between torque and current. - Transmission can only decrease energy from system not add. - So with increasing current, torque will increase (not linearly) and so will acceleration.

Velocity Control

If trajectory is given in velocities then, same logic as above but replace with joint velocities instead of joint angles.

Problem of ‘I’ in PID and why PD

Joint Trajectory Controller (in ROS)

Grav comp term in control command

\(u = -\tau_g + K_p(q_d - q) + K_d(\dot q_d - \dot q)\)

Inverse Dynamics feedforward terms

Torque-controlled

(Direct) Force Control

Indirect Force Control: Impedance Control

Hybrid position/force control

\[m \begin{bmatrix} \ddot{x} \\ \ddot{z} \end{bmatrix} + b \begin{bmatrix} \dot{x} \\ \dot{z} \end{bmatrix} + k \begin{bmatrix} x - x_d \\ z - z_d \end{bmatrix} = f^{F_c},\]

General case (using manipulator eqns)

Joint Stiffness control

Cartesian stiffness and operational space control

Difference b/w Position (PD) control and Stiffness control