Menu

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

Internship(s)