iCub-main
Fingers PID Tuner

A module that provides tuning capabilities of the low-level PID controllers for the robot's fingers.

+ Collaboration diagram for Fingers PID Tuner:

A module that provides tuning capabilities of the low-level PID controllers for the robot's fingers.

Description

At start-up, the module performs a synchronization among the PID values stored aboard the robot and the ones available locally in the configuration file. At run-time, user can ask the module to carry out an online tuning of the PID parameters in order to improve the performance.

Libraries

Parameters

The configuration parameter looks like the following:

[general]
name fingersTuner
robot icub
ping_robot_tmo 40.0
relevantParts (left_hand)
relevantJoints (8 9 10 11 12 13 14 15)
numAlias 2
alias_0 (tag index) (joints (11 12))
alias_1 (tag all) (joints (9 10 11 12 13 14 15))
[left_hand]
device left_arm
joint_8 (encs_ratio 17.50) (status download) (idling (9 10))
joint_9 (encs_ratio -2.10) (status download) (idling (10))
joint_10 (encs_ratio -2.36) (status download)
joint_11 (encs_ratio -2.58) (status download) (idling (12))
joint_12 (encs_ratio -2.32) (status download)
joint_13 (encs_ratio -2.10) (status download) (idling (14))
joint_14 (encs_ratio -2.57) (status download)
joint_15 (encs_ratio -1.70) (status download)

Most of the options are self-explaining, whereas the status and idling deserve an explanation.
Values of status option can be either download or upload: in the first case it is asked the module at startup to store locally the PIDs values available onboard the robot, while in the second case the local configuration values will be uploaded to the robot.
The option idling allows putting in idle specific coupled joints that should be not controlled in position during the tuning of the joint under subject.

Ports Interface

The interface to this module is implemented through fingersTuner_IDL .
Be careful that from the console a yarp::os::Value must be typed by the user enclosed between parentheses, so that typical commands are tune left_hand (12) or tune left_hand (index).

Tested OS

Windows, Linux

Author
Ugo Pattacini