Privacy
An open-source, flexible 3D physical simulation framework
mars::smurf::SMURF Class Reference

#include <smurf.h>

Public Member Functions

 SMURF (lib_manager::LibManager *theManager)
 
 ~SMURF ()
 
int getLibVersion () const
 
const std::string getLibName () const
 
 CREATE_MODULE_INFO ()
 
void createModel (bool fixed)
 
unsigned int parseURDF (std::string filename)
 
unsigned int load ()
 
void addConfigMap (configmaps::ConfigMap &config)
 
std::string getRobotname ()
 
virtual sim::SimEntitycreateEntity (const configmaps::ConfigMap &config)
 
void init ()
 
void reset ()
 
void update (mars::interfaces::sReal time_ms)
 
- Public Member Functions inherited from mars::interfaces::MarsPluginTemplate
 MarsPluginTemplate (lib_manager::LibManager *theManager, std::string libName)
 
 ~MarsPluginTemplate ()
 
- Public Member Functions inherited from lib_manager::LibInterface
 LibInterface (LibManager *theManager)
 
virtual ~LibInterface (void)
 
ModuleInfo getModuleInfo () const
 
virtual void newLibLoaded (const std::string &libName)
 
virtual void createModuleInfo (void)
 
- Public Member Functions inherited from mars::interfaces::PluginInterface
 PluginInterface (ControlCenter *control)
 
virtual ~PluginInterface (void)
 
virtual void handleError (void)
 
virtual void getSomeData (void *data)
 
- Public Member Functions inherited from mars::entity_generation::EntityFactoryInterface
 EntityFactoryInterface (const std::string type)
 
virtual ~EntityFactoryInterface (void)
 
virtual std::string getType ()
 

Public Attributes

std::vector< configmaps::ConfigMapmaterialList
 
std::vector< configmaps::ConfigMapnodeList
 
std::vector< configmaps::ConfigMapjointList
 
std::vector< configmaps::ConfigMapmotorList
 
std::vector< configmaps::ConfigMapsensorList
 
std::vector< configmaps::ConfigMapcontrollerList
 
std::vector< configmaps::ConfigMapgraphicList
 
std::vector< configmaps::ConfigMaplightList
 

Private Member Functions

void handleURI (configmaps::ConfigMap *map, std::string uri)
 
void handleURIs (configmaps::ConfigMap *map)
 
void getSensorIDList (configmaps::ConfigMap *map)
 
void translateLink (urdf::LinkSharedPtr link, bool fixed)
 
void translateJoint (urdf::LinkSharedPtr childlink)
 
void createMaterial (const urdf::MaterialSharedPtr material)
 
void createOrigin (const urdf::LinkSharedPtr &link, bool fixed)
 
void createInertial (const urdf::LinkSharedPtr &link)
 
void createVisual (const urdf::VisualSharedPtr &visual, bool fixed)
 
void createCollision (const urdf::CollisionSharedPtr &collision, bool fixed)
 
void addEmptyVisualToNode (configmaps::ConfigMap *map)
 
void addEmptyCollisionToNode (configmaps::ConfigMap *map)
 
void createEmptyVisualMaterial ()
 
void createOriginMaterial ()
 
urdf::Pose getGlobalPose (const urdf::LinkSharedPtr &link)
 
void calculatePose (configmaps::ConfigMap *map, const urdf::LinkSharedPtr &link)
 
void convertPose (const urdf::Pose &pose, const urdf::Pose &toPose, utils::Vector *v, utils::Quaternion *q)
 
void poseToVectorAndQuaternion (const urdf::Pose &pose, utils::Vector *v, utils::Quaternion *q)
 
bool isEqualPos (const urdf::Pose &p1, const urdf::Pose p2)
 
bool isNullPos (const urdf::Pose &p)
 
unsigned int loadMaterial (configmaps::ConfigMap config)
 
unsigned int loadNode (configmaps::ConfigMap config)
 
unsigned int loadJoint (configmaps::ConfigMap config)
 
unsigned int loadMotor (configmaps::ConfigMap config)
 
interfaces::BaseSensorloadSensor (configmaps::ConfigMap config)
 
unsigned int loadController (configmaps::ConfigMap config)
 
unsigned int loadGraphic (configmaps::ConfigMap config)
 
unsigned int loadLight (configmaps::ConfigMap config)
 

Private Attributes

int groupID
 
unsigned int mapIndex
 
unsigned long nextNodeID
 
unsigned long nextGroupID
 
unsigned long currentNodeID
 
unsigned long nextJointID
 
unsigned long nextMaterialID
 
unsigned long nextMotorID
 
unsigned long nextSensorID
 
unsigned long nextControllerID
 
std::map< std::string, unsigned long > linkIDMap
 
std::map< std::string, unsigned long > nodeIDMap
 
std::map< std::string, unsigned long > jointIDMap
 
std::map< std::string, unsigned long > sensorIDMap
 
std::map< std::string, unsigned long > motorIDMap
 
std::map< std::string, interfaces::MaterialDatamaterialMap
 
std::map< std::string, std::string > visualNameMap
 
std::map< std::string, std::string > collisionNameMap
 
std::string tmpPath
 
configmaps::ConfigMap debugMap
 
configmaps::ConfigMap entityconfig
 
std::string robotname
 
urdf::ModelInterfaceSharedPtr model
 
sim::SimEntityentity
 

Additional Inherited Members

- Protected Attributes inherited from mars::interfaces::MarsPluginTemplate
std::string configPath
 
std::string resourcesPath
 
- Protected Attributes inherited from lib_manager::LibInterface
LibManagerlibManager
 
ModuleInfo moduleInfo
 
- Protected Attributes inherited from mars::interfaces::PluginInterface
ControlCentercontrol
 
- Protected Attributes inherited from mars::entity_generation::EntityFactoryInterface
std::string type
 

Detailed Description

Definition at line 50 of file smurf.h.

Constructor & Destructor Documentation

◆ SMURF()

mars::smurf::SMURF::SMURF ( lib_manager::LibManager theManager)

Definition at line 65 of file smurf.cpp.

◆ ~SMURF()

mars::smurf::SMURF::~SMURF ( )

Definition at line 76 of file smurf.cpp.

Member Function Documentation

◆ addConfigMap()

void mars::smurf::SMURF::addConfigMap ( configmaps::ConfigMap config)

Definition at line 244 of file smurf.cpp.

◆ addEmptyCollisionToNode()

void mars::smurf::SMURF::addEmptyCollisionToNode ( configmaps::ConfigMap map)
private

Definition at line 547 of file smurf.cpp.

◆ addEmptyVisualToNode()

void mars::smurf::SMURF::addEmptyVisualToNode ( configmaps::ConfigMap map)
private

Definition at line 541 of file smurf.cpp.

◆ calculatePose()

void mars::smurf::SMURF::calculatePose ( configmaps::ConfigMap map,
const urdf::LinkSharedPtr &  link 
)
private

◆ convertPose()

void mars::smurf::SMURF::convertPose ( const urdf::Pose &  pose,
const urdf::Pose &  toPose,
utils::Vector v,
utils::Quaternion q 
)
private

Definition at line 439 of file smurf.cpp.

◆ CREATE_MODULE_INFO()

mars::smurf::SMURF::CREATE_MODULE_INFO ( )

◆ createCollision()

void mars::smurf::SMURF::createCollision ( const urdf::CollisionSharedPtr &  collision,
bool  fixed = false 
)
private

Definition at line 654 of file smurf.cpp.

◆ createEmptyVisualMaterial()

void mars::smurf::SMURF::createEmptyVisualMaterial ( )
private

Definition at line 504 of file smurf.cpp.

◆ createEntity()

sim::SimEntity * mars::smurf::SMURF::createEntity ( const configmaps::ConfigMap config)
virtual

Implements mars::entity_generation::EntityFactoryInterface.

Definition at line 184 of file smurf.cpp.

◆ createInertial()

void mars::smurf::SMURF::createInertial ( const urdf::LinkSharedPtr &  link)
private

Definition at line 600 of file smurf.cpp.

◆ createMaterial()

void mars::smurf::SMURF::createMaterial ( const urdf::MaterialSharedPtr  material)
private

Definition at line 907 of file smurf.cpp.

◆ createModel()

void mars::smurf::SMURF::createModel ( bool  fixed = false)
Returns
0 on error.

Definition at line 939 of file smurf.cpp.

◆ createOrigin()

void mars::smurf::SMURF::createOrigin ( const urdf::LinkSharedPtr &  link,
bool  fixed 
)
private

Definition at line 554 of file smurf.cpp.

◆ createOriginMaterial()

void mars::smurf::SMURF::createOriginMaterial ( )
private

Definition at line 522 of file smurf.cpp.

◆ createVisual()

void mars::smurf::SMURF::createVisual ( const urdf::VisualSharedPtr &  visual,
bool  fixed = false 
)
private

Definition at line 727 of file smurf.cpp.

◆ getGlobalPose()

urdf::Pose mars::smurf::SMURF::getGlobalPose ( const urdf::LinkSharedPtr &  link)
private

Definition at line 892 of file smurf.cpp.

◆ getLibName()

const std::string mars::smurf::SMURF::getLibName ( ) const
inlinevirtual

Implements lib_manager::LibInterface.

Definition at line 59 of file smurf.h.

◆ getLibVersion()

int mars::smurf::SMURF::getLibVersion ( ) const
inlinevirtual

Implements lib_manager::LibInterface.

Definition at line 58 of file smurf.h.

◆ getRobotname()

std::string mars::smurf::SMURF::getRobotname ( )

Definition at line 1194 of file smurf.cpp.

◆ getSensorIDList()

void mars::smurf::SMURF::getSensorIDList ( configmaps::ConfigMap map)
private

Definition at line 151 of file smurf.cpp.

◆ handleURI()

void mars::smurf::SMURF::handleURI ( configmaps::ConfigMap map,
std::string  uri 
)
private

Definition at line 125 of file smurf.cpp.

◆ handleURIs()

void mars::smurf::SMURF::handleURIs ( configmaps::ConfigMap map)
private

Definition at line 131 of file smurf.cpp.

◆ init()

void mars::smurf::SMURF::init ( void  )
virtual

Implements mars::interfaces::PluginInterface.

Definition at line 79 of file smurf.cpp.

◆ isEqualPos()

bool mars::smurf::SMURF::isEqualPos ( const urdf::Pose &  p1,
const urdf::Pose  p2 
)
private

Definition at line 464 of file smurf.cpp.

◆ isNullPos()

bool mars::smurf::SMURF::isNullPos ( const urdf::Pose &  p)
private

Definition at line 484 of file smurf.cpp.

◆ load()

unsigned int mars::smurf::SMURF::load ( )

Definition at line 955 of file smurf.cpp.

◆ loadController()

unsigned int mars::smurf::SMURF::loadController ( configmaps::ConfigMap  config)
private

Definition at line 1173 of file smurf.cpp.

◆ loadGraphic()

unsigned int mars::smurf::SMURF::loadGraphic ( configmaps::ConfigMap  config)
private

Definition at line 1146 of file smurf.cpp.

◆ loadJoint()

unsigned int mars::smurf::SMURF::loadJoint ( configmaps::ConfigMap  config)
private

Definition at line 1090 of file smurf.cpp.

◆ loadLight()

unsigned int mars::smurf::SMURF::loadLight ( configmaps::ConfigMap  config)
private

Definition at line 1161 of file smurf.cpp.

◆ loadMaterial()

unsigned int mars::smurf::SMURF::loadMaterial ( configmaps::ConfigMap  config)
private

Definition at line 1082 of file smurf.cpp.

◆ loadMotor()

unsigned int mars::smurf::SMURF::loadMotor ( configmaps::ConfigMap  config)
private

Definition at line 1112 of file smurf.cpp.

◆ loadNode()

unsigned int mars::smurf::SMURF::loadNode ( configmaps::ConfigMap  config)
private

Definition at line 1007 of file smurf.cpp.

◆ loadSensor()

BaseSensor * mars::smurf::SMURF::loadSensor ( configmaps::ConfigMap  config)
private

Definition at line 1135 of file smurf.cpp.

◆ parseURDF()

unsigned int mars::smurf::SMURF::parseURDF ( std::string  filename)

Definition at line 926 of file smurf.cpp.

◆ poseToVectorAndQuaternion()

void mars::smurf::SMURF::poseToVectorAndQuaternion ( const urdf::Pose &  pose,
utils::Vector v,
utils::Quaternion q 
)
private

Definition at line 457 of file smurf.cpp.

◆ reset()

void mars::smurf::SMURF::reset ( void  )
virtual

Implements mars::interfaces::PluginInterface.

Definition at line 85 of file smurf.cpp.

◆ translateJoint()

void mars::smurf::SMURF::translateJoint ( urdf::LinkSharedPtr  childlink)
private

Definition at line 844 of file smurf.cpp.

◆ translateLink()

void mars::smurf::SMURF::translateLink ( urdf::LinkSharedPtr  link,
bool  fixed = false 
)
private

Definition at line 804 of file smurf.cpp.

◆ update()

void mars::smurf::SMURF::update ( mars::interfaces::sReal  time_ms)
virtual

Implements mars::interfaces::PluginInterface.

Definition at line 122 of file smurf.cpp.

Member Data Documentation

◆ collisionNameMap

std::map<std::string, std::string> mars::smurf::SMURF::collisionNameMap
private

Definition at line 105 of file smurf.h.

◆ controllerList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::controllerList

Definition at line 84 of file smurf.h.

◆ currentNodeID

unsigned long mars::smurf::SMURF::currentNodeID
private

Definition at line 93 of file smurf.h.

◆ debugMap

configmaps::ConfigMap mars::smurf::SMURF::debugMap
private

Definition at line 108 of file smurf.h.

◆ entity

sim::SimEntity* mars::smurf::SMURF::entity
private

Definition at line 112 of file smurf.h.

◆ entityconfig

configmaps::ConfigMap mars::smurf::SMURF::entityconfig
private

Definition at line 109 of file smurf.h.

◆ graphicList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::graphicList

Definition at line 85 of file smurf.h.

◆ groupID

int mars::smurf::SMURF::groupID
private

Definition at line 89 of file smurf.h.

◆ jointIDMap

std::map<std::string, unsigned long> mars::smurf::SMURF::jointIDMap
private

Definition at line 101 of file smurf.h.

◆ jointList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::jointList

Definition at line 81 of file smurf.h.

◆ lightList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::lightList

Definition at line 86 of file smurf.h.

◆ linkIDMap

std::map<std::string, unsigned long> mars::smurf::SMURF::linkIDMap
private

Definition at line 99 of file smurf.h.

◆ mapIndex

unsigned int mars::smurf::SMURF::mapIndex
private

Definition at line 90 of file smurf.h.

◆ materialList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::materialList

Definition at line 79 of file smurf.h.

◆ materialMap

std::map<std::string, interfaces::MaterialData> mars::smurf::SMURF::materialMap
private

Definition at line 104 of file smurf.h.

◆ model

urdf::ModelInterfaceSharedPtr mars::smurf::SMURF::model
private

Definition at line 111 of file smurf.h.

◆ motorIDMap

std::map<std::string, unsigned long> mars::smurf::SMURF::motorIDMap
private

Definition at line 103 of file smurf.h.

◆ motorList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::motorList

Definition at line 82 of file smurf.h.

◆ nextControllerID

unsigned long mars::smurf::SMURF::nextControllerID
private

Definition at line 98 of file smurf.h.

◆ nextGroupID

unsigned long mars::smurf::SMURF::nextGroupID
private

Definition at line 92 of file smurf.h.

◆ nextJointID

unsigned long mars::smurf::SMURF::nextJointID
private

Definition at line 94 of file smurf.h.

◆ nextMaterialID

unsigned long mars::smurf::SMURF::nextMaterialID
private

Definition at line 95 of file smurf.h.

◆ nextMotorID

unsigned long mars::smurf::SMURF::nextMotorID
private

Definition at line 96 of file smurf.h.

◆ nextNodeID

unsigned long mars::smurf::SMURF::nextNodeID
private

Definition at line 91 of file smurf.h.

◆ nextSensorID

unsigned long mars::smurf::SMURF::nextSensorID
private

Definition at line 97 of file smurf.h.

◆ nodeIDMap

std::map<std::string, unsigned long> mars::smurf::SMURF::nodeIDMap
private

Definition at line 100 of file smurf.h.

◆ nodeList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::nodeList

Definition at line 80 of file smurf.h.

◆ robotname

std::string mars::smurf::SMURF::robotname
private

Definition at line 110 of file smurf.h.

◆ sensorIDMap

std::map<std::string, unsigned long> mars::smurf::SMURF::sensorIDMap
private

Definition at line 102 of file smurf.h.

◆ sensorList

std::vector<configmaps::ConfigMap> mars::smurf::SMURF::sensorList

Definition at line 83 of file smurf.h.

◆ tmpPath

std::string mars::smurf::SMURF::tmpPath
private

Definition at line 106 of file smurf.h.

◆ visualNameMap

std::map<std::string, std::string> mars::smurf::SMURF::visualNameMap
private

Definition at line 105 of file smurf.h.


The documentation for this class was generated from the following files: