Here is what I am trying to accomplish:

In the middle of a room, I have a mechanism with a laser diode mounted on it that can be moved in all axis by a motorized pan/tilt head type device. This mechanism is to stay fixed in the middle of the room at all times.

Now say that I have a phone for example. I want to be able to walk around the entire room all whilst having the laser pointer constantly following and aiming at the phone with as much accuracy as possible.

Which hardware, if any, should I use in this circumstance to help accomplish this? I can mount anything needed on both the tracking device (laser) and device being tracked (phone).

This is my first time working on a tracking system of any type. I have attempted a fair amount of research on the topic, but I am still left in a haze. Mostly everything I find has to deal with a camera tracking/following a point, but I would like to avoid this method if possible.

If more info is needed, let me know.



I really should start by saying that a "motorized pan-tilt head" is not the way to go. Any reasonably-priced and sized unit will not have the frequency response you need in order to compensate for body movement while walking. You need something like a galvanometer scanner, combined with an IMU to keep track of your orientation with respect to the rest of the room.


Trying to do what you are, and with what you have, is extraordinarily difficult. The basic question is, how do you know, based on what a single laser can tell you, what and where the phone is?

Since you don't know the color of the phone, and you don't know the color of the surroundings, there is no obvious way to use the intensity returns to distinguish the phone from the table, walls, floor or whatever. Is there anything else you can use?

Yes, you can modulate the laser (either AM or FM) and use it as a LADAR (radar but with light). You raster-scan this LADAR in order to build up a 3D surface model of the room from your current perspective. It's a surface model rather than an object model since you can't see the back sides of any object. You then analyze the surface model, looking for the distinctive shape of the phone (from an initially unknown angle). Once you've found it, you job gets easier for two reasons. First, you know approximately where it is, and successive scans can cover a fairly small area, in contrast with the start-up condition, where the entire room space needs to be scanned. Second, since you've identified the phone's orientation, you've drastically reduced the number of possible orientations you need to consider in the subsequent scan.

Needless to say, this is a very large computational task. Especially, the need to consider all possible orientations of the phone will suck up CPU cycles. Plus, a shiny object like a phone is prone to specular reflections. This means that a fair amount of the time the laser beam will get no return at all, as the beam is reflected off to someplace useless, rather than being scattered back to the detector. Can we cheat?

Well, yeah, sort of. Remember how I said you can't use the intensity returns? That's not necessarily true. If you attach a set of corner cubes to the phone (which probably counts as cheating - how many phones do you see with corner cubes attached?) or maybe even some reflective tape, your scan can simply look for the strongest intensity return. It will occasionally get fooled by a specular reflection from something else, but with luck that will be rare, and you can compensate by not allowing big jumps in apparent target position.


Similar to WhatRoughBeast has said, I'd break this into two questions:

  • Must you 'acquire' the phone target from scratch, or can you start off in a known position? This is much harder if it's required.
  • Once you've acquired the target, can you keep track of it?

Given a standard smartphone, what I would try is this:

Attach a diffuser over the camera. Something with a reasonable target area. Say half a pingpong ball. The camera will then see ambient light when the laser is not pointing at it and a much more red image when it is. (You should avoid pointing even a weak laser directly at a camera, but a diffuser is fine).

Have a suitable galvo-mirror system so the laser can be swept quickly across the target. A linear sweep will give a blip on the sensor which tells you both where it is in the sweep and its apparent angle. Doing this in two dimensions will give you a rough 3D position in polar coordinates. Don't forget to account for latency in the system.

Use the smartphone's inertial measuring system to tell you how far it's moved when it moves. This is prone to drift, but that's what the sweep is for: recalibrating the actual position from the inertial estimated position. A spiral sweep from last estimated position will let you re-acquire the target if you lose it.

This is essentially CRT "light gun" technology applied to the surface of a sphere.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.