8 #include <almath/types/altransform.h> 
    9 #include <almath/types/alposition3d.h> 
   12 #include <qi/macro.hpp> 
   14 #ifdef alrobotmodel_EXPORTS 
   15 # define ALROBOTMODEL_API QI_EXPORT_API 
   16 #elif defined(alrobotmodel_IMPORTS) 
   17 # define ALROBOTMODEL_API QI_IMPORT_API 
   19 # define ALROBOTMODEL_API 
   29   class AngleSpeedActuator;
 
   30   class AngleSpeedSensor;
 
   31   class ArrayDepthSensor;
 
   34   class CameraDepthSensor;
 
   35   class CoupledActuator;
 
   42   class MicrophoneSensor;
 
   48   class SingleDepthSensor;
 
   51   class WheelTorqueActuator;
 
   52   class WheelVelocityActuator;
 
   53   class WheelVelocitySensor;
 
   55   typedef SingleDepthSensor DepthInfraredSensor;
 
   67     Model(
const std::string& pathToModel);
 
   73     const std::string& name() 
const;
 
   79     std::string prettyName(
int verbosity = 0) 
const;
 
   83     const std::string& configFile() 
const;
 
   87     std::vector<const Joint*> joints() 
const;
 
   90     const Joint* joint(
const std::string& jointName) 
const;
 
   94     std::vector<const JointSymmetry*> jointSymmetries() 
const;
 
   97     const JointSymmetry* jointSymmetry(
const std::string& jointName) 
const;
 
  101     std::vector<const JointGroup*> jointGroups() 
const;
 
  104     const JointGroup* jointGroup(
const std::string& jointGroupName) 
const;
 
  109     std::vector<const JointGroup*>
 
  110       jointGroupsOfJoint(
const std::string& jointName) 
const;
 
  114     std::vector<const Link*> links() 
const;
 
  117     const Link* link(
const std::string& linkName) 
const;
 
  121     const Link* rootLink() 
const;
 
  125     std::vector<const Actuator*> actuators() 
const;
 
  128     const Actuator* actuator(
const std::string& actuatorName) 
const;
 
  132     std::vector<const ActuatorGroup*> actuatorGroups() 
const;
 
  136       const std::string& actuatorGroupName) 
const;
 
  142     std::vector<const ActuatorGroup*>
 
  143       actuatorGroupsOfJoint(
const std::string& jointName) 
const;
 
  147     std::vector<const AngleActuator*> angleActuators() 
const;
 
  150     const AngleActuator* angleActuator(
const std::string& actuatorName) 
const;
 
  154     std::vector<const CoupledActuator*> coupledActuators() 
const;
 
  158       const std::string& actuatorName) 
const;
 
  162     std::vector<const TorqueActuator*> torqueActuators() 
const;
 
  166       const std::string& actuatorName) 
const;
 
  170     std::vector<const AngleSpeedActuator*> angleSpeedActuators() 
const;
 
  174       const std::string& actuatorName) 
const;
 
  178     std::vector<const WheelTorqueActuator*> wheelTorqueActuators() 
const;
 
  182       const std::string& actuatorName) 
const;
 
  186     std::vector<const WheelVelocityActuator*> wheelVelocityActuators() 
const;
 
  190       const std::string& actuatorName) 
const;
 
  196     std::vector<const LEDActuator*> ledActuators(
 
  197       const std::string& groupName = std::string()) 
const;
 
  200     const LEDActuator* ledActuator(
const std::string& actuatorName) 
const;
 
  204     std::vector<const Sensor*> sensors() 
const;
 
  207     const Sensor* sensor(
const std::string& sensorName) 
const;
 
  211     std::vector<const AngleSensor*> angleSensors() 
const;
 
  214     const AngleSensor* angleSensor(
const std::string& sensorName) 
const;
 
  218     std::vector<const CoupledSensor*> coupledSensors() 
const;
 
  221     const CoupledSensor* coupledSensor(
const std::string& sensorName) 
const;
 
  225     std::vector<const TorqueSensor*> torqueSensors() 
const;
 
  228     const TorqueSensor* torqueSensor(
const std::string& sensorName) 
const;
 
  232     std::vector<const AngleSpeedSensor*> angleSpeedSensors() 
const;
 
  236       const std::string& sensorName) 
const;
 
  240     std::vector<const WheelVelocitySensor*> wheelVelocitySensors() 
const;
 
  244       const std::string& sensorName) 
const;
 
  248     std::vector<const CameraSensor*> cameraSensors() 
const;
 
  251     const CameraSensor* cameraSensor(
const std::string& sensorName) 
const;
 
  255     std::vector<const CameraDepthSensor*> cameraDepthSensors() 
const;
 
  259       const std::string& sensorName) 
const;
 
  263     std::vector<const FSRSensor*> fsrSensors() 
const;
 
  266     const FSRSensor* fsrSensor(
const std::string& sensorName) 
const;
 
  270     std::vector<const InertialSensor*> inertialSensors() 
const;
 
  273     const InertialSensor* inertialSensor(
const std::string& sensorName) 
const;
 
  277     std::vector<const SonarSensor*> sonarSensors() 
const;
 
  280     const SonarSensor* sonarSensor(
const std::string& sensorName) 
const;
 
  284     std::vector<const BumperSensor*> bumperSensors() 
const;
 
  287     const BumperSensor* bumperSensor(
const std::string& sensorName) 
const;
 
  291     std::vector<const TactileSensor*> tactileSensors() 
const;
 
  294     const TactileSensor* tactileSensor(
const std::string& sensorName) 
const;
 
  298     std::vector<const SingleDepthSensor*> singleDepthSensors() 
const;
 
  302       const std::string& sensorName) 
const;
 
  306     std::vector<const ArrayDepthSensor*> arrayDepthSensors() 
const;
 
  310       const std::string& sensorName) 
const;
 
  315     std::vector<const DepthInfraredSensor*> depthInfraredSensors() 
const;
 
  320       const std::string& sensorName) 
const;
 
  324     std::vector<const MicrophoneSensor*> microphoneSensors() 
const;
 
  328       const std::string& sensorName) 
const;
 
  357     std::pair<const Joint*, const Joint*> symmetricJoints() 
const;
 
  360     const Joint* symmetricJoint(
const Joint* joint) 
const;
 
  363     SymmetryType symmetryType() 
const;
 
  387     const std::string& name() 
const;
 
  390     std::vector<const Joint*> joints() 
const;
 
  407     const std::string& name() 
const;
 
  412     const AL::Math::Transform& position() 
const;
 
  414     const Frame* parentFrame() 
const;
 
  418     const AL::Math::Transform& localPosition() 
const;
 
  423     static AL::Math::Transform globalPosition(
 
  442     const Frame* frame() 
const;
 
  444     const std::string& name() 
const;
 
  449     const Link* parentLink() 
const;
 
  454     const Link* childLink() 
const;
 
  462 ALROBOTMODEL_API 
bool frictionCoeff(
 
  463   const std::string& frictionMaterial1,
 
  464   const std::string& frictionMaterial2,
 
  465   float& frictionCoeff);
 
  485     const AL::Math::Position3D& CoM() 
const;
 
  488     const std::vector<float>& inertiaMatrix() 
const;
 
  511     const std::string& meshPath() 
const;
 
  514     const AL::Math::Transform& meshTransform() 
const;
 
  541     const Frame* frame() 
const;
 
  543     const std::string& name() 
const;
 
  546     const Joint* parentJoint() 
const;
 
  549     const std::vector<const Joint*> childrenJoints() 
const;
 
  553     const std::string& frictionMaterial() 
const;
 
  557     LinkType type() 
const;
 
  588     const Frame* frame() 
const;
 
  590     const virtual std::string& name() 
const;
 
  595     virtual int bufferSize() 
const = 0;
 
  617     const std::string& name() 
const;
 
  623     std::vector<const Actuator*> actuators() 
const;
 
  644     const std::vector<std::string>& dcmKeys() 
const;
 
  647     virtual int bufferSize() 
const = 0;
 
  667     bool reflectedSymmetricReversed() 
const;
 
  669     bool reflectionForced() 
const;
 
  672     virtual int bufferSize() 
const;
 
  674     float startValue() 
const;
 
  676     float minValue() 
const;
 
  678     float maxValue() 
const;
 
  681     float maxSpeed() 
const;
 
  683     const Joint* controlledJoint() 
const;
 
  703     bool reflectedSymmetricReversed() 
const;
 
  705     bool reflectionForced() 
const;
 
  708     virtual int bufferSize() 
const;
 
  711     float startValue() 
const;
 
  714     float minValue() 
const;
 
  717     float maxValue() 
const;
 
  719     float maxSpeed() 
const;
 
  722     std::vector<std::pair<const Joint*, float> >
 
  723       controlledJointAndRatios() 
const;
 
  743     bool reflectedSymmetricReversed() 
const;
 
  746     virtual int bufferSize() 
const;
 
  749     float startValue() 
const;
 
  752     float minValue() 
const;
 
  755     float maxValue() 
const;
 
  757     const Joint* controlledJoint() 
const;
 
  777     bool reflectedSymmetricReversed() 
const;
 
  780     virtual int bufferSize() 
const;
 
  783     float startValue() 
const;
 
  786     float minValue() 
const;
 
  789     float maxValue() 
const;
 
  791     const Joint* controlledJoint() 
const;
 
  806     virtual int bufferSize() 
const;
 
  809     float maxTorque() 
const;
 
  811     const Joint* controlledJoint() 
const;
 
  828     virtual int bufferSize() 
const;
 
  831     float maxVelocity() 
const;
 
  833     const Joint* controlledJoint() 
const;
 
  858     virtual int bufferSize() 
const;
 
  860     const std::string& shortname() 
const;
 
  862     const std::vector<std::string>& groups() 
const;
 
  905     const Frame* frame() 
const;
 
  907     virtual const std::string& name() 
const;
 
  912     virtual int bufferSize() 
const = 0;
 
  931     const std::vector<std::string>& dcmKeys() 
const;
 
  934     std::vector<std::string> fullDcmKeys() 
const;
 
  937     const std::vector<std::string>& dcmStateKeys() 
const;
 
  941     const std::vector<std::string>& dcmCommandKeys() 
const;
 
  944     virtual int bufferSize() 
const = 0;
 
  962     virtual int bufferSize() 
const;
 
  978     virtual int bufferSize() 
const;
 
  995     virtual int bufferSize() 
const;
 
 1013     virtual int bufferSize() 
const;
 
 1031     virtual int bufferSize() 
const;
 
 1047     virtual int bufferSize() 
const = 0;
 
 1063     virtual int bufferSize() 
const;
 
 1083     virtual int bufferSize() 
const;
 
 1103     virtual int bufferSize() 
const;
 
 1119     virtual int bufferSize() 
const;
 
 1135     virtual int bufferSize() 
const;
 
 1151     virtual int bufferSize() 
const;
 
 1167     virtual int bufferSize() 
const;
 
 1184     virtual int bufferSize() 
const;
 
 1201     virtual int bufferSize() 
const;
 
 1221     virtual int bufferSize() 
const;
 
 1226 #endif // ALROBOTMODEL_H 
MassData embeds information about the inertial mass of a physical object. 
 
LEDActuator is a class defining a LED actuator. 
 
class JointImpl * a_impl
Private implementation. 
 
CameraDepthSensor is a class defining a depth sensing camera. 
 
Sensor is a generic class defining a robot owned object that measure a quantity about it or its envir...
 
DCMSensor defines a generic sensor which values are communicated through the DCM. ...
 
AngleActuator is a class defining an angular motor. It is attached to the joint that it can actuate...
 
TactileSensor is a class defining a tactile sensor. 
 
Actuator is a generic class defining a robot owned object that have an influence on it and/or its env...
 
WheelVelocityActuator is a class defining an actuator that drives a wheel. 
 
class JointGroupImpl * a_impl
private implementation. 
 
Link defines a solid and mobile part of the robot. 
 
JointSymmetry defines a symmetry between two joints. 
 
class FrameImpl * a_impl
private implementation. 
 
class MassDataImpl * a_impl
Private implementation. 
 
class ModelImpl * a_impl
private implementation. 
 
Type
gives the type of the Actuator. 
 
InertialSensor is a class defining a inertial unit sensor. 
 
AngleSpeedSensor is a class defining an angle speed sensor. It is attached to an angle speed motor (i...
 
BumperSensor is a class defining a bumper sensor. 
 
Model is responsible of giving information of a physical robot. 
 
DCMActuator defines a generic actuator which commands are communicated through the DCM...
 
class SensorImpl * a_impl
private implementation. 
 
CoupledActuator is a class defining a coupled motor. It is attached to several joints and can actuate...
 
class JointSymmetryImpl * a_impl
brief private implementation. 
 
SonarSensor is a class defining a sonar sensor. 
 
FSRSensor is a class defining a Force Sensitive Resistor sensor. 
 
SymmetryType
the symmetry can be direct or reversed 
 
WheelTorqueActuator is a class defining an actuator that drives a wheel. 
 
AngleSpeedActuator is a class defining a speed-controlled motor. It is attached to one joint and can ...
 
TorqueSensor is a class defining an torque sensor. It is attached to a torque motor (it has the same ...
 
JointGroup is a predefined and named ordered group of joints that allow simpler calls of ALMotion API...
 
LinkType
link can be classic links as in Denavit-Hartenberg representation, or of specific kind ...
 
MicrophoneSensor is a class defining a microphone sensor. 
 
CoupledSensor is a class defining a coupled sensor. 
 
Type
gives the type of the Sensor. 
 
CameraSensor is a class defining a camera. 
 
class VisualDataImpl * a_impl
Private implementation. 
 
ActuatorImpl * a_impl
private implementation 
 
VisualData embeds information about the visualization of a physical object. 
 
BaseCamera is the base class of Camera classes. 
 
TorqueActuator is a class defining a torque-controlled motor. It is attached to one joint and can act...
 
SingleDepthSensor is a class defining a sensor that provides a single depth measurement. 
 
Frame defines a position in space and has a name. 
 
class LinkImpl * a_impl
private implementation. 
 
AngleSensor is a class defining an angular sensor. It is attached to an angular motor (it has the sam...
 
ActuatorSymmetry is a predefined and named ordered group of actuators that allows simpler calls of AL...
 
class ActuatorGroupImpl * a_impl
private implementation. 
 
Joint defines an articulation of the robot. 
 
WheelVelocitySensor is a class defining a wheel velocity sensor. It is to a wheel velocity motor (it ...
 
ArrayDepthSensor is a class defining a sensor made of an array of depth sensors.