ICubInterface2

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

Author: Lorenzo Natale

This module acts as a server and provides a network interface to the iCub (at the moment only to devices on the can bus). It internally stores instances of head, arm ... inertial sensor devices and exports their interfaces to network ports (YARP ports). There is only one instance of iCubInterface running on the computer which has the usb-can interface (i.e. the linux pc104 on the icub head). Since, for the purpose most application development, we are assuming the iCub has been 'booted', you should assume that iCubInterface has been launched and that there is no need for an application programmer to do it again.

Back to iCub YARP module specifications


Compiler & Linker Dependencies

Include files

ace/OS.h
ace/Log_Msg.h
yarp/os/Network.h
yarp/os/Port.h
yarp/os/Bottle.h
yarp/os/Time.h
yarp/os/Terminator.h
yarp/String.h

yarp/os/Property.h
yarp/dev/ControlBoardInterfaces.h
yarp/dev/GenericSensorInterfaces.h
yarp/dev/PolyDriver.h

Libraries

YARP libs

Run-time Dependencies

YARP libs

Module arguments

--config <filename> // see #Input data files

Ports accessed

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

None

Ports created

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

/icub/left_arm/command:i
/icub/left_arm/rpc:i        
/icub/left_arm/state:0   

/icub/right_arm/command:i
/icub/right_arm/rpc:i        
/icub/right_arm/state:0      

/icub/head/command:i
/icub/head/rpc:i        
/icub/head/state:o      

Input data files

ICUB_ROOT/conf/icub.ini or an equivalent robot descriptor

In turn icub.ini parses a list of files to instantiate and configure the devices (see for example the controlBoard configuration files), for example:

icub_head.ini          //head controlBoard configuration file
icub_arm.ini           //arm controlBoard configuration file
icub_inertial.ini      //inertia sensor configuration file

Sample icub.ini.

Replace pcan with ecan if you have a esd canbus board.

Remove the lines starting with "calibrator" if you don't want to calibrate the robot.

[GENERAL]
name            icub
// Uncomment the following line if you want to activate the procedure
// to automatically detect can IDs
// automaticIds    pcan

[HEAD]
file            icub_head_waist.ini
device          controlboard
subdevice       canmotioncontrol
canbusdevice    pcan
calibrator	icubheadcalibrator

[INERTIAL]
file            icub_inertial.ini
device          inertial
subdevice       xsensmtx

[RIGHTARM]
file            icub_arm_right.ini
device          controlboard
subdevice       canmotioncontrol
canbusdevice	pcan
calibrator      icubarmcalibrator

[LEFTARM]
file            icub_arm_left.ini
device          controlboard
subdevice       canmotioncontrol
canbusdevice    pcan
calibrator      icubarmcalibrator

[LEGS]
file            icub_legs.ini
device          controlboard
subdevice       canmotioncontrol
canbusdevice    pcan
calibrator      icublegscalibrator

[ENDINI] // do not remove this line!

Output data files

None


Configuration files

ICUB_ROOT/conf/icub.ini ... see #Input data files.


User interface mechanism

Run-time modification of module parameters

None


OS on which the module was developed

Windows


OS on which the module was tested

Windows


Operating system dependencies

The module instantiates devices that interface to the hardware; as such it requires that appropriate device drivers are available on the operating system.


Example instantiation of the module

Run & port connection commands

iCubInterface2 --config $ICUB_ROOT/app/default/conf/icub.ini

iCub Capabilities

iCub capability code

This module is required to move the robot so it involves all capabilities.

Other Yarp modules required to effect this capability

None.

Example instantiation

None.


Back to iCub YARP module specifications