Skip to content

Calibration reset race conditions/issues (ros ticket #4624) #341

@ahendrix

Description

@ahendrix

When calibrating a PR2 or PR2 component, a race conditions can result from the calibration sequence. When motors are reset--even if they are not halted--the calibration controllers "reset" to the uncalibrated state and recalibrate the joints. If a controller is unloaded/stopped before the joint is recalibrated, the joint is uncalibrated, and the robot will not be operational.

The joint calibration controllers reset their state when the starting() method is called. This method is called when motors are reset, even if the motors were not halted in the first place.

Possible fixes include:

  • Not resetting the calibration state in the starting() method. Since we do not support uncalibrating/recalibrating in cturtle, this would not change our supported API or functionality.
  • Changing the calibrate.py/calibrate_pr2.py scripts to check if the joints are all calibrated before unloading the controllers. Both scripts would need to change.

We need to think of an acceptable resolution to this problem. I recommend porting any fixes to cturtle.

trac data:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions