Configuration of calibrator module
The calibrator module for Ethernet robots is parametricCalibratorEth; it uses the parameters written in body_part-calib.xml file. Please follow the link to get the meaning of each parameter.
Here is reported a brief description of calibrator module and the role of some parameters are involved in calibration and parking procedures.
The calibrator in the startup phase launches the calibration procedure: after a motor control devices has been configured, it tries to calibrate its joints. The calibration procedure is composed by three steps:
- Sets a safe pwm limit: uses value of parameter
startupMaxPwm, like the maximum pwm applicable to the motor; - If the parameter
skipCalibrationingeneral.xmlis false, it sends the calibrate command to each joint with the parameters written in the calibration file, else skips following steps leaving joints in not configured state and exits. If you are interested in details information about calibration and its parameter see here. (The link will be available asap, sorry for the incovenience). - If the joint completes the calibration sucessfully, then it tries to move it to the
startupPositionusingstartupVelocityspecified in calibration file. If an error occurred in calibration phase, the joint is in fault error. - If the
startupPositionis reached, then the joint is ready, else is in fault error.
When the user shuts down Yarprobotinterface, the calibrator moves all joints to the park position, that is the position specified in positionHome parameter using velocityHome.
Maintenance features
Relatively to the calibration procedure, users might configure an optional group in the general.xml file. Specifically, the group is termed MAINTENANCE and contains at the moment just the skipRecalibration parameter.
To enable it, add the following within general.xml:
<group name="MAINTENANCE">
<param extern-name="skipRecalibration" name="skipRecalibration"> false </param>
</group>
Notice how the parameter can be defined with the property extern-name, meaning that you can overwrite its value when running the yarprobotinterface command:
yarprobotinterface --skipRecalibration true
Note
The option skipRecalibration can be set to true or false (default). If set to true, the robot will skip the calibration procedure when the yarprobotinterface is started over and the boards are not switched off.
- The very first time when control board devices are launched through the
yarprobotinterface, the calibration procedure runs normally, irrespective of the parameter value. - Subsequently, if
yarprobotinterfacegets restarted while keeping the boards powered on, then the whole robot will skip the calibration procedure on all joints, which will be set toIDLE. - Since the group and the parameter are not mandatory for running the robot, one can omit defining the group inside the
general.xmlfile and the software will set it tofalseby default; therefore, the robot subparts will calibrate each time the devices are restarted, as it normally happens. - If some joints won't calibrate at the first start of the robot, they won't skip the calibration procedure on the following runs. Thus, those joints will normally calibrate while all the others will be set to
IDLE. - If the parameter is set to
truebut the boards are restarted, the first time the robot devices are run the calibration procedure will execute normally. - As defined above, since the parameter is configured using an
extern-name, its value can be overwritten when running theyarprobotinterfacewithout modifying the configuration files.
Danger
skipRecalibration is a feature thought to be used by expert users, and it must be used with caution. In particular, in the unlikely event that a joint won't calibrate during the first yarprobotinterface run, if this feature is enabled, the same joint will keep calibrating during the subsequent runs. Thus, collisions may occur among joints in idle and the joint calibrating.