collada_urdf: urdf_to_collada catches exceptions

This commit is contained in:
tfield 2010-04-23 22:14:56 +00:00
parent 138cff4f75
commit da358799d0
2 changed files with 11 additions and 25 deletions

View File

@ -54,11 +54,11 @@ ColladaWriter::ColladaWriter(std::string const& filename)
{
TiXmlDocument xml;
if (!xml.LoadFile(filename.c_str()))
throw ColladaWriterException("Error opening file");
throw ColladaWriterException("Error reading XML file");
TiXmlElement* robot_xml = xml.FirstChildElement("robot");
if (!robot_xml)
throw ColladaWriterException("Error parsing URDF model from XML");
throw ColladaWriterException("Error parsing URDF model from XML (robot element not found)");
robot_ = shared_ptr<urdf::Model>(new urdf::Model);
if (!robot_->initXml(robot_xml))

View File

@ -41,32 +41,18 @@ int main(int argc, char** argv)
return -1;
}
std::string input_filename(argv[1]);
std::string output_filename(argv[2]);
TiXmlDocument robot_model_xml;
if (!robot_model_xml.LoadFile(input_filename.c_str())) {
std::cerr << "Error opening file " << argv[1] << std::endl;
return -1;
}
TiXmlElement* robot_xml = robot_model_xml.FirstChildElement("robot");
if (!robot_xml) {
std::cerr << "Error parsing URDF model from XML" << std::endl;
return -1;
}
boost::shared_ptr<urdf::Model> robot(new urdf::Model);
if (!robot->initXml(robot_xml)) {
std::cerr << "Error parsing URDF model from XML" << std::endl;
return -1;
}
collada_urdf::ColladaWriter writer(robot, input_filename);
if (!writer.writeDocument(output_filename)) {
try
{
collada_urdf::ColladaWriter writer(argv[1]);
if (!writer.writeDocument(argv[2])) {
std::cerr << "Error writing document" << std::endl;
return -1;
}
}
catch (collada_urdf::ColladaWriterException ex) {
std::cerr << "Error converting document: " << ex.what() << std::endl;
return -1;
}
return 0;
}