From Wiki for iCub and Friends
Jump to navigation Jump to search
The correct title of this article is dsReaching. The initial letter is shown capitalized due to technical restrictions.

Author: Micha Hersch

Performs a reaching movement with the right arm controlled by a dynamical system having the target as attractor.

It takes as input the 3D target location in a shoulder-centered frame of reference though the /dsreaching/target:i port.

It outputs the arm joint angles in the /dsreaching/position:o port.

In its present form, it uses only four joints, three at the shoulder and one at the elbow level. So the wrist is not controlled.

For details on the algorithm see http://lasa.epfl.ch/publications/uploadedFiles/herschBiorob06.pdf

Back to iCub YARP module specifications

Compiler & Linker Dependencies

Include files




Run-time Dependencies

Module arguments

--name <portBaseName>
<portBaseName> is the port prefix. Default is /dsReaching

Ports accessed

Ports that are assumed to exist prior to instantiation of the module (i.e. some other module must create them)


Ports created

Ports that are instantiated by the module and are then available for other modules to use (using yarp connect)

  • <portBaseName>/command:i the input port where user commands can be sent
  • <portBaseName>/target:i the input port where target position is sent. Target position is sent in a shoulder frame of reference, with x pointing left, y upwards and z forwards (for the cub)
  • <portBaseName>/position:o the output port where motor position commands are sent

Input data files


Output data files


Configuration files


User interface mechanism

Run-time modification of module parameters

The user can send commands to the command port, for example using a yarp write port. Commands currently supported include

  • Reset <theta1> <theta2> <theta3> <theta4> : resets the robot at those postion. DO NOT use this command while actually controlling the robot, it can damage it badly.
  • Pause
  • Resume

OS on which the module was developed


OS on which the module was tested

Linux, partly tested on Windows

Operating system dependencies

Example instantiation of the module

Run & port connection commands

$yarp writer /write
$yarp connect /tracking3D/position:o /dsreaching/target:i
$yarp connect /write /dsreaching/command:i

iCub Capabilities

iCub capability code

C3   Learn to reach towards a fixation point 

Other Yarp modules required to effect this capability

stereoVisualTracker      performs stereovision tracking.
iCubInterface  a yarp module doing pid control with the motors

The target must be given in the shoulder-center frame of reference

Example instantiation

yarp writer /write
yarp connect  tracking3D/out /dsreaching/target
yarp connect write /dsreaching/command_in
yarp connect /dsreaching/angles arm_controller/in

Back to iCub YARP module specifications