Project1: Implement algorithm using microphone array
From ESE497 Wiki
Revision as of 18:14, 4 May 2010 by Ed (talk | contribs) (moved Part2: Implement algorithm using sbRIO robot and microphone array to Part2: Implement algorithm using microphone array)
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 from the zip file.
- 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 RealSimData.vi from the zip file 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
- Background
- Read the LabVIEW for Robotics page
- Download the RoboticSensing.zip and open the MicSourceLocator project using LabVIEW 2009.
- Using Save As, save DMA Buffered Acquisition-2Channels (HOST).vi to a new name and start editing this.
- Compute angle of arrival on Robot platform using your ComputeAngle subVI
- Source Location using N Robots
- PC to Robot communication using Shared Variable
- NI Example Finder -> Toolkits and Modules -> Real-Time -> Network Communication -> RT Network Communication.lvproj
- RT Code to move robot to a new position (x,y,theta)
- LabVIEW code to command robot to new Manual Position using Shared Variable
- Add a 2nd Robot to Project
- Compute source location from 2 robots
- Expand to N robots
- Automated controller algorithm to optimize robot positions
- PC to Robot communication using Shared Variable
Extra Credit
- Thin client communication to Robot