Difference between revisions of "Project1: Implement algorithm using microphone array"

From ESE497 Wiki
Jump to navigationJump to search
Line 1: Line 1:
 
==PC Implementation - Work in groups of 2==
 
==PC Implementation - Work in groups of 2==
*Start with this [[media:MicSourceLocator.zip|simulation model]] of the 4 microphones. Extract to your Home Directory and run MicSourceLocator.vi. This can be the starting point for your application.
+
*Start with this [[media:MicSourceLocator.zip|simulation model]] of the 4 microphones. Extract to your Home Directory and run MicSourceLocator.vi. This can be the starting point for your application. In the end, your VI should look like [[media:MicSourceLocatorSolution.jpg|this]].
**Source Localization
+
* Simulation
***Compute angle of arrival for each pair
+
** Create FindCCPeak subVI to compute the relative delay between the microphone pairs. Instantiate this into your while loop.
***Compute source location by computing the intersection of the 2 lines given (x,y,theta) of each pair
+
** Create ComputeAngle subVI to compute the angle of arrival from the delay and the microphone pair geometry. Trap the case where theta is 90 degrees and set the tangent to 1,000,000 instead of infinity.
***Compute all possible intersections (Web)
+
** Create ComputeIntersection subVI that computes the triangulation equation to estimate the source location
**Bandpass signal on all channels
+
** Create Web subVi that computes all of the possible triangulations. Use your ComputeAngle and ComputeIntersection subVIs.
**Spectrogram
+
** Plot the results of the Web and the Source Location estimate on an XY graph
**Store previous buffer and do level detection to handly an Asynchronous Source
+
* Test with the 4 microphone array [[Media:Microphone_Array_Connections.pdf‎ |microphone array]]. Connect the line out from the PC to a speaker and generate a chirp on the sound card using [[media:Chirp2SoundCard.vi|Chirp2SoundCard.vi]].
*Test with microphone array [[Media:Microphone_Array_Connections.pdf‎ |microphone array]]. Connect the line out from the PC to a speaker and generate a chirp on the sound card using [[media:Chirp2SoundCard.vi|Chirp2SoundCard.vi]].
 
 
**In the DAQ Assistant, make sure the Analog Inputs are from the USB-6210, differential, +/- 1 V. Make sure you wire the Stop control into the DAQ Assistant
 
**In the DAQ Assistant, make sure the Analog Inputs are from the USB-6210, differential, +/- 1 V. Make sure you wire the Stop control into the DAQ Assistant
**To test with "Real Simulated Data", use these [[media:RealSimData.vi‎|waveforms]] to troubleshoot.
+
* Test with "Real Simulated Data", use these [[media:RealSimData.vi‎|waveforms]] to troubleshoot.
*When everything is working, clean up your block diagram to look something like [[media:MicSourceLocatorSolution.jpg|this]]. This will make porting your code to the robot easier.
+
*When everything is working, clean up your block diagram and modularize your code so it looks like the solution. This will make porting your code to the robot easier.
  
 
==Robot Implementation - Work in groups of 2==
 
==Robot Implementation - Work in groups of 2==

Revision as of 18:58, 27 April 2010

PC Implementation - Work in groups of 2

  • Start with this simulation model of the 4 microphones. Extract to your Home Directory and run MicSourceLocator.vi. This can be the starting point for your application. In the end, your VI should look like this.
  • Simulation
    • Create FindCCPeak subVI to compute the relative delay between the microphone pairs. Instantiate this into your while loop.
    • Create ComputeAngle subVI to compute the angle of arrival from the delay and the microphone pair geometry. Trap the case where theta is 90 degrees and set the tangent to 1,000,000 instead of infinity.
    • Create ComputeIntersection subVI that computes the triangulation equation to estimate the source location
    • Create Web subVi that computes all of the possible triangulations. Use your ComputeAngle and ComputeIntersection subVIs.
    • Plot the results of the Web and the Source Location estimate on an XY graph
  • Test with the 4 microphone array microphone array. Connect the line out from the PC to a speaker and generate a chirp on the sound card using Chirp2SoundCard.vi.
    • In the DAQ Assistant, make sure the Analog Inputs are from the USB-6210, differential, +/- 1 V. Make sure you wire the Stop control into the DAQ Assistant
  • Test with "Real Simulated Data", use these waveforms to troubleshoot.
  • When everything is working, clean up your block diagram and modularize your code so it looks like the solution. This will make porting your code to the robot easier.

Robot Implementation - Work in groups of 2

Projects for smaller groups:

  • Compute angle of arrival on Robot platform
  • PC to Robot communication using Shared Variable
  • Robot position control (x,y,theta)
  • Main PC Controller to compute source location from 5 robots
    • Manual Position
    • Automated controller
  • Robot/FPGA implementation of Cross Correlation
  • Thin client communication to Robot

System Integration - Everybody

  • Get all of the individual pieces to work together on all 5 robots