Examples of using HEBI components through ROS, using the HEBI C++ API
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
basic Added documentation and a starting omni base node example. Jan 25, 2019
package.xml Update package name. Feb 6, 2019



Examples of using HEBI components through ROS, using the HEBI C++ API.

This repository demonstrates integration of the HEBI C++ API with ROS, as well as several system-level demonstrations. Note that HEBI also provides a the hebi_ros package, which is a node that wraps up many of the API function calls into ROS messages, actions, and services. The hebi_ros package also provides URDF and gazebo simulation support; currently these features are not available when using the HEBI C++ API directly as the examples herein do. However, using the API directly exposes more features of the API and more powerful functionality when communicating directly with the robot, such as the ability to create smooth motion trajectories and query and alter them without sending them as commands to the robot.


You must have ROS kinetic, lunar, or melodic installed. See http://wiki.ros.org/ROS/Installation. We recommend the "Desktop Full" installation. This package may work on other installations of ROS as well.


Create/navigate to the directory you wish to be your ROS workspace. Then run the following commands to pull this repository and the HEBI C++ API ROS wrapper.

mkdir src
cd src
git clone git@github.com:HebiRobotics/hebi_cpp_api_ros.git
git clone git@github.com:HebiRobotics/hebi_cpp_api_ros_examples.git
cd ..
source devel/setup.sh


There are two folder with different types of examples. In the "basic" folder, we provide examples that will expose particular features of the API, starting with single modules.

In the "nodes" folder, we provide full-system level demonstrations which provide a ROS node interface to a robotic system. For example, these include an omnibase node that accepts ROS action commands for moving a HEBI omnidirectional base kit, as well as an arm node which accepts cartesian position ROS action commands.

These nodes are meant to be a starting point for your own particular functionality, or can be used as is.

The remaining folders provide the action definitions, launch files, etc. used by the examples.


To launch an example, run roslaunch hebi_ros_cpp_api_examples <example name>.

(if you haven't yet, you will need to run source devel/setup.sh first)

Depending on the example, different actions and messages are supported. See the README.md files in the individual example directories for commands for each examples.