Skip to content

Latest commit

 

History

History

ros_dual_arm

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dual arm control using Robot Operating System (ROS)

Control the dual arm in simulation or with real robots using ROS

Dependencies

The main dependencies are the following ones:

Optional QP-based torque controller

A docker exists here. It requires an image of the required branch of iiwa_ros.

File hierarchy

The file system is divided in several subfolders:

The file system is divided in several subfolders:

  • config: contains .yaml used by launch files
  • Data: contains recorded data
  • include: contains class header files
  • launch: contains .launch files
  • LearnedModel: contains parameters of learned inverse throwing model
  • media: contains .gif files showing real robots experiments
  • src:
    • dual_arm_control_sim: Contains the control loop

Running the controller in simulation

Open a new terminal and launch the simulated robots by running the following commands:

roslaunch ros_dual_arm_control main_sim_pt3.launch

Read and publish the poses of the simulated robots and object by running the command below:

roslaunch sim_models_poses sim_models_poses2.launch

When sim_models_poses is running, you can now start the dual arm controller:

roslaunch ros_dual_arm_control dual_arm_control.launch

Running the controller on real robots

For grabbing and tossing objects

The dual arm DS-based controller is currently being used with three types of torque controllers:

  1. The iiwa_ros CustomControllers : inputs are desired linear velocity and axis/angle of the EE
  2. The iiwa_toolkit_ns TorqueController : inputs are desired linear and angular velocity of EE
  3. The dual_opspace_ds_controller: inputs are desired linear and angular velocity of EE and the EE wrenches

Step 1: Open a terminal

   launch roscore

Step 2: launch the sensors packages forces sensors optitrack vrpn client Navigate to and source the appropiate workspace (dual_iiwa_real_ws) and run:

   roslaunch real_pose hardwares.launch 

Step 3: Launch the torque controllers of the robots

Option 1: CustomControllers (no longer working)

  • Open a new terminal and launch the torque controller for IIWA7 and run:
   roslaunch real_pose bringup_iiwa7.launch
  • Open another terminal and through ssh connect to the PC of KUKA IIWA14 robot (ssh -X USERID@ip_of_iiwa14_pc) and run:
   roslaunch real_pose bringup_iiwa14.launch

Option 2: iiwa_toolkit_ns torqueController

  • Open a new terminal and launch the torque controller for IIWA7 and run:
   roslaunch iiwa_toolkit passive_track_real.launch
  • Open another terminal and through ssh connect to the PC of KUKA IIWA14 robot and run: ssh -X USERID@ip_of_iiwa14_pc
   roslaunch iiwa_toolkit passive_track_real.launch

Option 3: dual_gen_trq_controller dual_iiwa_opspace_ds_controller

  • Open a new terminal and launch the torque controller for IIWA7 (iiwa_bringup.launch):
   roslaunch iiwa_bringup.launch
  • Open another terminal and through ssh connect to the PC of KUKA IIWA14 robot by running: ssh -X USERID@ip_of_iiwa14_pc
   roslaunch iiwa_bringup.launch
  • Open another terminal and through ssh connect to the PC of KUKA IIWA14 robot and run: ssh -X USERID@ip_of_iiwa14_pc
   roslaunch roslaunch dual_gen_trq_controller dual_iiwa_opspace_ds_controller_real.launch

Step 4: Launch the dual-arm coordinates and variables transformation package This package transform individual robot's coordinates and varibales to reference dual-arm coordinates system (absolute coordinate of the dual-arm system with orientation of the left robot (IIWA7) base)

  • Open a new terminal and run
   roslaunch real_pose real_poses.launch

Step 5: Launch the dual_arm_controller package

  • Open a new terminal and run
   roslaunch ros_dual_arm_control dual_arm_control.launch