ros / sdformat_urdf

A urdf_parser_plugin using libsdformat to parse SDFormat XML into URDF structures
32 stars 8 forks source link

CMake Error at CMakeLists.txt:19 (find_package): can't find "urdf_parser_plugin" #2

Open newcanopies opened 3 years ago

newcanopies commented 3 years ago

Thanks for this package, where does the missing urdf_parser_plugin come from? It doesn't match any file names in this entire repo. See build error:

colcon build --packages-select sdformat_urdf --symlink-install

Starting >>> sdformat_urdf
--- stderr: sdformat_urdf                         
CMake Error at CMakeLists.txt:19 (find_package):
  By not providing "Findurdf_parser_plugin.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "urdf_parser_plugin", but CMake did not find one.

  Could not find a package configuration file provided by
  "urdf_parser_plugin" with any of the following names:

    urdf_parser_pluginConfig.cmake
    urdf_parser_plugin-config.cmake

  Add the installation prefix of "urdf_parser_plugin" to CMAKE_PREFIX_PATH or
  set "urdf_parser_plugin_DIR" to a directory containing one of the above
  files.  If "urdf_parser_plugin" provides a separate development package or
  SDK, be sure it has been installed.

---
Failed   <<< sdformat_urdf [6.92s, exited with code 1]

Summary: 0 packages finished [7.04s]
  1 package failed: sdformat_urdf
  1 package had stderr output: sdformat_urdf

env

newcanopies commented 3 years ago

also, what would be the bash command to run an SDF to URDF conversion?

sloretz commented 3 years ago

where does the missing urdf_parser_plugin come from?

It comes from the ros2/urdf repository. https://github.com/ros2/urdf . It's available in ROS Galactic or ROS Rolling. https://index.ros.org has a search bar for finding packages: https://index.ros.org/p/urdf_parser_plugin/github-ros2-urdf/#galactic

also, what would be the bash command to run an SDF to URDF conversion?

There isn't one, but it may be possible to write one making use of this API: https://github.com/ros/urdfdom/issues/12#issuecomment-284719375 . This repo provides a library and a urdf_parser_plugin to convert SDFormat XML to URDF C++ DOM structures. That means when you have this package installed, you can give an SDFormat robot description to tools like robot_state_publisher, and other tools like RViz2 will be able to display that robot description (with some limitations on the materials that can be displayed).

newcanopies commented 3 years ago

Thanks very much for all of this information, it prompted me to revisit the sdformat_urdf package as a potential method to close the current gap between simulation <> control, given that mesh based URDF models cannot be visualized in Gazebo, also related to the background discussion https://github.com/ros/robot_state_publisher/issues/144

Is the way to implement this package:

my use case is propagating control from a web-cli to Gazebo using the robot_state_publisher, joint_state_publisher plugins and some move_group yamls. lots of heterogenous systems to interface, and they don't even share a robot description convention.