robot_calibration icon indicating copy to clipboard operation
robot_calibration copied to clipboard

Workflow for Wizard

Open mikeferguson opened this issue 6 years ago • 0 comments

I've been thinking about how to create a wizard for this, so that people don't have to create/update lots of YAML files manually (which is also error-prone). In the mean-time, this ticket serves as somewhat of a brief HOW-TO to manually create the files.

  • Load and parse the URDF (from parameter server?)
  • User selects the "base_link" which is the frame into which all points will be projected during calibration step.
  • User defines the "chains" by:
    • Entering a name for each
    • Selecting set of active joints that constitute the chain
    • Selecting the follow_joint_trajectory action namespace (introspect options from running system?)
    • Selecting the planning_group to use with MoveIt (if any)
  • User defines the models by adding a model of a given type and then configuring the following:
    • For "chain" - select end effector frame.
    • For "camera3d" - select camera frame, select topic (introspect options from running system?)
  • User defines the finders by adding a finder of a given type and then configuring the following:
    • PlaneFinder
      • Select "camera_sensor_name" from available "models"
      • Select "topic" to subscribe to
      • Select "transform_frame" (defaults to base_link selected above)
      • Set min/max x/y/z
      • Set "points_max"
      • Select true/false for "debug"
    • CheckerboardFinder
      • Select "camera_sensor_name" from available "models"
      • Select "chain_sensor_name" from available "models"
      • Select "topic" to subscribe to
      • Set points_x, points_y, size
      • Select true/false for "debug"
    • LedFinder - probably not worth adding to wizard (just preserve if it exists)
  • User defines error_blocks by selecting/adding by type first:
    • chain3d_to_chain3d - Select model_a, model_b from models.
    • chain3d_to_plane - Select model_a from models. Set a, b, c, d and scale.
    • plane_to_plane - Select model_a, model_b from models. Set scale_normal, scale_offset.
    • outrageous - Select param from list of possible free params. Set joint_scale, position_scale, rotation_scale.
  • User selects free params through a series of checkboxes
    • Available names are each joint name, fx/fy/cx/cy/z_offset/z_scaling for each camera)
  • User selects free frames through a series of checkboxes
    • For each free frame, select x/y/z/r/p/y. Also do check that 0, 1, or 3 of r/p/y are set (setting two to true doesn't do what you think -- these are axis-magnitude internally).
  • Finally have user manually move arm while both capturing data for the first calibration and creating the bag file for export.

As with the MoveIt wizard, we would want to be able to reload the YAML files exported and edit them.

mikeferguson avatar Jun 07 '18 20:06 mikeferguson