Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Topcoder recently completed an ideation challenge to develop algorithms to measure the height and length of children.  One of the most creative solutions that we received describes an algorithm to do measurement using sound.  The solution statement is attached and describes a solution using two android devices, but it seems to be that a solution using a single android device and a set of headphones is viable.

Here is how the application will work:

The application itself is very simple.  There are two modes of the system:  measurement mode and calibration mode.  When the app starts it should ask users whether they need to calibrate the application.  From my system tests, I am assuming that each acoustic environment and set of headphones will require some adjustments.  The primary use case is measurement mode.  Here is how the app should work in measurement mode:

  1. The user should set the Android device on a table or other flat surface.  
  2. The user will stretch out the headphone cord for the length of the measurement to take place.  Obviously this will limit the length of measurement to the length of the headphone cord itself -- less than 1 meter.  This is fine since the primary use case here is to measure the length of small children who would be too little to stand in any case, but we're creating a prototype that can measure anything (at relatively short distances).
  3. The user hits the Start button on the application
  4. The application emits a distinctive (but hopefully not piercing/unpleasant) sound which can be captured by the microphone on the handset.
  5. The application measures the sound and displays the distance in centimeters between the handset and the headphone earpiece.
  6. The user clicks the Stop button on the application.

There is a tool for IOS, Acoustic Ruler, which implements similar functionality.  Please see the link here:  https://iqtainment.wordpress.com/acoustic-ruler/.  We're looking to implement the single handset version.  My testing of this tool has revealed the need for a more substantial calibration process.   From my naive testing it seems that each set of headphones and each measurement surface is going to generate significant differences in sound signatures.

Here is an initial pass at a calibration process.  We may have to refine this if turns out to be ineffective. 

  1. After the user has selected "Calibration", the screen will ask the user to place a headphone 20 cm from the handset microphone.  The user will press a button when this has been done and the application will emit its measurement signal for a brief period.
  2. Next the calibration process will ask the users to place the headset 50 cm from the microphone.   The user will press a button when this has been done and the application will emit its measurement signal for a brief period.
  3. Next the calibration process will ask the users to place the headset 90 cm from the microphone.   The user will press a button when this has been done and the application will emit its measurement signal for a brief period.
  4. Next there is a validation step.  The user is asked to put the microphone at 10 cm from the microphone and see if the application the displays the correct measurement.   If the measurement is correct, the user confirms this and proceeds to the second validation step listed below.  If not the user can repeat the calibration process.
  5. Next there is a second validation step.  The user is asked to put the microphone at 60 cm from the microphone and see if the application the displays the correct measurement.   If the measurement is correct, the user should confirm that the measurement is correct and the application will proceed to measurement mode.  If not the user can repeat the calibration process.
     

The purpose of this challenge is to get the basic mobile application built and working with some accuracy.   If we achieve millimeter level accuracy with this initial challenge that will be wonderful but a follow up challenge is planned to refine the sound processing algorithm.   It will be easier to refine the sound processing once we have an application that can emit and receive sounds.

 



Final Submission Guidelines

  • Please submit a .war, .jar or .zip file with your code.  Please include all necessary libraries and dependencies to build and run your project.  Include gradle files, ant build.xml files or maven pom files etc…
  • Please submit written documentation for your submission
  • Please submit a video with a screenshare of your application in action
  • Please check the forums for possible updates.  This is an unusual application and there could be changes/refinements in requirements as we learn more about this problem.

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30049599