Controller v1
- The correct title of this article is controller_v1. The initial letter is shown capitalized due to technical restrictions.
Author: Lorenzo Natale and Giorgio Metta
This module acts as a server and provides a network interface to all 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 controller_v1 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 controller_v1 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
--file <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/arm/left/command:i /icub/arm/left/rpc:i /icub/arm/left/state:0 /icub/arm/right/command:i /icub/arm/right/rpc:i /icub/arm/right/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, for example:
icub_head.ini icub_arm.ini icub_inertial.ini
Sample icub.ini
:
[GENERAL] name icub [HEAD] file icub_head.ini device controlboard subdevice esd calibrator icubheadcalibrator [INERTIAL] file icub_inertial.ini device inertial subdevice xsensemtx [ARM] file icub_arm.ini device controlboard subdevice esd calibrator icubarmcalibrator [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
controller_v1 --file 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