How to Use ControlIt! with Hume (Joint Position)

This section describes how control Hume in simulation.

Compile the Demo (If Necessary)

If you are unsure whether or not this is necessary, do not skip this step

To compile the demo:

$ rosmake hume

Generate the URDFs

Note: One only needs to generate the URDFs again if the xacros from which the URDFs are derived have changed. If this is your first time running the demo or you are unsure if the xacros have changed, do not skip this step.

Generate the URDF description files:

$ roscd hume/models
$ ./generate_hume_urdfs.sh

Launch Automatically Using a Single Command

Coming soon

Launch Manually Using Multiple Commands

Start roscore.

$ roscore

Start the shared memory manager:

$ rosrun shared_memory_interface shared_memory_manager

In a new terminal load the parameters onto the ROS parameter server:

$ roslaunch hume load_hume_parameters.launch

The above command will exit after loading the parameters. Next start the simulation by executing the following command in the same terminal:

$ roslaunch hume gazebo.launch

You should now see Gazebo's window with Hume loaded. The simulation will initially be stopped. Leave it this way for now.

In a new terminal start ControllerExec.

$ roslaunch controller_exec robot_control_system.launch

Start the controller:

$ roslaunch hume start_rapid_controller.launch

The above command will start the RAPid controller and block. Hit play in Gazebo to start the demo.

You can change the joint position reference by executing the following command in another terminal:

$ rostopic pub /hume_controller/JPosTask/goalPosition std_msgs/Float64MultiArray '{layout: {dim: [{label: "x", size: 6, stride: 6}], data_offset: 0}, data: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}'