[Documentation] [TitleIndex] [WordIndex

API+Doc review

Proposer: Tim

Present at review:

urdf_to_collada tool

The urdf_to_collada command-line tool takes an URDF file and converts it to a COLLADA document:

$ ./urdf_to_collada
Usage: urdf_to_collada input.urdf output.dae

An example of a successful export:

$ bin/urdf_to_collada test/pr2.urdf test/pr2.dae
Warning: geometry type BOX of link base_footprint not exported
Warning: geometry type BOX of link base_laser_link not exported
Warning: geometry type BOX of link double_stereo_link not exported
Warning: geometry type BOX of link head_plate_frame not exported
Warning: geometry type BOX of link high_def_frame not exported
Warning: geometry type CYLINDER of link high_def_optical_frame not exported
...
Warning: geometry type BOX of link wide_stereo_link not exported

Document successfully written to test/pr2.dae

An example of an unsuccessful export:

$ bin/urdf_to_collada test/pr2.urdf /usr/pr2.dae
Warning: geometry type BOX of link base_footprint not exported
Warning: geometry type BOX of link base_laser_link not exported
Warning: geometry type BOX of link double_stereo_link not exported
Warning: geometry type BOX of link head_plate_frame not exported
Warning: geometry type BOX of link high_def_frame not exported
Warning: geometry type CYLINDER of link high_def_optical_frame not exported
...
Warning: geometry type BOX of link wide_stereo_link not exported
I/O error : Permission denied
I/O error : Permission denied
error : xmlNewTextWriterFilename : cannot open uri

Error converting document: daeLIBXMLPlugin::write(file:/usr/pr2.dae) failed

collada_urdf API

The API follows the kdl_parser API. Functions exist for constructing a COLLADA document from an URDF from a variety of sources: file, string, XML document, or Model object.

A colladaToFile function writes the DOM object to disk in the COLLADA XML format.

No exceptions are thrown: errors are output via ROS_ERROR and success/failure is indicated by the boolean return value.

   1 namespace collada_urdf {
   2 
   3 /** Construct a COLLADA DOM from an URDF file
   4  * \param file The filename from where to read the URDF
   5  * \param dom The resulting COLLADA DOM
   6  * \return true on success, false on failure
   7  */
   8 bool colladaFromUrdfFile(std::string const& file, boost::shared_ptr<DAE>& dom);
   9 
  10 /** Construct a COLLADA DOM from a string containing URDF
  11  * \param xml A string containing the XML description of the robot
  12  * \param dom The resulting COLLADA DOM
  13  * \return true on success, false on failure
  14  */
  15 bool colladaFromUrdfString(std::string const& xml, boost::shared_ptr<DAE>& dom);
  16 
  17 /** Construct a COLLADA DOM from a TiXmlDocument containing URDF
  18  * \param xml_doc The TiXmlDocument containing URDF
  19  * \param dom The resulting COLLADA DOM
  20  * \return true on success, false on failure
  21  */
  22 bool colladaFromUrdfXml(TiXmlDocument* xml_doc, boost::shared_ptr<DAE>& dom);
  23 
  24 /** Construct a COLLADA DOM from a URDF robot model
  25  * \param robot_model The URDF robot model
  26  * \param dom The resulting COLLADA DOM
  27  * \return true on success, false on failure
  28  */
  29 bool colladaFromUrdfModel(urdf::Model const& robot_model, boost::shared_ptr<DAE>& dom);
  30 
  31 /** Write a COLLADA DOM to a file
  32  * \param dom COLLADA DOM to write
  33  * \param file The filename to write the document to
  34  * \return true on success, false on failure
  35  */
  36 bool colladaToFile(boost::shared_ptr<DAE> dom, std::string const& file);
  37 
  38 }

Question / concerns / comments

Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.

Meeting agenda

To be filled out by proposer based on comments gathered during API review period

Conclusion

Package status change mark change manifest)



2024-02-24 12:30