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.
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:
We need to think of an acceptable resolution to this problem. I recommend porting any fixes to cturtle.
trac data: