How to Use ControlIt! with stickbot_leg_6dof (Joint Position)

 

Generate the Model

To generate the model:

$ roscd stickbot_leg_6dof_controlit/models/
$ ./generate_stickbot_leg_6dof_controlit_urdfs.sh

Launch Using a Single Command

To run the demo using a single command:

$ reset && roslaunch stickbot_leg_6dof_controlit simulate_jpos.launch 

Launch Using Multiple Commands

Start roscore:

$ roscore 

Start the shared memory manager:

$ rosrun shared_memory_interface shared_memory_manager

Load the necessary parameters (this command will run then exit):

$ roslaunch stickbot_leg_6dof_controlit load_stickbot_leg_6dof_parameters.launch

Start the simulation:

$ roslaunch stickbot_leg_6dof_controlit gazebo.launch

Gazebo will appear with a simple 6DOF robot as shown below.

Start the controller:

$ roslaunch stickbot_leg_6dof_controlit start_controlit.launch 

The above command will start ControlIt! and block. Hit play in Gazebo to start the demo. You should see the robot stabilize in the following pose:

To view the robot in RViz:

$ rosrun rviz rviz 

Usage Notes

Here is what you should see:

Here are some more details about this demo:

  1. The YAML file that specifies the compound task and constraint set is located here: hcrl_robots_controlit_config/stickbot_leg_6dof_controlit/parameters/JointPositionControl.yaml

  2. The world file is located here: hcrl_robots_controlit_config/stickbot_leg_6dof_controlit/worlds/stick_bot_6dof.world

  3. The URDF file is located here: hcrl_robots_controlit_config/stickbot_leg_6dof_controlit/models/stickbot_leg_6dof/urdf/stickbot_leg_6dof.urdf

  4. The launch file that loads the parameters is here: hcrl_robots_controlit_config/stickbot_leg_6dof_controlit/launch/load_stickbot_leg_6dof_parameters.launch

  5. This demo uses the shared memory plugin: hcrl_robots_controlit_config/hcrl_gazebo_plugins/gazebo_plugins/src/SMControlPlugin.cpp

  6. This robot is very top-heavy. You can easily cause it to tip over if you're not careful!