HEBI C++ Examples: Base Nodes

The omni_base_node and diff_drive_node can be used to provide high level commands to a HEBI mobile base.

https://github.com/HebiRobotics/hebi_cpp_api_ros_examples/tree/master/src/kits/base

Installation / Build

To install all dependencies in a new catkin workspace, run the following steps (replace <ros-distro> with kinetic or melodic`):

sudo apt-get install ros-<ros-distro>-hebi-cpp-api

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/HebiRobotics/hebi_cpp_api_ros_examples.git hebi_cpp_api_examples
cd ..
catkin_make

Parameters

The parameters define the modules on the network that the arm node will try to connect to, as well as how they are physically connected. The parameter files are in the config directory; several default ones are provided for standard HEBI kits.

Ensure the families and names parameters match the module family and names, ordered from proximal to distal, of your robot, and that these modules are visible on the network from your computer. Use HEBI Scope (downloadable from http://docs.hebi.us/downloads_changelogs.html#downloads) to discover and configure modules on your network.

By default, if no parameters are given, this defaults to family "HEBI" and "Wheel1", "Wheel2", "Wheel3" for the omnibase, or "Left" and "Right" for the diff drive.

For the omni base, you can also set the publish_odom boolean parameter; if set, this will publish x/y/theta odometry on tf broadcaster and the /odom channel.

You may also need to modify the parameters for the location of the gains file, HRDF file, and home position of the system.

Running

roslaunch hebi_cpp_api_examples omni_base_node.launch

or

roslaunch hebi_cpp_api_examples diff_drive_node.launch

Topics

TODO: graph; add omnibase optional published topics

  • /motion (action, hebi_cpp_api_examples::BaseMotion) Use a ROS action to move the robot to a given location and optionally change LED colors.

Walkthrough Video

TODO

Wiki: hebi_cpp_api_examples/MobileBases (last edited 2019-09-26 21:21:57 by MatthewTesch)