Search Challenge

Three teams are currently working on the class-wide competition to search for targets in unknown environments.

The Environment

The robots will be tested in the old STAR center (CC300). The environment is unknown only in the sense that your robot is not allowed to have a pre-programmed map of the test environment. Of course to be successful at the task, you will have to test extensively in this environment. Perhaps after the competition is over we can try to the robots out in a different space to see how they work in an novel environment.

The Targets

The targets will be four colored rubber balls (the balls are red, green, blue, and yellow). These balls are currently in AC128, but it might make sense to move them over to CC300 as work on the project ramps up. I picked these as targets since I thought that they would be: (1) easily identifiable using the Pi's camera, (2) detectable using the Pi's LIDAR. I am relying on the student teams to let me know if either of these assertions is not true. The red, green, and yellow balls are all the same size, however, the blue one is slightly smaller. You are allowed to customize your software to know the size of each ball.

The Competition

Each team will have 20 minutes to complete the task. The origin and axes of the coordinate system will be marked clearly on the floor with tape (see figure above). Also marked on the floor will be a circular recovery zone. This recovery zone is an area deemed safe for the team to enter. The robot may be started at any point within this recovery zone. Additionally, at any point during the challenge if the robot is within this zone, the team may grab the robot, reposition it, and optionally start / stop any relevant ROS nodes. The radius of the recovery zone is 2 meters and will be marked with colored tape (exact color TBD, let me know if you have suggestions).

Output

At the end of the 20 minutes, the team must produce estimates of the locations of each of the four targets. The guesses should be expressed as (x,y) points with respect to the coordinate system defined in the figure above. Coordinates should be expressed in units of meters. All locations are with respect to the center of the target (i.e. the ball).

In addition to the predicted locations, the teams are also encouraged to produce an image that encodes the estimated map of the environment along with the predicted locations of each of the four targets. The locations of the four targets should be encoded on the map image by drawing a point of the appropriate color at the predicted location. There will be no formal scoring of the produced map. This decision is largely a result of the difficulty of quantitatively assessing the accuracy of the map rather than a commentary on the importance of mapping in this challenge.

Scoring

The team's score will be computed as the mean distance between the prediction of each target location and its true location. (feedback on this? I was thinking median distance might be a good one as well).

Additional Rules

    1. You are not permitted to modify your code during the competition. However, if you have designed interfaces (either command line or graphical) that let you modify your system's behavior, these are fair game (for instance a slider that modifies the color thresholds for identifying a particular ball would be acceptable). However, you must modify your system's behavior only when it is in the recovery area.
    2. You are not permitted to use tele-operation. All motor commands must be generated by the robot autonomously.
    3. If the robot malfunctions (for instance due to dropped network connection), the clock will be stopped.
    4. While in the recovery zone, you should not look around the search area to see where the targets are. While difficult to enforce, doing this is violating the spirit of the competition.

Tips for Optimal Performance in CC300

In order to optimize the wireless connection to the your Neato while you are working in CC300, you should take the following steps:

    1. Open the large motorized window by hitting the button labeled "Open" on the panel that says "Open / Close / Stop". This will improve Wifi signal
    2. Leave the door to the hallway open (again to improve Wifi signal).
    3. Ensure that your laptop has a good connection to the network
    4. (method 1) Use an Ethernet cable to hook your laptop up to the network. I'll grab some extras to have on hand in CC300.
    5. (method 2) Force your computer to use the 5GhZ network. The easiest way to do this is to click on the wireless icon on the Ubuntu desktop menu bar. Next, select "Edit Connections", and then click on the "Wireless" tab. Click on "OLIN-ROBOTICS" and hit the "Edit..." button. Next, under BSSID put 64:87:88:37:F5:85 (see image below). This will ensure that you use the right access point and the right frequency channel when connecting to the wifi network. NOTE 1: if you are in the class of 2017, you will not have this option as your laptops do not have 5GhZ band radios (unless you purchased your own WiFi dongle / card). NOTE 2: if you are not working in CC300 you will have to determine what BSSID to connect to (it will be location dependent). To do this ssh into the pi (username: pi, pw: raspberry) and then execute the comand iwconfig. You will see the BSSID to use in the command output under "Access Point".