5.2.2.5. PID
Functionalities
The class mtsPID is part of the sawControllers library.
It provides:
A PID controller
Support for disturbance/observer (in lieu of Integral)
Clamp setpoint positions to stay within joint position limits
Cap maximum PID output to stay under maximum joint torque allowed
Simple PID tracking error, i.e. compares the joint setpoints and measured. If the difference is higher than a given threshold, the PID component triggers an error.
Configuration files
Configuration files use JSON. Files are usually shared across sites.
The default values for all arms (MTMs, PSMs and ECMs) can be found in
the main dVRK repository under share/pid.
Applications
sawIntuitiveResearchKitQtConsoleJSON and ROS
dvrk_robot/dvrk_console_jsonfor regular usesawIntuitiveResearchKitQtPID for debugging
Widgets
By default the widget is used for display only. One can change which axis is used for the plotting section.
PID widget for MTM
In Direct control mode, one can change the PID gains, safety settings and PID setpoints. This mode should be used only for PID tuning using sawIntuitiveResearchKitQtPID.
PID widget for MTM in Direct control mode
Note
For the dVRK, we use the same thread for the IO and PID components, so there is no timing widget in the PID widget.