Motion Planning for Dual-Arm Manipulator

September 2017 - April 2018 | Prof. Zhi Li

Motion Planning for Dual-Arm Manipulator

Objective

Extracting trajectories for desired motion and simulating them on ROS MoveIt platform before implementation on the Yashkawa SDA10F dual-arm robot

Research Aspects

  • MoveIt motion planning framework for ROS was used for the project
  • OMPL library (available in MoveIt) was used with RRT* and RRTConnect being the primary solvers
  • 2-finger Robotiq grippers were attached in URDF for grasping tasks
  • 3D Kinect Scan using Ubuntu libraries like libfreenect and OpenNI as well as Kinect SDK for Windows was used to create 3D model of real-life obstacles in simulation
  • Trajectory was extracted using MoveIt commander and fed to controller for real-life motion

Methodology

The project initially started with getting hold of the basic demo ROS package for the SDA10F dual-arm robot provided by Motoman. Further exploration made us understand that we had to make custom changes in the model of the robot and creating a similar ROS package needed the MoveIt Setup Assistant which was relatively easy after stitching together the components of the URDF. Further, making the robot traverse to random-valid positions generated by MoveIt was easy and extracting the time-distributed values of angular position, velocity and acceleration for all the joints of the robot was simple.

However, the challenge was to feed custom start and end locations and make MoveIt use its inbuilt feature to decide the best planning algorithm, derive trajectories for the traversal and execute the best sorted one. Owing to the erroneous model of the robot, task-space custom-fed start and end positions couldn’t derive trajectories but the same was possible in the joint space.

Results

  • Initial simulation of robot’s demo package achieved using Rviz
  • Custom robot model for MoveIt using the setup assistant and defining special links was achieved
  • Manipulation of the robot in joint space achieved and simulated in Rviz