Team Commando Tutorial/Explanation of Methods

From GcatWiki
Revision as of 22:12, 16 May 2012 by Jogaleotasprung (talk | contribs) (Guide)
Jump to: navigation, search

Requirements

  • iRobot Create
  • Command Module
  • Virtual walls
  • PC with Windows OS
  • RoboRealm
  • MATLAB
  • webcam
  • flashlight
  • reflective tape

Guide

Overview

Team Commando is so named due to their use of the onboard Command Module to control the robot. As opposed to the wireless communication used by Team R2D2, all of Team Commando's computation was done on the physical body of the robot itself.

Generally, the implementation works like this:

The robot is equipped with both the command module and an onboard laptop/webcam combo. The two are actually two independent systems. The command module controls navigation, as described in the following section. While navigating the hallways, the computer vision system knows not to check for windows because it is running a motion detection filter; once it detects little to no motion, it realizes that the robot has stopped within a room and beings to run its detection script, which is covered in more detail below.

Navigation

Our general navigation algorithm is as follows:

  • Find checkpoint
  • Move along the wall a preset distance
  • Now the robot is at a door. Face the door.
  • Drive at maximum speed to clear threshold. Once threshold is clear, resume normal speed
  • If door is open, then enter room, wait until image processing is done, turn around and leave
  • Find the next checkpoint... etc.

Checkpoints can be a virtual wall, or the real wall immediately next to the room the robot has just left. The first checkpoint is just the robot's starting point. The robot follows the wall whenever it is measuring distance because the wall keeps the robot going straight ahead, which helps precision.

Detecting Windows

  • Method
    • attach laptop to iRobot
    • receive signal from robot when it has arrived in room via command module serial ports => matlab
    • webcam pans and roborealm scans for magenta
      • matlab checks to see if roborealm has found magenta at every degree of the pan
        • if found, places a one in the vector entry corresponding to that room
  • Sticker for windows
    • bottom of sticker should be reflective
    • reflective part only visible when window open
    • sticker mockup

Communicating between navigation and detection

  • created motion sensing filter
  • MATLAB starts window detection filter when motion sensor determines that robot has stopped moving

Outstanding Issues/Ideas for Further Work

    • Establishing actual communication between the laptop and command module would be more efficient. It is unclear whther or not serial port communication is possible.
    • With the current motion detection script, the robot has no way of knowing it has skipped a room in the event that the door is closed.
    • If lights are on in a room, the robot will likely detect a window. It is also prone to accidentally picking up reflections from the metal on desks.
    • The webcam is in a rather precarious position on top of the robot, especially considering how hard the robot rams closed doors.