TheBitterEnd
Well-known member
I wasn't going to post about this until I had done a bit more work but since something similar has come up on another thread here goes ...
Let me start out by saying that this is not what I thought I'd end up with when I thought about trying to make a cheaper disto about a year ago. But this approach has the main advantage that it works with any Laser Measure and requires no hardware modifications.
I used a ?50 Laser Distance Measure off ebay
An Android phone
and an enclosure that allows buttons on both devices to be pressed
The phone is the clever bit. It has a 3 axis magnetometer and a 3 axis accelerometer, it also has a camera. The basic process is to point the Laser, read the bearing, measure the distance and then then use the camera to OCR (optical character recognition) the Laser distance reading. All the readings are logged on the phone and there is the option to save the Image of the distance measurement so that the OCR can be verified.
The phone has a Flight Mode which turns off all the transmitters and reduces the interference with the magnetometers. However there is a crucial thing to note about Android phone magnetometers - THEY ARE ALWAYS IN CALIBRATE MODE - this has pros and cons. The main advantage is that it is really easy to calibrate the magnetometers, the main disadvantage is that you always need to calibrate before taking a reading.
The upshot is that I can get better than 1% loop closures (as good as I can get with a compass).
As I said at the start I wasn't really intending to put this out there yet so I haven't had chance to post any code (and it probably needs a bit of tidying and documentation). I also think I can improve the capturing process to reduce the effects of the phone display on the calibration so work still to do. But if anyone wants to have a o let me know.
Let me start out by saying that this is not what I thought I'd end up with when I thought about trying to make a cheaper disto about a year ago. But this approach has the main advantage that it works with any Laser Measure and requires no hardware modifications.
I used a ?50 Laser Distance Measure off ebay
An Android phone
and an enclosure that allows buttons on both devices to be pressed
The phone is the clever bit. It has a 3 axis magnetometer and a 3 axis accelerometer, it also has a camera. The basic process is to point the Laser, read the bearing, measure the distance and then then use the camera to OCR (optical character recognition) the Laser distance reading. All the readings are logged on the phone and there is the option to save the Image of the distance measurement so that the OCR can be verified.
The phone has a Flight Mode which turns off all the transmitters and reduces the interference with the magnetometers. However there is a crucial thing to note about Android phone magnetometers - THEY ARE ALWAYS IN CALIBRATE MODE - this has pros and cons. The main advantage is that it is really easy to calibrate the magnetometers, the main disadvantage is that you always need to calibrate before taking a reading.
The upshot is that I can get better than 1% loop closures (as good as I can get with a compass).
As I said at the start I wasn't really intending to put this out there yet so I haven't had chance to post any code (and it probably needs a bit of tidying and documentation). I also think I can improve the capturing process to reduce the effects of the phone display on the calibration so work still to do. But if anyone wants to have a o let me know.