|
| | RobotModule (const std::string &path, const std::string &name) |
| |
| | RobotModule (const std::string &path, const std::string &name, const std::string &urdf_path) |
| |
| | RobotModule (const std::string &name, const rbd::parsers::ParserResult &res) |
| |
| void | init (const rbd::parsers::ParserResult &res) |
| |
| void | generate_convexes (bool regenerate=false, unsigned int sampling_point=4000) |
| |
| void | bind_convexes () |
| |
| const std::vector< std::map< std::string, std::vector< double > > > & | bounds () const |
| |
| const std::vector< std::map< std::string, std::vector< double > > > & | accelerationBounds () const |
| |
| const std::vector< std::map< std::string, std::vector< double > > > & | jerkBounds () const |
| |
| const std::vector< std::map< std::string, std::vector< double > > > & | torqueDerivativeBounds () const |
| |
| const std::map< std::string, std::vector< double > > & | stance () const |
| |
| const std::map< std::string, std::pair< std::string, std::string > > & | convexHull () const |
| |
| const std::map< std::string, std::pair< std::string, S_ObjectPtr > > & | collisionObjects () const |
| |
| const std::map< std::string, std::pair< std::string, std::string > > & | stpbvHull () const |
| |
| const std::map< std::string, sva::PTransformd > & | collisionTransforms () const |
| |
| const std::vector< Flexibility > & | flexibility () const |
| |
| const std::vector< ForceSensor > & | forceSensors () const |
| |
| const BodySensorVector & | bodySensors () const |
| |
| const std::vector< JointSensor > & | jointSensors () const |
| |
| const Springs & | springs () const |
| |
| const std::vector< mc_rbdyn::Collision > & | minimalSelfCollisions () const |
| |
| const std::vector< mc_rbdyn::Collision > & | commonSelfCollisions () const |
| |
| const std::vector< Gripper > & | grippers () const |
| |
| const Gripper::Safety & | gripperSafety () const |
| |
| const std::vector< std::string > & | ref_joint_order () const |
| |
| const std::array< double, 7 > & | default_attitude () const |
| |
| const mc_rbdyn::lipm_stabilizer::StabilizerConfiguration & | defaultLIPMStabilizerConfiguration () const |
| |
| void | boundsFromURDF (const rbd::parsers::Limits &limits) |
| |
| void | expand_stance () |
| |
| void | make_default_ref_joint_order () |
| |
| const CompoundJointConstraintDescriptionVector & | compoundJoints () const |
| |
| const std::vector< std::string > & | parameters () const |
| |
| const std::vector< std::string > & | canonicalParameters () const |
| |
| std::string | real_urdf () const |
| |
| const DevicePtrVector & | devices () const |
| |
| const std::vector< FrameDescription > & | frames () const noexcept |
| |
|
| RobotConverterConfig | controlToCanonicalConfig |
| |
| std::function< void(const mc_rbdyn::Robot &control, mc_rbdyn::Robot &canonical)> | controlToCanonicalPostProcess |
| |
| std::string | path |
| |
| std::string | name |
| |
| std::string | urdf_path |
| |
| std::string | convex_dir |
| |
| std::string | rsdf_dir |
| |
| std::string | calib_dir |
| |
| rbd::MultiBody | mb |
| |
| rbd::MultiBodyConfig | mbc |
| |
| rbd::MultiBodyGraph | mbg |
| |
| bounds_t | _bounds |
| |
| accelerationBounds_t | _accelerationBounds |
| |
| jerkBounds_t | _jerkBounds |
| |
| torqueDerivativeBounds_t | _torqueDerivativeBounds |
| |
| std::map< std::string, std::vector< double > > | _stance |
| |
| std::map< std::string, std::pair< std::string, std::string > > | _convexHull |
| |
| std::map< std::string, std::pair< std::string, S_ObjectPtr > > | _collisionObjects |
| |
| std::map< std::string, std::pair< std::string, std::string > > | _stpbvHull |
| |
| VisualMap | _visual |
| |
| VisualMap | _collision |
| |
| std::map< std::string, sva::PTransformd > | _collisionTransforms |
| |
| std::vector< Flexibility > | _flexibility |
| |
| std::vector< ForceSensor > | _forceSensors |
| |
| BodySensorVector | _bodySensors |
| |
| std::vector< JointSensor > | _jointSensors |
| |
| Springs | _springs |
| |
| std::vector< mc_rbdyn::Collision > | _minimalSelfCollisions |
| |
| std::vector< mc_rbdyn::Collision > | _commonSelfCollisions |
| |
| std::vector< Gripper > | _grippers |
| |
| Gripper::Safety | _gripperSafety |
| |
| std::vector< std::string > | _ref_joint_order |
| |
| std::array< double, 7 > | _default_attitude = {{1., 0., 0., 0., 0., 0., 0.}} |
| |
| CompoundJointConstraintDescriptionVector | _compoundJoints |
| |
| std::vector< std::string > | _parameters |
| |
| std::vector< std::string > | _canonicalParameters |
| |
| mc_rbdyn::lipm_stabilizer::StabilizerConfiguration | _lipmStabilizerConfig |
| |
| std::string | _real_urdf |
| |
| DevicePtrVector | _devices |
| |
| std::vector< FrameDescription > | _frames |
| |
| const std::vector<std::map<std::string, std::vector<double> > >& mc_rbdyn::RobotModule::bounds |
( |
| ) |
const |
|
inline |
Returns the robot's bounds obtained from parsing a urdf
The vector should hold 6 string -> vector<double> map
Each map's keys are joint names and values are joint limits.
They should be provided in the following order:
- joint limits (lower/upper)
- velocity limits (lower/upper)
- torque limits (lower/upper)
| void mc_rbdyn::RobotModule::boundsFromURDF |
( |
const rbd::parsers::Limits & |
limits | ) |
|
Generate correct bounds from URDF bounds
URDF outputs bounds in {lower, upper, velocity, torque} forms
This function set _bounds to: {lower, upper, -velocity, velocity, -torque, torque}
| const std::map<std::string, std::pair<std::string, S_ObjectPtr> >& mc_rbdyn::RobotModule::collisionObjects |
( |
| ) |
const |
|
inline |
Returns a map describing collision objects for the robot
A key defines a valid collision name, there should be no collision with the names convexHull()
A value is composed of two strings:
- the name of the body the object is attached to
- the collision object
The transformation between the convex and the body it's attached to are provided in a separate map see collisionTransforms()
| const std::map<std::string, std::pair<std::string, std::string> >& mc_rbdyn::RobotModule::convexHull |
( |
| ) |
const |
|
inline |
Returns a map describing the convex hulls for the robot
A key defines a valid collision name, there should be no collision with the names in collisionObjects()
A value is composed of two strings:
- the name of the body the convex is attached to
- the path to the file containing the convex description
The transformation between the convex and the body it's attached to are provided in a separate map see collisionTransforms()
| void mc_rbdyn::RobotModule::generate_convexes |
( |
bool |
regenerate = false, |
|
|
unsigned int |
sampling_point = 4000 |
|
) |
| |
Generate convex hulls for mesh collision geometries in the robot model.
Process all mesh-type collision geometries defined in the robot's URDF or SRDF and generates convex hulls for them, optionally regenerating them if needed.
Convex hulls are cached on disk in a per-variant directory under the user's local share path. If the cache is missing or regenerate is true, convex hulls will be rebuilt using the mesh_sampling utilities. Old cache directories for the same robot variant are deleted.
Mesh file URIs are resolved from:
package:// URIs (using ROS or fallback search paths)
file:// URIs
- Raw filesystem paths
- Parameters
-
| regenerate | If true, forces regeneration of convexes even if cache exists. |
| sampling_point | Number of points to use when sampling the mesh for convex generation. |
- Exceptions
-
| std::runtime_error | If mesh files cannot be resolved or read. |
- Warning
- Will erase previous convex cache directories matching the same variant.
- Note
- The resulting convexes are stored in:
LOCALAPPDATA%/<robot_name> on Windows
$HOME/.local/share/<robot_name> on Linux/macOS
| const std::map<std::string, std::vector<double> >& mc_rbdyn::RobotModule::stance |
( |
| ) |
const |
|
inline |
Returns a default configuration for the robot
Keys are joint names and values are joint configurations.
It should be ok to include joints that are not in the robot (e.g. generate the same default stance for variants of a robot. However, each actuated joint in the robot should have a valid entry, see expand_stance
For the floating base see default_attitude
| const std::vector<std::map<std::string, std::vector<double> > >& mc_rbdyn::RobotModule::torqueDerivativeBounds |
( |
| ) |
const |
|
inline |
Returns the robot's torque-derivative bounds
The vector should hold 2 string -> vector<double> map
Each map's keys are joint names and values are joint limits.
They should be provided in the following order:
- torque-derivative limits (lower/upper)