Mobile Manipulator Simulation
ProjectAs a capstone for my course on robotic manipulation, I created a package to direct a Kuka YouBot to pick up and move a block in CoppeliaSim.
Trajectory Generation
I divided the desired trajectory into 8 segments. First, I needed to have the starting and ending position of the cube in the world frame. I also defined a standoff position that was slightly above the cube which has the grippers at a 45 degree angle to the ground. Each trajectory segment was computed using the Modern Robotics code library.
-
Move from the start position to the standoff position above the cube start location
-
Move straight down in the z direction in preparation to grasp the cube
-
Grasp the cube
-
Move straight up, returning to the standoff position
-
Move to the standoff position corresponding to the cube's final location
-
Move straight down in the z direction in preparation to release the cube
-
Release the cube
-
Move straight up, returning to the final standoff position
Testing my desired trajectory of the end effector
Motion and Feedback Control
Once the desired trajectory was generated, I created another function to follow the trajectory using PI control. I compare the actual end effector position to the desired end effector position, and calculate a commanded end effector twist that is a function of the PI controller constants. This controls the wheels of the robot as well as the joints of the arm.
The best behavior (shown below) used a proportional gain of 2 and an integral gain of 0.5.