actionSelection
[iCub modules]

The purpose of action selection is to effect the development of the iCub and specifically to increase its predictive capability. More...

The purpose of action selection is to effect the development of the iCub and specifically to increase its predictive capability.

In the current context, this means the selection of the iCub's mode of exploration. At present, only two basic motives drive this iCub development, curiousity and experimentation, both of them exploratory. The third main motive, social interaction, has not yet been addressed. Consequently, the present implementation of action selection is based on a very simple (trivial) function of the levels of curiousity and experimentation. Specifically, the learning mode is selected if the curiosity level is higher than the experimentation level; otherwise the prediction mode is selected.

The actionSelection module has one inputs: an affective state vector containing four numbers

  1. the current curiousity level
  2. the instantaneous rate of change of curiousity level
  3. the current experimentation level
  4. the instantaneous rate of change of experimentation level

This is typically input from the affectiveState module.

The actionSelection module has one outputs: mode vector containing a single value denoting the mode of operation

Dependencies

YARP.

Parameters

Command-line Parameters

The following key-value pairs can be specified as command-line parameters by prefixing -- to the key (e.g. --from file.ini ). The value part can be changed to suit your needs; the default values are shown below.

Module Configuration File Parameters

The following key-value pairs can be specified as parameters in the configuration file e.g. actionSelection.ini (they can also be specified as command-line parameters if you so wish). The value part can be changed to suit your needs; the default values are shown below.

Ports Accessed

Ports Created

Input ports

help
quit set mode <n> ... set the mode (where <n> is an integer number in the range 1-3)

Note that the name of this port mirrors whatever is provided by the --name parameter value The port is attached to the terminal so that you can type in commands and receive replies. The port can be used by other modules but also interactively by a user through the yarp rpc directive, viz.: yarp rpc /rectification This opens a connection from a terminal to the port and allows the user to then type in commands and receive replies.

Output ports

Port types

The functional specification only names the ports to be used to communicate with the module but doesn't say anything about the data transmitted on the ports. This is defined by the following code.

Input Data Files

None

Output Data Files

None

Configuration Files

actionSelection.ini in $ICUB_ROOT/app/actionSelection/conf

Tested OS

Windows Linux

Example Instantiation of the Module

actionSelection --name actionSelection --context actionSelection/conf --from actionSelection.ini

Author:

David Vernon

Copyright (C) 2010 RobotCub Consortium

CopyPolicy: Released under the terms of the GNU GPL v2.0.

This file can be edited at $ICUB_ROOT/src/actionSelection/include/iCub/actionSelection.h

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Friends Defines