Skip to content

This project focuses on designing a sliding mode controller for altitude and attitude control of the Crazyflie 2.0 quadrotor. The goal is to enable the quadrotor to track desired trajectories and visit a set of desired waypoints. The project is built on Ubuntu 20.04 and ROS Noetic.

License

Notifications You must be signed in to change notification settings

upasana099/Robust-Trajectory-Tracking-for-Quadrotor-UAVs-using-Sliding-Mode-Control

Repository files navigation

Robust Trajectory Tracking for Quadrotor UAVs using Sliding Mode Control

The goal of this project is to develop a robust control scheme that enables a quad-rotor to track desired trajectories despite the presence of external disturbances. To achieve this, we will use the Crazyflie 2.0 Micro Aerial Vehicle as a testing platform in a simulated environment using the Gazebo simulator and ROS middleware

Waypoint Tracking

In this part, the quadrotor needs to visit a sequence of waypoints in a specific order while maintaining zero velocity and acceleration at each waypoint. The waypoints are as follows:

  • p0 = (0, 0, 0) to p1 = (0, 0, 1) in 5 seconds
  • p1 = (0, 0, 1) to p2 = (1, 0, 1) in 15 seconds
  • p2 = (1, 0, 1) to p3 = (1, 1, 1) in 15 seconds
  • p3 = (1, 1, 1) to p4 = (0, 1, 1) in 15 seconds
  • p4 = (0, 1, 1) to p5 = (0, 0, 1) in 15 seconds

01

Sliding Mode Control Laws

Designed boundary layer-based sliding mode control laws to enable the quadrotor to track desired trajectories for z, ϕ, θ, and ψ coordinates in altitude and attitude control. Considered zero angular velocities/accelerations and the desired yaw angle ψ during the motion.

ROS Node Implementation

Implemented a ROS node in Python to evaluate the performance of the sliding mode control design on the Crazyflie 2.0 quadrotor in Gazebo. The script incorporated the trajectories generated in Part 1 and integrated the sliding mode control laws formulated in Part 2.

Trajectory Logging

Saved the actual trajectory as a log.pkl file in the scripts directory when the program was shut down. Used the visualize.py script to visualize the trajectory by loading the saved log file

Results

02

Actual Position Trajectory in 3D

simulation_video.mp4

Crazyflie 2.0 Simulation Video

About

This project focuses on designing a sliding mode controller for altitude and attitude control of the Crazyflie 2.0 quadrotor. The goal is to enable the quadrotor to track desired trajectories and visit a set of desired waypoints. The project is built on Ubuntu 20.04 and ROS Noetic.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published