iCubConfigurableHandPosToVelMotor Class Reference
A configurable motor moving the iCub fingers to the given position. More...

Public Member Functions | |
iCubConfigurableHandPosToVelMotor (ConfigurationParameters ¶ms, QString prefix) | |
Constructor. | |
~iCubConfigurableHandPosToVelMotor () | |
Destructor. | |
virtual void | save (ConfigurationParameters ¶ms, QString prefix) |
Saves current parameters into the given ConfigurationParameters object. | |
virtual int | size () |
Returns the number of neurons required by this motor. | |
virtual void | update () |
Performs the motor update. This also reads the activation of output neurons. | |
Static Public Member Functions | |
static void | describe (QString type) |
Generates a description of this class and its parameters. |
Detailed Description
A configurable motor moving the iCub fingers to the given position.
A motor for the iCub hand. This allows to specify which joints should be controlled and to group joints so that a single outpu neuron can control more than one joint at a time (see the jointsGroups parameter). Moreover it is possible to limit the movement of fingers to a fraction of their original range (see the maxClosure parameter). This motor receives the desidered position of joints and moves them in velocity
In addition to all parameters defined by the parent class (Motor), this class also defines the following parameters:
- icub: the name of the resource associated with the iCub robot to use
- hand: the hand to control. Choose between "right" and "left"
- jointsGroups: this parameter allows specifying which joints should be controlled together. The format is like this: joint1,joint2/joint5,joint6,joint3/joint4. In this case we have three groups of joints: (joint1 and joint2), (joint5, joint6 and joint3) and (joint4). Joints in the same group are controlled together, while joints that are not listed in any group are not controlled. This parameter is compulsory, if it is not present, the program throws an exception. The allowed joint names are: Aperture, Thumb1, Thumb2, Thumb3, Index1, Index2, Middle1, Middle2, Others (case insensitive)
- maxClosure: this parameter allows limiting joint excursion to a portion of the original one. If set to 1.0 all joints move within their limits, otherwise their upper limit is set to maxClosure portion of the original upper limit. This applies to all controlled joints. A value of 0.0 disables all joint movements
- k: this parameter is the gain for the proportional controller converting position displacement (desired position minus current position) to a velocity to apply to the joint
- maxvel: this is the maximum allowed velocity that can be applied to a joint (absolute value). Velocities greater than this are truncated to +maxvel or -maxvel
The resources required by this Motor are:
- evonetIterator: the object to iterate over neurons of the neural network
- robot: the simulated physical iCub robot
Definition at line 611 of file icubmotors.h.
Constructor & Destructor Documentation
iCubConfigurableHandPosToVelMotor | ( | ConfigurationParameters & | params, |
QString | prefix | ||
) |
Constructor.
Creates and configures the motor
- Parameters:
-
params the ConfigurationParameters containing the parameters prefix the path prefix to the paramters for this Sensor
Definition at line 1182 of file icubmotors.cpp.
References ConfigurationHelper::getDouble(), ConfigurationHelper::getString(), ConfigurationParameters::getValue(), iCubMotor::icubResource, iCubMotor::neuronsIteratorResource, ConfigurationHelper::throwUserConfigError(), and ConcurrentResourcesUser::usableResources().
Destructor.
Definition at line 1255 of file icubmotors.cpp.
Member Function Documentation
void describe | ( | QString | type | ) | [static] |
Generates a description of this class and its parameters.
- Parameters:
-
type the string representation of this class name
Reimplemented from iCubMotor.
Definition at line 1305 of file icubmotors.cpp.
References ParameterSettable::addTypeDescription(), ParameterSettable::RealDescriptor::def(), ParameterSettable::StringDescriptor::def(), ParameterSettable::EnumDescriptor::def(), ParameterSettable::Descriptor::describeEnum(), ParameterSettable::Descriptor::describeReal(), ParameterSettable::Descriptor::describeString(), ParameterSettable::RealDescriptor::help(), ParameterSettable::StringDescriptor::help(), ParameterSettable::EnumDescriptor::help(), ParameterSettable::IsMandatory, ParameterSettable::RealDescriptor::limits(), ParameterSettable::StringDescriptor::props(), ParameterSettable::EnumDescriptor::props(), and ParameterSettable::EnumDescriptor::values().
void save | ( | ConfigurationParameters & | params, |
QString | prefix | ||
) | [virtual] |
Saves current parameters into the given ConfigurationParameters object.
- Parameters:
-
params the ConfigurationParameters object in which parameters should be saved prefix the name and path of the group where to save parametrs
Reimplemented from iCubMotor.
Definition at line 1259 of file icubmotors.cpp.
References ConfigurationParameters::createParameter(), iCubConfigurableHandPosToVelMotor::size(), and ConfigurationParameters::startObjectParameters().
int size | ( | ) | [virtual] |
Returns the number of neurons required by this motor.
- Returns:
- the number of neurons required by this motor
Implements Motor.
Definition at line 1346 of file icubmotors.cpp.
Referenced by iCubConfigurableHandPosToVelMotor::save().
void update | ( | ) | [virtual] |
Performs the motor update. This also reads the activation of output neurons.
Implements Motor.
Definition at line 1316 of file icubmotors.cpp.
References Motor::checkAllNeededResourcesExist(), MultiMotorController::getEncoder(), MultiMotorController::getLimits(), NeuronsIterator::getOutput(), linearMap(), max(), min(), Motor::name(), iCubMotor::neuronsIteratorResource, NeuronsIterator::nextNeuron(), NeuronsIterator::setCurrentBlock(), and MultiMotorController::velocityMove().
The documentation for this class was generated from the following files:
- experiments/include/icubmotors.h
- experiments/src/icubmotors.cpp