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 #include <array>
27 #include <map>
28 #include <vector>
29 
30 /* This is an interface designed to provide additionnal information about a robot */
31 
32 namespace mc_rbdyn
33 {
34 
35 using S_ObjectPtr = std::shared_ptr<sch::S_Object>;
36 
41 struct DevicePtrVector : public std::vector<DevicePtr>
42 {
43  inline DevicePtrVector() = default;
44 
47 
48  inline DevicePtrVector(DevicePtrVector && v) = default;
49  inline DevicePtrVector & operator=(DevicePtrVector && v) = default;
50 };
51 
56 struct VisualMap : public std::map<std::string, std::vector<rbd::parsers::Visual>>
57 {
58  inline VisualMap() = default;
59 
60  inline VisualMap(const VisualMap & v) = default;
61  inline VisualMap & operator=(const VisualMap & v) = default;
62 
63  inline VisualMap(VisualMap && v) = default;
64  inline VisualMap & operator=(VisualMap && v) = default;
65 
66  using std::map<std::string, std::vector<rbd::parsers::Visual>>::operator=;
67 };
68 
70 {
71  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
72 
82  using bounds_t = std::vector<std::map<std::string, std::vector<double>>>;
83 
91  using accelerationBounds_t = std::vector<std::map<std::string, std::vector<double>>>;
92 
100  using jerkBounds_t = std::vector<std::map<std::string, std::vector<double>>>;
101 
109  using torqueDerivativeBounds_t = std::vector<std::map<std::string, std::vector<double>>>;
110 
113  {
116  {
118  static constexpr double DEFAULT_PERCENT_VMAX = 0.25;
120  static constexpr double DEFAULT_ACTUAL_COMMAND_DIFF_TRIGGER = mc_rtc::constants::toRad(8.);
122  static constexpr double DEFAULT_RELEASE_OFFSET = mc_rtc::constants::toRad(2);
124  static constexpr unsigned int DEFAULT_OVER_COMMAND_LIMIT_ITER_N = 5;
125 
126  // FIXME These constructors are only needed to facilitate initialization and not required in C++14
127  inline Safety() : Safety(DEFAULT_PERCENT_VMAX) {}
128 
129  inline Safety(double percentVMax,
130  double actualCommandDiffTrigger = DEFAULT_ACTUAL_COMMAND_DIFF_TRIGGER,
131  double releaseSafetyOffset = DEFAULT_RELEASE_OFFSET,
132  unsigned int overCommandLimitIterN = DEFAULT_OVER_COMMAND_LIMIT_ITER_N)
133  : percentVMax(percentVMax), actualCommandDiffTrigger(actualCommandDiffTrigger),
134  releaseSafetyOffset(releaseSafetyOffset), overCommandLimitIterN(overCommandLimitIterN)
135  {
136  }
137 
139  void load(const mc_rtc::Configuration & config);
141  mc_rtc::Configuration save() const;
142 
144  double percentVMax;
150  unsigned int overCommandLimitIterN;
151  };
152 
154  Gripper(const std::string & name, const std::vector<std::string> & joints, bool reverse_limits);
155 
157  Gripper(const std::string & name,
158  const std::vector<std::string> & joints,
159  bool reverse_limits,
160  const Safety & safety);
161 
163  Gripper(const std::string & name,
164  const std::vector<std::string> & joints,
165  bool reverse_limits,
166  const Safety & safety,
167  const std::vector<Mimic> & mimics);
168 
170  std::string name;
172  std::vector<std::string> joints;
175 
176  // FIXME In C++17 std::optional is a better semantic
178  inline const Safety * safety() const { return hasSafety_ ? &safety_ : nullptr; }
179 
181  inline const std::vector<Mimic> * mimics() const { return hasMimics_ ? &mimics_ : nullptr; }
182 
183  private:
185  bool hasSafety_ = false;
187  Safety safety_;
189  bool hasMimics_ = false;
191  std::vector<Mimic> mimics_;
193  Gripper(const std::string & name,
194  const std::vector<std::string> & joints,
195  bool reverse_limits,
196  const Safety * safety,
197  const std::vector<Mimic> * mimics);
198  };
199 
209  {
211  FrameDescription(const std::string & n, const std::string & p, const sva::PTransformd & pt, bool baked = false)
212  : name(n), parent(p), X_p_f(pt), baked(baked)
213  {
214  }
215 
217  std::string name;
219  std::string parent;
221  sva::PTransformd X_p_f;
223  bool baked = false;
224  };
225 
241  RobotModule(const std::string & path, const std::string & name)
242  : RobotModule(path, name, path + "/urdf/" + name + ".urdf")
243  {
244  }
245 
258  RobotModule(const std::string & path, const std::string & name, const std::string & urdf_path)
259  : path(path), name(name), urdf_path(urdf_path), rsdf_dir(path + "/rsdf/" + name), calib_dir(path + "/calib/" + name),
260  _real_urdf(urdf_path)
261  {
262  }
263 
265  RobotModule(const std::string & name, const rbd::parsers::ParserResult & res);
266 
276  void init(const rbd::parsers::ParserResult & res);
277 
289  const std::vector<std::map<std::string, std::vector<double>>> & bounds() const { return _bounds; }
290 
300  const std::vector<std::map<std::string, std::vector<double>>> & accelerationBounds() const
301  {
302  return _accelerationBounds;
303  }
304 
314  const std::vector<std::map<std::string, std::vector<double>>> & jerkBounds() const { return _jerkBounds; }
315 
325  const std::vector<std::map<std::string, std::vector<double>>> & torqueDerivativeBounds() const
326  {
327  return _torqueDerivativeBounds;
328  }
329 
340  const std::map<std::string, std::vector<double>> & stance() const { return _stance; }
341 
355  const std::map<std::string, std::pair<std::string, std::string>> & convexHull() const { return _convexHull; }
356 
370  const std::map<std::string, std::pair<std::string, S_ObjectPtr>> & collisionObjects() const
371  {
372  return _collisionObjects;
373  }
374 
386  const std::map<std::string, std::pair<std::string, std::string>> & stpbvHull() const { return _stpbvHull; }
387 
394  const std::map<std::string, sva::PTransformd> & collisionTransforms() const { return _collisionTransforms; }
395 
400  const std::vector<Flexibility> & flexibility() const { return _flexibility; }
401 
406  const std::vector<ForceSensor> & forceSensors() const { return _forceSensors; }
407 
412  const BodySensorVector & bodySensors() const { return _bodySensors; }
413 
418  const std::vector<JointSensor> & jointSensors() const { return _jointSensors; }
419 
424  const Springs & springs() const { return _springs; }
425 
433  const std::vector<mc_rbdyn::Collision> & minimalSelfCollisions() const { return _minimalSelfCollisions; }
434 
443  const std::vector<mc_rbdyn::Collision> & commonSelfCollisions() const { return _commonSelfCollisions; }
444 
449  const std::vector<Gripper> & grippers() const { return _grippers; }
450 
457  inline const Gripper::Safety & gripperSafety() const { return _gripperSafety; }
458 
464  const std::vector<std::string> & ref_joint_order() const { return _ref_joint_order; }
465 
470  const std::array<double, 7> & default_attitude() const { return _default_attitude; }
471 
474  {
475  return _lipmStabilizerConfig;
476  }
477 
485  void boundsFromURDF(const rbd::parsers::Limits & limits);
486 
494  void expand_stance();
495 
502  void make_default_ref_joint_order();
503 
508  inline const CompoundJointConstraintDescriptionVector & compoundJoints() const { return _compoundJoints; }
509 
511  inline const std::vector<std::string> & parameters() const { return _parameters; }
512 
514  inline const std::vector<std::string> & canonicalParameters() const { return _canonicalParameters; }
515 
525 
526  /* Post-processing for control to canonical
527  *
528  * The default implementation does nothing
529  *
530  * This function is called automatically by mc_rtc after each iteration of MCGlobalController::run()
531  *
532  * It is called last, after the controller/observer/grippers have run and before the plugins/log/GUI
533  */
534  std::function<void(const mc_rbdyn::Robot & control, mc_rbdyn::Robot & canonical)> controlToCanonicalPostProcess =
535  [](const mc_rbdyn::Robot &, mc_rbdyn::Robot &) {};
536 
544  std::string real_urdf() const { return _real_urdf; }
545 
547  inline const DevicePtrVector & devices() const { return _devices; }
548 
550  inline const std::vector<FrameDescription> & frames() const noexcept { return _frames; }
551 
552 public:
554  std::string path;
556  std::string name;
558  std::string urdf_path;
560  std::string rsdf_dir;
562  std::string calib_dir;
564  rbd::MultiBody mb;
566  rbd::MultiBodyConfig mbc;
568  rbd::MultiBodyGraph mbg;
578  std::map<std::string, std::vector<double>> _stance;
580  std::map<std::string, std::pair<std::string, std::string>> _convexHull;
582  std::map<std::string, std::pair<std::string, S_ObjectPtr>> _collisionObjects;
584  std::map<std::string, std::pair<std::string, std::string>> _stpbvHull;
590  std::map<std::string, sva::PTransformd> _collisionTransforms;
592  std::vector<Flexibility> _flexibility;
594  std::vector<ForceSensor> _forceSensors;
598  std::vector<JointSensor> _jointSensors;
602  std::vector<mc_rbdyn::Collision> _minimalSelfCollisions;
604  std::vector<mc_rbdyn::Collision> _commonSelfCollisions;
606  std::vector<Gripper> _grippers;
610  std::vector<std::string> _ref_joint_order;
612  std::array<double, 7> _default_attitude = {{1., 0., 0., 0., 0., 0., 0.}};
616  std::vector<std::string> _parameters;
618  std::vector<std::string> _canonicalParameters;
622  std::string _real_urdf;
626  std::vector<FrameDescription> _frames;
627 };
628 
629 typedef std::shared_ptr<RobotModule> RobotModulePtr;
630 
636 MC_RBDYN_DLLAPI RobotModule::bounds_t urdf_limits_to_bounds(const rbd::parsers::Limits & limits);
637 
638 using RobotModuleVector = std::vector<RobotModule, Eigen::aligned_allocator<RobotModule>>;
639 
653 
655 {
659 }
660 
661 inline bool operator==(const RobotModule::Gripper & lhs, const RobotModule::Gripper & rhs)
662 {
663  auto compareMimics = [&]()
664  {
665  auto lmimics = lhs.mimics();
666  auto rmimics = rhs.mimics();
667  if(lmimics == nullptr && rmimics == nullptr) { return true; }
668  if(lmimics == nullptr || rmimics == nullptr) { return false; }
669  return *lmimics == *rmimics;
670  };
671  auto compareSafety = [&]()
672  {
673  auto lsafety = lhs.safety();
674  auto rsafety = rhs.safety();
675  if(lsafety == nullptr && rsafety == nullptr) { return true; }
676  if(lsafety == nullptr || rsafety == nullptr) { return false; }
677  return *lsafety == *rsafety;
678  };
679  return lhs.name == rhs.name && lhs.joints == rhs.joints && lhs.reverse_limits == rhs.reverse_limits && compareSafety()
680  && compareMimics();
681 }
682 
683 } // namespace mc_rbdyn
684 
685 #ifdef WIN32
686 # define ROBOT_MODULE_API __declspec(dllexport)
687 #else
688 # if __GNUC__ >= 4
689 # define ROBOT_MODULE_API __attribute__((visibility("default")))
690 # else
691 # define ROBOT_MODULE_API
692 # endif
693 #endif
mc_rbdyn::RobotModule::_stance
std::map< std::string, std::vector< double > > _stance
Definition: RobotModule.h:578
mc_rbdyn::RobotModule::_commonSelfCollisions
std::vector< mc_rbdyn::Collision > _commonSelfCollisions
Definition: RobotModule.h:604
mc_rtc::Configuration
Simplify access to values hold within a JSON file.
Definition: Configuration.h:165
mc_rbdyn::RobotModule::FrameDescription::name
std::string name
Definition: RobotModule.h:217
mc_rbdyn::RobotModule::_convexHull
std::map< std::string, std::pair< std::string, std::string > > _convexHull
Definition: RobotModule.h:580
mc_rbdyn::RobotModule::_jointSensors
std::vector< JointSensor > _jointSensors
Definition: RobotModule.h:598
mc_rbdyn::RobotModule::Gripper::Safety::overCommandLimitIterN
unsigned int overCommandLimitIterN
Definition: RobotModule.h:150
mc_rbdyn::RobotModule::_parameters
std::vector< std::string > _parameters
Definition: RobotModule.h:616
mc_rbdyn::RobotModule::_accelerationBounds
accelerationBounds_t _accelerationBounds
Definition: RobotModule.h:572
mc_rbdyn::RobotModule::_grippers
std::vector< Gripper > _grippers
Definition: RobotModule.h:606
mc_rbdyn::RobotModule::Gripper
Definition: RobotModule.h:112
mc_rbdyn::RobotConverterConfig
Configuration for mc_rbdyn::RobotConverter.
Definition: RobotConverterConfig.h:15
mc_rbdyn::DevicePtrVector::operator=
MC_RBDYN_DLLAPI DevicePtrVector & operator=(const DevicePtrVector &v)
mc_rbdyn::check_module_compatibility
MC_RBDYN_DLLAPI bool check_module_compatibility(const RobotModule &lhs, const RobotModule &rhs)
mc_rbdyn::S_ObjectPtr
std::shared_ptr< sch::S_Object > S_ObjectPtr
Definition: RobotModule.h:35
mc_rbdyn::RobotModule::_ref_joint_order
std::vector< std::string > _ref_joint_order
Definition: RobotModule.h:610
mc_rbdyn::RobotModule::convexHull
const std::map< std::string, std::pair< std::string, std::string > > & convexHull() const
Definition: RobotModule.h:355
mc_rbdyn::RobotModule::_real_urdf
std::string _real_urdf
Definition: RobotModule.h:622
mc_rbdyn::DevicePtrVector
Definition: RobotModule.h:41
mc_rbdyn::RobotModule::controlToCanonicalConfig
RobotConverterConfig controlToCanonicalConfig
Definition: RobotModule.h:524
mc_rbdyn::RobotModule::Gripper::Safety::Safety
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:129
mc_rbdyn::VisualMap::operator=
VisualMap & operator=(const VisualMap &v)=default
mc_rbdyn::RobotModule::stance
const std::map< std::string, std::vector< double > > & stance() const
Definition: RobotModule.h:340
mc_rbdyn::RobotModule::_canonicalParameters
std::vector< std::string > _canonicalParameters
Definition: RobotModule.h:618
mc_rbdyn::RobotModule::_springs
Springs _springs
Definition: RobotModule.h:600
mc_rbdyn::CompoundJointConstraintDescriptionVector
std::vector< CompoundJointConstraintDescription, Eigen::aligned_allocator< CompoundJointConstraintDescription > > CompoundJointConstraintDescriptionVector
Definition: CompoundJointConstraintDescription.h:33
mc_rbdyn::RobotModule::commonSelfCollisions
const std::vector< mc_rbdyn::Collision > & commonSelfCollisions() const
Definition: RobotModule.h:443
mc_rbdyn::RobotModuleVector
std::vector< RobotModule, Eigen::aligned_allocator< RobotModule > > RobotModuleVector
Definition: RobotModule.h:638
mc_rbdyn::RobotModule::_gripperSafety
Gripper::Safety _gripperSafety
Definition: RobotModule.h:608
mc_rbdyn::RobotModule::torqueDerivativeBounds_t
std::vector< std::map< std::string, std::vector< double > >> torqueDerivativeBounds_t
Definition: RobotModule.h:109
mc_rbdyn::RobotModule::Gripper::joints
std::vector< std::string > joints
Definition: RobotModule.h:172
mc_rbdyn::RobotModule::_torqueDerivativeBounds
torqueDerivativeBounds_t _torqueDerivativeBounds
Definition: RobotModule.h:576
mc_rbdyn::Robot
Definition: Robot.h:62
mc_rbdyn::RobotModule::jointSensors
const std::vector< JointSensor > & jointSensors() const
Definition: RobotModule.h:418
mc_rbdyn::RobotModule::canonicalParameters
const std::vector< std::string > & canonicalParameters() const
Definition: RobotModule.h:514
mc_rbdyn::RobotModule::compoundJoints
const CompoundJointConstraintDescriptionVector & compoundJoints() const
Definition: RobotModule.h:508
mc_rbdyn::RobotModule::FrameDescription::FrameDescription
FrameDescription(const std::string &n, const std::string &p, const sva::PTransformd &pt, bool baked=false)
Definition: RobotModule.h:211
mc_rbdyn::RobotModule::accelerationBounds_t
std::vector< std::map< std::string, std::vector< double > >> accelerationBounds_t
Definition: RobotModule.h:91
StabilizerConfiguration.h
mc_rbdyn::RobotModule::Gripper::safety
const Safety * safety() const
Definition: RobotModule.h:178
mc_rbdyn::RobotModule::collisionTransforms
const std::map< std::string, sva::PTransformd > & collisionTransforms() const
Definition: RobotModule.h:394
mc_rbdyn::RobotModule::_jerkBounds
jerkBounds_t _jerkBounds
Definition: RobotModule.h:574
mc_rbdyn::RobotModule::parameters
const std::vector< std::string > & parameters() const
Definition: RobotModule.h:511
mc_rbdyn::RobotModule::frames
const std::vector< FrameDescription > & frames() const noexcept
Definition: RobotModule.h:550
mc_rbdyn::Springs
Definition: Springs.h:16
mc_rbdyn::DevicePtrVector::DevicePtrVector
DevicePtrVector()=default
mc_rbdyn::RobotModule::torqueDerivativeBounds
const std::vector< std::map< std::string, std::vector< double > > > & torqueDerivativeBounds() const
Definition: RobotModule.h:325
RobotConverterConfig.h
mc_rbdyn::RobotModule::grippers
const std::vector< Gripper > & grippers() const
Definition: RobotModule.h:449
BodySensor.h
mc_rbdyn::RobotModule::_collisionObjects
std::map< std::string, std::pair< std::string, S_ObjectPtr > > _collisionObjects
Definition: RobotModule.h:582
Collision.h
mc_rbdyn::RobotModule::name
std::string name
Definition: RobotModule.h:556
mc_rbdyn::RobotModule::bodySensors
const BodySensorVector & bodySensors() const
Definition: RobotModule.h:412
Flexibility.h
mc_rbdyn::RobotModule::mb
rbd::MultiBody mb
Definition: RobotModule.h:564
mc_rbdyn::RobotModule
Definition: RobotModule.h:69
mc_rbdyn::RobotModule::devices
const DevicePtrVector & devices() const
Definition: RobotModule.h:547
mc_rbdyn::RobotModule::_frames
std::vector< FrameDescription > _frames
Definition: RobotModule.h:626
mc_rbdyn::urdf_limits_to_bounds
MC_RBDYN_DLLAPI RobotModule::bounds_t urdf_limits_to_bounds(const rbd::parsers::Limits &limits)
Converts limits provided by RBDyn parsers to bounds.
mc_rbdyn::RobotModule::Gripper::Safety::Safety
Safety()
Definition: RobotModule.h:127
api.h
mc_rbdyn::RobotModule::Gripper::mimics
const std::vector< Mimic > * mimics() const
Definition: RobotModule.h:181
mc_rbdyn::RobotModule::_compoundJoints
CompoundJointConstraintDescriptionVector _compoundJoints
Definition: RobotModule.h:614
CompoundJointConstraintDescription.h
mc_rbdyn::RobotModule::mbc
rbd::MultiBodyConfig mbc
Definition: RobotModule.h:566
mc_rbdyn::RobotModule::FrameDescription::X_p_f
sva::PTransformd X_p_f
Definition: RobotModule.h:221
mc_rbdyn::RobotModule::springs
const Springs & springs() const
Definition: RobotModule.h:424
mc_rbdyn::RobotModule::_lipmStabilizerConfig
mc_rbdyn::lipm_stabilizer::StabilizerConfiguration _lipmStabilizerConfig
Definition: RobotModule.h:620
mc_rbdyn::RobotModule::Gripper::Safety::releaseSafetyOffset
double releaseSafetyOffset
Definition: RobotModule.h:148
mc_rbdyn::RobotModule::_bounds
bounds_t _bounds
Definition: RobotModule.h:570
mc_rbdyn::RobotModule::_stpbvHull
std::map< std::string, std::pair< std::string, std::string > > _stpbvHull
Definition: RobotModule.h:584
mc_rbdyn::RobotModule::_devices
DevicePtrVector _devices
Definition: RobotModule.h:624
mc_rbdyn::RobotModule::minimalSelfCollisions
const std::vector< mc_rbdyn::Collision > & minimalSelfCollisions() const
Definition: RobotModule.h:433
MC_RBDYN_DLLAPI
#define MC_RBDYN_DLLAPI
Definition: api.h:50
mc_rbdyn::VisualMap
Definition: RobotModule.h:56
mc_rbdyn::RobotModule::jerkBounds
const std::vector< std::map< std::string, std::vector< double > > > & jerkBounds() const
Definition: RobotModule.h:314
mc_rbdyn::operator==
bool operator==(const mc_rbdyn::BodySensor &lhs, const mc_rbdyn::BodySensor &rhs)
Definition: BodySensor.h:147
deprecated.h
mc_rbdyn::RobotModule::Gripper::Safety::actualCommandDiffTrigger
double actualCommandDiffTrigger
Definition: RobotModule.h:146
mc_rbdyn::RobotModule::_collisionTransforms
std::map< std::string, sva::PTransformd > _collisionTransforms
Definition: RobotModule.h:590
mc_rbdyn::RobotModule::_minimalSelfCollisions
std::vector< mc_rbdyn::Collision > _minimalSelfCollisions
Definition: RobotModule.h:602
mc_rbdyn::RobotModule::path
std::string path
Definition: RobotModule.h:554
mc_rbdyn::RobotModule::urdf_path
std::string urdf_path
Definition: RobotModule.h:558
mc_rbdyn::RobotModule::flexibility
const std::vector< Flexibility > & flexibility() const
Definition: RobotModule.h:400
mc_rbdyn::RobotModule::Gripper::name
std::string name
Definition: RobotModule.h:170
mc_rbdyn::VisualMap::VisualMap
VisualMap()=default
mc_rbdyn::RobotModule::Gripper::Safety
Definition: RobotModule.h:115
ForceSensor.h
mc_rbdyn::RobotModule::RobotModule
RobotModule(const std::string &path, const std::string &name, const std::string &urdf_path)
Definition: RobotModule.h:258
mc_rbdyn::RobotModule::jerkBounds_t
std::vector< std::map< std::string, std::vector< double > >> jerkBounds_t
Definition: RobotModule.h:100
constants.h
mc_rbdyn::RobotModule::gripperSafety
const Gripper::Safety & gripperSafety() const
Definition: RobotModule.h:457
mc_rbdyn::BodySensorVector
std::vector< BodySensor, Eigen::aligned_allocator< BodySensor > > BodySensorVector
Definition: BodySensor.h:145
mc_rbdyn::RobotModule::stpbvHull
const std::map< std::string, std::pair< std::string, std::string > > & stpbvHull() const
Definition: RobotModule.h:386
JointSensor.h
Springs.h
mc_rbdyn::RobotModule::_collision
VisualMap _collision
Definition: RobotModule.h:588
mc_rbdyn::lipm_stabilizer::StabilizerConfiguration
Configuration of the LIPMStabilizer. This configuration is meant to be overriden from the RobotModule...
Definition: StabilizerConfiguration.h:434
mc_rbdyn::RobotModulePtr
std::shared_ptr< RobotModule > RobotModulePtr
Definition: RobotModule.h:629
mc_rtc::constants::toRad
constexpr double toRad(const double degrees)
Converts degrees to radians.
Definition: constants.h:39
mc_rbdyn::RobotModule::defaultLIPMStabilizerConfiguration
const mc_rbdyn::lipm_stabilizer::StabilizerConfiguration & defaultLIPMStabilizerConfiguration() const
Definition: RobotModule.h:473
mc_rbdyn::RobotModule::forceSensors
const std::vector< ForceSensor > & forceSensors() const
Definition: RobotModule.h:406
mc_rbdyn
Definition: generic_gripper.h:14
mc_rbdyn::RobotModule::default_attitude
const std::array< double, 7 > & default_attitude() const
Definition: RobotModule.h:470
mc_rbdyn::RobotModule::_visual
VisualMap _visual
Definition: RobotModule.h:586
mc_rbdyn::RobotModule::ref_joint_order
const std::vector< std::string > & ref_joint_order() const
Definition: RobotModule.h:464
mc_rbdyn::RobotModule::FrameDescription::parent
std::string parent
Definition: RobotModule.h:219
Mimic.h
mc_rbdyn::RobotModule::accelerationBounds
const std::vector< std::map< std::string, std::vector< double > > > & accelerationBounds() const
Definition: RobotModule.h:300
mc_rbdyn::RobotModule::_forceSensors
std::vector< ForceSensor > _forceSensors
Definition: RobotModule.h:594
mc_rbdyn::RobotModule::real_urdf
std::string real_urdf() const
Definition: RobotModule.h:544
mc_rbdyn::RobotModule::collisionObjects
const std::map< std::string, std::pair< std::string, S_ObjectPtr > > & collisionObjects() const
Definition: RobotModule.h:370
mc_rbdyn::RobotModule::_flexibility
std::vector< Flexibility > _flexibility
Definition: RobotModule.h:592
mc_rbdyn::RobotModule::RobotModule
RobotModule(const std::string &path, const std::string &name)
Definition: RobotModule.h:241
mc_rbdyn::RobotModule::Gripper::reverse_limits
bool reverse_limits
Definition: RobotModule.h:174
mc_rbdyn::RobotModule::rsdf_dir
std::string rsdf_dir
Definition: RobotModule.h:560
mc_rbdyn::RobotModule::Gripper::Safety::percentVMax
double percentVMax
Definition: RobotModule.h:144
mc_rbdyn::RobotModule::bounds
const std::vector< std::map< std::string, std::vector< double > > > & bounds() const
Definition: RobotModule.h:289
mc_rbdyn::RobotModule::calib_dir
std::string calib_dir
Definition: RobotModule.h:562
mc_rbdyn::RobotModule::FrameDescription
Definition: RobotModule.h:208
mc_rbdyn::RobotModule::_bodySensors
BodySensorVector _bodySensors
Definition: RobotModule.h:596
mc_rbdyn::RobotModule::mbg
rbd::MultiBodyGraph mbg
Definition: RobotModule.h:568
mc_rbdyn::RobotModule::bounds_t
std::vector< std::map< std::string, std::vector< double > >> bounds_t
Definition: RobotModule.h:82