The iCubBreather is a module developed by Alessandro Roncone; it is aimed at simulating the breathing of the iCub as well as providing an easy to use interface for it.
--context [funnyThings]
where to find the called resource.--from [iCubBreather.ini]
the name of the .ini file.--name [iCubBreather]
changes the name of the module. Any port name will be changed accordingly.--robot [icub]
defines which robot the module will interface with (either icub
or iCubSim
).--part [left_arm]
defines which body part the module will play with.--rate [4000]
Period used by the thread.--noiseStd [1.0]
Standard deviation of the noise.--refSpeeds [5.0]
Reference speeds at the joints.--verbosity [0]
Verbosity level. The more the verbosity, the more will be printed out at stdio.--autoStart
Specifies if the module has to run automatically or not. By default, the iCubBreather
does not run on its own: the user has to specify this flag in order to make it run./iCubBreather/emotions/raw
: it is automatically connected to /+robot+/face/raw/in
/iCubBreather/rpc
it is an interface for handling the blinking. It accepts the following commands:
start
start the modulestop
stop the moduleget
get the module status (either on
or off
)blink
do a single blinkdblink
do a double blinkThe iCubBreather is a module that simulates the breathing of the iCub, by not keeping the robot still but instead moving it around a resting position. A single module works for single body part (either head
, left_arm
, right_arm
, torso
, left_leg
, right_leg
), so in order to make it work for the whole body the user has to call multiple modules.
Once called, the iCubBreather does nothing but staying silent. When the user starts it (e.g. either through the autoStart
input argument or the start
command via rpc
), it takes the current body part configuration as resting configuration, and it applies a Gaussian noise with $\mu=0$. The standard deviation of the noise can be user-defined: by default is $5.0$ for any joint belonging to the body part, but the user has two choices here:
--noiseStd [double]
Similarly, it is also possible to assign joint speeds to either all the body parts (through the input argument --refSpeeds [double]
, or individually from config file.
The default config file is the following:
By using this file, every body part (at least for the upper body) has a set of predefined refSpeeds/noiseStds pairs. The same configuration file accounts for multiple body parts, i.e. regardless of the body part the iCubBreather is called on, the module will pick up the correct configuration.
Template for GitHub pages on robotology