Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}