ADVANCED AND ROBOT PROGRAMMING

ADVANCED AND ROBOT PROGRAMMING

_
iten
Code
86736
ACADEMIC YEAR
2020/2021
CREDITS
5 credits during the 1st year of 10635 ROBOTICS ENGINEERING (LM-32) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR
ING-INF/05
LANGUAGE
English
TEACHING LOCATION
GENOVA (ROBOTICS ENGINEERING )
semester
1° Semester
Teaching materials

OVERVIEW

Programming in Robotics includes several topics: 1) writing and debugging a soft/hard real time programme, 2) the operating system structure, and its relevant features, 3) concurrent / distributed programming, 4) designing complex, distributed, modular software applications. ARP covers  mostly the mid topics of the list above. ARP, RTOS and SOFAR cooperate in addressing all topics.  However, no cross-prerequisites exist. 

AIMS AND CONTENT

LEARNING OUTCOMES

The goal of the course is to give the students the fundamentals of POSIX programming, concurrent programming, inter-process communication (i.e., interrupts, signals, pipes, publish/subscribe). The course leverages the ROS environment to build up advanced examples and use cases.

AIMS AND LEARNING OUTCOMES

  • Following the Bloom's taxonomy, the student will achieve the following results (levels 2 to 4):
  • Describe the behaviour of the different communication / synchronization primitives between tasks and processes (events, shared memory, messages) both in a single and in networked machines.
  • Apply state-of-practice concurrent / distribute programming schemes to solve reference problems in robotics.
  • Compare different communication / synchronization primitives in solving common robotic problems, and
  • Motivate the selection of the most suitable for a specific process.
  • Design and test concurrent / distributed programmes to solve standard, complex, relevant cases in robotics.
  •  

PREREQUISITES

  1. Programming in C Language (advanced concepts)
  2. Basic structure of an Operating System's kernel
  3. Basic networking concepts

Teaching methods

SYLLABUS/CONTENT

The course is composed by 12 modules, one per week.

  1. Course intro
  2. Op sys architecture 1
  3. Op sys architecture 2
  4. SysCalls1: processes
  5. SysCalls2: threads
  6. SysCalls3: mutual exclusion, synchronization
  7. SysCalls4: pipes
  8. SysCalls5: non determinism
  9. SysCalls6: events
  10. SysCalls7: sockets
  11. Publish/Subscribe: D-BUS
  12. Real cases analysis

Each module includes an assignment whose solution is discussed in a successive module. The reference framework is the POSIX standard. 

RECOMMENDED READING/BIBLIOGRAPHY

The whole study material (reference textbooks, slides, examples) is available in the AulaWeb portal.

TEACHERS AND EXAM BOARD

Ricevimento: Students having troubles in learning the course concepts can get in touch with the teacher: during  classes, when organised in presence contacting the teacher through internet, any time, at the following addresses: renato.zaccaria@unige.it (email) renato.zaccaria (skype name) The teacher's office is located in Viale Causa 13, floor 0.

Exam Board

RENATO UGO RAFFAELE ZACCARIA (President)

ANTONIO SGORBISSA

FULVIO MASTROGIOVANNI (President Substitute)

LESSONS

Teaching methods

LESSONS START

Classes will start in the 21st September week.

EXAMS

Exam description

The final exam is one othe component of the assessment. The exam mark will contribute approximatively with 50% of the assessment.

The exam consists in an on line test on the AulaWeb portal, with questions related to the learning outcomes. The test is done in presence in a classroom. Exceptionally the test may be peformed at distance, with motivated reasons.

Assessment methods

The course implements a continuous assessment process. All the assignments proposed to students every week contribute to it. A final, more complex, assignment will be also proposed. Assignments are evaluated if they are delivered in a regular basis, respecting specific deadlines. 

The final mark will take into account both the exam and the continuous evaluation of assessments, giving approximatively equal value to the two components.

All the assignment deadlines will be closed after the first semester's end.

Exam schedule

Date Time Location Type Notes
23/06/2021 09:00 GENOVA Scritto JEMARO students must attend this exam on: January 19th, 2021
26/07/2021 09:00 GENOVA Scritto JEMARO students must attend this exam on: January 19th, 2021
15/09/2021 09:00 GENOVA Scritto JEMARO students must attend this exam on: January 19th, 2021

FURTHER INFORMATION

A special assessment method will be defined for those students who decide to pass the exam in the second semester. The final mark of those students may have a penalization.