Mobile Robot Control 2021: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Tag: 2017 source edit
 
(32 intermediate revisions by 6 users not shown)
Line 6: Line 6:
----
----


= Introduction =
=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.
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 =
=Course Schedule and Lecture Slides=




'''[This schedule may be changed during the following weeks!]'''
Lectures will typically take place on the wednesdays between 15:30-17:15. The course schedule is as follows:
Online sessions such as live lectures will typically take place on the wednesdays between 15:30-17:15. Except for the week of may the 5th as it is liberation day; the Q&A session of lecture 2 will thus take place on the 7th of may between 10:45-12:30. The course schedule is as follows:


{| border="1" cellpadding="5" cellspacing="0" align="center" style="margin-left: 5em;"
{| style="margin-left: 5em;" cellspacing="0" cellpadding="5" border="1" align="center"
|-
|-
| April 21
|April 26
| width="325" | Introduction by ''René van de Molengraft'', [[Tech United]] , ''VanderLande'' and ''Lely''
| width="325" |Lecture: Introduction to mobile robot control
| width="325" | [[Tooling, Infrastructure and Assignment]] by ''Bob Hendrikx''
|-
|-
| April 28
|May 3
| colspan="2" | Q&A session about Tutorial lectures 1. Tutorial lectures 1 can be found online when the course starts.
|Lecture: Navigation 101
|-
|-
| May 7
|May 10
| colspan="2" | Q&A session about Tutorial lectures 2. Tutorial lectures 2 can be found online when the course starts.
|Lecture: Navigation 102
|-
|-
| May 12
|May 12
| colspan="2" | '''Escape Room Competition'''
|Guided selfstudy
|-
|-
| May 19
|May 17
| colspan="2" | No Lecture
|Lecture: Localization 101
|-
|-
| May 26
|May 24
| colspan="2" | [[Coordination: mechanisms and architectural patterns]] by ''Herman Bruyninckx''
|Lecture: Localization 102
|-
|-
| June 2
|may 26
| colspan="2" | Presentation of final design by the ''groups''.
|Guided selfstudy
|-
|-
| June 9
|May 31
| colspan="2" | '''Final Competition'''
|Lecture: System architecture
|-
|-
| June 16
|June 2
| colspan="2" | No Lecture
|Lecture: Software design and Git
|-
|-
| <span style="color:red">June 23</span>
|June 7
| colspan="2" | <span style="color:red">'''Deadline: Wiki Pages''' </span>
|Presentation of designs by the ''groups''.
|-
|-
|}
|June 14
 
|Guest lectures: "Safe navigation in a hospital environment" and "Autonomous parking of trucks"
<!-- {| border="1" cellpadding="5" cellspacing="0" align="center" style="margin-left: 5em;"
|-
| April 21
| width="325" | Introduction by ''René van de Molengraft'', [[Media:MRC2020-TechUnitedEindhoven.pdf | ''Tech United'']] , ''VanderLande'' and ''Lely''
| width="325" | [[Media:MRC_tooling_infrastructure_2020.pdf | Tooling, Infrastructure and Assignment by ''Bob Hendrikx'' ]]
|-
| April 28
| colspan="2" | Tutorial Lecture #1 - [[Media:MRC2020-TutorialLecture1_1_1_2.pdf | ''Part 1-2'']] - [[Media:MRC2020-TutorialLecture1_3.pdf | ''Part 3'']]
|-
| May 7
| colspan="2" | Tutorial Lecture #2 - [[Media:EMC2020_localization-handout.pdf | ''Part 1'']] - [[Media:MRC2020-TutorialLecture2_Object_Detection.pdf | ''Part 2'']] - [[Media:2020-05-06_Mobile_Robot_Control_-_Motion_Planning.pdf | ''Part 3'']]
|-
| May 14
| colspan="2" | '''Escape Room Competition'''
|-
| May 21
| colspan="2" | No Lecture
|-
| May 28
| colspan="2" | [[Media:MRC2020-LectureHermanBruyninckx.pdf | Coordination: mechanisms and architectural patterns]] by ''Herman Bruyninckx''
|-
| June 5
| colspan="2" | Presentation of final design by the ''groups''.
|-
| June 12
| colspan="2" | '''Final Competition'''
|-
| June 17
| colspan="2" | No Lecture
|-
| <span style="color:red">June 24</span>
| colspan="2" | <span style="color:red">'''Deadline: Wiki Pages''' </span>
|-
|} -->
 
<!-- ==Presentation Schedule==
 
As you have seen in the course schedule, the presentations of the final software design will take place on June 3rd. As we did last years, each presentation will take no more than 6 minutes, followed by a 4 minute discussion. Given this years circumstances, we have decided to do these presentations for each group separately. However, your entire group is required to be available for the discussion session. Therefore, we plan these presentations during the regular lecture hours of the course.
For the presentations of your final software design, please take the following into account:
* Pick a time slot in the table below. First come, first served.
* Send an invitation to all your group members, as well as René van de Molengraft, Jordy Senden, Bob Hendrikx and Wouter Houtman. These mail addresses can be found at the bottom of this page. Make sure, your invitation is accompanied with a meeting room of Microsoft Teams.
* As long as your presentation can be shared via the Teams meeting, you are free to chose the medium you like.
* In order to not waste time, make sure all team members are present, and both microphones and cameras are tested BEFORE the start of the presentation. Make sure your microphone is muted when you are not speaking.
 
{| class="TablePager" style="width: 230px; min-width: 240px; margin-left: 2em; float:left; color: black;"
|-
|-
! scope="col" | '''Date'''
|June 30
! scope="col" | '''Time'''
|'''Final Challenge'''
! scope="col" | '''Group'''
|-
|-
| 3-6-2020 || 15:30 - 15:40 ||group 3
|<span style="color:red">July 7</span>
|<span style="color:red">'''Deadline: Wiki Pages + Peer review'''</span>
|-
|-
|          || 15:45 - 15:55 ||group 1
|-
|          || 16:00 - 16:10 ||group 7
|-
|          || 16:15 - 16:25 ||group 6
|-
|          || 16:30 - 16:40 ||group 2
|-
|          || 16:45 - 16:55 ||group 8
|-
|          || 17:00 - 17:10 ||group 4
|-
|          || 17:15 - 17:25 ||group 10
|}
|}


<div style="clear:both"></div>
=Getting Started=
<br>
-->


= Getting Started =
To get started, please do the tutorials on the [[MRC/Tutorials| Tutorial Page]].


To get started, please do the tutorials on the [[MRC/Tutorials| Tutorial Page]]. <!--Please note:
[[Embedded_Motion_Control_2018/FAQ |Here]] we will collect the Frequently Asked Questions. Please check this page before contacting the student assistants or the tutors! If you find any issues or questions you had to deal with, please add them as well so your colleagues don't run into the same problems.


* '''Do all tutorials, and all steps. Missing one step may cause a different behavior or incorrect working system later'''. If something is not working as expected, make sure you correctly did all previous steps.
=Restaurant Competition=
* Of course, things may still go wrong. If so, do not hesitate to contact us.
{{:Embedded_Motion_Control/Restaurant_Competition_2023}}


* See [[Embedded_Motion_Control/Using_Pico | Using Pico]] for a quick overview of how to use Pico.
=Map For The Final Challenge=


= FAQ =
The map for the final challenge will be published here in the week leading up to the final challenge.
[[Embedded_Motion_Control_2018/FAQ | Here]] you can find a collection of Frequently Asked Questions. Please check this page before contacting the student assistants or the tutors! If you find any issues or questions you had to deal with, please add them as well so your colleagues don't run into the same problems.
Clutter will be added (both static and moving) on the day of the challenge, adhering to the rules specified under "Restaurant Challenge"




= Design Document =  
=Group Wiki Pages=


Hand-in a 3-page A4-sized design document as pdf (<1Mb) that pictures/describes the initial design idea with:
Group 1 - [[Mobile Robot Control 2021 Group 1 | visit wiki]] - '''Tutor''':  
* Requirements,
* Functions,
* Components,
* Specifications
* Interfaces.
You should upload this design document to your group's Wiki-page as this is a vital document in the design process. Make sure the document has been uploaded on May 4th, 17.00h. In case of questions about the document, consult your tutor.
 
= Escape Room Competition =
{{:Embedded_Motion_Control/Escape_Room_Competition_2018}}
 
 
= Hospital Competition =
{{:Embedded_Motion_Control/Hospital_Room_Competition_2019}}
 
 
= Map For The Final Challenge =
* The simulation environment for the Hospital Challenge, with static and dynamics objects, [[Media:MRC2020_Hospital.zip | can be found here]].
* The JSON file for the map for the final challenge can be found here:[[Media:Mrc2020_finalmap_corrected.zip | FINALMAP.zip]] (version where gridmap cabinets are corrected)
* You are free to annotate / change this map to suit your software design
* The start area is shown in the image below
* A simulator gridmap of the environment is also provided
* Clutter will be added (both static and moving) on the day of the challenge, adhering to the rules specified under "Hospital Competition"
* Run `mrc-update` to get a sliding visualization and a safety stopping radius making the moving objects stop
 
 
<gallery widths="500px" heights="500px" style="text-align:left">
File:Finalmap_json_2020.png| Final map as provided
File:Finalmap2020.png| Start area (1m x 1m)
</gallery>
-->
=Group Wiki Pages=


Group 1 - [[Mobile Robot Control 2021 Group 1 | visit wiki ]] - '''Tutor''': Manuel Muñoz Sánchez
Group 2 - [[Mobile Robot Control 2021 Group 2 | visit wiki]] - '''Tutor''':  


Group 2 - [[Mobile Robot Control 2021 Group 2 | visit wiki ]] - '''Tutor''': Peter van Dooren
Group 3 - [[Mobile Robot Control 2021 Group 3 | visit wiki]] - '''Tutor''': Jordy Senden


Group 3 - [[Mobile Robot Control 2021 Group 3 | visit wiki ]] - '''Tutor''': Jordy Senden
Group 4 - [[Mobile Robot Control 2021 Group 4 | visit wiki]] - '''Tutor''': Hao Liang Chen


Group 4 - [[Mobile Robot Control 2021 Group 4 | visit wiki ]] - '''Tutor''': Hao Liang Chen
Group 5 - [[Mobile Robot Control 2021 Group 5 | visit wiki]] - '''Tutor''': Bob Hendrikx


Group 5 - [[Mobile Robot Control 2021 Group 5 | visit wiki ]] - '''Tutor''': Bob Hendrikx
Group 6 - [[Mobile Robot Control 2021 Group 6 | visit wiki]] - '''Tutor''': Manuel Muñoz Sánchez


Group 6 - [[Mobile Robot Control 2021 Group 6 | visit wiki ]] - '''Tutor''': Manuel Muñoz Sánchez
Group 7 - [[Mobile Robot Control 2021 Group 7 | visit wiki]] - '''Tutor''': Peter van Dooren


Group 7 - [[Mobile Robot Control 2021 Group 7 | visit wiki ]] - '''Tutor''': Peter van Dooren
Group 8 - [[Mobile Robot Control 2021 Group 8 | visit wiki]] - '''Tutor''': César López


Group 8 - [[Mobile Robot Control 2021 Group 8 | visit wiki ]] - '''Tutor''': Jordy Senden
<!---
<!---
=Pico test schedule=
=Practical sessions=
-  Testing takes place on the RoboCup field in Gemini-North.
-  Testing takes place on the RoboCup field in Gemini-North.



Latest revision as of 15:00, 31 March 2023

'PICO in the Hospital'

Gostai-Jazz-500x500.jpg

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. The course schedule is as follows:

April 26 Lecture: Introduction to mobile robot control
May 3 Lecture: Navigation 101
May 10 Lecture: Navigation 102
May 12 Guided selfstudy
May 17 Lecture: Localization 101
May 24 Lecture: Localization 102
may 26 Guided selfstudy
May 31 Lecture: System architecture
June 2 Lecture: Software design and Git
June 7 Presentation of designs by the groups.
June 14 Guest lectures: "Safe navigation in a hospital environment" and "Autonomous parking of trucks"
June 30 Final Challenge
July 7 Deadline: Wiki Pages + Peer review

Getting Started

To get started, please do the tutorials on the Tutorial Page.

Here we will collect the Frequently Asked Questions. Please check this page before contacting the student assistants or the tutors! If you find any issues or questions you had to deal with, please add them as well so your colleagues don't run into the same problems.

Restaurant Competition

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)

Hero will be equipped with a basket in which he will carry the orders. 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 are Not guaranteed to show up as squares in your LiDAR measurements (you might 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.
  • Bonus points are given to the groups that can detect the static and dynamic objects and present them in the world model. How this is presented is left to the groups.
  • 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, this will encompass a vector map and a gridmap (an example is provided at the bottom of this section).
  • Any outside sensing systems, such as the Opti-track, that might have been available during testing will not be available during the final challenge.


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
  • Maximum speed (is limited in Hero): 0.5 m/s translational, 1.2 rad/s rotational.
  • 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.


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.
  • For this simple example, a simulator map is also provided. (Note: a simulator map will not be provided for the final challenge).
  • 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.

The corresponding data that you could use in a JSON-file is provided here (click 'Expand'):

{
  "tables":[
    [
      [29, 35],
      [35, 34],
      [34, 28],
      [28, 29]],

    [
      [45, 47],
      [47, 46],
      [46, 44],
      [44, 45]],

    [
      [33, 32],
      [32, 21],
      [21, 22],
      [22, 33]],

    [
      [48, 49],
      [49, 59],
      [59, 58],
      [58, 48]],

    [
      [26, 24],
      [24, 25],
      [25, 27],
      [27, 26]],

    [
      [42, 36],
      [36, 37],
      [37, 43],
      [43, 42]],

    [
      [50, 51],
      [51, 62],
      [62, 61],
      [61, 50]]
  ],

  "walls":[
    [0, 1],
    [1, 8],
    [8, 2],
    [2, 0],
    [2, 3],
    [3, 55],
    [55, 54],
    [54, 2],
    [7, 8],
    [8, 64],
    [64, 63],
    [63, 7],
    [54, 56],
    [56, 66],
    [66, 65],
    [65, 54],
    [57, 60],
    [60, 68],
    [68, 67],
    [67, 57],
    [61, 64],
    [64, 70],
    [70, 69],
    [69, 61],
    [13, 14],
    [14, 19],
    [19, 18],
    [18, 13],
    [15, 16],
    [16, 23],
    [23, 20],
    [20, 15],
    [11, 12],
    [12, 31],
    [31, 30],
    [30, 11],
    [6, 10],
    [10, 17],
    [17, 9],
    [9, 6],
    [38, 40],
    [40, 41],
    [41, 39],
    [39, 38]
  ],

  "doors":[
    [
      [4, 5],
      [5, 12],
      [12, 11],
      [11, 4]],

    [
      [30, 31],
      [31, 39],
      [39, 38],
      [38, 30]]
  ],

  "start_area":[
    [
      [52, 53],
      [53, 67],
      [67, 66],
      [66, 52]]
  ],

  "points":[
    {"x": 0.0, "y": 5.0, "_comment": 0 },
    {"x": 6.0, "y": 5.0, "_comment": 1 },
    {"x": 0.0, "y": 4.8, "_comment": 2 },
    {"x": 0.2, "y": 4.8, "_comment": 3 },
    {"x": 3.7, "y": 4.8, "_comment": 4 },
    {"x": 3.9, "y": 4.8, "_comment": 5 },
    {"x": 5.1, "y": 4.8, "_comment": 6 },
    {"x": 5.8, "y": 4.8, "_comment": 7 },
    {"x": 6.0, "y": 4.8, "_comment": 8 },
    {"x": 4.8, "y": 4.5, "_comment": 9 },
    {"x": 5.8, "y": 4.1, "_comment": 10 },
    {"x": 3.7, "y": 4.0, "_comment": 11 },
    {"x": 3.9, "y": 4.0, "_comment": 12 },
    {"x": 0.2, "y": 3.8, "_comment": 13 },
    {"x": 1.5, "y": 3.8, "_comment": 14 },
    {"x": 2.3, "y": 3.8, "_comment": 15 },
    {"x": 3.7, "y": 3.8, "_comment": 16 },
    {"x": 5.5, "y": 3.8, "_comment": 17 },
    {"x": 0.2, "y": 3.6, "_comment": 18 },
    {"x": 1.5, "y": 3.6, "_comment": 19 },
    {"x": 2.3, "y": 3.6, "_comment": 20 },
    {"x": 2.4, "y": 3.6, "_comment": 21 },
    {"x": 2.9, "y": 3.6, "_comment": 22 },
    {"x": 3.7, "y": 3.6, "_comment": 23 },
    {"x": 4.8, "y": 3.6, "_comment": 24 },
    {"x": 5.8, "y": 3.6, "_comment": 25 },
    {"x": 4.8, "y": 3.1, "_comment": 26 },
    {"x": 5.8, "y": 3.1, "_comment": 27 },
    {"x": 0.2, "y": 3.0, "_comment": 28 },
    {"x": 1.2, "y": 3.0, "_comment": 29 },
    {"x": 3.7, "y": 3.0, "_comment": 30 },
    {"x": 3.9, "y": 3.0, "_comment": 31 },
    {"x": 2.4, "y": 2.6, "_comment": 32 },
    {"x": 2.9, "y": 2.6, "_comment": 33 },
    {"x": 0.2, "y": 2.5, "_comment": 34 },
    {"x": 1.2, "y": 2.5, "_comment": 35 },
    {"x": 4.8, "y": 2.3, "_comment": 36 },
    {"x": 5.8, "y": 2.3, "_comment": 37 },
    {"x": 3.7, "y": 2.2, "_comment": 38 },
    {"x": 3.9, "y": 2.2, "_comment": 39 },
    {"x": 3.7, "y": 1.8, "_comment": 40 },
    {"x": 3.9, "y": 1.8, "_comment": 41 },
    {"x": 4.8, "y": 1.8, "_comment": 42 },
    {"x": 5.8, "y": 1.8, "_comment": 43 },
    {"x": 0.2, "y": 1.7, "_comment": 44 },
    {"x": 1.2, "y": 1.7, "_comment": 45 },
    {"x": 0.2, "y": 1.2, "_comment": 46 },
    {"x": 1.2, "y": 1.2, "_comment": 47 },
    {"x": 2.4, "y": 1.2, "_comment": 48 },
    {"x": 2.9, "y": 1.2, "_comment": 49 },
    {"x": 4.6, "y": 1.2, "_comment": 50 },
    {"x": 5.1, "y": 1.2, "_comment": 51 },
    {"x": 1.2, "y": 1.0, "_comment": 52 },
    {"x": 2.2, "y": 1.0, "_comment": 53 },
    {"x": 0.0, "y": 0.2, "_comment": 54 },
    {"x": 0.2, "y": 0.2, "_comment": 55 },
    {"x": 1.2, "y": 0.2, "_comment": 56 },
    {"x": 2.2, "y": 0.2, "_comment": 57 },
    {"x": 2.4, "y": 0.2, "_comment": 58 },
    {"x": 2.9, "y": 0.2, "_comment": 59 },
    {"x": 3.6, "y": 0.2, "_comment": 60 },
    {"x": 4.6, "y": 0.2, "_comment": 61 },
    {"x": 5.1, "y": 0.2, "_comment": 62 },
    {"x": 5.8, "y": 0.2, "_comment": 63 },
    {"x": 6.0, "y": 0.2, "_comment": 64 },
    {"x": 0.0, "y": 0.0, "_comment": 65 },
    {"x": 1.2, "y": 0.0, "_comment": 66 },
    {"x": 2.2, "y": 0.0, "_comment": 67 },
    {"x": 3.6, "y": 0.0, "_comment": 68 },
    {"x": 4.6, "y": 0.0, "_comment": 69 },
    {"x": 6.0, "y": 0.0, "_comment": 70 }
  ]
}

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

Group 1 - visit wiki - Tutor:

Group 2 - visit wiki - Tutor:

Group 3 - visit wiki - Tutor: Jordy Senden

Group 4 - visit wiki - Tutor: Hao Liang Chen

Group 5 - visit wiki - Tutor: Bob Hendrikx

Group 6 - visit wiki - Tutor: Manuel Muñoz Sánchez

Group 7 - visit wiki - Tutor: Peter van Dooren

Group 8 - visit wiki - Tutor: César López


Contact Details

Tutors

Bob Hendrikx - r dot w dot m dot hendrikx at tue dot nl

Hao Liang Chen - h dot l dot chen at tue dot nl

Jordy Senden - j dot p dot f dot senden at tue dot nl

Peter Dooren - p dot v dot dooren at tue dot nl

Manuel Muñoz Sánchez - m dot munoz dot sanchez at tue dot nl

César López - C dot A dot Lopez dot Martinez at tue dot nl