How to Use ControlIt! with dreamer_testbed (Right Hand Cartesian Position)

This section describes how to control the Cartesian position and orientation of dreamer_testbed using ControlIt!.

Generate the URDFs

Generate the URDF description files:

$ roscd dreamer_no_left_arm_controlit/models
$ ./
$ roscd dreamer_testbed_controlit/models
$ ./

Launch Using a Single Command

To run the demo using a single command:

$ reset && roslaunch dreamer_testbed_controlit simulate_right_hand_cartesian.launch

Launch 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 (same as dreamer_no_left_arm):

$ roslaunch dreamer_no_left_arm_controlit load_dreamer_no_left_arm_parameters_right_hand_cartesian.launch 

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

$ roslaunch dreamer_testbed_controlit gazebo.launch

Start the controller:

$ roslaunch dreamer_no_left_arm_controlit start_controlit.launch

At this point, if you are using the default cartesian position controller you should see this (there will be a bit of a jerk at the start, trajectory generation will fix that):

This model reflects the basic geometry of a testbed being designed to enable visual servoing and learning experiements for dreamer.

Usage Notes

Move the Cameras

To move the cameras, publish the following command:

$ rostopic pub -1 /camera_goal_position std_msgs/Float64MultiArray '{layout: {dim: [{label: "x", size: 4, stride: 4}], data_offset: 0}, data: [-0.15, 1.0, 0.15, 1.0]}'

Now you should see this:

RViz Camera Visualization

In RViz, click on "Add" and select "Image".  Do this twice as shown below.

Within the image plugins, select the topics as /dreamer_testbed/webcam1/image_raw and /dreamer_testbed/webcam2/image_raw. RViz should look like this: