The Artificial Perception Laboratory

40 St. George Street, Room 4158 - Phone: (416)-946-8813
APL Infrastructures
Joint Speaker Localization and Orientation Estimation
Speech Separation Using Time-Frequency Phase-Error Masking
The Primary Array Project
The Secondary Array Project
Acoustic Robot Navigation Project
Self-Localizing Dynamic Camera Arrays
Visual Emphasize Using Sound Localization
Automated digit recognition for filter evaluation
Palm Integration Project
Helicopter Navigation Project
ER1 Robot Navigation Project
APL 2003-2004 Biennial Report
Speech Separation Experiments
Comparison of FPGA and DSP Implementaions of Speech Separation Algorithm
The Edward S. Rogers Sr. Department of Electrical and Computer Engineering
University of Toronto

Acoustic Robot Navigation Project

MATLAB Functions

The overall goal of the robot is to conduct a guided tour of the APL room. Coordinates of various stations in the room are stored, and the robot moves successively from station to station. At each station, it gives an explanation of that station. To move between stations, the robot make several steps, localizing itself at each step and recalculating the way to the next station.

The files required for sound localization are:

  • soundlocROBOTx.m -- main program
  • tdoamap3.m -- calculates maximum delays
  • tdoamap_mex.c -- (needs to be compiled in matlab's c compiler)
  • tdoa4_mex.c -- calculates delays between microphones (needs to be compiled in matlab's c compiler)
  • syn.txt -- to synchronize communications
  • coordinates.txt -- to return coordinates from the localization
  • localize.m -- makes the robot speak a phrase and outputs the localization
  • findmax.m -- finds the location of the maximum value in an array
The files required for robot navigation are:

  • tour.m -- main program, instructs robot to travel from station to station
  • traverseMain.m -- main traversal function to go between two stations, uses a long step, then a final exact step
  • traverseLoop.m -- sub-traversal function, uses constant length steps to get within a certain radius of the destination
  • localize.m -- same as for sound localization
  • direction.m -- calculates direction (angle) between 2 points
  • randomSentence.m -- outputs a random sentence for each localization step
  • checkAhead.m -- checks ahead of robot's intended step for known obstacles
  • avoidObstacle.m -- moves away when an obstacle is encountered
  • avoidObstacleAhead.m -- adjusts course when known obstacle is ahead
  • findDirectionOfTurn.m -- finds direction to turn (left or right) when obstacles need to be avoided
  • talk.m -- instructs robot's speech synthesizer to speak, then clears serial buffer
  • traverseAngle.m -- calculates angle from x-axis between two points

As the robot moves, its position at each step of the way is plotted on a map of the room. This visual representation is useful for debugging, and since the cumulative path is plotted, is convenient for assessing the overall success of the robot's runs.

The files required are:

  • plotPath.m
  • aplmap.bmp
  • plotObstacle.m


The following clips are in ".avi" format. Please make sure that the appropriate codec are installed.
Download Divx Codec

© Copyright 2005 the Artificial Perception Laboratory