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
68 Model(
const std::string& pathToModel);
74 const std::string& name()
const;
80 std::string prettyName(
int verbosity = 0)
const;
84 const std::string& configFile()
const;
88 std::vector<const Joint*> joints()
const;
91 const Joint* joint(
const std::string& jointName)
const;
95 std::vector<const JointSymmetry*> jointSymmetries()
const;
98 const JointSymmetry* jointSymmetry(
const std::string& jointName)
const;
102 std::vector<const JointGroup*> jointGroups()
const;
105 const JointGroup* jointGroup(
const std::string& jointGroupName)
const;
110 std::vector<const JointGroup*>
111 jointGroupsOfJoint(
const std::string& jointName)
const;
115 std::vector<const Link*> links()
const;
118 const Link* link(
const std::string& linkName)
const;
122 const Link* rootLink()
const;
126 std::vector<const Actuator*> actuators()
const;
129 const Actuator* actuator(
const std::string& actuatorName)
const;
133 std::vector<const ActuatorGroup*> actuatorGroups()
const;
137 const std::string& actuatorGroupName)
const;
143 std::vector<const ActuatorGroup*>
144 actuatorGroupsOfJoint(
const std::string& jointName)
const;
148 std::vector<const AngleActuator*> angleActuators()
const;
151 const AngleActuator* angleActuator(
const std::string& actuatorName)
const;
155 std::vector<const CoupledActuator*> coupledActuators()
const;
159 const std::string& actuatorName)
const;
163 std::vector<const TorqueActuator*> torqueActuators()
const;
167 const std::string& actuatorName)
const;
171 std::vector<const AngleSpeedActuator*> angleSpeedActuators()
const;
175 const std::string& actuatorName)
const;
179 std::vector<const WheelTorqueActuator*> wheelTorqueActuators()
const;
183 const std::string& actuatorName)
const;
187 std::vector<const WheelVelocityActuator*> wheelVelocityActuators()
const;
191 const std::string& actuatorName)
const;
197 std::vector<const LEDActuator*> ledActuators(
198 const std::string& groupName = std::string())
const;
201 const LEDActuator* ledActuator(
const std::string& actuatorName)
const;
205 std::vector<const Sensor*> sensors()
const;
208 const Sensor* sensor(
const std::string& sensorName)
const;
212 std::vector<const AngleSensor*> angleSensors()
const;
215 const AngleSensor* angleSensor(
const std::string& sensorName)
const;
219 std::vector<const CoupledSensor*> coupledSensors()
const;
222 const CoupledSensor* coupledSensor(
const std::string& sensorName)
const;
226 std::vector<const TorqueSensor*> torqueSensors()
const;
229 const TorqueSensor* torqueSensor(
const std::string& sensorName)
const;
233 std::vector<const AngleSpeedSensor*> angleSpeedSensors()
const;
237 const std::string& sensorName)
const;
241 std::vector<const WheelVelocitySensor*> wheelVelocitySensors()
const;
245 const std::string& sensorName)
const;
249 std::vector<const CameraSensor*> cameraSensors()
const;
252 const CameraSensor* cameraSensor(
const std::string& sensorName)
const;
256 std::vector<const CameraStereoSensor*> cameraStereoSensors()
const;
260 const std::string& sensorName)
const;
264 std::vector<const CameraDepthSensor*> cameraDepthSensors()
const;
268 const std::string& sensorName)
const;
272 std::vector<const FSRSensor*> fsrSensors()
const;
275 const FSRSensor* fsrSensor(
const std::string& sensorName)
const;
279 std::vector<const InertialSensor*> inertialSensors()
const;
282 const InertialSensor* inertialSensor(
const std::string& sensorName)
const;
286 std::vector<const SonarSensor*> sonarSensors()
const;
289 const SonarSensor* sonarSensor(
const std::string& sensorName)
const;
293 std::vector<const BumperSensor*> bumperSensors()
const;
296 const BumperSensor* bumperSensor(
const std::string& sensorName)
const;
300 std::vector<const TactileSensor*> tactileSensors()
const;
303 const TactileSensor* tactileSensor(
const std::string& sensorName)
const;
307 std::vector<const SingleDepthSensor*> singleDepthSensors()
const;
311 const std::string& sensorName)
const;
315 std::vector<const ArrayDepthSensor*> arrayDepthSensors()
const;
319 const std::string& sensorName)
const;
324 std::vector<const DepthInfraredSensor*> depthInfraredSensors()
const;
329 const std::string& sensorName)
const;
333 std::vector<const MicrophoneSensor*> microphoneSensors()
const;
337 const std::string& sensorName)
const;
366 std::pair<const Joint*, const Joint*> symmetricJoints()
const;
369 const Joint* symmetricJoint(
const Joint* joint)
const;
372 SymmetryType symmetryType()
const;
396 const std::string& name()
const;
399 std::vector<const Joint*> joints()
const;
416 const std::string& name()
const;
421 const AL::Math::Transform& position()
const;
423 const Frame* parentFrame()
const;
427 const AL::Math::Transform& localPosition()
const;
432 static AL::Math::Transform globalPosition(
451 const Frame* frame()
const;
453 const std::string& name()
const;
458 const Link* parentLink()
const;
463 const Link* childLink()
const;
472 const std::string& frictionMaterial1,
473 const std::string& frictionMaterial2,
494 const AL::Math::Position3D& CoM()
const;
497 const std::vector<float>& inertiaMatrix()
const;
520 const std::string& meshPath()
const;
523 const AL::Math::Transform& meshTransform()
const;
550 const Frame* frame()
const;
552 const std::string& name()
const;
555 const Joint* parentJoint()
const;
558 const std::vector<const Joint*> childrenJoints()
const;
562 const std::string& frictionMaterial()
const;
566 LinkType type()
const;
597 const Frame* frame()
const;
599 const virtual std::string& name()
const;
604 virtual int bufferSize()
const = 0;
626 const std::string& name()
const;
632 std::vector<const Actuator*> actuators()
const;
653 const std::vector<std::string>& dcmKeys()
const;
656 virtual int bufferSize()
const = 0;
676 bool reflectedSymmetricReversed()
const;
678 bool reflectionForced()
const;
681 virtual int bufferSize()
const;
683 float startValue()
const;
685 float minValue()
const;
687 float maxValue()
const;
690 float maxSpeed()
const;
692 const Joint* controlledJoint()
const;
712 bool reflectedSymmetricReversed()
const;
714 bool reflectionForced()
const;
717 virtual int bufferSize()
const;
720 float startValue()
const;
723 float minValue()
const;
726 float maxValue()
const;
728 float maxSpeed()
const;
731 std::vector<std::pair<const Joint*, float> >
732 controlledJointAndRatios()
const;
752 bool reflectedSymmetricReversed()
const;
755 virtual int bufferSize()
const;
758 float startValue()
const;
761 float minValue()
const;
764 float maxValue()
const;
766 const Joint* controlledJoint()
const;
786 bool reflectedSymmetricReversed()
const;
789 virtual int bufferSize()
const;
792 float startValue()
const;
795 float minValue()
const;
798 float maxValue()
const;
800 const Joint* controlledJoint()
const;
815 virtual int bufferSize()
const;
818 float maxTorque()
const;
820 const Joint* controlledJoint()
const;
837 virtual int bufferSize()
const;
840 float maxVelocity()
const;
842 const Joint* controlledJoint()
const;
867 virtual int bufferSize()
const;
869 const std::string& shortname()
const;
871 const std::vector<std::string>& groups()
const;
914 const Frame* frame()
const;
916 virtual const std::string& name()
const;
921 virtual int bufferSize()
const = 0;
940 const std::vector<std::string>& dcmKeys()
const;
943 std::vector<std::string> fullDcmKeys()
const;
946 const std::vector<std::string>& dcmStateKeys()
const;
950 const std::vector<std::string>& dcmCommandKeys()
const;
953 virtual int bufferSize()
const = 0;
971 virtual int bufferSize()
const;
987 virtual int bufferSize()
const;
1004 virtual int bufferSize()
const;
1022 virtual int bufferSize()
const;
1040 virtual int bufferSize()
const;
1056 virtual int bufferSize()
const = 0;
1072 virtual int bufferSize()
const;
1092 virtual int bufferSize()
const;
1112 virtual int bufferSize()
const;
1132 virtual int bufferSize()
const;
1148 virtual int bufferSize()
const;
1164 virtual int bufferSize()
const;
1180 virtual int bufferSize()
const;
1196 virtual int bufferSize()
const;
1213 virtual int bufferSize()
const;
1230 virtual int bufferSize()
const;
1250 virtual int bufferSize()
const;
1255 #endif // ALROBOTMODEL_H
Model is responsible of giving information of a physical robot.
Type
gives the type of the Sensor.
ActuatorSymmetry is a predefined and named ordered group of actuators that allows simpler calls of AL...
InertialSensor is a class defining a inertial unit sensor.
BumperSensor is a class defining a bumper sensor.
class VisualDataImpl * a_impl
Private implementation.
VisualData embeds information about the visualization of a physical object.
MassData embeds information about the inertial mass of a physical object.
WheelVelocityActuator is a class defining an actuator that drives a wheel.
SonarSensor is a class defining a sonar sensor.
class LinkImpl * a_impl
private implementation.
DCMSensor defines a generic sensor which values are communicated through the DCM. ...
Actuator is a generic class defining a robot owned object that have an influence on it and/or its env...
AngleSpeedActuator is a class defining a speed-controlled motor. It is attached to one joint and can ...
SymmetryType
the symmetry can be direct or reversed
class SensorImpl * a_impl
private implementation.
class JointImpl * a_impl
Private implementation.
class ModelImpl * a_impl
private implementation.
CameraSensor is a class defining a camera.
JointGroup is a predefined and named ordered group of joints that allow simpler calls of ALMotion API...
JointSymmetry defines a symmetry between two joints.
DCMActuator defines a generic actuator which commands are communicated through the DCM...
BaseCamera is the base class of Camera classes.
SingleDepthSensor is a class defining a sensor that provides a single depth measurement.
class ActuatorGroupImpl * a_impl
private implementation.
ALROBOTMODEL_API bool frictionCoeff(const std::string &frictionMaterial1, const std::string &frictionMaterial2, float &frictionCoeff)
This function returns if a friction coefficient (nil or positive) between frictionMaterial1 and frict...
AngleSpeedSensor is a class defining an angle speed sensor. It is attached to an angle speed motor (i...
Frame defines a position in space and has a name.
Link defines a solid and mobile part of the robot.
TorqueSensor is a class defining an torque sensor. It is attached to a torque motor (it has the same ...
Type
gives the type of the Actuator.
LinkType
link can be classic links as in Denavit-Hartenberg representation, or of specific kind ...
CoupledSensor is a class defining a coupled sensor.
CameraStereoSensor is a class defining a camera.
Sensor is a generic class defining a robot owned object that measure a quantity about it or its envir...
WheelTorqueActuator is a class defining an actuator that drives a wheel.
TactileSensor is a class defining a tactile sensor.
LEDActuator is a class defining a LED actuator.
WheelVelocitySensor is a class defining a wheel velocity sensor. It is to a wheel velocity motor (it ...
class JointGroupImpl * a_impl
private implementation.
ActuatorImpl * a_impl
private implementation
class JointSymmetryImpl * a_impl
brief private implementation.
CoupledActuator is a class defining a coupled motor. It is attached to several joints and can actuate...
SingleDepthSensor DepthInfraredSensor
AngleSensor is a class defining an angular sensor. It is attached to an angular motor (it has the sam...
ArrayDepthSensor is a class defining a sensor made of an array of depth sensors.
TorqueActuator is a class defining a torque-controlled motor. It is attached to one joint and can act...
Joint defines an articulation of the robot.
FSRSensor is a class defining a Force Sensitive Resistor sensor.
MicrophoneSensor is a class defining a microphone sensor.
AngleActuator is a class defining an angular motor. It is attached to the joint that it can actuate...
class MassDataImpl * a_impl
Private implementation.
CameraDepthSensor is a class defining a depth sensing camera.
class FrameImpl * a_impl
private implementation.