DART 6.12.2
Loading...
Searching...
No Matches
dart::utils::DartLoader Class Reference

#include <DartLoader.hpp>

Classes

struct  Options
 Options to be used in parsing URDF files. More...
 

Public Types

enum  Flags { NONE = 0 , FIXED_BASE_LINK = 1 << 1 , DEFAULT = NONE }
 
enum class  RootJointType { FLOATING = 0 , FIXED = 1 }
 Root joint type to be used when the parent joint of the root link is not specified in the URDF file. More...
 

Public Member Functions

 DartLoader (const Options &options=Options())
 Constructor with the default ResourceRetriever.
 
void setOptions (const Options &options)
 Sets options.
 
const OptionsgetOptions () const
 Returns options.
 
void addPackageDirectory (const std::string &packageName, const std::string &packageDirectory)
 Specify the directory of a ROS package.
 
dynamics::SkeletonPtr parseSkeleton (const common::Uri &uri, const common::ResourceRetrieverPtr &resourceRetriever, unsigned int flags=DEFAULT)
 Parse a file to produce a Skeleton.
 
dynamics::SkeletonPtr parseSkeleton (const common::Uri &uri)
 Parse a file to produce a Skeleton.
 
dynamics::SkeletonPtr parseSkeletonString (const std::string &urdfString, const common::Uri &baseUri, const common::ResourceRetrieverPtr &resourceRetriever, unsigned int flags=DEFAULT)
 Parse a text string to produce a Skeleton.
 
dynamics::SkeletonPtr parseSkeletonString (const std::string &urdfString, const common::Uri &baseUri)
 Parse a text string to produce a Skeleton.
 
dart::simulation::WorldPtr parseWorld (const common::Uri &uri, const common::ResourceRetrieverPtr &resourceRetriever, unsigned int flags=DEFAULT)
 Parse a file to produce a World.
 
dart::simulation::WorldPtr parseWorld (const common::Uri &uri)
 Parse a file to produce a World.
 
dart::simulation::WorldPtr parseWorldString (const std::string &urdfString, const common::Uri &baseUri, const common::ResourceRetrieverPtr &resourceRetriever, unsigned int flags=DEFAULT)
 Parse a text string to produce a World.
 
dart::simulation::WorldPtr parseWorldString (const std::string &urdfString, const common::Uri &baseUri)
 Parse a text string to produce a World.
 

Private Types

typedef std::shared_ptr< dynamics::BodyNode::PropertiesBodyPropPtr
 
typedef std::shared_ptr< dynamics::Joint::PropertiesJointPropPtr
 

Private Member Functions

common::ResourceRetrieverPtr getResourceRetriever (const common::ResourceRetrieverPtr &_resourceRetriever)
 

Static Private Member Functions

static dart::dynamics::SkeletonPtr modelInterfaceToSkeleton (const urdf::ModelInterface *model, const common::Uri &baseUri, const common::ResourceRetrieverPtr &resourceRetriever, const Options &options)
 Parses the ModelInterface and spits out a Skeleton object.
 
static bool createSkeletonRecursive (const urdf::ModelInterface *model, dynamics::SkeletonPtr skel, const urdf::Link *lk, dynamics::BodyNode *parent, const common::Uri &baseUri, const common::ResourceRetrieverPtr &_resourceRetriever, const Options &options)
 
static bool addMimicJointsRecursive (const urdf::ModelInterface *model, dynamics::SkeletonPtr _skel, const urdf::Link *_lk)
 
template<class VisualOrCollision >
static dynamics::ShapePtr createShape (const VisualOrCollision *_vizOrCol, const common::Uri &_baseUri, const common::ResourceRetrieverPtr &_resourceRetriever)
 @function createShape
 
static dynamics::BodyNodecreateDartJointAndNode (const urdf::Joint *_jt, const dynamics::BodyNode::Properties &_body, dynamics::BodyNode *_parent, dynamics::SkeletonPtr _skeleton, const Options &options)
 @function createDartJoint
 
static bool createDartNodeProperties (const urdf::Link *_lk, dynamics::BodyNode::Properties &properties, const common::Uri &_baseUri, const common::ResourceRetrieverPtr &_resourceRetriever, const Options &options)
 @function createDartNode
 
static bool createShapeNodes (const urdf::ModelInterface *model, const urdf::Link *lk, dynamics::BodyNode *bodyNode, const common::Uri &baseUri, const common::ResourceRetrieverPtr &resourceRetriever)
 
static Eigen::Isometry3d toEigen (const urdf::Pose &_pose)
 @function pose2Affine3d
 
static Eigen::Vector3d toEigen (const urdf::Vector3 &_vector)
 
static bool readFileToString (const common::ResourceRetrieverPtr &_resourceRetriever, const common::Uri &_uri, std::string &_output)
 @function readXml
 

Private Attributes

Options mOptions
 
common::LocalResourceRetrieverPtr mLocalRetriever
 
utils::PackageResourceRetrieverPtr mPackageRetriever
 
utils::CompositeResourceRetrieverPtr mRetriever
 

Member Typedef Documentation

◆ BodyPropPtr

◆ JointPropPtr

Member Enumeration Documentation

◆ Flags

Deprecated:
Deprecated in 6.11. Use RootJointType and Options instead.

Flags for specifying URDF file parsing policies.

Enumerator
NONE 
FIXED_BASE_LINK 

Parser the root link's joint type to be "fixed" joint when not specified.

DEFAULT 

The default flgas.

◆ RootJointType

Root joint type to be used when the parent joint of the root link is not specified in the URDF file.

Enumerator
FLOATING 

Floating joint type of URDF.

FIXED 

Fixed joint type of URDF.

Constructor & Destructor Documentation

◆ DartLoader()

dart::utils::DartLoader::DartLoader ( const Options options = Options())
explicit

Constructor with the default ResourceRetriever.

Member Function Documentation

◆ addMimicJointsRecursive()

bool dart::utils::DartLoader::addMimicJointsRecursive ( const urdf::ModelInterface *  model,
dynamics::SkeletonPtr  _skel,
const urdf::Link *  _lk 
)
staticprivate

◆ addPackageDirectory()

void dart::utils::DartLoader::addPackageDirectory ( const std::string &  packageName,
const std::string &  packageDirectory 
)

Specify the directory of a ROS package.

In your URDF files, you may see strings with a package URI pattern such as:

"package://my_robot/meshes/mesh_for_my_robot.stl"
\______/ \______/\___________________________/
| | |
package package file path with respect to
keyword name the package directory

For us to successfully parse a URDF, we need to be told what the path to the package directory is, using addPackageDirectory(). In this case, suppose the path to the my_robot package is /path/to/my_robot. Then you should use addPackageDirectory("my_robot", "/path/to/my_robot"). Altogether, this implies that a file named "/path/to/my_robot/meshes/mesh_for_my_robot.stl" exists. Whatever you specify as the package directory will end up replacing the 'package keyword' and 'package name' components of the URI string.

◆ createDartJointAndNode()

dynamics::BodyNode * dart::utils::DartLoader::createDartJointAndNode ( const urdf::Joint *  _jt,
const dynamics::BodyNode::Properties _body,
dynamics::BodyNode _parent,
dynamics::SkeletonPtr  _skeleton,
const Options options 
)
staticprivate

@function createDartJoint

◆ createDartNodeProperties()

bool dart::utils::DartLoader::createDartNodeProperties ( const urdf::Link *  _lk,
dynamics::BodyNode::Properties properties,
const common::Uri _baseUri,
const common::ResourceRetrieverPtr _resourceRetriever,
const Options options 
)
staticprivate

@function createDartNode

◆ createShape()

template<class VisualOrCollision >
dynamics::ShapePtr dart::utils::DartLoader::createShape ( const VisualOrCollision *  _vizOrCol,
const common::Uri _baseUri,
const common::ResourceRetrieverPtr _resourceRetriever 
)
staticprivate

@function createShape

◆ createShapeNodes()

bool dart::utils::DartLoader::createShapeNodes ( const urdf::ModelInterface *  model,
const urdf::Link *  lk,
dynamics::BodyNode bodyNode,
const common::Uri baseUri,
const common::ResourceRetrieverPtr resourceRetriever 
)
staticprivate

◆ createSkeletonRecursive()

bool dart::utils::DartLoader::createSkeletonRecursive ( const urdf::ModelInterface *  model,
dynamics::SkeletonPtr  skel,
const urdf::Link *  lk,
dynamics::BodyNode parent,
const common::Uri baseUri,
const common::ResourceRetrieverPtr _resourceRetriever,
const Options options 
)
staticprivate

◆ getOptions()

const DartLoader::Options & dart::utils::DartLoader::getOptions ( ) const

Returns options.

◆ getResourceRetriever()

common::ResourceRetrieverPtr dart::utils::DartLoader::getResourceRetriever ( const common::ResourceRetrieverPtr _resourceRetriever)
private

◆ modelInterfaceToSkeleton()

dynamics::SkeletonPtr dart::utils::DartLoader::modelInterfaceToSkeleton ( const urdf::ModelInterface *  model,
const common::Uri baseUri,
const common::ResourceRetrieverPtr resourceRetriever,
const Options options 
)
staticprivate

Parses the ModelInterface and spits out a Skeleton object.

◆ parseSkeleton() [1/2]

dynamics::SkeletonPtr dart::utils::DartLoader::parseSkeleton ( const common::Uri uri)

Parse a file to produce a Skeleton.

◆ parseSkeleton() [2/2]

dynamics::SkeletonPtr dart::utils::DartLoader::parseSkeleton ( const common::Uri uri,
const common::ResourceRetrieverPtr resourceRetriever,
unsigned int  flags = DEFAULT 
)

Parse a file to produce a Skeleton.

◆ parseSkeletonString() [1/2]

dynamics::SkeletonPtr dart::utils::DartLoader::parseSkeletonString ( const std::string &  urdfString,
const common::Uri baseUri 
)

Parse a text string to produce a Skeleton.

◆ parseSkeletonString() [2/2]

dynamics::SkeletonPtr dart::utils::DartLoader::parseSkeletonString ( const std::string &  urdfString,
const common::Uri baseUri,
const common::ResourceRetrieverPtr resourceRetriever,
unsigned int  flags = DEFAULT 
)

Parse a text string to produce a Skeleton.

◆ parseWorld() [1/2]

simulation::WorldPtr dart::utils::DartLoader::parseWorld ( const common::Uri uri)

Parse a file to produce a World.

◆ parseWorld() [2/2]

simulation::WorldPtr dart::utils::DartLoader::parseWorld ( const common::Uri uri,
const common::ResourceRetrieverPtr resourceRetriever,
unsigned int  flags = DEFAULT 
)

Parse a file to produce a World.

◆ parseWorldString() [1/2]

simulation::WorldPtr dart::utils::DartLoader::parseWorldString ( const std::string &  urdfString,
const common::Uri baseUri 
)

Parse a text string to produce a World.

◆ parseWorldString() [2/2]

simulation::WorldPtr dart::utils::DartLoader::parseWorldString ( const std::string &  urdfString,
const common::Uri baseUri,
const common::ResourceRetrieverPtr resourceRetriever,
unsigned int  flags = DEFAULT 
)

Parse a text string to produce a World.

◆ readFileToString()

bool dart::utils::DartLoader::readFileToString ( const common::ResourceRetrieverPtr _resourceRetriever,
const common::Uri _uri,
std::string &  _output 
)
staticprivate

@function readXml

◆ setOptions()

void dart::utils::DartLoader::setOptions ( const Options options)

Sets options.

◆ toEigen() [1/2]

Eigen::Isometry3d dart::utils::DartLoader::toEigen ( const urdf::Pose &  _pose)
staticprivate

@function pose2Affine3d

◆ toEigen() [2/2]

Eigen::Vector3d dart::utils::DartLoader::toEigen ( const urdf::Vector3 &  _vector)
staticprivate

Member Data Documentation

◆ mLocalRetriever

common::LocalResourceRetrieverPtr dart::utils::DartLoader::mLocalRetriever
private

◆ mOptions

Options dart::utils::DartLoader::mOptions
private

◆ mPackageRetriever

utils::PackageResourceRetrieverPtr dart::utils::DartLoader::mPackageRetriever
private

◆ mRetriever

utils::CompositeResourceRetrieverPtr dart::utils::DartLoader::mRetriever
private