Interface to run maintenance operations on the robot.  
 More...
#include <maintenance.hpp>
 | 
|   | Maintenance (const Robot &robot) | 
|   | [Non-blocking] Instantiate the robot maintenance 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 run maintenance operations on the robot. 
Definition at line 18 of file maintenance.hpp.
 
◆ Maintenance()
      
        
          | flexiv::rdk::Maintenance::Maintenance  | 
          ( | 
          const Robot &  | 
          robot | ) | 
           | 
        
      
 
[Non-blocking] Instantiate the robot maintenance 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 fault occurred during the calibration or failed to save the calibration result.  | 
  
   
- 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: