This is our final project for RBE502(CD-term 2023, Robot Control @ WPI). In this class, we covered modern control theory and worked on ROS/Gazebo based 2-link manipulator robot for each of the major controller design methods. For more details, see Prof. Farzan's paper on how this class worked. Team size: 2.
In the final project, we designed and tuned a sliding mode controller on Crazyflie 2.0 platform to follow a predetermined trajectory as can be seen on the right. We used the ROS/Gazebo stack to simulate the robot platform and dynamics. By subscribing and publishing to respective topics, we were able to control the robot. First, we created a quintic polynomial trajectory and mapped out the curves to follow for position, velocity, and acceleration in XYZ-axes.

Then we used the dynamic model of the quadcopter to derive our controller. Our controller takes a pose input and outputs the motor speeds (RPM) for each motor. Finally, we apply these calculated motor speeds by publishing to relevant topics. On the right, you can see the performance of our controller.

On the right, you can see our demo of trajectory execution. Due to the course copyright, I am not allowed to share our report nor our code, but I am happy to go over them in private.