iCub class \ More...

Inheritance diagram for PhyiCub:

Public Types

enum  {
  torso_yaw =0, torso_roll, torso_pitch, left_shoulder_pitch,
  left_shoulder_roll, left_shoulder_yaw, left_elbow, left_wrist_prosup,
  left_wrist_pitch, left_wrist_yaw, left_hand_finger, left_thumb_oppose,
  left_thumb_proximal, left_thumb_distal, left_index_proximal, left_index_distal,
  left_middle_proximal, left_middle_distal, left_pinky, right_shoulder_pitch,
  right_shoulder_roll, right_shoulder_yaw, right_elbow, right_wrist_prosup,
  right_wrist_pitch, right_wrist_yaw, right_hand_finger, right_thumb_oppose,
  right_thumb_proximal, right_thumb_distal, right_index_proximal, right_index_distal,
  right_middle_proximal, right_middle_distal, right_pinky, neck_pitch,
  neck_roll, neck_yaw, eyes_tilt, eyes_version,
  eyes_vergence, left_hip_pitch, left_hip_roll, left_hip_yaw,
  left_knee, left_ankle_pitch, left_ankle_roll, right_hip_pitch,
  right_hip_roll, right_hip_yaw, right_knee, right_ankle_pitch,
  right_ankle_roll, numOfJoints
}
 Enum for referring to the iCub's joints for configurePosture. More...
 

Public Slots

void blockTorso0 (bool)
 block/unblock the movements of torso0
 
void enableCameras (bool)
 enable/disable simuation of eye cameras
 
void enableHead (bool)
 enable/disable simulation of objects
 
void enableLeftArm (bool)
 enable/disable simulation of objects
 
void enableLeftArmCartesianController ()
 create/destroy a cartesian controller server
 
void enableLeftKinematicHand (bool)
 enable/disable simulation of the left hand in kinematic simulations (enabled by default)
 
void enableLeftLeg (bool)
 enable/disable simulation of objects
 
void enableRightArm (bool)
 enable/disable simulation of objects
 
void enableRightArmCartesianController ()
 create/destroy a cartesian controller server
 
void enableRightKinematicHand (bool)
 enable/disable simulation of the right hand in kinematic simulations (enabled by default)
 
void enableRightLeg (bool)
 enable/disable simulation of objects
 
void enableTorso (bool)
 enable/disable simulation of objects
 
bool isBlockedTorso0 ()
 
bool isEnabledCameras ()
 
bool isEnabledHead ()
 
bool isEnabledLeftArm ()
 
bool isEnabledLeftKinematicHand ()
 
bool isEnabledLeftLeg ()
 
bool isEnabledRightArm ()
 
bool isEnabledRightKinematicHand ()
 
bool isEnabledRightLeg ()
 
bool isEnabledTorso ()
 

Public Member Functions

 PhyiCub (World *world, QString name, const wMatrix &tm=wMatrix::identity(), bool createServerControlBoards=true)
 Create an iCub.
 
virtual ~PhyiCub ()
 Destroy the iCub.
 
void configurePosture (QMap< int, real > jointSetup)
 Configure the angles of the joints (this method by-pass physics, so can lead to instability, please use carefully.
 
const QVector< WMesh * > & covers ()
 Return the Meshes representing the Covers.
 
void doKinematicSimulation (bool k, bool clh=false, bool crh=false)
 Changes the robot model from dynamic to kinematic and vice-versa.
 
void forceKinematicChainsUpdate (bool enable)
 Set to true to have all kinematic chains updated no matter if they are enabled or not This is set to true by the rendered to be able to render disabled objects.
 
const QVector< PhyObject * > & headNeck ()
 return the head-neck parts
 
MultiMotorControllerheadNeckController ()
 return the MultiMotorController for acting on head-neck joints
 
const QVector< PhyJoint * > & headNeckJoints ()
 return the head-neck joints
 
bool isKinematic ()
 Returns true if we are using the kinematic model.
 
const QVector< PhyObject * > & leftArm ()
 return the left arm parts
 
yarp::dev::ICartesianControl * leftArmCartesianController ()
 return the Cartesian Controller Interface for acting on Left Arm
 
MultiMotorControllerleftArmController ()
 return the MultiMotorController for acting on left arm joints
 
const QVector< PhyJoint * > & leftArmJoints ()
 return the left arm joints inside the array the joints are arranged as follow: 0, 1, 2 -> joints on shoulder 3 -> elbow joint 4, 5, 6 -> wrist joints 7, 8, 9, 10 -> knuckles joints 11, 12, 13 -> index joints 14, 15, 16 -> middle joints 17, 18, 19 -> ring joints 20, 21, 22 -> pinky joints 23, 24, 25, 26 -> thumb joints
 
yarp::dev::IFrameGrabberImage * leftEyeFrameGrabber ()
 returns the frame grabber for the left eye
 
const QVector< PhyObject * > & leftLeg ()
 return the left leg parts
 
MultiMotorControllerleftLegController ()
 return the MultiMotorController for acting on left leg joints
 
const QVector< PhyJoint * > & leftLegJoints ()
 return the left leg joints
 
virtual void postUpdate ()
 postUpdate the WObject this method is called at each step of the world just after the physic update
 
virtual void preUpdate ()
 preUpdate the WObject this method is called at each step of the world just before the physic update (after motor controllers have been updated
 
const QVector< PhyObject * > & rightArm ()
 return the rigth arm parts
 
yarp::dev::ICartesianControl * rightArmCartesianController ()
 return the Cartesian Controller Interface for acting on Right Arm
 
MultiMotorControllerrightArmController ()
 return the MultiMotorController for acting on right arm joints
 
const QVector< PhyJoint * > & rightArmJoints ()
 return the rigth arm joints inside the array the joints are arranged as follow: 0, 1, 2 -> joints on shoulder 3 -> elbow joint 4, 5, 6 -> wrist joints 7, 8, 9, 10 -> knuckles joints 11, 12, 13 -> index joints 14, 15, 16 -> middle joints 17, 18, 19 -> ring joints 20, 21, 22 -> pinky joints 23, 24, 25, 26 -> thumb joints
 
yarp::dev::IFrameGrabberImage * rightEyeFrameGrabber ()
 returns the frame grabber for the right eye
 
const QVector< PhyObject * > & rightLeg ()
 return the rigth leg parts
 
MultiMotorControllerrightLegController ()
 return the MultiMotorController for acting on right leg joints
 
const QVector< PhyJoint * > & rightLegJoints ()
 return the rigth leg joints
 
const QVector< PhyObject * > & torso ()
 return the torso parts
 
MultiMotorControllertorsoController ()
 return the MultiMotorController for acting on torso joints
 
const QVector< PhyJoint * > & torsoJoints ()
 return the torso joints
 
- Public Member Functions inherited from YarpObject
 YarpObject (World *world, QString name, const wMatrix &tm=wMatrix::identity())
 Create a YarpObject; The name is mandatory because it is used as root name for each devices of this object.
 
virtual ~YarpObject ()
 Destroy the YarpObject.
 
yarp::dev::PolyDriver * polydriver (QString name)
 return the PolyDriver with the given name associated to it
 
- Public Member Functions inherited from WObject
 WObject (World *world, QString name="unamed", const wMatrix &tm=wMatrix::identity(), bool addToWorld=true)
 create the object and automatically put this into the world
 
virtual ~WObject ()
 destroy the Object and drop it from the world
 
QColor color () const
 return the color of this object
 
bool isInvisible ()
 return if it is invisible
 
const wMatrixmatrix () const
 return a reference to the transformation matrix
 
QString name () const
 Return the name of this object.
 
void setAlpha (int alpha)
 set the value of alpha channel (the transparency)
 
void setColor (QColor c)
 Set the color to use on rendering.
 
void setInvisible (bool b)
 set invisibility
 
void setMatrix (const wMatrix &newm)
 set a new matrix
 
void setPosition (const wVector &newpos)
 set the position specified in global coordinate frame
 
void setPosition (real x, real y, real z)
 set the position specified in global coordinate frame
 
void setTexture (QString textureName)
 Set the texture to use for this WObject when rendered.
 
void setUseColorTextureOfOwner (bool b)
 set if the object will be rendered with the color and texture of our owner (if we have one)
 
QString texture () const
 Return the texture name.
 
bool useColorTextureOfOwner () const
 if true, we will use color and texture of our owner (if we have one)
 
Worldworld ()
 Return the world.
 
const Worldworld () const
 Return the world (const version)
 
- Public Member Functions inherited from Ownable
 Ownable ()
 Constructor.
 
virtual ~Ownable ()
 Destructor.
 
const QList< Owned > & owned () const
 Returns the list of objects owned by this one.
 
Ownableowner () const
 Returns the owner of this object.
 
void setOwner (Ownable *owner, bool destroy=true)
 Sets the owner of this object.
 

Public Attributes

enum farsa::PhyiCub:: { ... }  jointNames
 

Protected Slots

void leftEyeChangedDesiredPosition (real wishpos)
 Configures the virtual DOF after a change in the desired position of the left eye DOF.
 
void leftEyeChangedDesiredVelocity (real wishvel)
 Configures the virtual DOF after a change in the desired velocity of the left eye DOF.
 
void leftEyeChangedLimits (real lowlimit, real highlimit)
 Configures the virtual DOF after a change in the limits of the left eye DOF.
 
void leftEyeChangedPosition (real newpos)
 Configures the virtual DOF after a change in the position of the left eye DOF.
 
void leftEyeChangedVelocity (real newvel)
 Configures the virtual DOF after a change in the velocity of the left eye DOF.
 
void rightEyeChangedDesiredPosition (real wishpos)
 Configures the virtual DOF after a change in the desired position of the right eye DOF.
 
void rightEyeChangedDesiredVelocity (real wishvel)
 Configures the virtual DOF after a change in the desired velocity of the right eye DOF.
 
void rightEyeChangedLimits (real lowlimit, real highlimit)
 Configures the virtual DOF after a change in the limits of the right eye DOF.
 
void rightEyeChangedPosition (real newpos)
 Configures the virtual DOF after a change in the position of the right eye DOF.
 
void rightEyeChangedVelocity (real newvel)
 Configures the virtual DOF after a change in the velocity of the right eye DOF.
 
void vergenceChangedDesiredPosition (real wishpos)
 Configures the real DOF after a change in the desired position of the vergence DOF.
 
void vergenceChangedDesiredVelocity (real wishvel)
 Configures the real DOF after a change in the desired velocity of the vergence DOF.
 
void vergenceChangedLimits (real lowlimit, real highlimit)
 Configures the real DOF after a change in the limits of the vergence DOF.
 
void vergenceChangedPosition (real newpos)
 Configures the real DOF after a change in the position of the vergence DOF.
 
void vergenceChangedVelocity (real newvel)
 Configures the real DOF after a change in the velocity of the vergence DOF.
 
void versionChangedDesiredPosition (real wishpos)
 Configures the real DOF after a change in the desired position of the version DOF.
 
void versionChangedDesiredVelocity (real wishvel)
 Configures the real DOF after a change in the desired velocity of the version DOF.
 
void versionChangedLimits (real lowlimit, real highlimit)
 Configures the real DOF after a change in the limits of the version DOF.
 
void versionChangedPosition (real newpos)
 Configures the real DOF after a change in the position of the version DOF.
 
void versionChangedVelocity (real newvel)
 Configures the real DOF after a change in the velocity of the version DOF.
 

Protected Member Functions

virtual void changedMatrix ()
 update the matrix of all sub-objects
 
void enableObjectsAndLinks (bool enable, QVector< PhyObject * > &objects, QVector< PhyJoint * > &joints)
 helper function to enable/disable a list of objects and joints
 
void setTorso0Matrix ()
 computes and sets the transformation matrix for torso0
 
- Protected Member Functions inherited from YarpObject
void registerServerControlBoard (yarp::dev::DeviceDriver *device, QString devicename)
 Add a DeviceDriver to the map of controllers
It automatically construct a ServerControlBoard, the port name for accessing the DeviceDriver will be /worldname/yarpobjectname/devicename.
 
void registerServerFrameGrabber (yarp::dev::DeviceDriver *device, QString devicename)
 Add a DeviceDriver to the map of controllers
It automatically construct a ServerFrameGrabber, the port name for accessing the DeviceDriver will be /worldname/yarpobjectname/devicename.
 
void removeServerControlBoard (QString devicename)
 Remove, and close the serverControlBoard registered and opened by above call.
 

Static Protected Member Functions

static real highEyeLimitFromVersionAndVergenceLimits (real versionHigh, real vergenceHigh)
 returns the eye high limit given the version and vergence high limits
 
static real leftEyeFromVersionAndVergence (real version, real vergence)
 returns the left eye angle/velocity given the version and vergence angles/velocities
 
static real lowEyeLimitFromVersionAndVergenceLimits (real versionLow, real vergenceLow)
 returns the eye low limit given the version and vergence low limits
 
static real rightEyeFromVersionAndVergence (real version, real vergence)
 returns the right eye angle/velocity given the version and vergence angles/velocities
 
static real vergenceFromRightAndLeftEye (real left, real right)
 returns the vergence angle/velocity given the left and right eye angles/velocities
 
static real versionFromRightAndLeftEye (real left, real right)
 returns the version angle/velocity given the left and right eye angles/velocities
 

Additional Inherited Members

- Protected Attributes inherited from WObject
QColor colorv
 Color, it contains also alpha channel.
 
bool invisible
 if TRUE it will not renderized
 
QString namev
 Name of the WObject.
 
QString texturev
 Texture name.
 
wMatrix tm
 Trasformation matrix.
 
bool usecolortextureofowner
 if true, we will use color and texture of our owner (if we have one).
 
Worldworldv
 World.
 

Detailed Description

iCub class \

Motivation
The iCub represent an iCub humanoid robot.
This version uses iKin to have a correct position of body parts and to be able to perform kinematic simulations
Description
Warnings
Warnings

Definition at line 92 of file phyicub.h.

Member Enumeration Documentation

anonymous enum

Enum for referring to the iCub's joints for configurePosture.

Definition at line 97 of file phyicub.h.

Constructor & Destructor Documentation

PhyiCub ( World world,
QString  name,
const wMatrix tm = wMatrix::identity(),
bool  createServerControlBoards = true 
)

Create an iCub.

Parameters
tmspecify the position and rotation of the element torso0, in order to put foots at position <0,0,0> the tors0 has to be positioned at <-0.034, 0.0, 0.4912>
createServerControlBoardsif true it will create ServerControlBoards for controlling the robot remotely via YARP ports.

Definition at line 58 of file phyicub.cpp.

References PhyObjectsGroup::addJointDOF(), PhyObjectsGroup::addObject(), WMesh::attachTo(), KinematicLimb< iKinLimb_t >::createJoint(), MaterialDB::createMaterial(), MaterialDB::enableCollision(), KinematicLinkInfo::getAxis(), KinematicLimb< iKinLimb_t >::getLinkInfo(), KinematicLinkInfo::getRotAxis(), KinematicLinkInfo::getRotCenterWObject(), KinematicLinkInfo::getYarpMatrixAswMatrix(), wMatrix::identity(), PhyiCub::leftEyeChangedDesiredPosition(), PhyiCub::leftEyeChangedDesiredVelocity(), PhyiCub::leftEyeChangedLimits(), PhyiCub::leftEyeChangedPosition(), PhyiCub::leftEyeChangedVelocity(), WMesh::loadMS3DModel(), PhyObject::mass(), World::materials(), WObject::matrix(), farsa::max(), farsa::min(), wVectorT< Shared >::norm(), PhyJoint::numDofs(), wMatrix::pitch(), PhyCylinder::radius(), farsa::ramp(), YarpObject::registerServerControlBoard(), PhyiCub::rightEyeChangedDesiredPosition(), PhyiCub::rightEyeChangedDesiredVelocity(), PhyiCub::rightEyeChangedLimits(), PhyiCub::rightEyeChangedPosition(), PhyiCub::rightEyeChangedVelocity(), wMatrix::roll(), wMatrix::rotateAround(), wMatrix::rotateVector(), KinematicLinkInfo::setBuddies(), MultiMotorController::setEnableLimitsRaw(), MaterialDB::setGravityForce(), KinematicLinkInfo::setiKinLinkLimits(), PhyDOF::setLimits(), MultiMotorController::setLimits(), MultiMotorController::setLimitsRaw(), PhyObject::setMass(), WObject::setMatrix(), Ownable::setOwner(), WObject::setPosition(), KinematicLimb< iKinLimb_t >::setRootObject(), WObject::setTexture(), PhyiCub::setTorso0Matrix(), KinematicLinkInfo::setWObject(), KinematicLimb< iKinLimb_t >::setWorldMatrix(), PhyBox::sideX(), WObject::tm, farsa::toRad(), KinematicLimb< iKinLimb_t >::updateInformationFromiKin(), PhyiCub::vergenceChangedDesiredPosition(), PhyiCub::vergenceChangedDesiredVelocity(), PhyiCub::vergenceChangedLimits(), PhyiCub::vergenceChangedPosition(), PhyiCub::vergenceChangedVelocity(), PhyiCub::versionChangedDesiredPosition(), PhyiCub::versionChangedDesiredVelocity(), PhyiCub::versionChangedLimits(), PhyiCub::versionChangedPosition(), PhyiCub::versionChangedVelocity(), and wMatrix::yaw().

~PhyiCub ( )
virtual

Destroy the iCub.

Note
You will not lose 250K euro if you call this destructor ;-)

Definition at line 1906 of file phyicub.cpp.

References YarpObject::removeServerControlBoard().

Member Function Documentation

void blockTorso0 ( bool  b)
slot

block/unblock the movements of torso0

Definition at line 2615 of file phyicub.cpp.

void changedMatrix ( )
protectedvirtual

update the matrix of all sub-objects

Reimplemented from WObject.

Definition at line 2752 of file phyicub.cpp.

References PhyObjectsGroup::resetObjectPositions(), PhyiCub::setTorso0Matrix(), PhyJoint::updateJointInfo(), and KinematicLimb< iKinLimb_t >::updateMatrixFromiKin().

void configurePosture ( QMap< int, real >  jointSetup)

Configure the angles of the joints (this method by-pass physics, so can lead to instability, please use carefully.

Parameters
jointSetupis a map containing the initial angle position of the joints. See the jointNames enumeration to know the joint's identifiers. Angles has to be specified in degrees
Warning
Angles passed by jointSetup aren't controlled if they respect iCub joint limits. So, pay attention on what you write inside jointSetup

Definition at line 2118 of file phyicub.cpp.

References KinematicLimb< iKinLimb_t >::getLinkInfo(), PhyiCub::leftEyeFromVersionAndVergence(), PhyDOF::position(), PhyObjectsGroup::resetObjectPositions(), PhyiCub::rightEyeFromVersionAndVergence(), PhyObjectsGroup::setDOFPosition(), KinematicLinkInfo::setLinkAngle(), MultiMotorController::stop(), farsa::toRad(), PhyJoint::updateJointInfo(), KinematicLimb< iKinLimb_t >::updateMatrixFromiKin(), and PhyObjectsGroup::updateRelativePositions().

const QVector<WMesh*>& covers ( )
inline

Return the Meshes representing the Covers.

Definition at line 195 of file phyicub.h.

void doKinematicSimulation ( bool  k,
bool  clh = false,
bool  crh = false 
)

Changes the robot model from dynamic to kinematic and vice-versa.

Parameters
kif true switches to the kinematic iCub model, if false to the dynamic one (at creation the model is always dynamic)
clhif true the left hand continues to collide with objects even in kinematic mode (fingers and the palm are dynamic objects)
crhif true the right hand continues to collide with objects even in kinematic mode (fingers and the palm are dynamic objects)
Note
Switches from kinematic to dynamic use methods wimilar to those used in configurePosture, so the same warning about instability holds here

Definition at line 1983 of file phyicub.cpp.

void enableCameras ( bool  b)
slot

enable/disable simuation of eye cameras

Definition at line 2576 of file phyicub.cpp.

References WObject::name(), and WObject::world().

void enableHead ( bool  b)
slot

enable/disable simulation of objects

Definition at line 2564 of file phyicub.cpp.

References PhyiCub::enableObjectsAndLinks(), and MotorController::setEnabled().

void enableLeftArm ( bool  b)
slot

enable/disable simulation of objects

Definition at line 2591 of file phyicub.cpp.

References PhyiCub::enableObjectsAndLinks(), and MotorController::setEnabled().

void enableLeftArmCartesianController ( )
slot

create/destroy a cartesian controller server

Definition at line 2636 of file phyicub.cpp.

void enableLeftKinematicHand ( bool  b)
slot

enable/disable simulation of the left hand in kinematic simulations (enabled by default)

Definition at line 2625 of file phyicub.cpp.

void enableLeftLeg ( bool  b)
slot

enable/disable simulation of objects

Definition at line 2509 of file phyicub.cpp.

References PhyiCub::enableObjectsAndLinks(), and MotorController::setEnabled().

void enableObjectsAndLinks ( bool  enable,
QVector< PhyObject * > &  objects,
QVector< PhyJoint * > &  joints 
)
protected

helper function to enable/disable a list of objects and joints

Definition at line 2805 of file phyicub.cpp.

Referenced by PhyiCub::enableHead(), PhyiCub::enableLeftArm(), PhyiCub::enableLeftLeg(), PhyiCub::enableRightArm(), and PhyiCub::enableRightLeg().

void enableRightArm ( bool  b)
slot

enable/disable simulation of objects

Definition at line 2603 of file phyicub.cpp.

References PhyiCub::enableObjectsAndLinks(), and MotorController::setEnabled().

void enableRightArmCartesianController ( )
slot

create/destroy a cartesian controller server

Definition at line 2696 of file phyicub.cpp.

References WObject::name(), YarpObject::polydriver(), and WObject::world().

void enableRightKinematicHand ( bool  b)
slot

enable/disable simulation of the right hand in kinematic simulations (enabled by default)

Definition at line 2630 of file phyicub.cpp.

void enableRightLeg ( bool  b)
slot

enable/disable simulation of objects

Definition at line 2521 of file phyicub.cpp.

References PhyiCub::enableObjectsAndLinks(), and MotorController::setEnabled().

void enableTorso ( bool  b)
slot

enable/disable simulation of objects

Definition at line 2533 of file phyicub.cpp.

References MotorController::setEnabled().

void forceKinematicChainsUpdate ( bool  enable)
inline

Set to true to have all kinematic chains updated no matter if they are enabled or not This is set to true by the rendered to be able to render disabled objects.

Definition at line 301 of file phyicub.h.

const QVector<PhyObject*>& headNeck ( )
inline

return the head-neck parts

Definition at line 190 of file phyicub.h.

MultiMotorController* headNeckController ( )
inline

return the MultiMotorController for acting on head-neck joints

Definition at line 263 of file phyicub.h.

const QVector<PhyJoint*>& headNeckJoints ( )
inline

return the head-neck joints

Definition at line 247 of file phyicub.h.

real highEyeLimitFromVersionAndVergenceLimits ( real  versionHigh,
real  vergenceHigh 
)
staticprotected

returns the eye high limit given the version and vergence high limits

Definition at line 2858 of file phyicub.cpp.

Referenced by PhyiCub::vergenceChangedLimits(), and PhyiCub::versionChangedLimits().

bool isKinematic ( )
inline

Returns true if we are using the kinematic model.

Definition at line 148 of file phyicub.h.

const QVector<PhyObject*>& leftArm ( )
inline

return the left arm parts

Definition at line 180 of file phyicub.h.

yarp::dev::ICartesianControl* leftArmCartesianController ( )
inline

return the Cartesian Controller Interface for acting on Left Arm

Definition at line 275 of file phyicub.h.

MultiMotorController* leftArmController ( )
inline

return the MultiMotorController for acting on left arm joints

Definition at line 255 of file phyicub.h.

const QVector<PhyJoint*>& leftArmJoints ( )
inline

return the left arm joints inside the array the joints are arranged as follow: 0, 1, 2 -> joints on shoulder 3 -> elbow joint 4, 5, 6 -> wrist joints 7, 8, 9, 10 -> knuckles joints 11, 12, 13 -> index joints 14, 15, 16 -> middle joints 17, 18, 19 -> ring joints 20, 21, 22 -> pinky joints 23, 24, 25, 26 -> thumb joints

Definition at line 226 of file phyicub.h.

void leftEyeChangedDesiredPosition ( real  wishpos)
protectedslot

Configures the virtual DOF after a change in the desired position of the left eye DOF.

Definition at line 3102 of file phyicub.cpp.

References PhyDOF::position(), PhyDOF::setDesiredPosition(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

void leftEyeChangedDesiredVelocity ( real  wishvel)
protectedslot

Configures the virtual DOF after a change in the desired velocity of the left eye DOF.

Definition at line 3118 of file phyicub.cpp.

References PhyDOF::position(), PhyDOF::setDesiredVelocity(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

void leftEyeChangedLimits ( real  lowlimit,
real  highlimit 
)
protectedslot

Configures the virtual DOF after a change in the limits of the left eye DOF.

Definition at line 3166 of file phyicub.cpp.

Referenced by PhyiCub::PhyiCub().

void leftEyeChangedPosition ( real  newpos)
protectedslot

Configures the virtual DOF after a change in the position of the left eye DOF.

Definition at line 3134 of file phyicub.cpp.

References PhyDOF::position(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

void leftEyeChangedVelocity ( real  newvel)
protectedslot

Configures the virtual DOF after a change in the velocity of the left eye DOF.

Definition at line 3150 of file phyicub.cpp.

References PhyDOF::position(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

yarp::dev::IFrameGrabberImage * leftEyeFrameGrabber ( )

returns the frame grabber for the left eye

Definition at line 2389 of file phyicub.cpp.

References WCamera::getFrameGrabber().

real leftEyeFromVersionAndVergence ( real  version,
real  vergence 
)
staticprotected
const QVector<PhyObject*>& leftLeg ( )
inline

return the left leg parts

Definition at line 165 of file phyicub.h.

MultiMotorController* leftLegController ( )
inline

return the MultiMotorController for acting on left leg joints

Definition at line 267 of file phyicub.h.

const QVector<PhyJoint*>& leftLegJoints ( )
inline

return the left leg joints

Definition at line 200 of file phyicub.h.

real lowEyeLimitFromVersionAndVergenceLimits ( real  versionLow,
real  vergenceLow 
)
staticprotected

returns the eye low limit given the version and vergence low limits

Definition at line 2851 of file phyicub.cpp.

Referenced by PhyiCub::vergenceChangedLimits(), and PhyiCub::versionChangedLimits().

void postUpdate ( )
virtual

postUpdate the WObject this method is called at each step of the world just after the physic update

Reimplemented from WObject.

Definition at line 2479 of file phyicub.cpp.

References KinematicLimb< iKinLimb_t >::updateMatrixFromiKin().

void preUpdate ( )
virtual

preUpdate the WObject this method is called at each step of the world just before the physic update (after motor controllers have been updated

Reimplemented from WObject.

Definition at line 2399 of file phyicub.cpp.

References MotorController::isEnabled(), PhyObjectsGroup::resetObjectPositions(), MultiMotorController::update(), PhyObjectsGroup::updateFromDOF(), and KinematicLimb< iKinLimb_t >::updateMatrixFromiKin().

const QVector<PhyObject*>& rightArm ( )
inline

return the rigth arm parts

Definition at line 185 of file phyicub.h.

yarp::dev::ICartesianControl* rightArmCartesianController ( )
inline

return the Cartesian Controller Interface for acting on Right Arm

Definition at line 279 of file phyicub.h.

MultiMotorController* rightArmController ( )
inline

return the MultiMotorController for acting on right arm joints

Definition at line 259 of file phyicub.h.

const QVector<PhyJoint*>& rightArmJoints ( )
inline

return the rigth arm joints inside the array the joints are arranged as follow: 0, 1, 2 -> joints on shoulder 3 -> elbow joint 4, 5, 6 -> wrist joints 7, 8, 9, 10 -> knuckles joints 11, 12, 13 -> index joints 14, 15, 16 -> middle joints 17, 18, 19 -> ring joints 20, 21, 22 -> pinky joints 23, 24, 25, 26 -> thumb joints

Definition at line 242 of file phyicub.h.

void rightEyeChangedDesiredPosition ( real  wishpos)
protectedslot

Configures the virtual DOF after a change in the desired position of the right eye DOF.

Definition at line 3031 of file phyicub.cpp.

References PhyDOF::position(), PhyDOF::setDesiredPosition(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

void rightEyeChangedDesiredVelocity ( real  wishvel)
protectedslot

Configures the virtual DOF after a change in the desired velocity of the right eye DOF.

Definition at line 3047 of file phyicub.cpp.

References PhyDOF::position(), PhyDOF::setDesiredVelocity(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

void rightEyeChangedLimits ( real  lowlimit,
real  highlimit 
)
protectedslot

Configures the virtual DOF after a change in the limits of the right eye DOF.

Definition at line 3095 of file phyicub.cpp.

Referenced by PhyiCub::PhyiCub().

void rightEyeChangedPosition ( real  newpos)
protectedslot

Configures the virtual DOF after a change in the position of the right eye DOF.

Definition at line 3063 of file phyicub.cpp.

References PhyDOF::position(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

void rightEyeChangedVelocity ( real  newvel)
protectedslot

Configures the virtual DOF after a change in the velocity of the right eye DOF.

Definition at line 3079 of file phyicub.cpp.

References PhyDOF::position(), PhyiCub::vergenceFromRightAndLeftEye(), and PhyiCub::versionFromRightAndLeftEye().

Referenced by PhyiCub::PhyiCub().

yarp::dev::IFrameGrabberImage * rightEyeFrameGrabber ( )

returns the frame grabber for the right eye

Definition at line 2394 of file phyicub.cpp.

References WCamera::getFrameGrabber().

real rightEyeFromVersionAndVergence ( real  version,
real  vergence 
)
staticprotected
const QVector<PhyObject*>& rightLeg ( )
inline

return the rigth leg parts

Definition at line 170 of file phyicub.h.

MultiMotorController* rightLegController ( )
inline

return the MultiMotorController for acting on right leg joints

Definition at line 271 of file phyicub.h.

const QVector<PhyJoint*>& rightLegJoints ( )
inline

return the rigth leg joints

Definition at line 205 of file phyicub.h.

void setTorso0Matrix ( )
protected

computes and sets the transformation matrix for torso0

Definition at line 2789 of file phyicub.cpp.

References WObject::tm.

Referenced by PhyiCub::changedMatrix(), and PhyiCub::PhyiCub().

const QVector<PhyObject*>& torso ( )
inline

return the torso parts

Definition at line 175 of file phyicub.h.

MultiMotorController* torsoController ( )
inline

return the MultiMotorController for acting on torso joints

Definition at line 251 of file phyicub.h.

const QVector<PhyJoint*>& torsoJoints ( )
inline

return the torso joints

Definition at line 210 of file phyicub.h.

void vergenceChangedDesiredPosition ( real  wishpos)
protectedslot

Configures the real DOF after a change in the desired position of the vergence DOF.

Definition at line 2950 of file phyicub.cpp.

References PhyDOF::desiredPosition(), PhyiCub::leftEyeFromVersionAndVergence(), PhyiCub::rightEyeFromVersionAndVergence(), and PhyDOF::setDesiredPosition().

Referenced by PhyiCub::PhyiCub().

void vergenceChangedDesiredVelocity ( real  wishvel)
protectedslot

Configures the real DOF after a change in the desired velocity of the vergence DOF.

Definition at line 2966 of file phyicub.cpp.

References PhyDOF::desiredVelocity(), PhyiCub::leftEyeFromVersionAndVergence(), PhyiCub::rightEyeFromVersionAndVergence(), and PhyDOF::setDesiredVelocity().

Referenced by PhyiCub::PhyiCub().

void vergenceChangedLimits ( real  lowlimit,
real  highlimit 
)
protectedslot

Configures the real DOF after a change in the limits of the vergence DOF.

Definition at line 3014 of file phyicub.cpp.

References PhyiCub::highEyeLimitFromVersionAndVergenceLimits(), PhyDOF::limits(), PhyiCub::lowEyeLimitFromVersionAndVergenceLimits(), and PhyDOF::setLimits().

Referenced by PhyiCub::PhyiCub().

void vergenceChangedPosition ( real  newpos)
protectedslot

Configures the real DOF after a change in the position of the vergence DOF.

Definition at line 2982 of file phyicub.cpp.

References PhyiCub::leftEyeFromVersionAndVergence(), PhyDOF::position(), and PhyiCub::rightEyeFromVersionAndVergence().

Referenced by PhyiCub::PhyiCub().

void vergenceChangedVelocity ( real  newvel)
protectedslot

Configures the real DOF after a change in the velocity of the vergence DOF.

Definition at line 2998 of file phyicub.cpp.

References PhyiCub::leftEyeFromVersionAndVergence(), PhyiCub::rightEyeFromVersionAndVergence(), and PhyDOF::velocity().

Referenced by PhyiCub::PhyiCub().

real vergenceFromRightAndLeftEye ( real  left,
real  right 
)
staticprotected
void versionChangedDesiredPosition ( real  wishpos)
protectedslot

Configures the real DOF after a change in the desired position of the version DOF.

Definition at line 2869 of file phyicub.cpp.

References PhyDOF::desiredPosition(), PhyiCub::leftEyeFromVersionAndVergence(), PhyiCub::rightEyeFromVersionAndVergence(), and PhyDOF::setDesiredPosition().

Referenced by PhyiCub::PhyiCub().

void versionChangedDesiredVelocity ( real  wishvel)
protectedslot

Configures the real DOF after a change in the desired velocity of the version DOF.

Definition at line 2885 of file phyicub.cpp.

References PhyDOF::desiredVelocity(), PhyiCub::leftEyeFromVersionAndVergence(), PhyiCub::rightEyeFromVersionAndVergence(), and PhyDOF::setDesiredVelocity().

Referenced by PhyiCub::PhyiCub().

void versionChangedLimits ( real  lowlimit,
real  highlimit 
)
protectedslot

Configures the real DOF after a change in the limits of the version DOF.

Definition at line 2933 of file phyicub.cpp.

References PhyiCub::highEyeLimitFromVersionAndVergenceLimits(), PhyDOF::limits(), PhyiCub::lowEyeLimitFromVersionAndVergenceLimits(), and PhyDOF::setLimits().

Referenced by PhyiCub::PhyiCub().

void versionChangedPosition ( real  newpos)
protectedslot

Configures the real DOF after a change in the position of the version DOF.

Definition at line 2901 of file phyicub.cpp.

References PhyiCub::leftEyeFromVersionAndVergence(), PhyDOF::position(), and PhyiCub::rightEyeFromVersionAndVergence().

Referenced by PhyiCub::PhyiCub().

void versionChangedVelocity ( real  newvel)
protectedslot

Configures the real DOF after a change in the velocity of the version DOF.

Definition at line 2917 of file phyicub.cpp.

References PhyiCub::leftEyeFromVersionAndVergence(), PhyiCub::rightEyeFromVersionAndVergence(), and PhyDOF::velocity().

Referenced by PhyiCub::PhyiCub().

real versionFromRightAndLeftEye ( real  left,
real  right 
)
staticprotected

The documentation for this class was generated from the following files: