Mobile Manipulator Simulation

Mobile Manipulation / CoppeliaSim / PID Control / Python

Overview

As the capstone project for Northwestern’s Robotic Manipulation course I simulated a KUKA youBot moving to a cube, grasping it, and then placing it in a desired position. First, I created a function to generate trajectories from the robot’s starting position to all the different waypoints to complete the task. The homogeneous transformation matrices between waypoints are used to create a screw or Cartesian trajectories between points. These trajectories are then stored in a matrix representing the desired movement of the robot’s chassis and end effector. Next, I implemented a PID feedback controller based off of the robot’s current position and odometry to ensure that the robot can self correct if error is introduced. Lastly, the actual positions of the robot are stored in a CSV file and used to simulate the robot in Coppeliasim.

Results

The simulation completed the task in three different scenarios: with poor PID gains, tuned PID gains, and a different start and end configuration for the cube. Overall, each simulation is able to reduce to zero error before the robot gets the the cube’s standoff position.