UAS Programming
Niveau
Beginner
Learning outcomes of the courses/module
Upon completing this course, students will be able to:
- Understand Drone Programming Frameworks and Environments: Describe and explain major programming frameworks and development environments used in drone programming, such as DroneKit, ROS (Robot Operating System), and the DJI SDK.
- Develop Flight Control Algorithms: Develop and implement algorithms for primary flight control operations (takeoff, landing, waypoint navigation) using a programming language suited for drone development.
- Integrate and Manage Sensor Data: Write programs that can integrate and process data from various drone sensors, such as GPS, IMUs (Inertial Measurement Units), and cameras, to make informed flight decisions.
- Utilize APIs for Drone Control: Leverage application programming interfaces (APIs) provided by drone manufacturers or open-source communities to control drone features and access sensor data.
- Apply Best Practices in Software Development: Employ best practices in software development, including version control, testing, and debugging, to ensure reliable and maintainable drone software.
Prerequisites for the course
Introduction to Programming
Course content
- Programming Languages and Environments: Introduction to commonly used languages in drone programming (e.g., Python, C++, ROS) and suitable environments for drone software.
- Understanding the Drone Software Stack: Layers of drone software operating, from the operating system and firmware to application software and user interfaces.
- Firmware Programming: Basics of programming the drone's firmware, focusing on real-time operating systems (RTOS), and the interaction with drone hardware.
- APIs and SDKs for Drone Development: Exploring Application Programming Interfaces (APIs) and Software Development Kits (SDKs) provided by drone manufacturers for developing custom applications.
- Autonomous Flight Programming: Techniques for programming drones to fly autonomously, including waypoint navigation, object avoidance, and decision-making algorithms.
- Sensor Integration and Data Processing: Programming drones to interpret data from onboard sensors (e.g., GPS, IMU, cameras) for navigation, stabilization, and task execution.
- Best Practices and Debugging: Effective programming practices for drone development, including version control, testing strategies, and debugging techniques.
Recommended specialist literature
- Audronis, T. (2017). Designing Purpose-Built Drones for Ardupilot Pixhawk 2.1. Packt Publishing. ISBN: 978-1786469168.
- Mendoza-Mendoza, J. A., Gonzalez-Villela, V. J., Sepulveda-Cervantes, G., Mendez-Martinez, M., & Sossa-Azuela, H. (2020). Advanced Robotic Vehicles Programming: An Ardupilot and Pixhawk Approach. Apress. ISBN: 978-1484255308. https://doi.org/10.1007/97.
- Quan, Q., Dai, X., & Wang, S. (2020). Multicopter Design and Control Practice. Springer Singapore. ISBN: 978-9811531378. https://doi.org/10.1007/978-981-15-3138-5
Assessment methods and criteria
Portfolio tests
Language
English
Number of ECTS credits awarded
5
Share of e-learning in %
15
Semester hours per week
2.5
Planned teaching and learning method
Group work, discussion, exercises, presentation,
Semester/trimester in which the course/module is offered
2
Name of lecturer
Academic year
Key figure of the course/module
2_1
Type of course/module
integrated lecture
Type of course
Compulsory