KUKA Mobile Manipulation

Overview

This project entailed programming a full kinematics controller from scratch to pick and place objects with a KUKA youBot. The project involved the heavy usage of inverse and forward kinematics, self collision avoidance, Jacobian matrices, control theory, screw theory, and coordinate transformations. The robot employs a feedforward PID control loop to stay as close to the desired locations as possible, even with the introduction of error (seen in the initial jolt given to the robot in the animations). The program would output a CSV file that could be loaded into simulation software, such as CoppeliaSim. The wheel motion, arm kinematics, and gripper state were all in separate columns that could be easily picked out by the simulation script, resulting in the following animations for self-collision avoidance, self-collision, new task locations, and an overshoot in PID gains.

no_self_collision.mp4

Video demonstrating moving an object (in this case a block, but it could be anything) with self-collision avoidance.

self_collision.mp4

Without self-collision avoidance, the robot arm will swing into the base of the robot - generally an undesirable feature!

newTask.mp4

Any object location and goal destination can be specified and the motion planning algorithm is robust enough to accomplish it.

overshoot.mp4

With PID gains set too high, the robot will encounter a control loop overshoot, resulting in unstable behavior.

Control loop data for the self-collision avoidance case

Control loop data for the no self-collision avoidance case

Control loop data for the overshoot case

Control loop data for the new task locations