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

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
No edit summary
Line 22: Line 22:
* All ''walls'' in the ''hospital'' will be approximately straight.
* All ''walls'' in the ''hospital'' will be approximately straight.
* All ''corners'' in the ''hospital'' will be approximately right.
* All ''corners'' in the ''hospital'' will be approximately right.
* The width of the ''hallway'' will be about 0.5-1.5 m.
* The ''doors'' inside the ''hospital'' will be (time-invariant) openings in the ''walls'' of about 0.5-1m that may be '''closed or open'''.
* The ''hospital'' will exist out of 3-6 rectangular ''rooms''.
* It is possible that a ''room'' has more than one ''door''.
* The ''doors'' inside the ''hospital'' will be (time-invariant) openings in the ''walls'' 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.


('''CHECK WITH THE REST''')
* A ''cabinet'' is represented by a rectangular block.
* Inside every ''room'', there will be a ''cabinet''
* A region will be marked in front of the ''cabinets''. This is the region in which PICO must stand when "taking" or "delivering" the medicine.
* A ''cabinet'' is represented by a rectangular block of approximately 0.2x0.4m and of a height equal to the walls.
* The front of the cabinet is defined as the first linesegment in the line array that represents a cabinet.  
* A region will be marked around the ''cabinets''. This is the region in which PICO must stand when "taking" or "delivering" the medicine.
* This region will be a square with sides equal to the length of the front of the ''cabinet''.
* This region will have a offset of approximately 0.5m from the ''cabinet''.





Revision as of 08:31, 8 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 rooms and a hallway. In each room there are cabinets (represented by a rectangular block). The objective is for PICO to "deliver" medicines from one cabinet to another (both defined by the judges just before the challenge starts).

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

  • Drive up to the first cabinet.
  • Position in front of the cabinet, facing towards the cabinet.
  • Give a clear sound signal, signalling PICO has arrived at cabinet A (io.speak("I arrived at cabinet four")).
  • Drive to the next cabinet.
  • Position in front of the cabinet, facing towards the cabinet.
  • Repeat until all the cabinets are visited in the correct order


Setup Specifications

  • All walls in the hospital will be approximately straight.
  • All corners in the hospital will be approximately right.
  • The doors inside the hospital will be (time-invariant) openings in the walls of about 0.5-1m that may be closed or open.
  • It is possible that a room has more than one door.
  • A cabinet is represented by a rectangular block.
  • A region will be marked in front of the cabinets. This is the region in which PICO must stand when "taking" or "delivering" the medicine.
  • The front of the cabinet is defined as the first linesegment in the line array that represents a cabinet.
  • This region will be a square with sides equal to the length of the front of the cabinet.


Challenge Conditions

  • PICO will be placed in the Hallway, 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.
  • If PICO found the correct cabinet and signalled his "pick up", he has to drive to the next room to "drop off" the medicine.
  • The task is completed after signalling the "drop off", after which 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).
  • During the challenge, one of the team members has to show the map with PICO in it 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!)


Challenge Rules

  • 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
  • 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.


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