General
News
30.11.2015 —
Assignment 4 is now available.
10.11.2015 —
Assignment 3 is now available.
20.10.2015 —
Assignment 2 is now available.
15.08.2015 —
Assignment 1 is now available.
03.08.2015 —
The enrollment limit has been reached, but we expect some places to open after the semester starts. If you are interested in taking the course, please add yourself to the waiting list.
23.06.2015 —
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 one another, 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 17.09.2015 | Lecture 1 | Introduction to software engineering and robotics (BM) | ||
Monday 21.09.2015 | Lecture 2 | ROS and Roboscoop (JS) |
ROS Tutorials Roboscoop |
|
Thursday 24.09.2015 | Lecture 3 | Robot Control (JS) Software Engineering Tools (AR) |
pdf
|
|
Optional (17:15 - 18:00) |
Introduction to Eiffel and Object Oriented Programming (AR) |
Eiffel Tutorial Eiffel Documentation |
||
Monday 28.09.2015 | Lecture 4 | SCOOP (BM) | SCOOP Overview | |
Thursday 01.10.2015 | Lecture 5 Exercise |
Obstacle Avoidance (JS) Assignment 1 help (GR) |
Bug Algorithms TangentBug |
|
Monday 05.10.2015 | Lecture 6 | Design Patterns (BM) | Design Patterns | |
Optional (18:15 - 19:00) |
Assignment 1 Help (AR/GR) | |||
Thursday 08.10.2015 | Demonstration | Assignment 1 Individual Due | Angle Control | |
Monday 12.10.2015 | Exercise | Assignment 1 Help (AR/GR) | ||
Thursday 15.10.2015 | Exercise | Assignment 1 Help (AR/GR) | ||
Monday 19.10.2015 | Demonstration | Assignment 1 Group Due | Obstacle Avoidance | |
Thursday 22.10.2015 | Lecture 7 | Path Planning (JS) |
A* Search Path Planning |
|
Monday 26.10.2015 | Lecture 8 | Object Recognition (JS) | Spin Image (Chp.2) | |
Thursday 29.10.2015 | Exercise | Assignment 2 Help (AR/GR) | ||
Monday 02.11.2015 | Exercise | Assignment 2 Help (GR) | ||
Tuesday 03.11.2015 | Demonstration | Assignment 2 Individual Due | Path Planning: Simulation | |
Thursday 05.11.2015 | Exercise | Assignment 2 Help (AR/GR) | ||
Monday 09.11.2015 | Demonstration | Assginment 2 Group Due | Path Planning: Real Setup | |
Thursday 12.11.2015 | Lecture 9 | Localization (JS) | Localization | |
Monday 16.11.2015 | Feedback Session (AR) | |||
Thursday 19.11.2015 | Exercise | Assignment 3 Help (AR/GR) | ||
Monday 23.11.2015 | Lecture 10 | Software Architecture in Robotics (BM) | ||
Tuesday 24.11.2015 | Demonstration | Assignment 3 Individual Due | Object Recognition: Objects Only | |
Thursday 26.11.2015 | Exercise | Assignment 3 Help (AR/GR) | ||
Monday 30.11.2015 | Demonstration | Assignment 3 Group Due | Object Recognition: Real Setup | |
Thursday 03.12.2015 | Exercise | Assignment 4 Help (AR/GR) | ||
Monday 07.12.2015 | Demonstration | Assignment 4 Individual Due | Localization: Simulation | |
Thursday 10.12.2015 | Exercise | Assignment 4 Help (AR/GR) | ||
Monday 14.12.2015 | Exercise | Assignment 4 Help (AR/GR) | ||
Thursday 17.12.2015 | Demonstration | Assignment 4 Group Due | Search and Rescue: Real Setup |
Assignments
Assignments
Title | Individual due | Group due | Grading |
---|---|---|---|
Assignment 1: Control | Thursday 08.10.2015 at 15:15 (demonstration) at 23:00 (software) |
Monday 19.10.2015 at 16:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assignment 2: Path Planning | Tuesday, 02.11.2015 at 16:15 (demonstration) at 23:00 (software) |
Monday, 09.11.2015 at 16:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assignment 3: Object Recognition | Tuesday, 24.11.2015 at 16:15 (demonstration) at 23:00 (software) |
Monday, 30.11.2015 at 16:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assignment 4: Search and Rescue | Monday, 07.12.2014 at 16:15 (demonstration) at 23:00 (software) |
Thursday, 17.12.2014 at 15:15 (demonstration) at 23:00 (software) |
25% of final grade |
Assistants
- Andrey Rusakov
- Ganesh Ramanathan