mc_rtc  2.14.0
RobotModule.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2019 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
7 #include <mc_rbdyn/BodySensor.h>
8 #include <mc_rbdyn/Collision.h>
10 #include <mc_rbdyn/Flexibility.h>
11 #include <mc_rbdyn/ForceSensor.h>
12 #include <mc_rbdyn/JointSensor.h>
13 #include <mc_rbdyn/Mimic.h>
15 #include <mc_rbdyn/Springs.h>
16 #include <mc_rbdyn/api.h>
18 
19 #include <mc_rtc/constants.h>
20 #include <mc_rtc/deprecated.h>
21 
22 #include <RBDyn/parsers/common.h>
23 
24 #include <sch/S_Object/S_Object.h>
25 
26 /* This is an interface designed to provide additionnal information about a robot */
27 
28 namespace mc_rbdyn
29 {
30 
31 using S_ObjectPtr = std::shared_ptr<sch::S_Object>;
32 
37 struct DevicePtrVector : public std::vector<DevicePtr>
38 {
39  inline DevicePtrVector() = default;
40 
43 
44  inline DevicePtrVector(DevicePtrVector && v) = default;
45  inline DevicePtrVector & operator=(DevicePtrVector && v) = default;
46 };
47 
52 struct VisualMap : public std::map<std::string, std::vector<rbd::parsers::Visual>>
53 {
54  inline VisualMap() = default;
55 
56  inline VisualMap(const VisualMap & v) = default;
57  inline VisualMap & operator=(const VisualMap & v) = default;
58 
59  inline VisualMap(VisualMap && v) = default;
60  inline VisualMap & operator=(VisualMap && v) = default;
61 
62  using std::map<std::string, std::vector<rbd::parsers::Visual>>::operator=;
63 };
64 
66 {
67  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
68 
78  using bounds_t = std::vector<std::map<std::string, std::vector<double>>>;
79 
87  using accelerationBounds_t = std::vector<std::map<std::string, std::vector<double>>>;
88 
96  using jerkBounds_t = std::vector<std::map<std::string, std::vector<double>>>;
97 
105  using torqueDerivativeBounds_t = std::vector<std::map<std::string, std::vector<double>>>;
106 
109  {
112  {
114  static constexpr double DEFAULT_PERCENT_VMAX = 0.25;
116  static constexpr double DEFAULT_ACTUAL_COMMAND_DIFF_TRIGGER = mc_rtc::constants::toRad(8.);
118  static constexpr double DEFAULT_RELEASE_OFFSET = mc_rtc::constants::toRad(2);
120  static constexpr unsigned int DEFAULT_OVER_COMMAND_LIMIT_ITER_N = 5;
121 
122  // FIXME These constructors are only needed to facilitate initialization and not required in C++14
123  inline Safety() : Safety(DEFAULT_PERCENT_VMAX) {}
124 
125  inline Safety(double percentVMax,
126  double actualCommandDiffTrigger = DEFAULT_ACTUAL_COMMAND_DIFF_TRIGGER,
127  double releaseSafetyOffset = DEFAULT_RELEASE_OFFSET,
128  unsigned int overCommandLimitIterN = DEFAULT_OVER_COMMAND_LIMIT_ITER_N)
129  : percentVMax(percentVMax), actualCommandDiffTrigger(actualCommandDiffTrigger),
130  releaseSafetyOffset(releaseSafetyOffset), overCommandLimitIterN(overCommandLimitIterN)
131  {
132  }
133 
135  void load(const mc_rtc::Configuration & config);
138 
140  double percentVMax;
146  unsigned int overCommandLimitIterN;
147  };
148 
150  Gripper(const std::string & name, const std::vector<std::string> & joints, bool reverse_limits);
151 
153  Gripper(const std::string & name,
154  const std::vector<std::string> & joints,
155  bool reverse_limits,
156  const Safety & safety);
157 
159  Gripper(const std::string & name,
160  const std::vector<std::string> & joints,
161  bool reverse_limits,
162  const Safety & safety,
163  const std::vector<Mimic> & mimics);
164 
166  std::string name;
168  std::vector<std::string> joints;
171 
172  // FIXME In C++17 std::optional is a better semantic
174  inline const Safety * safety() const { return hasSafety_ ? &safety_ : nullptr; }
175 
177  inline const std::vector<Mimic> * mimics() const { return hasMimics_ ? &mimics_ : nullptr; }
178 
179  private:
181  bool hasSafety_ = false;
183  Safety safety_;
185  bool hasMimics_ = false;
187  std::vector<Mimic> mimics_;
189  Gripper(const std::string & name,
190  const std::vector<std::string> & joints,
191  bool reverse_limits,
192  const Safety * safety,
193  const std::vector<Mimic> * mimics);
194  };
195 
205  {
207  FrameDescription(const std::string & n, const std::string & p, const sva::PTransformd & pt, bool baked = false)
208  : name(n), parent(p), X_p_f(pt), baked(baked)
209  {
210  }
211 
213  std::string name;
215  std::string parent;
217  sva::PTransformd X_p_f;
219  bool baked = false;
220  };
221 
237  RobotModule(const std::string & path, const std::string & name)
238  : RobotModule(path, name, path + "/urdf/" + name + ".urdf")
239  {
240  }
241 
254  RobotModule(const std::string & path, const std::string & name, const std::string & urdf_path)
255  : path(path), name(name), urdf_path(urdf_path), convex_dir(""), rsdf_dir(path + "/rsdf/" + name),
256  calib_dir(path + "/calib/" + name), _real_urdf(urdf_path)
257  {
258  }
259 
261  RobotModule(const std::string & name, const rbd::parsers::ParserResult & res);
262 
265  {
266 
272 #define CONNECTION_PROPERTY(NAME, TYPE, DEFAULT) \
273  TYPE NAME##_ = DEFAULT; \
274  inline ConnectionParameters & NAME(const TYPE & b) noexcept \
275  { \
276  NAME##_ = b; \
277  return *this; \
278  } \
279  inline auto & NAME() noexcept { return NAME##_; }
280 
289  CONNECTION_PROPERTY(path, std::string, "")
291  CONNECTION_PROPERTY(name, std::string, "")
293  CONNECTION_PROPERTY(urdf_path, std::string, "")
295  CONNECTION_PROPERTY(rsdf_dir, std::string, "")
297  CONNECTION_PROPERTY(calib_dir, std::string, "")
299  CONNECTION_PROPERTY(useGripperSafetyFromThis, bool, true)
301  CONNECTION_PROPERTY(useLIPMStabilizerConfigFromThis, bool, true)
302 
304  /* End General parameters section */
305 
314  CONNECTION_PROPERTY(jointType, rbd::Joint::Type, rbd::Joint::Type::Fixed)
315 
317  CONNECTION_PROPERTY(jointAxis, Eigen::Vector3d, Eigen::Vector3d::UnitZ())
319  CONNECTION_PROPERTY(jointForward, bool, true)
321  CONNECTION_PROPERTY(jointName, std::string, "")
323  CONNECTION_PROPERTY(jointStance, std::vector<double>, {})
326  using JointLimits = std::array<std::vector<double>, 6>;
327  CONNECTION_PROPERTY(jointLimits, JointLimits, {})
330  using JointAccelerationLimits = std::array<std::vector<double>, 2>;
331  CONNECTION_PROPERTY(jointAccelerationLimits, JointAccelerationLimits, {})
334  using JointJerkLimits = std::array<std::vector<double>, 2>;
335  CONNECTION_PROPERTY(jointJerkLimits, JointJerkLimits, {})
338  using JointTorqueDerivativeLimits = std::array<std::vector<double>, 2>;
339  CONNECTION_PROPERTY(jointTorqueDerivativeLimits, JointTorqueDerivativeLimits, {})
341  CONNECTION_PROPERTY(X_this_connection, sva::PTransformd, sva::PTransformd::Identity())
343  CONNECTION_PROPERTY(X_other_connection, sva::PTransformd, sva::PTransformd::Identity())
344 
346  /* End Connection joint section */
347 
357  using mapping_t = std::unordered_map<std::string, std::string>;
358 
360  CONNECTION_PROPERTY(bodyMapping, mapping_t, {})
361 
363  CONNECTION_PROPERTY(jointMapping, mapping_t, {})
364 
366  CONNECTION_PROPERTY(convexMapping, mapping_t, {})
367 
369  CONNECTION_PROPERTY(gripperMapping, mapping_t, {})
370 
372  CONNECTION_PROPERTY(surfaceMapping, mapping_t, {})
373 
374  /* Remap frame names */
375  CONNECTION_PROPERTY(frameMapping, mapping_t, {})
376 
378  CONNECTION_PROPERTY(forceSensorMapping, mapping_t, {})
379 
381  CONNECTION_PROPERTY(bodySensorMapping, mapping_t, {})
382 
384  CONNECTION_PROPERTY(deviceMapping, mapping_t, {})
385 
386 #undef CONNECTION_PROPERTY
388  /* End Name mapping section */
389  };
390 
415  const std::string & this_body,
416  const std::string & other_body,
417  const std::string & prefix,
418  const ConnectionParameters & params) const;
419 
444  const std::string & this_body,
445  const std::string & other_body,
446  const std::string & prefix,
447  const ConnectionParameters & params) const;
448 
460  void init(const rbd::parsers::ParserResult & res);
461 
486  void generate_convexes(bool regenerate = false, unsigned int sampling_point = 4000);
487 
497 
509  const std::vector<std::map<std::string, std::vector<double>>> & bounds() const { return _bounds; }
510 
520  const std::vector<std::map<std::string, std::vector<double>>> & accelerationBounds() const
521  {
522  return _accelerationBounds;
523  }
524 
534  const std::vector<std::map<std::string, std::vector<double>>> & jerkBounds() const { return _jerkBounds; }
535 
545  const std::vector<std::map<std::string, std::vector<double>>> & torqueDerivativeBounds() const
546  {
547  return _torqueDerivativeBounds;
548  }
549 
560  const std::map<std::string, std::vector<double>> & stance() const { return _stance; }
561 
575  const std::map<std::string, std::pair<std::string, std::string>> & convexHull() const { return _convexHull; }
576 
590  const std::map<std::string, std::pair<std::string, S_ObjectPtr>> & collisionObjects() const
591  {
592  return _collisionObjects;
593  }
594 
606  const std::map<std::string, std::pair<std::string, std::string>> & stpbvHull() const { return _stpbvHull; }
607 
614  const std::map<std::string, sva::PTransformd> & collisionTransforms() const { return _collisionTransforms; }
615 
620  const std::vector<Flexibility> & flexibility() const { return _flexibility; }
621 
626  const std::vector<ForceSensor> & forceSensors() const { return _forceSensors; }
627 
632  const BodySensorVector & bodySensors() const { return _bodySensors; }
633 
638  const std::vector<JointSensor> & jointSensors() const { return _jointSensors; }
639 
644  const Springs & springs() const { return _springs; }
645 
653  const std::vector<mc_rbdyn::Collision> & minimalSelfCollisions() const { return _minimalSelfCollisions; }
654 
663  const std::vector<mc_rbdyn::Collision> & commonSelfCollisions() const { return _commonSelfCollisions; }
664 
669  const std::vector<Gripper> & grippers() const { return _grippers; }
670 
677  inline const Gripper::Safety & gripperSafety() const { return _gripperSafety; }
678 
684  const std::vector<std::string> & ref_joint_order() const { return _ref_joint_order; }
685 
690  const std::array<double, 7> & default_attitude() const { return _default_attitude; }
691 
694  {
695  return _lipmStabilizerConfig;
696  }
697 
705  void boundsFromURDF(const rbd::parsers::Limits & limits);
706 
715 
723 
728  inline const CompoundJointConstraintDescriptionVector & compoundJoints() const { return _compoundJoints; }
729 
731  inline const std::vector<std::string> & parameters() const { return _parameters; }
732 
737  inline const std::vector<std::string> & canonicalParameters() const { return _canonicalParameters; }
738 
748 
749  /* Post-processing for control to canonical
750  *
751  * The default implementation does nothing
752  *
753  * This function is called automatically by mc_rtc after each iteration of MCGlobalController::run()
754  *
755  * It is called last, after the controller/observer/grippers have run and before the plugins/log/GUI
756  */
757  std::function<void(const mc_rbdyn::Robot & control, mc_rbdyn::Robot & canonical)> controlToCanonicalPostProcess =
758  [](const mc_rbdyn::Robot &, mc_rbdyn::Robot &) {};
759 
767  std::string real_urdf() const { return _real_urdf; }
768 
770  inline const DevicePtrVector & devices() const { return _devices; }
771 
773  inline const std::vector<FrameDescription> & frames() const noexcept { return _frames; }
774 
775 public:
777  std::string path;
779  std::string name;
781  std::string urdf_path;
783  std::string convex_dir;
785  std::string rsdf_dir;
787  std::string calib_dir;
789  rbd::MultiBody mb;
791  rbd::MultiBodyConfig mbc;
793  rbd::MultiBodyGraph mbg;
803  std::map<std::string, std::vector<double>> _stance;
805  std::map<std::string, std::pair<std::string, std::string>> _convexHull;
807  std::map<std::string, std::pair<std::string, S_ObjectPtr>> _collisionObjects;
809  std::map<std::string, std::pair<std::string, std::string>> _stpbvHull;
815  std::map<std::string, sva::PTransformd> _collisionTransforms;
817  std::vector<Flexibility> _flexibility;
819  std::vector<ForceSensor> _forceSensors;
823  std::vector<JointSensor> _jointSensors;
827  std::vector<mc_rbdyn::Collision> _minimalSelfCollisions;
829  std::vector<mc_rbdyn::Collision> _commonSelfCollisions;
831  std::vector<Gripper> _grippers;
835  std::vector<std::string> _ref_joint_order;
837  std::array<double, 7> _default_attitude = {{1., 0., 0., 0., 0., 0., 0.}};
841  std::vector<std::string> _parameters;
843  std::vector<std::string> _canonicalParameters;
847  std::string _real_urdf;
851  std::vector<FrameDescription> _frames;
852 };
853 
854 typedef std::shared_ptr<RobotModule> RobotModulePtr;
855 
861 MC_RBDYN_DLLAPI RobotModule::bounds_t urdf_limits_to_bounds(const rbd::parsers::Limits & limits);
862 
863 using RobotModuleVector = std::vector<RobotModule, Eigen::aligned_allocator<RobotModule>>;
864 
878 
880 {
884 }
885 
886 inline bool operator==(const RobotModule::Gripper & lhs, const RobotModule::Gripper & rhs)
887 {
888  auto compareMimics = [&]()
889  {
890  auto lmimics = lhs.mimics();
891  auto rmimics = rhs.mimics();
892  if(lmimics == nullptr && rmimics == nullptr) { return true; }
893  if(lmimics == nullptr || rmimics == nullptr) { return false; }
894  return *lmimics == *rmimics;
895  };
896  auto compareSafety = [&]()
897  {
898  auto lsafety = lhs.safety();
899  auto rsafety = rhs.safety();
900  if(lsafety == nullptr && rsafety == nullptr) { return true; }
901  if(lsafety == nullptr || rsafety == nullptr) { return false; }
902  return *lsafety == *rsafety;
903  };
904  return lhs.name == rhs.name && lhs.joints == rhs.joints && lhs.reverse_limits == rhs.reverse_limits && compareSafety()
905  && compareMimics();
906 }
907 
908 } // namespace mc_rbdyn
909 
910 #ifdef WIN32
911 # define ROBOT_MODULE_API __declspec(dllexport)
912 #else
913 # if __GNUC__ >= 4
914 # define ROBOT_MODULE_API __attribute__((visibility("default")))
915 # else
916 # define ROBOT_MODULE_API
917 # endif
918 #endif
#define CONNECTION_PROPERTY(NAME, TYPE, DEFAULT)
Definition: RobotModule.h:272
#define MC_RBDYN_DLLAPI
Definition: api.h:50
Definition: generic_gripper.h:15
std::vector< BodySensor, Eigen::aligned_allocator< BodySensor > > BodySensorVector
Definition: BodySensor.h:145
MC_RBDYN_DLLAPI bool check_module_compatibility(const RobotModule &lhs, const RobotModule &rhs)
std::vector< RobotModule, Eigen::aligned_allocator< RobotModule > > RobotModuleVector
Definition: RobotModule.h:863
std::vector< CompoundJointConstraintDescription, Eigen::aligned_allocator< CompoundJointConstraintDescription > > CompoundJointConstraintDescriptionVector
Definition: CompoundJointConstraintDescription.h:33
std::shared_ptr< sch::S_Object > S_ObjectPtr
Definition: RobotModule.h:31
bool operator==(const mc_rbdyn::BodySensor &lhs, const mc_rbdyn::BodySensor &rhs)
Definition: BodySensor.h:147
MC_RBDYN_DLLAPI RobotModule::bounds_t urdf_limits_to_bounds(const rbd::parsers::Limits &limits)
Converts limits provided by RBDyn parsers to bounds.
std::shared_ptr< RobotModule > RobotModulePtr
Definition: RobotModule.h:854
constexpr double toRad(const double degrees)
Converts degrees to radians.
Definition: constants.h:39
Type
Definition: types.h:31
Definition: Contact.h:67
Definition: RobotModule.h:38
DevicePtrVector & operator=(DevicePtrVector &&v)=default
DevicePtrVector(DevicePtrVector &&v)=default
MC_RBDYN_DLLAPI DevicePtrVector(const DevicePtrVector &v)
MC_RBDYN_DLLAPI DevicePtrVector & operator=(const DevicePtrVector &v)
Configuration for mc_rbdyn::RobotConverter.
Definition: RobotConverterConfig.h:16
Definition: RobotModule.h:265
std::array< std::vector< double >, 2 > JointAccelerationLimits
Definition: RobotModule.h:330
std::array< std::vector< double >, 6 > JointLimits
Definition: RobotModule.h:326
std::unordered_map< std::string, std::string > mapping_t
Definition: RobotModule.h:357
std::array< std::vector< double >, 2 > JointJerkLimits
Definition: RobotModule.h:334
std::array< std::vector< double >, 2 > JointTorqueDerivativeLimits
Definition: RobotModule.h:338
Definition: RobotModule.h:205
std::string name
Definition: RobotModule.h:213
std::string parent
Definition: RobotModule.h:215
FrameDescription(const std::string &n, const std::string &p, const sva::PTransformd &pt, bool baked=false)
Definition: RobotModule.h:207
sva::PTransformd X_p_f
Definition: RobotModule.h:217
Definition: RobotModule.h:112
double actualCommandDiffTrigger
Definition: RobotModule.h:142
Safety()
Definition: RobotModule.h:123
mc_rtc::Configuration save() const
double percentVMax
Definition: RobotModule.h:140
Safety(double percentVMax, double actualCommandDiffTrigger=DEFAULT_ACTUAL_COMMAND_DIFF_TRIGGER, double releaseSafetyOffset=DEFAULT_RELEASE_OFFSET, unsigned int overCommandLimitIterN=DEFAULT_OVER_COMMAND_LIMIT_ITER_N)
Definition: RobotModule.h:125
unsigned int overCommandLimitIterN
Definition: RobotModule.h:146
void load(const mc_rtc::Configuration &config)
double releaseSafetyOffset
Definition: RobotModule.h:144
Definition: RobotModule.h:109
Gripper(const std::string &name, const std::vector< std::string > &joints, bool reverse_limits)
Gripper(const std::string &name, const std::vector< std::string > &joints, bool reverse_limits, const Safety &safety)
std::string name
Definition: RobotModule.h:166
bool reverse_limits
Definition: RobotModule.h:170
std::vector< std::string > joints
Definition: RobotModule.h:168
Gripper(const std::string &name, const std::vector< std::string > &joints, bool reverse_limits, const Safety &safety, const std::vector< Mimic > &mimics)
const std::vector< Mimic > * mimics() const
Definition: RobotModule.h:177
const Safety * safety() const
Definition: RobotModule.h:174
Definition: RobotModule.h:66
std::vector< mc_rbdyn::Collision > _commonSelfCollisions
Definition: RobotModule.h:829
std::map< std::string, std::pair< std::string, std::string > > _stpbvHull
Definition: RobotModule.h:809
CompoundJointConstraintDescriptionVector _compoundJoints
Definition: RobotModule.h:839
std::vector< ForceSensor > _forceSensors
Definition: RobotModule.h:819
const std::vector< Flexibility > & flexibility() const
Definition: RobotModule.h:620
std::vector< std::string > _parameters
Definition: RobotModule.h:841
std::vector< std::map< std::string, std::vector< double > >> accelerationBounds_t
Definition: RobotModule.h:87
const std::vector< Gripper > & grippers() const
Definition: RobotModule.h:669
RobotConverterConfig controlToCanonicalConfig
Definition: RobotModule.h:747
const std::vector< ForceSensor > & forceSensors() const
Definition: RobotModule.h:626
void make_default_ref_joint_order()
RobotModule(const std::string &name, const rbd::parsers::ParserResult &res)
std::vector< std::map< std::string, std::vector< double > >> torqueDerivativeBounds_t
Definition: RobotModule.h:105
const Springs & springs() const
Definition: RobotModule.h:644
const CompoundJointConstraintDescriptionVector & compoundJoints() const
Definition: RobotModule.h:728
const std::array< double, 7 > & default_attitude() const
Definition: RobotModule.h:690
VisualMap _visual
Definition: RobotModule.h:811
std::string calib_dir
Definition: RobotModule.h:787
const std::vector< std::map< std::string, std::vector< double > > > & torqueDerivativeBounds() const
Definition: RobotModule.h:545
void init(const rbd::parsers::ParserResult &res)
accelerationBounds_t _accelerationBounds
Definition: RobotModule.h:797
const DevicePtrVector & devices() const
Definition: RobotModule.h:770
RobotModule connect(const mc_rbdyn::RobotModule &other, const std::string &this_body, const std::string &other_body, const std::string &prefix, const ConnectionParameters &params) const
const BodySensorVector & bodySensors() const
Definition: RobotModule.h:632
const std::vector< mc_rbdyn::Collision > & minimalSelfCollisions() const
Definition: RobotModule.h:653
std::map< std::string, sva::PTransformd > _collisionTransforms
Definition: RobotModule.h:815
std::string _real_urdf
Definition: RobotModule.h:847
Gripper::Safety _gripperSafety
Definition: RobotModule.h:833
std::vector< std::map< std::string, std::vector< double > >> bounds_t
Definition: RobotModule.h:78
RobotModule disconnect(const mc_rbdyn::RobotModule &other, const std::string &this_body, const std::string &other_body, const std::string &prefix, const ConnectionParameters &params) const
std::string path
Definition: RobotModule.h:777
const std::map< std::string, std::pair< std::string, S_ObjectPtr > > & collisionObjects() const
Definition: RobotModule.h:590
std::string convex_dir
Definition: RobotModule.h:783
std::map< std::string, std::pair< std::string, std::string > > _convexHull
Definition: RobotModule.h:805
std::vector< Flexibility > _flexibility
Definition: RobotModule.h:817
rbd::MultiBodyGraph mbg
Definition: RobotModule.h:793
std::vector< FrameDescription > _frames
Definition: RobotModule.h:851
const std::map< std::string, std::pair< std::string, std::string > > & stpbvHull() const
Definition: RobotModule.h:606
const std::vector< JointSensor > & jointSensors() const
Definition: RobotModule.h:638
const std::vector< std::map< std::string, std::vector< double > > > & accelerationBounds() const
Definition: RobotModule.h:520
std::string urdf_path
Definition: RobotModule.h:781
void boundsFromURDF(const rbd::parsers::Limits &limits)
const std::vector< FrameDescription > & frames() const noexcept
Definition: RobotModule.h:773
mc_rbdyn::lipm_stabilizer::StabilizerConfiguration _lipmStabilizerConfig
Definition: RobotModule.h:845
std::map< std::string, std::vector< double > > _stance
Definition: RobotModule.h:803
const std::vector< std::string > & parameters() const
Definition: RobotModule.h:731
BodySensorVector _bodySensors
Definition: RobotModule.h:821
std::vector< std::string > _canonicalParameters
Definition: RobotModule.h:843
std::vector< std::map< std::string, std::vector< double > >> jerkBounds_t
Definition: RobotModule.h:96
std::vector< JointSensor > _jointSensors
Definition: RobotModule.h:823
std::string rsdf_dir
Definition: RobotModule.h:785
std::map< std::string, std::pair< std::string, S_ObjectPtr > > _collisionObjects
Definition: RobotModule.h:807
const std::vector< std::string > & canonicalParameters() const
Definition: RobotModule.h:737
std::string real_urdf() const
Definition: RobotModule.h:767
VisualMap _collision
Definition: RobotModule.h:813
rbd::MultiBody mb
Definition: RobotModule.h:789
DevicePtrVector _devices
Definition: RobotModule.h:849
const std::map< std::string, sva::PTransformd > & collisionTransforms() const
Definition: RobotModule.h:614
const std::vector< std::map< std::string, std::vector< double > > > & jerkBounds() const
Definition: RobotModule.h:534
std::vector< mc_rbdyn::Collision > _minimalSelfCollisions
Definition: RobotModule.h:827
std::string name
Definition: RobotModule.h:779
const std::vector< std::string > & ref_joint_order() const
Definition: RobotModule.h:684
const std::map< std::string, std::vector< double > > & stance() const
Definition: RobotModule.h:560
const std::vector< std::map< std::string, std::vector< double > > > & bounds() const
Definition: RobotModule.h:509
std::vector< std::string > _ref_joint_order
Definition: RobotModule.h:835
RobotModule(const std::string &path, const std::string &name)
Definition: RobotModule.h:237
rbd::MultiBodyConfig mbc
Definition: RobotModule.h:791
Springs _springs
Definition: RobotModule.h:825
const Gripper::Safety & gripperSafety() const
Definition: RobotModule.h:677
jerkBounds_t _jerkBounds
Definition: RobotModule.h:799
const std::map< std::string, std::pair< std::string, std::string > > & convexHull() const
Definition: RobotModule.h:575
RobotModule(const std::string &path, const std::string &name, const std::string &urdf_path)
Definition: RobotModule.h:254
const mc_rbdyn::lipm_stabilizer::StabilizerConfiguration & defaultLIPMStabilizerConfiguration() const
Definition: RobotModule.h:693
bounds_t _bounds
Definition: RobotModule.h:795
const std::vector< mc_rbdyn::Collision > & commonSelfCollisions() const
Definition: RobotModule.h:663
torqueDerivativeBounds_t _torqueDerivativeBounds
Definition: RobotModule.h:801
void generate_convexes(bool regenerate=false, unsigned int sampling_point=4000)
std::vector< Gripper > _grippers
Definition: RobotModule.h:831
Definition: Robot.h:63
Definition: Springs.h:17
Definition: RobotModule.h:53
VisualMap & operator=(VisualMap &&v)=default
VisualMap & operator=(const VisualMap &v)=default
VisualMap(VisualMap &&v)=default
VisualMap(const VisualMap &v)=default
Configuration of the LIPMStabilizer. This configuration is meant to be overriden from the RobotModule...
Definition: StabilizerConfiguration.h:435
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166