General
This laboratory has reached its maximum enrollment capacity.
News
02.12.2013 —
Assignment 4 is now available.
18.11.2013 —
Assignment 3 is now available.
29.10.2013 —
Assignment 2 is now available.
07.10.2013 —
Assignment 1 is now available.
20.09.2013 —
Assignment 0 is now available.
06.09.2013 —
Project grading scheme is now available.
25.06.2013 —
Preliminary lecture and assignment schedules are now available.
18.03.2013 —
The initial version of this page is up.
Course description
263-2600-00L Robotics Programming Laboratory
Abstract: The "Robotics Programming Laboratory" is a hands-on laboratory class in which participants program a robot that will play in a competition. Students will learn software engineering skills and robotics concepts and apply them in practice.
Objective: After completing this laboratory course, students will have knowledge of basic software engineering principles and methods, most common architectures, coordination and synchronization methods, understand how software engineering applies to robotics, and gain experience in programming a small robotics system with aspects of sensing, planning and control.
Prerequisites: This course is open to INFK, MAVT and ITET students. Students enrolled in this class should have some programming experience. The number of participants is limited to 16.
- Software engineering tools
- Design patterns
- Software architecture
- ROS and Roboscoop
- Perception
- Mapping and localization
- Path planning and obstacle avoidance
Recommended literature:
- Software engineering
- Bertrand Meyer: Object-Oriented Software Construction, Second Edition, Prentice Hall 1997, ISBN 0-13-629155-4
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley 1995, ISBN 0201634988
- Douglas C. Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects, John Wiley & Sons 2000, ISBN 0471606956
- Robotics
- Sebastian Thrun, Wolfram Burgard, and Dieter Fox: Probabilistic Robotics, MIT Press 2005, ISBN 9780262201629
- Roland Siegwart, Illah R. Nourbaksh, and Davide Scaramuzza: Introduction to Autonomous Mobile Robots, Second Edition, MIT Press 2011, ISBN 9780262015356
- Programming language
- Bertrand Meyer: Touch of Class: Learning to Program Well with Objects and Contracts, Second Edition, Springer 2013, ISBN 3540921443
- Bjarne Stroustrup: The C++ Programming Language, Fourth Edition, Addison-Wesley Professional 2013, ISBN 0321563840
- Introduction to Object-Oriented Programming
Grading: No Testat is delivered for this laboratory course. The assessment consists entirely of a project, which has several phases, including a final competition. The only way to get a grade is to submit the project for intermediate evaluations and to participate in the final competition. No grade will be given to late assignments. The grading rule applies regardless of the student's department or status. The performance assessment is only offered at the end, after the course unit. Repetition is only possible after re-enrolling.
Project grading scheme: The project will be evaluated four times during the semester. Each project will be evaluated in the following components:
- In-class demonstration (50%)
- Precise evaluation creterion will be defined at the beginning of each phase.
- Software quality (50%)
- Choice of abstraction and relations
- Correctness of implementation
- Extendibility and reusability
- Comments and documentation, including "README"
Helping and getting helped:
- Students are encouraged to communicate with each other, but they are not allowed to share their code before handing in the assignment.
- We have a forum for posting and answering questions related to this laboratory.
Lectures
Schedule
Day | Time | Location |
---|---|---|
Monday | 16:15-18:00 | RZ F 21 |
Lecture
The first lecture is held on Thursday 16.09.2013, 13:15-15:00 (regular exercise hour) in IFW C 31.
Date | Lecture | Title | Slides | Readings |
---|---|---|---|---|
Thursday 16.09.2013 | 1 | Introduction to software engineering and robotics (BM) | ||
Monday 23.09.2013 | 2 | ROS and Roboscoop (JS) |
ROS Tutorials Eiffel Essentials |
|
Monday 30.09.2013 | 3 | SCOOP (BM) | Concurrent Eiffel with SCOOP | |
Monday 07.10.2013 | 4 | Robot control and obstacle avoidance (JS) | TangentBug: A Range-Sensor-Based Navigation Alogrithm | |
Monday 14.10.2013 | 5 | Design patterns (BM) | Design Patterns by Gamma et al. | |
Thursday 24.10.2013 (in IFW C 31) |
6 | Localization (JS) |
Chapter 7 and 8. Probabilistic Robotics. Chapter 5. Intro to Autonomous Mobile Robots. |
|
Monday 28.10.2013 | 7 | Mapping (JS) |
Chapter 6 and 9. Probabilistic Robotics. Chapter 4.1 and 4.7. Intro to Autonomous Mobile Robots. |
|
Monday 04.11.2013 | 8 | Modern software engineering tools (AR) | ||
Monday 11.11.2013 | 9 | Path planning (JS) | Chapter 6. Intro to Autonomous Mobile Robots. | |
Monday 18.11.2013 | 10 | Object recognition (JS) | Chapters 14, 21, 22. Computer Vision: A Modern Approach by Forsyth and Ponce |
|
Monday 25.11.2013 | 11 | Software architecture in robotics (BM) | ||
Monday 02.12.2013 | 12 | Assignment 3 demonstration | ||
Monday 09.12.2013 | 13 | Q & A session (no lecture) | ||
Monday 16.12.2013 | Final competition |
Laboratories
Schedule
Day | Time | Location |
---|---|---|
Thursday | 13:15-15:00 | IFW C 31 |
Exercise
Date | Title | Material |
---|---|---|
Thursday 26.09.2013 | Introduction to EiffelStudio and installation help |
Lecture on Eiffel Lecture on Design by Contract (Part 1) Lecture on Design by Contract (Part 2) Lecture on EiffelStudio |
Thursday 03.10.2013 | ROS, Roboscoop, and SCOOP | Lecture on SCOOP |
Thursday 10.10.2013 | Control | |
Thursday 17.10.2013 | Obstacle avoidance | |
Monday 21.10.2013 (in RZ F 21) |
Control, obstacle avoidance, SCOOP | |
Thursday 24.10.2013 | Assignment 1 due | |
Thursday 31.10.2013 | Assignment 1 solution and ROS | |
Thursday 07.11.2013 | CMake, ROS, particle filter | |
Thursday 14.11.2013 | particle filter | |
Monday 18.11.2013 (in RZ F 21) |
Assignment 2 due | |
Thursday 21.11.2013 | ||
Thursday 28.11.2013 | ||
Monday 02.12.2013 (in RZ F 21) |
Assignment 3 due | |
Thursday 05.12.2013 | ||
Thursday 12.12.2013 |
Assignments
Laboratory Space Schedule
Students can use IFW E 42 on the following days.
Date | Time | |
---|---|---|
Monday | 09.12 | 12:00-18:00 |
Monday | 16.12 | 09:00-18:00 |
Wednesday | 02.10, 09.10, 16.10, 23.10, 30.10, 06.11, 13.11, 27.11, 04.12, 11.12 | 14:00-20:00 |
Thursday | 03.10, 17.10, 24.10, 31.10, 14.11, 05.12, 12.12 | 09:00-12:00 |
In addition, on Friday, 13.12.2013, IFW C 42 will be available from 07:00 to 20:00. The setup will be outside of RZ H 18.
Assignments
Title | Due date | Grading | Type |
---|---|---|---|
Assignment 0: Setup | Thursday 03.10.2013 | Not graded | Individual |
Assignment 1: Control | Thursday 24.10.2013 at 13:00 | 20% of final grade | Individual |
Assignment 2: Localization | Monday 18.11.2013 at 16:00 | 20% of final grade | Individual |
Assignment 3: Path planning | Monday 02.12.2013 at 16:00 | 30% of final grade | Group |
Final competition: Search and rescue | Monday 16.12.2013 at 16:00 | 30% of final grade | Group |