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.