ASN5

Drone Path Following!


Deadline


Apr 18, 2022 at 11:59:59 PM (Group Submissions).



What you need to do?


Often times you want to follow known trajectories/path on robots to accomplish various tasks such as obstacle avoidance, pursuit or cinematography. In a general aerial robot, you obtain a path from a path planner such as Dijkstra’s algorithm or A* or RRT and so on. These paths have to then be converted into feasible motion trajectories which take into account the dynamics of the system. Finally, once the feasible motion trajectory is obtained, one has to implement a controller to follow the trajectory on the DJI Tello. In this assignment, we'll start off with the basics, given a trajectory, how do we break them down into a set of small line-segments or straight line paths the drone can follow with the DJITelloPy package. More details are given in the following steps.

Step 0: Complete the safety training and DJI Usage training


Talk to Dr. Nitin or your PRM regarding this. You need to read and sign the safety training manual from here and submit the PDF on ELMS here.You MUST do this before you start working on the drones.

Step 1: Download and Configure DJITelloPy API


Every robot has a computer (AKA the "brains") that processes the information around using various sensors and makes decissions about what the robot will do next. We'll be using the DJI Tello Edu (See Fig. 1) drone due to it's ease of use and safety. The DJI Tello has a tiny computer on-board the drone which it uses to maintain it's 3D pose (location and orientation) in space. However one needs to use their laptop/PC to give it higher level commands such as "go up", "go left", "turn right" and so on. To enable this, we need to install a software package called DJITelloPy from here (Follow the instructions given on the package link).


Fig. 1: DJI Tello Edu we'll be using in the flight experiments, Left: In action, Right: Zoomed-in view.

Step 2: Follow Trajectories


As I mentioed before, we want to break down a trajectory/path into a set of straight lines (since our API directly supports straight line trajectories). In the following sub-steps you'll come-up with the algorithm or mathematical model for achieving a trajectory and implement them on the DJI Tello drone.

Step 2a: 2D Straight Line

Go forward 1m maintaining your current height (See figure below).


Fig. 2: 2D Straight Line trajectory.

Step 2b: 2D Square 1

Make a square of side length 1m maintaining your current height while maintaining forward orientation (See figure below).


Fig. 2: 2D Square 1 trajectory (left to right shows passage of time).

Step 2c: 2D Square 2

Make a square of side length 1m maintaining your current height while changing orientaton as shown (See figure below).


Fig. 3: 2D Square 2 trajectory (left to right shows passage of time).

Using third-party code


You are allowed to use any code available on the internet with an appropriate citation. However, you are not allowed to submit any other classmate's work as your own. Remember collabotation amongst classmates is encouraged but plagiarism is strictly prohibited.

What you need to submit?


A .zip file that contains the files as mentioned below:

IMPORTANT NOTE: The submissions are made through ELMS with the name ASN5_TeamNumber.zip. Here, TeamNumber is your team number on ELMS. For e.g., if your team number is 4, then the file name should be ASN5_4.zip. Keep your submissions professional, grammatically correct without spelling mistakes. Do not use slangs and chat shorthands on your submissions. You'll get 25% grade penalty for not following the submission guidelines.