'''hebiros:''' [[hebiros_description|hebiros_description]] | [[hebiros_basic_examples|hebiros_basic_examples]] | [[hebiros_advanced_examples|hebiros_advanced_examples]] <> <> ## AUTOGENERATED DON'T DELETE ## CategoryStack = Overview = '''NOTE: This package should not be used for new projects, and is maintained for legacy use only. If possible, use [[http://wiki.ros.org/hebi_cpp_api_examples]] instead''' The HEBI ROS API is provided as source code that can be compiled into a node in a catkin workspace. We provide the `hebiros` node, as well as several example nodes to help you get started using the API. == Getting Started == Below, we show how to add the `hebiros` node to a new workspace, and run the provided examples. Before continuing, remember to source your environment if you have not yet done so: {{{ source /opt/ros//setup.bash }}} (replace with kinetic, lunar, etc. as appropriate) === Creating a Workspace === First, you need to create a catkin workspace. The relevant commands are listed below; see http://wiki.ros.org/catkin/Tutorials/create_a_workspace for more information. If you already have a workspace you want to use, skip these commands. {{{ # Create workspace mkdir -p ~/hebi_ros_ws/src\ cd ~/hebi_ros_ws/ catkin_make # Source workspace source devel/setup.bash }}} === Download and compile the HEBI node source code === Run the following commands from the root of your workspace to download the code from the HEBI github repo. {{{ cd src git clone git@github.com:HebiRobotics/hebi_cpp_api_ros.git git clone https://github.com/HebiRobotics/HEBI-ROS.git hebiros cd .. }}} Now, build the full package. {{{ catkin_make }}} === Running the examples === To run the numbered examples, first start `roscore`, and then run the following commands (in separate terminals) {{{ rosrun hebiros hebiros_node }}} and {{{ rosrun hebiros }}} Note the examples assume hardcoded module name/families, and so will probably need to be changed for your particular system. == Nodes == === hebiros_node === <
> For data topics, data is arranged in arrays such that one index in each data array corresponds to one module. The order of data which corresponds to each module is based on the `name` array. Data arrays may not all have the same size and may be empty at minimum and the size of the group at maximum. <
> ==== Services ==== /hebiros/add_group_from_names ([[http://docs.ros.org/kinetic/api/hebiros/html/srv/AddGroupFromNamesSrv.html|hebiros/AddGroupFromNamesSrv]]) <
> * Create a group given a list of families and a list of names where each module is "|". This service can either be used with one family, which is paired with all the names, or an equal number of families and names, where each family is paired with one name. <
> /hebiros/add_group_from_urdf ([[http://docs.ros.org/kinetic/api/hebiros/html/srv/AddGroupFromUrdfSrv.html|hebiros/AddGroupFromUrdfSrv]]) <
> * Create a group using a urdf stored on the parameter server in `robot_description`. The joint names will be used as complete module names. <
> /hebiros/entry_list ([[http://docs.ros.org/kinetic/api/hebiros/html/srv/EntryListSrv.html|hebiros/EntryListSrv]]) <
> * Return a list of entries, which provide information about modules found on the network. <
> /hebiros//size ([[http://docs.ros.org/kinetic/api/hebiros/html/srv/SizeSrv.html|hebiros/SizeSrv]]) <
> * Return the number of modules in the group. <
> /hebiros//set_command_lifetime ([[http://docs.ros.org/kinetic/api/hebiros/html/srv/SetCommandLifetimeSrv.html|hebiros/SetCommandLifetimeSrv]]) <
> * Set the command lifetime, which is the number of milliseconds that a command persists, for the group. <
> /hebiros//set_feedback_frequency ([[http://docs.ros.org/kinetic/api/hebiros/html/srv/SetFeedbackFrequencySrv.html|hebiros/SetFeedbackFrequencySrv]]) <
> * Set the feedback frequency, which is the number of Hz at which feedback is broadcast, for the group. <
> ==== Subscribed Topics ==== /hebiros//command ([[http://docs.ros.org/kinetic/api/hebiros/html/msg/CommandMsg.html|hebiros/CommandMsg]]) <
> * Publish full commands to all modules in the group. <
> /hebiros//command/joint_state ([[http://docs.ros.org/api/sensor_msgs/html/msg/JointState.html|sensor_msgs/JointState]]) <
> * Publish only joint state commands to all modules in the group. <
> ==== Published Topics ==== /hebiros//feedback ([[http://docs.ros.org/kinetic/api/hebiros/html/msg/FeedbackMsg.html|hebiros/FeedbackMsg]]) <
> * Subscribe to full feedback from all modules in the group. <
> /hebiros//feedback/joint_state ([[http://docs.ros.org/api/sensor_msgs/html/msg/JointState.html|sensor_msgs/JointState]]) <
> * Subscribe to only joint state feedback from all modules in the group. <
> ==== Actions ==== /hebiros//trajectory ([[http://docs.ros.org/kinetic/api/hebiros/html/action/Trajectory.html|hebiros/TrajectoryAction]]) <
> * Execute a trajectory using waypoints for each module in the group. <
> ==== Parameters ==== /hebiros/node_frequency (int, default: 200) <
> * The frequency in Hz that the node runs. <
> /hebiros/action_frequency (int, default: 200) <
> * The frequency in Hz that the action runs. <
> /hebiros/command_lifetime (int, default: 100) <
> * The number of milliseconds that a command persists for all groups. <
> /hebiros/feedback_frequency (int, default: 100) <
> * The number of Hz at which feedback is broadcast for all groups. <
>