ICubInterface2
- 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