General
News
25.11.2014 —
Assignment 4 is now available.
06.11.2014 —
Assignment 3 is now available.
17.10.2014 —
Assignment 2 is now available.
18.09.2014 —
Assignment 1 is now available.
09.05.2014 —
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. Experience in object-oriented programming is recommended. Students with limited experience in object-oriented programming are recommended to take this online Introduction to Object-Oriented Programming course.
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 divided into four assignments, where each assignment has an individual portion (50%), to be completed alone, and a group portion (50%), to be completed in a group of 2 to 3 people. Every assignment counts for 25% of the final grade and will be evaluated in the following components:
- In-class demonstration (50%)
- Precise evaluation creterion will be defined at the beginning of each assignment.
- 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 and Laboratories
Information on this website is subject to change.
Schedule
Day | Time | Location |
---|---|---|
Monday | 16:15-18:00 | WEH D4 (Weinbergstrasse 35) |
Thursday | 15:15-17:00 | WEH D4 (Weinbergstrasse 35) |
Lectures and Laboratories
Date | Type | Title | Slides | Readings |
---|---|---|---|---|
Thursday 18.09.2014 | Lecture 1 | Introduction to software engineering and robotics (BM) | ||
Monday 22.09.2014 | Lecture 2 | ROS and Roboscoop (JS) | ||
Thursday 25.09.2014 | Lecture 3 | Robot Control (JS) Software Engineering Tools 1 (AR) |
pdf |
|
Optional (17:15 - 18:00) |
Eiffel and Object Oriented Programming: Q & A (AR) | |||
Monday 29.09.2014 | Lecture 4 | SCOOP (BM) | ||
Thursday 02.10.2014 | Lecture 5 | Obstacle Avoidance (JS) Software Engineering Tools 2 (AR) |
TangentBug | |
Optional (17:15 - 18:00) |
Robot control: Q&A | |||
Monday 06.10.2014 | Lecture 6 | Design Patterns (BM) | ||
Optional (18:15 - 19:00) |
Robot control: Q&A | |||
Thursday 09.10.2014 | Demonstration | Assignment 1 Individual | ||
Monday 13.10.2014 | Exercise | |||
Thursday 16.10.2014 | Demonstration | Assignment 1 Group | ||
Monday 20.10.2014 | Lecture 7 | Path Planning (JS) | ||
Thursday 23.10.2014 | Exercise | pptx | ||
Monday 27.10.2014 | Demonstration | Assignment 2 Individual | ||
Thursday 30.10.2014 | Exercise | |||
Monday 03.11.2014 | Demonstration | Assignment 2 Group | ||
Thursday 06.11.2014 | Lecture 8 | Object recognition (JS) | ||
Monday 10.11.2014 | Lecture 9 | Software architecture for robotics (BM) |
pdf
|
|
Thursday 13.11.2014 | Exercise | |||
Monday 17.11.2014 | Demonstration | Assginment 3 Individual | ||
Thursday 20.11.2014 | Exercise | |||
Monday 24.11.2014 | Demonstration | Assignment 3 Group | ||
Thursday 27.11.2014 | Lecture 10 | Localization & Mapping (JS) | ||
Monday 01.12.2014 | Exercise | |||
Thursday 04.12.2014 | Exercise | |||
Monday 08.12.2014 | Demonstration | Assignment 4 Individual | ||
Thursday 11.12.2014 | Exercise | |||
Monday 15.12.2014 | Exercise | |||
Friday 19.12.2014 09:15-12:00 |
Demonstration | Assignment 4 Group |
Assignments
Assignments
Title | Individual due | Group due | Grading |
---|---|---|---|
Assignment 1: Control | Thursday 09.10.2014 at 15:15 (demonstration) at 23:00 (software) |
Thursday 16.10.2014 at 15:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assignment 2: Path Planning | Monday, 27.10.2014 at 16:15 (demonstration) at 23:00 (software) |
Monday, 03.10.2014 at 16:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assignment 3: Object Recognition | Monday, 17.11.2014 at 16:15 (demonstration) at 23:00 (software) |
Monday, 24.11.2014 at 16:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assignment 4: Search and Rescue | Monday, 08.12.2014 at 16:15 (demonstration) at 23:00 (software) |
Friday, 19.12.2014 at 09:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assistants
- Andrey Rusakov
- Vuk Vujović