Course Unit Page
-
Teacher Andrea Acquaviva
-
Credits 6
-
SSD ING-INF/05
-
Teaching Mode Traditional lectures
-
Language English
-
Campus of Bologna
-
Degree Programme Second cycle degree programme (LM) in Electronic Engineering (cod. 0934)
-
Course Timetable from Sep 20, 2022 to Dec 23, 2022
Academic Year 2022/2023
Learning outcomes
The course provides the student with a basic knowledge of software architectures as well as the development, programming and design environments for cyber-physical systems, with particular emphasis on the coexistence of control tasks, data stream processing, and IoT communication with real-time and cybersecurity requirements. The student will learn to use compilers, libraries, runtimes and middleware for heterogeneous platforms and architectures, equipped with multicore processors, co-processors and HW and SW accelerators for the processing of data streams from sensors and towards actuators.
Course contents
- Development and cross-compilation environments for cyber-physical systems (CPS) with on-chip accelerators and sensors / actuators
- Cross-compilation flow and use of intermediate representations (e.g. LLVM-IR)
- RTOS, middleware oriented to cyberphysical systems (e.g. Nuttx, Zephyr, SEL4, ROS, microROS)
- Communication between cyber-physical systems and swarms: wireless mesh networks, WiFi, BT, BLE
- Elements of cybersecurity applied to CPS: libraries for secure communication, TPM modules, Trusted Execution Environments (TEE), compiler support for security
- Over-the-air (FOTA) firmware update techniques
- Development of reinforcement learning applications for autonomous CPS
- Simulation of cyber-physical systems for prototyping and training of AI algorithms
- Laboratories: i) deployment and use of CPS software stack on prototyping board, execution of real-time tasks, management and communication of data from sensors; ii) deployment and use of CPS stack software on drone, flight computer and mission computer programming for AI tasks; iii) development of drone applications and simulation of CPS and swarm communication
Readings/Bibliography
Teaching materials:
- slides provided by the teacher
- scientific articles provided by the teacher
- pointers to specific manuals and websites
Teaching methods
The course consists of theoretical lessons and guided lab sessions. In the theoretical lessons the main concepts will be exposed which will then be applied in a practical way on prototype boards and drones in the labs, that will be used as representative of CPSs.
The labs will be led by the teacher and the students will be provided with hardware on which to gain programming experience. Labs will be organized in at least 3 groups of 3 lab sessions each:
- Group I: Programming a CPS system on a prototype board, installing the software stack (bootloader, OS, middleware, communication libraries), learning to schedule tasks on real-time OS, reading data from sensors and communicating data to a remote system
- Group II: Programming a small real drone, making changes and updates to parts of the system software, programming a system equipped with a flight processor and co-processor for the execution of complex mission tasks (e.g. obstacle recognition)
- Group III: Development of advanced applications based on reinforcement learning, development of secure code with compiler support, use of simulation systems for the single CPS and for swarms
NOTE:
In consideration of the type of activity and teaching methods adopted, the attendance of this training activity requires the prior participation of all students in the training modules 1 and 2 on safety in the study places, [https://elearning-sicurezza.unibo.it/] in e-learning mode.
Assessment methods
The exam will consist of a 1 hour writing with closed-ended questions and the discussion of a project developed by the students starting from the tools learned during the lab sessions.
Students will carry out the project individually or in groups depending on the number and the projects available.
The teacher will propose some projects but the students will be able to propose customizations of the same. Students will be able to submit changes to the project proposals that will be evaluated by the teacher for approval.
The project must be presented through some slides and a short demonstration.
Teaching tools
Theoretical part:
- lecture notes
- websites and code repositories
- scientific articles
Laboratory part:
- development boards based on ARM and RISC-V microcontrollers
- bitcraze crazyflie drones
The hardware supports may be subject to changes / updates depending on the number of students and the components available
Office hours
See the website of Andrea Acquaviva