API review

Proposer: Stuart Glaser

(All these links are to the OLD doxygen location.) This is a review of the ROS APIs of the following controllers ONLY:

Present at review:

  • List reviewers

Question / concerns / comments

Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.

  • Josh
    • CartesianWrench/Twist controllers have no documentation of their ROS API
  • Remove all initXML's
  • Make clear that only the ROS API is being released.
  • Pose controller outputs to the twist controller:
    • Twist over wrench is okay, but still strange
  • For simplicity of the user interface, we will make all the (cartesian) controllers standalone.
  • Pose controller's gains go directly from pose to joint efforts
  • Twist feedforward in the pose controller
    • As part of the ROS interface? Yes
    • Twist also takes in twist and wrench
  • Sending a singleton pose feels like the right way to simply command the pose controller.
  • It's less clear to send this as a small component of a specified trajectory.
  • It would be nice to start THE controller (The Cartesian Controller).
  • But having them all in the same controller means that you need to explain what happens when you switch modes.
  • But what happens if I start a joint position controller and a joint velocity controller? Their commands compose currently.
  • Controllers should share the gains. There should be gains per joint and gains per cartesian-controlled chain).
  • Proposal:
    • JointController, CartesianController, and some trajectory controllers separately.

  • Can share gains, except for i_clamp
  • Want some central storage of kp,ki,kd,i_clamp(both position and velocity) per joint
  • Josh really really needs default configurations and launch files for getting certain controllers up. He doesn't want to deal with the configuration step at all.
  • Wiki: short list of control options (cartesian control for arms, base, joint trajectories for arms, head, etc...)
  • Arm of joint controllers? Just as a launch file? But that doesn't combine the command into one topic (one setpoint).

gains:
  r_shoulder_pan_joint:
    ...
  r_arm:
    kp
    kv
    kpi:
    kpi_clamp:
    that other clamp:

joints:
  r_shoulder_pan_joint:
    gains:
      kp:
      kv:
      kpi:
      (No: kvi it's actually kp)
      kpi_clamp:
      kp_clamp, kvi_clamp???  So, it needs some name, but we're not sure what it is

r_shoulder_velocity:
  type: !JointVelocityController
  joint: r_shoulder_pan_joint (and the gains are found off this, somehow)
  (gains: r_shoulder_pan_joint_gains)

to find the gains, searchparam for joints

r_shoulder_position:
  type: !JointPositionController
  joint: r_shoulder_pan_joint (and it picks out the position gains properly)

r_arm_cartesian_pose:
  type: !CartesianPoseController
  root_name: torso_lift_link
  tip_name: r_hand
  • Gain reuse
  • All the controllers are "controller/command", which makes it easy to mix up what you're commanding. "command_position", "command_velocity", ...
  • We kind of just want to do "goto position". just support move_arm

Meeting agenda

To be filled out by proposer based on comments gathered during API review period

Conclusion

Package status change mark change manifest)

  • /!\ Action items that need to be taken.

  • {X} Major issues that need to be resolved


Wiki: robot_mechanism_controllers/Reviews/2009-08-25 API Review (last edited 2009-08-27 23:01:12 by StuartGlaser)