diff --git a/collada_urdf/src/ColladaWriter.cpp b/collada_urdf/src/ColladaWriter.cpp index 1cb70d7..78c3d54 100644 --- a/collada_urdf/src/ColladaWriter.cpp +++ b/collada_urdf/src/ColladaWriter.cpp @@ -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(new urdf::Model); if (!robot_->initXml(robot_xml)) diff --git a/collada_urdf/src/urdf_to_collada.cpp b/collada_urdf/src/urdf_to_collada.cpp index 939a44e..03b01c1 100644 --- a/collada_urdf/src/urdf_to_collada.cpp +++ b/collada_urdf/src/urdf_to_collada.cpp @@ -41,30 +41,16 @@ 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; + try + { + collada_urdf::ColladaWriter writer(argv[1]); + if (!writer.writeDocument(argv[2])) { + std::cerr << "Error writing document" << 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 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)) { - std::cerr << "Error writing document" << std::endl; + catch (collada_urdf::ColladaWriterException ex) { + std::cerr << "Error converting document: " << ex.what() << std::endl; return -1; }