In this project, I was tasked with creating a script to move a KUKA YouBot to a cube, pick up the cube, and drop it off at a new destination. This involved three different tasks, computing the kinematics, creating a reference trajectory for the end-effector, and designing a feedforward control with a feedback control law.
To begin the project, I first created a reference trajectory for the end-effector. This required computing several cartesian and screw trajectories for the end-effector as it moves to specific locations. These locations were defined by a transformation matrix, one that describes a rotation and (x,y,z) position. With this information, I was able to tell the end-effector to move to a specified location and also close its grippers.
The next task was to get the robot to move to a specified location, updating the joint and wheel angles, as well as the odometry of the chassis. I accomplished this by creating a function called NextState(), that updates the configuration of the robot based off the wheel speeds, a change in time (dt), and the max speed of the wheels.
Finally, I wrote a function FeedbackControl() that would calculate the kinematic task-space feedforward as well as the feedback control law. This involved taking the location of the end-effector and tuning gains.
In conclusion, I was able to simulate the movement and control of a KUKA YouBot in CoppeliaSim. This project was a wonderful way to understand the full process of controlling a robot to perform a specific task.
For more details on the entire project please checkout our github repository!