This repository has the code base for the projects accomplished as part of the course CMSC828T:Planning, Perception and control for Aerial Robots at the University of Maryland. MATLAB is the language used for all the implementations.
The folder P1Ph2 in P1 involves code to generate a diamond and helical trajectory and tuned controllers to achieve it.
Diamond Trajectory | Helical Trajectory |
---|---|
The code for simulating a drone to go from one point to other in a known environment while avoiding obstacles is located in folder P1Ph3 of folder P1. The folder essentially has the implementation for Dijkstra algorithm in 3D, a path refinement algorithm to filter points from the output of Dijkstra to fit smooth polynomials and a generic algorithm to fit fifth order and seventh order polynomials through the refined waypoints.
An implementation of SLAM using April tags for good features and standard trajectories like straight line and square followed on top of these April tags. The code is located in the folder P2. Bundle Adjustment and smoothing is performed using a factor graph. The factor graph is created using the GTSAM toolbox. This toolbox is essentially a dependency for the code to work correctly. The toolbox can be downloaded from here.
Folder ekf is an attempt to implement an Extended Kalman Filter to fuse the IMU and camera readings to obtain better state estimate of the drone. We use essentially using a 15x1 state vector. The parameters in the implemention needs further tuning.