blankblank blank




Measure Distances, Heights And Direction With Your Android Phone Using Smart Measure



Application Name: Smart Measure

Description: Measure object distance, height and direction.

Publisher’s website: Android Boy

Cost: Free

Version/date reviewed: v.1.1.1  /  9-6-10

Phone/OS: Droid X / Android 2.1

sm_QR

Android market link (mobile app only)
Android Market (browser)


Smart Measure uses your Android’s orientation sensor, camera view and some simple trigonometry to figure out how far away and in what direction and object is. If you read the comments on the Android Market about this app, you’ll see that some people think it’s great, while others complain that it doesn’t work at all. I had problems getting it to work correctly, but ultimately managed to get reasonable results. In order to get it to work, you have to understand its limitations, and also configure it correctly for your unit.

 

The program starts off with a simple diagram explaining how it works; by using the height of the camera above the ground, and the angle you need to tilt the unit so that a crosshair touches the base of the object you’re measuring, it can calculate the distance to the object:

sm_first

Then, using the distance and the angle you have to tip the camera up, it can calculate an object’s height:

sm_2

But in order to get an accurate measurement, you need the following:

– A constant height of the camera above ground; you need to measure this value (in meters), and input it as a constant into the program. But you also have to make sure that when you tilt the camera to measure the angle, you also don’t change its height, as this will throw the measurement off. For me, the best approach was to have the camera lens at eye level, and then twist my wrists to rotate the camera while keeping the camera lens at the same height. This takes some practice, as my natural inclination was to lower or raise the camera as I tilted it up or down.

– An accurate angular measurement. Smart Measure has a default “vertical” angle of 88 degrees, but this resulted in horribly inaccurate results. There’s a built-in calibration mode, where you place your camera against a known vertical surface and push a button, but this didn’t work for me – it kept complaining that the angle was too steep. You can also enter a “vertical” calibration angle manually, and this was the approach that worked for me – I finally wound up at 94 degrees vertical. But to get good results, you have to measure a distance manually using a tape measure, use Smart Measure to determine the distance, then adjust the calibration angle until Smart Measure’s value agrees with the actual distance. Once I did this, the distance measurements I got were fairly decent.

– Your feet and the base of the object need to be at the same level. For practical purposes, this means that you both should be on a flat, level surface.

– Maximum distance readout with Smart Measure was 80 meters, but at those distances, even a small shift in camera angle results in large measured distance changes. It seemed to me that  about 50 meters was the maximum distance at which you could expect to get  results that were even reasonably close, if not 100% accurate.

Once I had the unit calibrated and configured, using it was easy. Using the screen, point the crosshair at the base of the object you want a distance to, and press the “shutter” button at lower right to capture and freeze the distance measurement:

sm_distance

You’ll get a “freeze-frame” of the capture shot in the upper-right corner. Here, the actual distance to the base of the wall was 5.05 meters, but since the capture was slightly short, this is pretty accurate.

Once you shoot the distance measurement, if you want the height, tap on the tree icon, tip the camera up so that the crosshair touches the top of the object, and press the “shutter” button again to freeze the height measurement:

sm_height

Actual height was 2.8 meters, so it’s a bit short, but still not too bad. Notice also that there’s a compass in the upper-left with a digital readout of the bearing; as best as I can tell, it’s reading the magnetic direction (which can be off from your true direction, often substantially; more on this in future posts).

Issues:

– One force-close, but  usually worked without incident.

– In compass, digital bearing is in small digits, and is obscured by graphic indicator when you’re point north.

– Magnetic bearing given, not true bearing.

– No way to save data; screen capture would be helpful.

Final thoughts:

If you calibrate it correctly, and keep in mind its limitations, Smart Measure is a quick and modestly accurate way to measure distances, heights and bearings of close objects (<50m distance). But it’s no substitute for a tape measure, or even a well-calibrated foot pace. Still, it has a permanent place in my Android phone’s toolbox.


Looking for something else? Enter some keywords below, then click "Search".    




6 Responses to “Measure Distances, Heights And Direction With Your Android Phone Using Smart Measure”


  1. 1 uniquereplica

    It will be interesting to see what will be possible once we have two HD cameras on devices for 3d video recording – I would have thought it must provide some advantage in doing these sorts of operations. The big question though will be if a phone will have adequate space to separate the lenses!

  2. 2 leszekp

    Yes, the small spacing on the lenses will limit their effectiveness in these kind of apps to fairly short distances.

  3. 3 Aslam Hameed

    Greetings,
    I am impressed by reading your innovative apps. But I cannot download the smart measure, could you please e-mail me the file

    Best Regards

  4. 4 leszekp

    I am not the author of the apps, I just write about them. Download it from the Android Market.

  5. 5 Mario

    Very nice concept!
    It work well on long distances, but not with small objects.

    I recommend SLIDE METER for that!
    https://play.google.com/store/apps/details?id=com.dicotomica.eMeter

  6. 6 Haris

    Hai I read your post, really nice….
    As you said the application uses orientation sensor for calculating the angle..
    My question is how does it calculate exact height I mean the algorithm used to calculate the height..

    By referring your post I think this is the way the algorithm calculate the height…

    By STEP1 we can calculate the distance from the object..
    AB=h*tan(angle)

    where we angle can be taken as the pitch value of the orientation sensor….

    And By referring STEP2

    We can calculate the remaining height of the object BB’-AA’=h’=BB-h=AB*tan(angle)..
    where angle=pitch-90;

    Then total height of the object

    BB’=h+h';

    Am I right…….Actually I need to develop some custom application using the above algorithm…

    I also doubt that does it calculate the height accurately with in 50 meter distance… Because as the distance between camera and object increases the size of the object appear reduced compared to the same object in few meter away from the camera.. I mean can we take h and the object height same when the camera sensor pointing horizontally, that is when pitch of the orientation sensor equal to 90 degree..

    Thanks in advance……..