Embedded Motion Control/Hospital Room Competition 2019: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
(Created page with 'thumb|right|700px|Scheme of a possible Hospital, with measurements, but not up to scale! '''Challenge Description''' The figure on the right shows a 2D r…')
 
No edit summary
Line 4: Line 4:


The figure on the right shows a 2D representation of a '''possible''' Hospital setup, '''as an example'''.
The figure on the right shows a 2D representation of a '''possible''' Hospital setup, '''as an example'''.
The map shows several numbered ''Rooms'', connected by a ''Hallway''.  
The map shows several numbered ''rooms'', connected by a ''hallway''.  
In each ''Room'' there is a ''Cabinet'' (represented by a rectangular block).
In each ''room'' there is a ''cabinet'' (represented by a rectangular block).
The objective is for PICO to "deliver" medicines from one '''Cabinet''' to another (both defined by the judges before the challenge).
The objective is for PICO to "deliver" medicines from one ''cabinet'' to another (both defined by the judges before the challenge).
 
 
'''Setup Specifications'''
* All walls in the hospital will approximately straight.
The hospital will exist out of 3-6 rectangular ''rooms''.
* The doors inside the hospital will be (time-invariant) openings in the wall of about 0.5-1.5 m.
* It is possible that a room has more than one door (see ''Room 3'' in the example), however it is not possible to drive in a loop.
 


Since PICO does not have the capability to grab and cary medicines, the "delivery" task cannot be performed phycally.
Since PICO does not have the capability to grab and cary medicines, the "delivery" task cannot be performed phycally.
Instead, the "delivery" is defined by the following steps:
Instead, the "delivery" is defined by the following steps:
* Drive up to cabinet A.
* Drive up to ''cabinet'' A.
* Position in front of the cabinet, facing towards the cabinet.
* Position in front of the ''cabinet'', facing towards the ''cabinet''.
* Give a clear sound signal, signalling PICO has "picked up" the medicine.
* Give a clear sound signal, signalling PICO has "picked up" the medicine.
* Drive to cabinet B.
* Drive to ''cabinet'' B.
* Position in front of the cabinet, facing towards the cabinet.
* Position in front of the ''cabinet'', facing towards the ''cabinet''.
* Give a clear sound signal, signalling PICO has "put down" the medicine.
* Give a clear sound signal, signalling PICO has "put down" the medicine.


'''Challenge Conditions'''
'''Challenge Conditions'''
* PICO will start in the ''Hallway'', PICO will start up to 1 m away from the ''parking wall'' and definitely not touching it. PICO might not be aligned perfectly with the walls, but the wall on which the parking has to be done is behind PICO at first.
* PICO will start in the ''Hallway'', PICO will start up to 1 m away from the ''parking wall'' and definitely not touching it. PICO might not be aligned perfectly with the walls, but the wall on which the parking has to be done is behind PICO at first.
* After starting the software, PICO has to explore the (3-6) ''rectangular rooms'' of the Hospital, building a map, which will be needed for a later task. The doors inside the hospital will be (time-invariant) openings in the wall of about 0.5-1.5 m. It is possible that a room has more than one door (see ''Room 3'' in the example), however it is not possible to drive in a loop.
* After starting the software, PICO has to drive to the first ''room'' to "pick up" the medicine.
*
* After starting the software, PICO has to explore the (3-6) ''rectangular rooms'' of the Hospital, building a map, which will be needed for a later task.  
* During the mapping, one of the team members has to show the map being built and comment on the map and the operation of PICO. How the mapping is presented is left up to the groups, remember we would like to see the worldmodel and understand what PICO is doing. (you could use the io.speak functionality here!)
* During the mapping, one of the team members has to show the map being built and comment on the map and the operation of PICO. How the mapping is presented is left up to the groups, remember we would like to see the worldmodel and understand what PICO is doing. (you could use the io.speak functionality here!)
* When the map building is complete, PICO has to park backwards to the wall behind the starting position. Parking is done upon touching the wall, assessed by the tutors. After PICO parked, PICO should say: "I am parked!" (io.Speak).
* When the task is complete, PICO has to park backwards to the wall behind the starting position. Parking is done upon touching the wall, assessed by the tutors. After PICO parked, PICO should say: "I am parked!" (io.Speak).
* Upon touching the wall, a second executable could be started, note however that it has to be build before the challenge starts!
 
* We will then place an object in one of the ''rooms'', PICO has to find this ''object'' and stand still close to it and say: "I found the object!".
* When PICO stopped moving close to the ''object'', the challenge is completed.


'''Challenge Specifications'''
'''Challenge Specifications'''
Line 39: Line 48:
* Maximum speed (is limited in PICO): 0.5 m/s translational, 1.2 rad/s rotational.
* Maximum speed (is limited in PICO): 0.5 m/s translational, 1.2 rad/s rotational.
* There will be no second attempt if first attempt was successful
* There will be no second attempt if first attempt was successful


'''Visualization'''
'''Visualization'''
* Your code should save a snapshot of the model (e.g., using OpenCV)
* Your code should save a snapshot of the model (e.g., using OpenCV)
* The final snapshot should be saved after parking and can be used for presentation while pico finds the object
* The final snapshot should be saved after parking and can be used for presentation while pico finds the object


'''Robot Software'''
'''Robot Software'''
Line 56: Line 67:
** Building separate catkin workspaces during the final challenge is not allowed
** Building separate catkin workspaces during the final challenge is not allowed
** The safest way to make sure your code works is by avoiding catking workspaces and including everything in your CMakeLists.txt
** The safest way to make sure your code works is by avoiding catking workspaces and including everything in your CMakeLists.txt


''' Hint '''
''' Hint '''
* The following hint is provided regarding the location of the object:
:::::'''''The object will be located in the room for which most openings (i.e., doors) have to be passed through to enter it'''''

Revision as of 11:27, 7 May 2019

Scheme of a possible Hospital, with measurements, but not up to scale!

Challenge Description

The figure on the right shows a 2D representation of a possible Hospital setup, as an example. The map shows several numbered rooms, connected by a hallway. In each room there is a cabinet (represented by a rectangular block). The objective is for PICO to "deliver" medicines from one cabinet to another (both defined by the judges before the challenge).


Setup Specifications

  • All walls in the hospital will approximately straight.

The hospital will exist out of 3-6 rectangular rooms.

  • The doors inside the hospital will be (time-invariant) openings in the wall of about 0.5-1.5 m.
  • It is possible that a room has more than one door (see Room 3 in the example), however it is not possible to drive in a loop.


Since PICO does not have the capability to grab and cary medicines, the "delivery" task cannot be performed phycally. Instead, the "delivery" is defined by the following steps:

  • Drive up to cabinet A.
  • Position in front of the cabinet, facing towards the cabinet.
  • Give a clear sound signal, signalling PICO has "picked up" the medicine.
  • Drive to cabinet B.
  • Position in front of the cabinet, facing towards the cabinet.
  • Give a clear sound signal, signalling PICO has "put down" the medicine.


Challenge Conditions

  • PICO will start in the Hallway, PICO will start up to 1 m away from the parking wall and definitely not touching it. PICO might not be aligned perfectly with the walls, but the wall on which the parking has to be done is behind PICO at first.
  • After starting the software, PICO has to drive to the first room to "pick up" the medicine.
  • After starting the software, PICO has to explore the (3-6) rectangular rooms of the Hospital, building a map, which will be needed for a later task.
  • During the mapping, one of the team members has to show the map being built and comment on the map and the operation of PICO. How the mapping is presented is left up to the groups, remember we would like to see the worldmodel and understand what PICO is doing. (you could use the io.speak functionality here!)
  • When the task is complete, PICO has to park backwards to the wall behind the starting position. Parking is done upon touching the wall, assessed by the tutors. After PICO parked, PICO should say: "I am parked!" (io.Speak).


Challenge Specifications

  • Do not touch the walls! Slightly touching is allowed, however, bumping (i.e., driving head-on into a wall) is not allowed! If PICO hits the wall, we decide whether it counts as bumping.
  • Every team has two trials (= max one restart). A trial ends if:
    • PICO bumps into the wall
    • PICO 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:
    • PICO 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 PICO): 0.5 m/s translational, 1.2 rad/s rotational.
  • There will be no second attempt if first attempt was successful


Visualization

  • Your code should save a snapshot of the model (e.g., using OpenCV)
  • The final snapshot should be saved after parking and can be used for presentation while pico finds the object


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. Note that the Mapping/Parking-phase and Searching-phase can have separate executables, both have to be build before the challenge.
    • 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 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.
  • If you use a separate catkin workspace
    • Make sure this workspace is compiled during the final testing hour
    • Building separate catkin workspaces during the final challenge is not allowed
    • The safest way to make sure your code works is by avoiding catking workspaces and including everything in your CMakeLists.txt


Hint