rlober / pidTuner

A yarp module for tuning PIDs at the joint level of the icub

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#pidTuner

Join the chat at https://gitter.im/rlober/pidTuner

A graphical tool for tuning the PID control gains for each individual joint of the iCub in position, velocity and torque control.

screen shot

This tool consists of 2 separate modules, pidTunerController and pidTunerGui. The controller module talks with the control board devices and manages the control mode states of the robot. Pretty much any control logic is handled in this module. Launch this module FIRST.

The GUI module automatically connects to the Control module and allows the user to manually adjust the PID gains, control mode, excitation signal properties, robot part and joint etc. Launch this module SECOND. It will wait for the controller ports in any case so if you launch them out of order the universe will not implode.

##Authors

##Status Currently the pidTuner has only been tested in simulation and some components remain to be implemented/fixed:

  • control modes:

    • position
    • velocity
    • torque
  • signal types:

    • step
    • sign
    • triangle
    • square
    • dirac

As it is tested on more platforms we will list them here but tentatively...

  • working on:
    • icubGazeboSim
    • icubSim
    • icubParis01
    • icubParis02

###Note on the simulators As of now the Pid interfaces with the icub simulators have not been implemented (velocity in gazebo has been I think but it is giving me problems). These may be implemented at least in gazebo to some degree but for now we have to test on the real robot before debugging some of the pid functions.

##Clone and Compile Navigate to wherever you choose to store this repo and run the following:

git clone https://github.com/rlober/pidTuner.git

Now move into the pidTuner directory and and compile.

cd pidTuner/
mkdir build
cd build
cmake ..
make

##Usage As with all yarp modules there are two ways of going about launching the executables. The hard way and the yarpmanager way. Unfortunately the hard way is the one that works right now (a yarpmanager app is in the works) but have no fear if you have gotten this far you shouldn't have any problem.

Terminal 1

yarpserver

Terminal 2

gazebo

When Gazebo opens, drop in an icub_fixed.

Now in the build directory, pidTuner/build/

Terminal 3

./pidTunerController

Terminal 4

./pidTunerGui

Enjoy!

About

A yarp module for tuning PIDs at the joint level of the icub


Languages

Language:C++ 99.6%Language:CMake 0.3%Language:C 0.1%