Mobile Robot Control 2024: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
 
(12 intermediate revisions by 9 users not shown)
Line 91: Line 91:
|Wednesday June 12
|Wednesday June 12
|Guest lectures: "Safe navigation in a hospital environment" and "The Truck as a Mobile Robot"
|Guest lectures: "Safe navigation in a hospital environment" and "The Truck as a Mobile Robot"
|<!--[[:File:Towards_context_aware_navigation.pdf|Context-aware navigation slides]]-->
|[[:File:Towards_context_aware_navigation2024.pdf| Context-aware navigation slides]]
<!--[[:File:DAF_slides.pdf|DAF Lecture slides]]-->
[[:File:The truck as a mobile robot2024.pdf| Truck as a mobile robot Lecture slides]]
|-
|-
|Friday June 14
|Friday June 14
Line 118: Line 118:


=Restaurant Competition=
=Restaurant Competition=
'''Location Location Location'''
The final challenge will take place in the hall of gemini-south from 10:45-12:30
{{:Embedded_Motion_Control/Restaurant_Competition_2024}}
{{:Embedded_Motion_Control/Restaurant_Competition_2024}}


Line 126: Line 131:




=Group Wiki Pages=
=Group Wiki Pages =


During the course you will design your own robotic system under the guidance of a tutor. The tutors are there to guide the process, '''Not to give answers to the exercises.'''
During the course you will design your own robotic system under the guidance of a tutor. The tutors are there to guide the process, '''Not to give answers to the exercises.'''
Line 137: Line 142:
!GitLab page
!GitLab page
!Wiki page
!Wiki page
!Tutor
!Tutor  
!Tutor email
!Tutor email  
|-
|-
|Wall-E
|Wall-E
|[https://gitlab.tue.nl/mobile-robot-control/mrc-2024/wall-e visit GitLab]
| [https://gitlab.tue.nl/mobile-robot-control/mrc-2024/wall-e visit GitLab]
|[[Mobile Robot Control 2024 Wall-E |visit wiki]]
|[[Mobile Robot Control 2024 Wall-E |visit wiki]]  
|Ruben Beumer
|Ruben Beumer
|r.m.beumer@tue.nl
|r.m.beumer@tue.nl
|-
|-
|HAL-9000
|HAL-9000  
|[https://gitlab.tue.nl/mobile-robot-control/mrc-2024/HAL-9000 visit GitLab]
|[https://gitlab.tue.nl/mobile-robot-control/mrc-2024/HAL-9000 visit GitLab]
|[[Mobile Robot Control 2024 HAL-9000 |visit wiki]]
|[[Mobile Robot Control 2024 HAL-9000 |visit wiki]]
Line 156: Line 161:
|[[Mobile Robot Control 2024 R2-D2 |visit wiki]]
|[[Mobile Robot Control 2024 R2-D2 |visit wiki]]
|Robert de Bruijne
|Robert de Bruijne
|r.c.a.d.bruijne@tue.nl
| r.c.a.d.bruijne@tue.nl
|-
|-
|Rosey
|Rosey
Line 168: Line 173:
|[[Mobile Robot Control 2024 The Iron Giant |visit wiki]]
|[[Mobile Robot Control 2024 The Iron Giant |visit wiki]]
|Peter van Dooren
|Peter van Dooren
|k.d.vos@tue.nl
| k.d.vos@tue.nl  
|-
|-
|Ultron
|Ultron
|[https://gitlab.tue.nl/mobile-robot-control/mrc-2024/Ultron visit GitLab]
| [https://gitlab.tue.nl/mobile-robot-control/mrc-2024/Ultron visit GitLab]
|[[Mobile Robot Control 2024 Ultron |visit wiki]]
|[[Mobile Robot Control 2024 Ultron |visit wiki]]
|Aron Aertssen + Rudolf Huisman
|Aron Aertssen + Rudolf Huisman
Line 186: Line 191:
|[[Mobile Robot Control 2024 Robocop |visit wiki]]
|[[Mobile Robot Control 2024 Robocop |visit wiki]]
|Gijs van Rhijn
|Gijs van Rhijn
|g.h.m.v.rhijn@tue.nl
| g.h.m.v.rhijn@tue.nl
|}
|}
With your wiki page you will convey your approach and your lessons-learned to ‘the outside world’; the tutors and the next generation of MRC students. There are two ways to do this: 1) readable code with comments and 2) a detailed description of your system on the wiki.
With your wiki page you will convey your approach and your lessons-learned to ‘the outside world’; the tutors and the next generation of MRC students. There are two ways to do this: 1) readable code with comments and 2) a detailed description of your system on the wiki.
Line 200: Line 205:
*Can we see that you succesfully completed the exercises from your wiki page.
*Can we see that you succesfully completed the exercises from your wiki page.


'''Component selection Restaurant challenge'''
'''Problem statement'''
 
* Description of the properties of the environment
* Which challenging situation might the robot encounter?
 
'''System design'''
 
* Data flow
* State flow
 
'''Local planner'''
 
* Which local planner have you selected and why?
* How did you integrate the local planner with the other components of your system?
 
'''Global planner'''


*Is the choice of components motivated by the challenge?
* Which global planner have you selected and why?
*Are the components adapted to the requirements of final challenge?
* How did you integrate the local planner with the other components of your system?
*Does the wiki show an understanding of the algorithms in the component?


'''Experimental validation of the components'''  
'''Localization'''


*Are the components tested individually?
* Which localization have you selected and why?
*Are the experiments performed a suitable approximation of the conditions of the final challenge?
* How did you integrate the local planner with the other components of your system?
*Are the conclusions drawn supported by the results of the experiments?


'''System design for the final challenge'''
'''System validation'''


*Is the design presented complete?
* How did you validate your system design before the final challenge? Please upload a description of the experiment performed and a video.
*Is the design communicated clearly?
* Were you able to implement all the functionalities in your system design? If not, why?
*Are design choices motivated by the final challenge?


'''Experimental validation of system design'''
'''Final challenge evaluation'''


*Are the experiments performed a suitable approximation of the final challenge?
* How did your robot performed during the final challenge?
*Are the conclusions drawn supported by the results of the experiments?
* Did you notice differenced between the system validation tests that you    performed and the behavior of your robot in the final challenge?
* Can you analyse the cause of the observed differences?


'''Evaluation Restaurant challenge'''
'''Reflection on the use of generative AI for the project'''


*Is the behaviour during the final challenge explained?
* Have you used generative AI tooling in your project? If yes, reflect on how you used them and  for which tasks.
*Is this behaviour linked back to the designed system?
* Write a few sentences on what you think the role of generative AI has been for your learning trajectory.
*If applicable, is an adjustment to the design proposed?


=Peer review=
=Peer review=
Line 244: Line 261:
We would like to ask the group to come up with a grade for each member ranging from -1.0 to +1.0 where the sum of all grades is 0.0. Your final grade will be calculated as group_grade + peer_review_grade. The range of -1.0 to +1.0 should be sufficient for most groups where all members contribute equally. If you feel this might not be the case for your group please contact your tutor sooner rather than later.  
We would like to ask the group to come up with a grade for each member ranging from -1.0 to +1.0 where the sum of all grades is 0.0. Your final grade will be calculated as group_grade + peer_review_grade. The range of -1.0 to +1.0 should be sufficient for most groups where all members contribute equally. If you feel this might not be the case for your group please contact your tutor sooner rather than later.  


=Practical sessions=  
=Practical sessions=  


*Testing takes place on the RoboCup field in Impuls.
*Testing takes place on the RoboCup field in Impuls.
*Three robots will be available for testing, you will share the field with three groups
*Three robots will be available for testing, you will share the field with three groups
*Be sure you have your software on git before coming to the test session so that you only have to git clone/git pull to get your code on the robot!
*Be sure you have your software on git before coming to the test session so that you only have to git clone/git pull to get your code on the robot!
*Please charge the robot whenever possible so there is no down time due to empty batteries.
* Please charge the robot whenever possible so there is no down time due to empty batteries.


To submit for a timeslot you have to be logged in. Through the 'edit'-button for Practical sessions, you can select a timeslot by typing your group name behind the desired timeslot.
To submit for a timeslot you have to be logged in. Through the 'edit'-button for Practical sessions, you can select a timeslot by typing your group name behind the desired timeslot.
Line 256: Line 273:
*Submissions are last checked the day before at 22:00.
*Submissions are last checked the day before at 22:00.


===Week 2===
=== Week 2===
'''For week 2 each group can choose 2 time slots'''.
'''For week 2 each group can choose 2 time slots'''.


Line 269: Line 286:
|'''11:45-12:45'''||free||free||free
|'''11:45-12:45'''||free||free||free
|-
|-
|'''13:30-14:30'''||free||free||free
|'''13:30-14:30''' ||free||free||free  
|-
|-
|'''14:30-15:30'''||free||free||free
|'''14:30-15:30'''||free||free|| free
|}
|}


Line 282: Line 299:
|'''10:45-11:45'''||Optimus Prime||free||free
|'''10:45-11:45'''||Optimus Prime||free||free
|-
|-
|'''11:45-12:45'''||Rosey||Optimus Prime||free
|'''11:45-12:45''' ||Rosey||Optimus Prime||free
|-
|-
|'''13:30-14:30'''||The Iron Giant||Wall-E||Robocop
|'''13:30-14:30'''||The Iron Giant||Wall-E||Robocop
Line 292: Line 309:
<div style="clear:both">
<div style="clear:both">


===Week 3===
=== Week 3 ===
'''For week 3 there are no Thursday slots due to Ascension day. Every group can therefore only book 1 time slot on Tuesday.'''
'''For week 3 there are no Thursday slots due to Ascension day. Every group can therefore only book 1 time slot on Tuesday.'''


Line 303: Line 320:
|'''10:45-11:45'''||Rosey||Robocop||free
|'''10:45-11:45'''||Rosey||Robocop||free
|-
|-
|'''11:45-12:45'''||Optimus Prime||free||free
|'''11:45-12:45'''||Optimus Prime||free||free  
|-
|-
|'''13:30-14:30'''||Wall-E||The Iron Giant||R2-D2
|'''13:30-14:30'''||Wall-E||The Iron Giant ||R2-D2  
|-
|-
|'''14:30-15:30'''||Ultron||free||free
| '''14:30-15:30'''||Ultron||free||free
|}</div>
|}</div>
<br>
<br>
Line 313: Line 330:
<div style="clear:both">
<div style="clear:both">


===Week 4===
=== Week 4===
'''For week 4 each group can choose 2 time slots'''.
'''For week 4 each group can choose 2 time slots'''.


Line 326: Line 343:
|'''11:45-12:45'''||free||free||free
|'''11:45-12:45'''||free||free||free
|-
|-
|'''13:30-14:30'''||Ultron||R2-D2||free
|'''13:30-14:30''' ||Ultron||R2-D2|| free
|-
|-
|'''14:30-15:30'''||HAL-9000||free||free
|'''14:30-15:30''' ||HAL-9000||free|| free
|}
|}


Line 337: Line 354:
! colspan="3" scope="col" |'''Group'''
! colspan="3" scope="col" |'''Group'''
|-
|-
|'''10:45-11:45'''||Optimus Prime||free||''R2-D2''
|'''10:45-11:45'''|| Optimus Prime||free||''R2-D2''
|-
|-
|'''11:45-12:45'''||Ultron||Rosey||Optimus Prime
|'''11:45-12:45'''|| Ultron ||Rosey||Optimus Prime
|-
|-
|'''13:30-14:30'''|| free||The Iron Giant||Robocop
|'''13:30-14:30'''||free|| The Iron Giant||Robocop
|-
|-
|'''14:30-15:30'''|| free||The Iron Giant||Robocop
|'''14:30-15:30'''||free||The Iron Giant||Robocop


|}
|}
Line 349: Line 366:
<div style="clear:both">
<div style="clear:both">


===Week 5===
=== Week 5===
'''For week 5 each group can choose 2 time slots'''.
'''For week 5 each group can choose 2 time slots'''.


Line 363: Line 380:
|Robocop
|Robocop
|-
|-
|'''13:30-14:30'''||free||The Iron Giant||free
|'''13:30-14:30'''|| free||The Iron Giant||free  
|-
|-
|'''14:30-15:30'''||free||free||free
|'''14:30-15:30'''||free||free|| free
|}
|}


Line 374: Line 391:
! colspan="3" scope="col" |'''Group'''
! colspan="3" scope="col" |'''Group'''
|-
|-
|'''10:45-11:45'''||Ultron|| free||Rosey
|'''10:45-11:45'''||Ultron||free||Rosey
|-
|-
|'''11:45-12:45'''||free||Optimus Prime||Rosey
|'''11:45-12:45'''||free||Optimus Prime||Rosey
Line 380: Line 397:
|'''13:30-14:30'''||Wall-e||The Iron Giant||Robocop
|'''13:30-14:30'''||Wall-e||The Iron Giant||Robocop
|-
|-
|'''14:30-15:30'''||Wall-e||free||Ultron
|'''14:30-15:30'''||Wall-e ||free||Ultron


|}
|}
Line 386: Line 403:
<div style="clear:both">
<div style="clear:both">


===Week 6===
=== Week 6===
'''For week 6 each group can choose 2 time slots'''.
'''For week 6 each group can choose 2 time slots'''.


Line 402: Line 419:
|'''13:30-14:30'''||The Iron Giant||Ultron||free
|'''13:30-14:30'''||The Iron Giant||Ultron||free
|-
|-
|'''14:30-15:30'''||Robocop||free||free
|'''14:30-15:30'''||Robocop||free|| free
|}
|}


Line 411: Line 428:
! colspan="3" scope="col" |'''Group'''
! colspan="3" scope="col" |'''Group'''
|-
|-
|'''10:45-11:45'''||R2-D2||free||free
|'''10:45-11:45'''||R2-D2|| free||free
|-
|-
|'''11:45-12:45'''||Ultron||Rosey||Optimus Prime
|'''11:45-12:45'''||Ultron||Rosey||Optimus Prime
Line 417: Line 434:
|'''13:30-14:30'''||R2-D2||The Iron Giant||Optimus Prime
|'''13:30-14:30'''||R2-D2||The Iron Giant||Optimus Prime
|-
|-
|'''14:30-15:30'''||free||Robocop||free
|'''14:30-15:30''' ||free|| Robocop||free


|}
|}
Line 440: Line 457:
|'''11:45-12:45'''||free||free
|'''11:45-12:45'''||free||free
|-
|-
|'''13:30-14:30'''||Wall-E||free
|'''13:30-14:30'''||Wall-E ||free
|-
|-
|'''14:30-15:30'''||free||free
|'''14:30-15:30'''||free||free
|-
|-
|'''15:30-16:30'''||free||free
|'''15:30-16:30'''||free ||free
|-
|-
|'''16:30-17:30'''||free||free
|'''16:30-17:30'''||free|| free
|}
|}


Line 455: Line 472:
! colspan="2" scope="col" |'''Group'''
! colspan="2" scope="col" |'''Group'''
|-
|-
|'''8:45-9:45'''||The Iron Giant||Wall-E
|'''8:45-9:45'''||The Iron Giant||Wall-E  
|-
|-
|'''9:45-10:45'''||The Iron Giant||Wall-E
|'''9:45-10:45'''||The Iron Giant||Wall-E
Line 465: Line 482:
|'''13:30-14:30'''||Optimus prime||R2-D2
|'''13:30-14:30'''||Optimus prime||R2-D2
|-
|-
|'''14:30-15:30'''||Robocop||R2-D2
|'''14:30-15:30'''||Robocop||R2-D2  
|-
|-
|'''15:30-16:30'''||Robocop||Ultron
|'''15:30-16:30'''||Robocop||Ultron
|-
|-
|'''16:30-17:30'''||free||Ultron
|'''16:30-17:30''' ||free||Ultron
|}
|}


<div style="clear:both">
<div style="clear:both">


===Week 8 ===
===Week 8===
'''For week 8 each group can choose 2 time slots'''.
'''For week 8 each group can choose 2 time slots'''.


Line 493: Line 510:
|'''13:30-14:30'''||Wall-e||free
|'''13:30-14:30'''||Wall-e||free
|-
|-
|'''14:30-15:30'''||Wall-e||free
|'''14:30-15:30'''|| Wall-e||free
|-
|-
|'''15:30-16:30'''||R2D2||free
|'''15:30-16:30'''||R2D2 ||free
|-
|-
|'''16:30-17:30'''||free||free
|'''16:30-17:30'''||free|| free
|}
|}


Line 512: Line 529:
|'''10:45-11:45'''||free||Ultron
|'''10:45-11:45'''||free||Ultron
|-
|-
|'''11:45-12:45'''||Optimus Prime||Rosey
|'''11:45-12:45'''||Optimus Prime ||Rosey
|-
|-
|'''13:30-14:30'''||Optimus Prime||Wall-E
|'''13:30-14:30'''||Optimus Prime ||
|-
|-
|'''14:30-15:30'''||free||Robocop
|'''14:30-15:30''' ||free||Robocop
|-
|-
|'''15:30-16:30'''||The Iron Giant||R2D2
|'''15:30-16:30'''||The Iron Giant||R2D2
Line 525: Line 542:
<div style="clear:both">
<div style="clear:both">


===Week 9 ===
===Week 9===
'''For week 9 each group can choose 3 time slots. We will only use Hero this week'''.
'''For week 9 each group can choose 3 time slots. We will only use Hero this week'''.
{| class="wikitable TablePager" style="width: 230px; min-width: 240px; margin-left: 2em; float:left; color: black;"
|+'''Week 9 Monday 17 June'''
|-
! scope="col" |'''Time'''
! scope="col" |'''Group'''
|-
|'''8:45-9:45'''||R2-D2
|-
|'''9:45-10:45'''||Free
|-
|'''10:45-11:45'''||HAL-9000
|-
|'''11:45-12:45'''||R2-D2
|}


{| class="wikitable TablePager" style="width: 230px; min-width: 240px; margin-left: 2em; float:left; color: black;"
{| class="wikitable TablePager" style="width: 230px; min-width: 240px; margin-left: 2em; float:left; color: black;"
Line 534: Line 567:
! scope="col" |'''Group'''
! scope="col" |'''Group'''
|-
|-
|'''8:45-9:45'''||free
|'''8:45-9:45'''||Wall-E
|-
|-
|'''9:45-10:45'''||HAL-9000
|'''9:45-10:45'''||HAL-9000
|-
|-
|'''10:45-11:45'''||free
| '''10:45-11:45'''||Wall-E
|-
|-
|'''11:45-12:45'''||free
|'''11:45-12:45'''||Rosey
|-
|-
|'''13:30-14:30'''||Ultron
|'''13:30-14:30'''||Ultron
Line 546: Line 579:
|'''14:30-15:30'''||The Iron Giant
|'''14:30-15:30'''||The Iron Giant
|-
|-
|'''15:30-16:30'''||Robocop
|'''15:30-16:30'''||free
|-
|-
|'''16:30-17:30'''||free
|'''16:30-17:30'''||Optimus Prime
|}
|}


Line 557: Line 590:
! scope="col" |'''Group'''
! scope="col" |'''Group'''
|-
|-
|'''8:45-9:45'''||free
|'''8:45-9:45'''||Wall-E
|-
|-
|'''9:45-10:45'''||Ultron
|'''9:45-10:45'''||Ultron
|-
|-
|'''10:45-11:45'''||'''BLOCKED'''
|'''10:45-11:45''' ||'''BLOCKED'''
|-
|-
|'''11:45-12:45'''||'''BLOCKED'''
|'''11:45-12:45'''||'''BLOCKED'''
Line 571: Line 604:
|'''15:30-16:30'''||Robocop
|'''15:30-16:30'''||Robocop
|-
|-
|'''16:30-17:30'''||free
|'''16:30-17:30'''||Optimus Prime
|}
|}


Line 580: Line 613:
! scope="col" |'''Group'''
! scope="col" |'''Group'''
|-
|-
|'''8:45-9:45'''||free
|'''8:45-9:45'''||Rosey
|-
|-
|'''9:45-10:45'''||Ultron
|'''9:45-10:45'''||Ultron
|-
|-
|'''10:45-11:45'''||free
|'''10:45-11:45'''||Rosey
|-
|-
|'''11:45-12:45'''||free
| '''11:45-12:45'''||HAL-9000
|-
|-
|'''13:30-14:30'''||free
|'''13:30-14:30'''||R2-D2
|-
|-
|'''14:30-15:30'''||free
|'''14:30-15:30'''||Robocop
|-
|-
|'''15:30-16:30'''||The Iron Giant
|'''15:30-16:30'''||The Iron Giant
|-
|-
|'''16:30-17:30'''||free
| '''16:30-17:30'''||Optimus Prime
|}
|}



Latest revision as of 17:06, 19 May 2025

'Hero the Toyota HSR'


Introduction

This course is about software design and how to apply this in the context of autonomous robots. The accompanying assignment is about applying this knowledge to a real-life robotics task.

Course Schedule and Lecture Slides

Lectures will typically take place on the Wednesdays between 15:30-17:15. Guided self-study will take place on Fridays between 10:45 and 12:30. The course schedule is as follows:

Date
Wednesday April 24 Lecture: Introduction to mobile robot control Lecture Slides Introduction
Friday April 26 Lecture: Best practices for C++ and Git

Guided selfstudy

Assignments week 1

Practical exercises week 1

Using maps on the robots

Lecture Slides Best Practices for C++ and Git

Wednesday May 1 Lecture: Local Navigation Lecture Slides Local Navigation
Friday May 3 Guided selfstudy Assignment Local Navigation
Wednesday May 8 Lecture: Global Navigation Lecture Slides Global Navigation
Friday May 10 Ascension day
Wednesday May 15 Guided selfstudy Assignment Global Navigation
Friday May 17 Lecture: Localization Lecture Slides Localization
Wednesday May 22 Guided selfstudy Assignment Localization
Friday May 24 Guided selfstudy
Wednesday May 29 Lecture: System architecture Lecture Slides System Architecture
Friday May 31 Guided selfstudy
Friday May 31 Deadline intermediate peer reviews
Wednesday June 5 Presentation of designs by the groups
Friday June 7 Guided selfstudy
Friday June 7 Deadline exercises
Wednesday June 12 Guest lectures: "Safe navigation in a hospital environment" and "The Truck as a Mobile Robot" Context-aware navigation slides

Truck as a mobile robot Lecture slides

Friday June 14 Guided selfstudy
Friday June 21 Final Challenge
Friday June 28 Deadline: Wiki Pages + Peer review

Getting Started

To get started, you can follow the installation instructions found in the exercises for week 1. You can already do this before the first lecture.

For students who are not comfortable with c++ we highly recommend taking a look at this tutorial: https://cplusplus.com/doc/tutorial/

For the course we use our own custom library to communicate with the robot. You can find documentation of that library here


Restaurant Competition

Location Location Location

The final challenge will take place in the hall of gemini-south from 10:45-12:30

Overview of a possible restaurant setup, not up to scale!

Challenge Description

The figure on the right shows a 2D representation of a possible Restaurant setup, as an example. The objective is for Hero to "deliver" orders from the kitchen to a few tables. Which tables must be reached and in what order will be defined by the judges just before the challenge starts. The restaurant will contain a number of unknown static and dynamic objects (boxes, human actors walking)

The delivery of an order is defined as follows

  • Drive up to the table.
  • Position near the table, facing towards the table. The robot should be close enough for a customer to comfortably take their order from the tray. The exact part of the table that the robot stands next to does not matter.
  • Give a clear sound signal, signalling Hero has arrived at table A (io.speak("I arrived at table four")).
  • Repeat until all the tables are visited in the correct order (your robot does not need to return to the starting point)


Environment Specifications

  • All walls in the restaurant will be approximately straight. No weird curving walls.
  • The tables can be regarded to be solid objects that will show up as rectangles in the LiDAR measurements (So you won't have to detect the table's legs).
  • The doors inside the restaurant will be openings in the walls of about 0.5-1m that may be closed or open. Doors can be opened by standing in front of one and having the robot ask for it to be opened.
  • There may be multiple routes to a given goal.
  • A number of dynamic objects will be present in the form of human actors. Additionally, a number of static objects will be placed throughout the restaurant (including possible chairs next to the tables!). The position does not have to be parallel to the walls.
    • Chairs will Not show up as squares in your LiDAR measurements. You will only see the legs!
    • These extra objects will not be present on the map that you're provided ahead of time.

Challenge Conditions

  • Hero will start in the start area, defined by a rectangle of approximately 1 by 1 meters. The orientation of Hero is arbitrary (i.e., not known to your software).
  • The list of tables to be visited will be provided right before the challenge starts as a list of integers (0 identifies the first table in the array).
  • After starting the software, Hero has to drive to the first table to deliver the order.
  • If Hero found the correct table and signalled his arrival, he has to drive to the next tables to deliver the orders.
  • The task is completed after Hero visited all tables on the list.
  • Within the restaurant start area, we will make sure that some visible features (i.e. lines, corners) remain visible.
  • An actual map of the restaurant will be provided to the teams one week before the final challenge (an example is provided at the bottom of this section).


Challenge Rules

  • The list of tables to visit has to be supplied to the executable when starting the challenge, in the following format (for tables in the order: 2 -> 4 -> 3):
./hero_do_your_thing 2 4 3 
  • Do not touch the walls or objects! Slightly touching is allowed, however, bumping (i.e., driving head-on into a wall) is not allowed! If Hero hits the wall, we decide whether it counts as bumping.
  • Every team has two trials (= max one restart). A trial ends if:
    • Hero bumps into: the wall, a static or a dynamic object.
    • Hero has not moved or has not made sensible movements (as judged by the tutors) for 30 seconds
    • The total time limit of 10 minutes per group is reached
    • The group requests a restart (on the first trial)
  • restart means:
    • Hero restarts at the defined start position
    • The trail time (= the time graded) is reset, but
    • the total time keeps running
  • There will be no second attempt if first attempt was successful
  • Every situation that might occur, that is not covered in this document will be evaluated on the spot. If this happens, the judges have the final word.


Robot Software

  • Make sure your software is easy to set-up, i.e:
    • Your software can be updated with one easy command, e.g. 'git pull'
    • Your software can be compiled using 'cmake' and 'make'
    • It is allowed to use multiple executables.
    • If your set-up deviates from this method, let your tutor know 1 week before the challenge!
  • The software of all groups will be updated on the robot the morning before the challenge starts
    • This way, teams starting the challenge have as much time as teams that do the challenge at the end, compiling in between trials is not allowed.

Interview

During the final challenge the tutors will interview one person of your group to explain your robots behaviour.

Example map format and code

  • We provide a simple example of a room with two tables and the code to read the map into your own C++ code.
  • We used the 20cm thickness blocks for your convenience
  • Remember to add unknown objects to your simulator and test environments and/or create other challenging maps and test scenarios!

You can find an example map (JSON) and the code to get you started here: File:Mrc map format 2021.zip



An example map (PNG) for the restaurant challenge with more tables is provided here: File:ExampleRestaurantMap.png.

You can use the following settings (resolution etc.) in your YAML-file:

image: ExampleRestaurantMap.png #include the (relative) path to where you put the PNG-file 
resolution: 0.0125
origin: [0.0, 0.0, 0.0]
occupied_thresh: 0.9
free_thresh: 0.1
negate: 0

A distorted version of this map, with slightly displaced walls and tables and some added obstacles, is provided here: File:ExampleRestaurantMapDistorted.png.

Map For The Final Challenge

The map for the final challenge will be published here in the week leading up to the final challenge. Clutter will be added (both static and moving) on the day of the challenge, adhering to the rules specified under "Restaurant Challenge".


Group Wiki Pages

During the course you will design your own robotic system under the guidance of a tutor. The tutors are there to guide the process, Not to give answers to the exercises.

As part of your final grade we ask you to report on your progress using the wiki pages below.

Please record on the wiki your answers to the exercises as well as your developments for the final challenge.

Group name GitLab page Wiki page Tutor Tutor email
Wall-E visit GitLab visit wiki Ruben Beumer r.m.beumer@tue.nl
HAL-9000 visit GitLab visit wiki Peter van Dooren p.v.dooren@tue.nl
R2-D2 visit GitLab visit wiki Robert de Bruijne r.c.a.d.bruijne@tue.nl
Rosey visit GitLab visit wiki Koen de Vos k.d.vos@tue.nl
The Iron Giant visit GitLab visit wiki Peter van Dooren k.d.vos@tue.nl
Ultron visit GitLab visit wiki Aron Aertssen + Rudolf Huisman a.j.aertssen@tue.nl, r.g.m.huisman@tue.nl
Optimus Prime visit GitLab visit wiki Gijs van den Brandt a.a.h.m.v.d.brandt@tue.nl
Robocop visit GitLab visit wiki Gijs van Rhijn g.h.m.v.rhijn@tue.nl

With your wiki page you will convey your approach and your lessons-learned to ‘the outside world’; the tutors and the next generation of MRC students. There are two ways to do this: 1) readable code with comments and 2) a detailed description of your system on the wiki.

We give some guidelines and topics that we will be looking for, but encourage you to be creative: what separates your group from the others?

A main point of interest for the final evaluation will be: the justification behind your design choices and a reflection on them. why did you choose the techniques that you did, what test did you perform to validate them, were the results as expected, and did you change anything on the basis of these results?

Other things that the tutors will look at:

Exercises

  • Can we see that you succesfully completed the exercises from your wiki page.

Problem statement

  • Description of the properties of the environment
  • Which challenging situation might the robot encounter?

System design

  • Data flow
  • State flow

Local planner

  • Which local planner have you selected and why?
  • How did you integrate the local planner with the other components of your system?

Global planner

  • Which global planner have you selected and why?
  • How did you integrate the local planner with the other components of your system?

Localization

  • Which localization have you selected and why?
  • How did you integrate the local planner with the other components of your system?

System validation

  • How did you validate your system design before the final challenge? Please upload a description of the experiment performed and a video.
  • Were you able to implement all the functionalities in your system design? If not, why?

Final challenge evaluation

  • How did your robot performed during the final challenge?
  • Did you notice differenced between the system validation tests that you performed and the behavior of your robot in the final challenge?
  • Can you analyse the cause of the observed differences?

Reflection on the use of generative AI for the project

  • Have you used generative AI tooling in your project? If yes, reflect on how you used them and  for which tasks.
  • Write a few sentences on what you think the role of generative AI has been for your learning trajectory.

Peer review

At the end of the project we would like each group to hand in a peer review. This should reflect how each group member contributed to the final project. We expect each group member to contribute equally in the technical aspects of the project.

Please consider your peers contributions in the form of:

  • Technical expertise
  • contributions to System design
  • Implementation in software
  • Documentation of the project
  • Communication during the project

Each of these is of roughly equal importance.

We would like to ask the group to come up with a grade for each member ranging from -1.0 to +1.0 where the sum of all grades is 0.0. Your final grade will be calculated as group_grade + peer_review_grade. The range of -1.0 to +1.0 should be sufficient for most groups where all members contribute equally. If you feel this might not be the case for your group please contact your tutor sooner rather than later.

Practical sessions

  • Testing takes place on the RoboCup field in Impuls.
  • Three robots will be available for testing, you will share the field with three groups
  • Be sure you have your software on git before coming to the test session so that you only have to git clone/git pull to get your code on the robot!
  • Please charge the robot whenever possible so there is no down time due to empty batteries.

To submit for a timeslot you have to be logged in. Through the 'edit'-button for Practical sessions, you can select a timeslot by typing your group name behind the desired timeslot.

  • You may only reserve 2 test slots per week
  • Submissions are last checked the day before at 22:00.

Week 2

For week 2 each group can choose 2 time slots.

Week 2 Tuesday 30 April
Time Group
10:45-11:45 Rosey free free
11:45-12:45 free free free
13:30-14:30 free free free
14:30-15:30 free free free
Week 2 Thursday 2 May
Time Group
10:45-11:45 Optimus Prime free free
11:45-12:45 Rosey Optimus Prime free
13:30-14:30 The Iron Giant Wall-E Robocop
14:30-15:30 The Iron Giant Wall-E free

Week 3

For week 3 there are no Thursday slots due to Ascension day. Every group can therefore only book 1 time slot on Tuesday.

Week 3 Tuesday 7 May
Time Group
10:45-11:45 Rosey Robocop free
11:45-12:45 Optimus Prime free free
13:30-14:30 Wall-E The Iron Giant R2-D2
14:30-15:30 Ultron free free


Week 4

For week 4 each group can choose 2 time slots.

Week 4 Tuesday 14 May
Time Group
10:45-11:45 Rosey free free
11:45-12:45 free free free
13:30-14:30 Ultron R2-D2 free
14:30-15:30 HAL-9000 free free
Week 4 Thursday 16 May
Time Group
10:45-11:45 Optimus Prime free R2-D2
11:45-12:45 Ultron Rosey Optimus Prime
13:30-14:30 free The Iron Giant Robocop
14:30-15:30 free The Iron Giant Robocop

Week 5

For week 5 each group can choose 2 time slots.

Week 5 Tuesday 21 May
Time Group
10:45-11:45 free free free
11:45-12:45 Optimus Prime free Robocop
13:30-14:30 free The Iron Giant free
14:30-15:30 free free free
Week 5 Thursday 23 May
Time Group
10:45-11:45 Ultron free Rosey
11:45-12:45 free Optimus Prime Rosey
13:30-14:30 Wall-e The Iron Giant Robocop
14:30-15:30 Wall-e free Ultron

Week 6

For week 6 each group can choose 2 time slots.

Week 6 Tuesday 28 May
Time Group
10:45-11:45 free free free
11:45-12:45 free free free
13:30-14:30 The Iron Giant Ultron free
14:30-15:30 Robocop free free
Week 6 Thursday 30 May
Time Group
10:45-11:45 R2-D2 free free
11:45-12:45 Ultron Rosey Optimus Prime
13:30-14:30 R2-D2 The Iron Giant Optimus Prime
14:30-15:30 free Robocop free

Week 7

For week 7 each group can choose 2 time slots. However, the slots are now available during the entire day.

Week 7 Tuesday 4 June
Time Group
8:45-9:45 free free
9:45-10:45 free free
10:45-11:45 free free
11:45-12:45 free free
13:30-14:30 Wall-E free
14:30-15:30 free free
15:30-16:30 free free
16:30-17:30 free free
Week 7 Thursday 6 June
Time Group
8:45-9:45 The Iron Giant Wall-E
9:45-10:45 The Iron Giant Wall-E
10:45-11:45 HAL-9000 Rosey
11:45-12:45 Optimus prime Rosey
13:30-14:30 Optimus prime R2-D2
14:30-15:30 Robocop R2-D2
15:30-16:30 Robocop Ultron
16:30-17:30 free Ultron

Week 8

For week 8 each group can choose 2 time slots.

Week 8 Tuesday 11 June
Time Group
8:45-9:45 free free
9:45-10:45 HAL-9000 free
10:45-11:45 free free
11:45-12:45 free free
13:30-14:30 Wall-e free
14:30-15:30 Wall-e free
15:30-16:30 R2D2 free
16:30-17:30 free free
Week 8 Thursday 13 June
Time Group
8:45-9:45 free
9:45-10:45 HAL-9000 Ultron
10:45-11:45 free Ultron
11:45-12:45 Optimus Prime Rosey
13:30-14:30 Optimus Prime
14:30-15:30 free Robocop
15:30-16:30 The Iron Giant R2D2
16:30-17:30 The Iron Giant Robocop

Week 9

For week 9 each group can choose 3 time slots. We will only use Hero this week.


Week 9 Monday 17 June
Time Group
8:45-9:45 R2-D2
9:45-10:45 Free
10:45-11:45 HAL-9000
11:45-12:45 R2-D2
Week 9 Tuesday 18 June
Time Group
8:45-9:45 Wall-E
9:45-10:45 HAL-9000
10:45-11:45 Wall-E
11:45-12:45 Rosey
13:30-14:30 Ultron
14:30-15:30 The Iron Giant
15:30-16:30 free
16:30-17:30 Optimus Prime
Week 9 Wednesday 19 June
Time Group
8:45-9:45 Wall-E
9:45-10:45 Ultron
10:45-11:45 BLOCKED
11:45-12:45 BLOCKED
13:30-14:30 Robocop
14:30-15:30 The Iron Giant
15:30-16:30 Robocop
16:30-17:30 Optimus Prime
Week 9 Thursday 20 June
Time Group
8:45-9:45 Rosey
9:45-10:45 Ultron
10:45-11:45 Rosey
11:45-12:45 HAL-9000
13:30-14:30 R2-D2
14:30-15:30 Robocop
15:30-16:30 The Iron Giant
16:30-17:30 Optimus Prime

Contact Details

This year's staff consists of the following TU/e employees:

  • Peter van Dooren (p dot v dot dooren at tue dot nl)
  • Koen de Vos
  • Aron Aertssen
  • Ruben Beumer
  • Gijs van Rhijn
  • Gijs van den Brandt
  • Rudolf Huisman
  • Robert de Bruijne
  • Hao Liang Chen
  • Jordy Senden
  • René van de Molengraft
  • Elena Torta