Skip to content

Latest commit

 

History

History
143 lines (107 loc) · 5.3 KB

README.md

File metadata and controls

143 lines (107 loc) · 5.3 KB

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