Implementing an Intrinsic Nonlinear PID Controller
For the final year undergrad group project at the Mechanical Engineering Department at the University of Peradeniya, I was involved in an implementation of an intrinsic nonlinear PID controller for a quadrotor UAV.
The implemented controller is developed directly on the configuration space and does not suffer from issues related to local attitude coordinate systems such as Euler angles or quaternions. Also, this controller estimates the gyro bias which is common in low-cost off the shelf IMUs. An Arduino based Multi-Wii flight controller was used as the flight controller and the implementation was tested and verified with real-time flight tests.
Further, as a part of this project, an OS independent GUI was developed for real-time data visualization. This utilized the OpenGL to draw 3D objects, the Boost library to communicate with the serial port, and the wxWidget library to realize the GUI.
Features
- Multi-Wii as the onboard computer
- In-house developed controller for UAV control [paper]
- Platform independent GUI with real-time data monitoring
Below video shows the quadrotor during a flight test at the University of Peradeniya, using the implemented nonlinear UAV controller.