Skip to content
This repository has been archived by the owner on Oct 22, 2019. It is now read-only.

Latest commit

 

History

History
65 lines (52 loc) · 4.83 KB

File metadata and controls

65 lines (52 loc) · 4.83 KB

Module description

This module implements a torque control balancing strategy. It computes the interaction forces at the feet in order to stabilise a desired centroidal dynamics, which implies the tracking of a desired center-of-mass trajectory. A cost function penalizing high joint torques - that generate the feet forces - is added to the control framework.

For details see iCub whole-body control through force regulation on rigid non-coplanar contacts

Compatibility

The repository contains the Simulink model torqueBalancingR2016bS88.mdl, which is generated by using Matlab R2016b, and it is also exported in previous matlab versions (2012b, 2015b, 2015a). The controller is tested in simulation by using Gazebo 7.8. Older versions of Gazebo may lead to scarse, or unstable, control performances.

Supported robots

Currently, supported robots are:iCubGenova02, iCubGenova04, iCubNancy01, icubGazeboSim, bigman, bigman_only_legs, iCubHeidelberg01.

Launch procedure

The procedure to run the torque balancing module is still quite elaborate. Users willing to use the module should follow this list.

  • Set the environmental variable YARP_ROBOT_NAME in the .bashrc according to the robot one wants to use (e.g. icubGazeboSim for simulations, or iCubGenova02, iCubGenova04, etc. for experiments).
  • (Simulation only) Launch yarpserver.
  • (Simulation only) Launch gazebo. If you want to use the synchronization between the controller and the simulator to avoid real-time factor related problems, launch gazebo as follows: gazebo -slibgazebo_yarp_clock.so
  • Bring the robot in a suitable home position (e.g. $ yarpmotorgui --from homePoseBalancing.ini and then select a custom position by clicking on Global Joints Commands/Custom postions
  • (Simulation only) Launch wholeBodyDynamics as follows: YARP_ROBOT_NAME=icubGazeboSim yarprobotinterface --config launch-wholebodydynamics.xml. For further details see here
  • (Simulation only, optional) type on a terminal yarp rpc /wholeBodyDynamics/rpc and execute the command resetOffset all
  • (Real robot only) type on a terminal yarp rpc /wholeBodyDynamics/rpc and execute the command calib all 300
  • Open the simulink model torqueBalancingR2016bS88.mdl or the one that correspond to your matlab version
  • Run the module.

Module details

Configuration file

At start, the module calls the initialization file initTorqueBalancing.m. Once open, this file contains some configuration variables. Please follow the instruction inside initTorqueBalancing.m to properly configure your simulation

Gains

The gains and references for the robot specified by the variable YARP_ROBOT_NAME can be found in the folder app/robots/YARP_ROBOT_NAME

CoM reference

It is possible to send a CoM reference by connecting to the streaming port comDes:i. The port expects 9 elements: 3 values for the desired CoM position, 3 values for the desired CoM velocity and 3 values for the desired CoM acceleration

Joint reference

It is possible to send the impedance resting position as a reference to the streaming port qdes:i. This port expects the same number of element as the torque controlled joints. References are in radians

Citing this contribution

In case you want to cite the content of this module please refer to iCub whole-body control through force regulation on rigid non-coplanar contacts and use the following bibtex entry:

@INPROCEEDINGS{Nava_etal2016, 
author={G. Nava and F. Romano and F. Nori and D. Pucci}, 
booktitle={2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, 
title={Stability analysis and design of momentum-based controllers for humanoid robots}, 
year={2016}, 
pages={680-687}, 
keywords={Lyapunov methods;asymptotic stability;closed loop systems;control system synthesis;humanoid robots;legged locomotion;linearisation techniques;momentum;robust control;Lyapunov analysis;balancing controller design;closed loop system asymptotic stability;iCub humanoid robot;linearized system joint space;momentum-based controller design;robust controllers;stability analysis;unstable zero dynamics;walking controller design;Acceleration;Asymptotic stability;Humanoid robots;Legged locomotion;Robot kinematics;Stability analysis}, 
doi={10.1109/IROS.2016.7759126}, 
month={Oct},}
 @article{Nori_etal2015,
 author="Nori, F. and Traversaro, S. and Eljaik, J. and Romano, F. and Del Prete, A. and Pucci, D.",
 title="iCub whole-body control through force regulation on rigid non-coplanar contacts",
 year="2015",
 journal="Frontiers in {R}obotics and {A}{I}",
 volume="1"
 }