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