Utilities for building OpenRAVE plugins in a Catkin workspace.
CMake Shell
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



openrave_catkin is a utility package that simplifies packaging of OpenRAVE models, plugins, and databases assets in a Catkin workspace. This package defines a Catkin environment hook that adds these paths to your OPENRAVE_DATA, OPENRAVE_DATABASES, and OPENRAVE_PLUGINS environment variables.

CMake Integration

Additionally, this package defines the following CMake variables:

  • OpenRAVE_DEVEL_DIR: directory for OpenRAVE assets in the devel space
  • OpenRAVE_INSTALL_DIR: directory for OpenRAVE assets in the install space
  • OpenRAVE_DATA_DIR: subdirectory for models (e.g. .kinbody.xml, .dae)
  • OpenRAVE_PLUGINS_DIR: subdirectory for plugins
  • OpenRAVE_DATABASES_DIR: subdirectory for databases

Additionally, the variables exported by find_package(OpenRAVE) are available:


You can use these variables to install your models, plugins, and databases into your OpenRAVE path. For example, you could install the model data/herb.kinbody.xml from your Catkin package by adding these directives to your CMakeLists.txt file:

# TODO: Copy the model into the devel space.
install(FILES "data/herb.kinbody.xml"

Building a plugin is more tedious because it requires specifying the correct compilation flags, linker flags, and output options. We provide a CMake macro openrave_plugin to simplify this:

Installation Paths

We define the following locations for OpenRAVE assets:

  • OPENRAVE_DATA: share/openrave-MAJOR.MINOR/data
  • OPENRAVE_DATABASES: share/openrave-MAJOR.MINOR/databases
  • OPENRAVE_PLUGINS: share/openrave-MAJOR.MINOR/plugins

In all cases, these paths are relative to the root of your of your current Catkin devel or install space. This naming convention will was selected to mirror the ${CMAKE_INSTALL_PREFIX}/share/openrave-MAJOR.MINOR directory used by OpenRAVE.

Multiple Versions of OpenRAVE

This package does not support switching between OpenRAVE versions because this use-case is not elegantly supported by Catkin. We would appreciate any thoughts on the matter in the form of an issue. However, note that installation paths used for OpenRAVE artifacts are namespaced by version number.