Features
Planning a missionThe motion planner uses a model of the Crazyflie's dynamics to compute optimal trajectories. The target trajectories are specified by placing points specifying the full state of the drone and the best path is then found as an optimization problem. Three different optimizers exist, providing varying trade-offs between computational speed and path quality.In the displayed image the orange path is a target trajectory and the blue is a computed, feasible and optimal trajectory. |
|
Graphical User Interface (GUI)The Graphical User Interface is build on topof Rviz together with a custom panel to give an user-friendly experience to users managing the system, as well as a real time visualization. There are many features that can be accesable from the GUI such as:
|
|
Visualization in GUIIt's possible to visualize three differenttrajectorys from the GUI:
|
|
Acrobatic PIDThe external acrobatic PID allows for agressive but controlled manouvers.The controller supports two modes, Position- and Orientation mode. In Position mode a point in the x,y plane is controlled while keeping the z-axis uncontrolled. This allows for what we call stabilized launch setting up relevant speeds in before a acrobatic trick such as a flip. Oreintation mode is for stabilizing the drone from big angle errors. This is done while catching the drone after a flip and when doing throwing start. |
|
SimulationThe project features a custom built simulation for the crazyflie in Webots. The Webots simulation is integrated into ROS2. The ROS interface makes it easy to test out flight paths in the simulation before testing it on the real hardware. The dynamic model of the crazyflie in the simulation consists of the mass, center of mass, and the inertia matrix of the drone. Furthermore engine parameters are center of thrust, thrust constants, torque constants, max velocity, and max torque of each motor. These parameters have been tuned to ensure a good approximation of the characteristics of the crazyflie in the simulaiton. The controller running in the simulation is translation of the attitude rate PID controller from the crazyflie firmware in python. |
|