Interface to carry out robot maintenance operations. The robot must be in IDLE mode when triggering any operations.
More...
#include <maintenance.hpp>
|
| Maintenance (const Robot &robot) |
| [Non-blocking] Create an instance and initialize the interface. More...
|
|
void | CalibrateJointTorqueSensors (const std::vector< double > &cali_posture={}) |
| [Blocking] Calibrate all joint torque sensors. The robot will first move to a proper calibration posture, then start the low-level calibration of all joint torque sensors. Trigger this calibration if the sensed joint torques have noticeable deviations from true values. See below for more details. More...
|
|
Interface to carry out robot maintenance operations. The robot must be in IDLE mode when triggering any operations.
Definition at line 19 of file maintenance.hpp.
◆ Maintenance()
flexiv::rdk::Maintenance::Maintenance |
( |
const Robot & |
robot | ) |
|
[Non-blocking] Create an instance and initialize the interface.
- Parameters
-
- Exceptions
-
std::runtime_error | if the initialization sequence failed. |
◆ CalibrateJointTorqueSensors()
void flexiv::rdk::Maintenance::CalibrateJointTorqueSensors |
( |
const std::vector< double > & |
cali_posture = {} | ) |
|
[Blocking] Calibrate all joint torque sensors. The robot will first move to a proper calibration posture, then start the low-level calibration of all joint torque sensors. Trigger this calibration if the sensed joint torques have noticeable deviations from true values. See below for more details.
- Parameters
-
[in] | cali_posture | Joint positions to move to before starting the calibration: \( q_cali \in \mathbb{R}^{n \times 1} \). If left empty, the robot will use the recommended upright posture for calibration. Otherwise the specified posture will be used, which is NOT recommended. Valid range: [RobotInfo::q_min, RobotInfo::q_max]. Unit: \( [rad] \). |
- Exceptions
-
std::invalid_argument | if [cali_posture] contains any value outside the valid range, or its size does not match robot DoF. |
std::logic_error | if robot is not in the correct control mode. |
std::runtime_error | if failed to deliver the request to the connected robot. |
- Note
- Applicable control modes: IDLE.
-
This function blocks until the calibration is finished.
- Warning
- The robot needs to be rebooted for the calibration result to take effect.
- How to determine when this calibration is needed?
- When the robot is static and there's no payload or external force exerted on it, if RobotStates::ext_wrench_in_tcp still gives greater than 5N reading, then this calibration should be triggered once.
- When running the "intermediate4_realtime_joint_floating.cpp" example, if the joints drift swiftly toward one direction, then this calibration should be triggered once.
The documentation for this class was generated from the following file: