PR2 Arm Control

From Healthcare Robotics Wiki
Revision as of 01:21, 30 June 2011 by Kelsey (Talk | contribs)

Jump to: navigation, search

Low-level Controllers

Controller Joint Spline Trajectory Controller JTranspose Controller JTranspose Task Controller JInverse Controller End Effector Cartesian Impedance Control
Designer Stuart Glaser Stuart Glaser Adam Leeper Stuart Glaser MIT
Control Space Joint space Cartesian Space Cartesian Space Cartesian Space Cartesian Space
Control Type Joint position, velocity, acceleration control with PID Controls force at the end effector with PD on the Cartesian error Same as JTranspose, shaped stiffness matrix in end effector's frame Position or Velocity Cartesian control with PD control on joint velocities Force-stiffness hybrid control, JTranspose on some DOF, force control on others
Relevant Equations

T = PID(spline(t, trajectory) - q_cur)

T = J^T * PD(x_err) + J_null * (q_posture - q)

Same but: PD(x_err) = R * Kp * R^T * x_err + R * Kd * R^T * x_dot

T = Kp * (q_proxy - q) + Kd * (q_dot_des - q_dot)

q_dot_des = J_pinv * x_dot + J_null * (q_posture - q)

T = J^T * F

F = PD(x_err) or F_des

Control Location Joints User specified Cartesian pose User specified Cartesian pose User specified Cartesian pose Wrist Cartesian pose
Interfaces
  • Actionlib
  • Command topic
  • Command topic
  • Command topic
  • Command topic
  • Actionlib
  • Command topic
Demonstrated Tasks
  • Planning and manipulation stack
  • Scratch approach ver. 1
  • Trajectory playback
  • Overhead grasping
  • Lightswitch
  • Interactive grasping
  • THEP remote control
  • Door opening
  • Invisible surface
  • Sweeping with broom
  • Brushing on table
  • Writing with pencil
  • Flipping pages in a book
  • Cutting a cake
  • Door opening (not smoothly)
Specify Trajectory Yes No No No Yes
Change Gains on the Fly No Yes Yes No Yes, if using impedance control
Integral Control Yes No No No No
Cartesian Velocity Saturation No Yes Yes No, not implemented yet No
Torque Saturation No Yes Yes No No
Notes
  • Waypoints are smoothly interpolated between using splines.
  • Commands can be sent to the controller to be executed in the future.
  • Each point in the trajectory is alternatively an impedance vector or a force.
  • The derivative term is not implemented.