bool ModelLoader::loadModelFromString(const std::string& modelString, const std::string& /*filetype*/) { Model _model; SensorsList _sensors; bool parsingCorrect = false; parsingCorrect = modelFromURDFString(modelString,_model); if( !parsingCorrect ) { reportError("loadModelFromString","loadModelFromString","Error in parsing model from URDF."); return false; } parsingCorrect = sensorsFromURDFString(modelString,_model,_sensors); if( !parsingCorrect ) { reportError("loadModelFromString","loadModelFromString","Error in parsing sensors from URDF."); return false; } return setModelAndSensors(_model,_sensors); }
bool ModelLoader::loadReducedModelFromString(const std::string modelString, const std::vector< std::string >& consideredJoints, const std::string /*filetype*/) { SensorsList _sensorsFull, _sensorsReduced; Model _modelFull, _modelReduced; bool parsingCorrect = modelFromURDFString(modelString,_modelFull); if( !parsingCorrect ) { reportError("ModelLoader","loadReducedModelFromString","Error in parsing model from URDF."); return false; } parsingCorrect = sensorsFromURDFString(modelString,_modelFull,_sensorsFull); if( !parsingCorrect ) { reportError("ModelLoader","loadReducedModelFromString","Error in parsing sensors from URDF."); return false; } parsingCorrect = createReducedModelAndSensors(_modelFull,_sensorsFull,consideredJoints,_modelReduced,_sensorsReduced); if( !parsingCorrect ) { return false; } return setModelAndSensors(_modelReduced,_sensorsReduced); }
bool sensorsFromURDF(const std::string & urdfFilename, const iDynTree::Model & undirectedTree, SensorsList & sensors) { std::ifstream ifs(urdfFilename.c_str()); std::string xmlString( (std::istreambuf_iterator<char>(ifs) ), (std::istreambuf_iterator<char>() ) ); return sensorsFromURDFString(xmlString,undirectedTree,sensors); }
bool sensorsFromURDFString(const std::string& urdf_string, iDynTree::SensorsList& output) { iDynTree::Model model; bool ok = modelFromURDFString(urdf_string,model); if( !ok ) { std::cerr << "[ERROR] iDynTree::sensorsListFromURDFString : error in loading urdf string " << urdf_string << std::endl; return false; } ok = sensorsFromURDFString(urdf_string,model,output); return ok; }