Wide angle laser beams for anti-collision



Wide angle laser beams can detect and measure the range to people, trees and other safety critical objects from moving aerial or ground based platforms.

We've been experimenting with a new version of our SF10 laser altimeter to see what happens when we change the normally narrow, parallel laser beam into a wider, fan shape and align it horizontally or with a downwards tilt. There is a practical limit to the wide direction (major axis) of about 30 degrees but any angle from zero to thirty degrees is attainable. The best combination of range and sensitivity is found using a 10 x 3 degree beam pattern that can detect a person more than 10m away.

The two pictures above show the SF10 laser unit and an example of the modified laser beam pattern. The intensity, and therefore the detection sensitivity, is pretty uniform across the beam so even obstacles right at the edges give a good return signal. We're using time-of-flight technology to work out the distance and the unit has I2C, serial and analog interfaces.

The real purpose of this blog post is to ask the knowledgeable members of this forum for feedback about possible applications for wide laser beams, used either stand alone or in multiples. I admit that this is not going to be the ideal solution to every problem. Instead, I hope to use your feedback as a sanity check to see if we're going in the right direction with this technology.

Thanks, LD

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Hi LD,  So do I understand you correct, that you would use the long-range pin-point sensors on a scanning setup for SLAM, and then use the short range wide-angle sensors on fixed mounts for object detection?   Yes, that's basically what I would do.  

    The only hesitation I have is what is the outdoor range on the wide-angle sensor?  I would think it would be pretty short?  IIRC, in that demonstration video, I was only reacting to objects within 10m.  I wouldn't want to go any shorter than that, as shorter distances mean sharper stops are required.  And in my video, I was using very low speeds.  You would need a fairly long-range sensor for this to work at speeds such as 20 m/s.  Although, maybe that just isn't a consideration.  I'm not sure it would ever be practical to do reflex object avoidance at high speeds, since the ranges needed would basically mean that you are always going to detect something. And if the algorithm is a simple reflex to stop, instead of a more complex SLAM approach where we actually determine the size and shape of the object, and consider our path, the reflex will pretty much mean the UAV can't fly anywhere without constantly jerking to a stop every few seconds.

    So, the reflex avoidance will only ever work for short ranges and low speeds.  We shouldn't even consider using it at high speeds and distances, because it can never work.  But, I would say that 10m is the shortest detection distance we'd need.

    The way that algorithm in the test worked, is that I swept the beam, simply to make it act like a broad beam.  As you know, the SF/02 only runs at 12Hz, and I was using a 1 second period on the sweep.  For every period, I would watch for the shortest return, and capture that.  Then LPF that to try and smooth the output before sending it to the velocity controller.  In the next round of development, I am adding a tilt-mount.  This became necessary when watching the reaction of the system.  There are many times when the pitch back to stop, causes the beam to come off the object, so it starts flying forward again, then picks up the object, stops, starts... etc... it would sort of judder to a stop.  Pitch control would fix that.  I'm also going to add a pitch sweep.  

    And then the next step after that, would be to use the pan servo more intelligently, so that it not only sweeps, but it looks in the direction of travel.  I have a 330° servo, but I do have to concern myself with the landing gear.  I'll probably limit it to a 180 degree range.  So you'll have the 30° sweep, superimposed on the directional aiming.

    Both the direction aiming, and the pitch control, could be used with your wide-angle system.  It would allow us to eliminate the yaw and pitch sweep motions, which would help servo life.  It's actually really interesting, that I was using a 30° sweep (included angle), and was planning on using a 10° pitch sweep.  I'm not kidding, funny how that works out.

    I'm not sure that a fixed mount with the wide-angle sensor would work.  The pitch stabilization really becomes a problem.  And you'd need 12 sensors for 360° coverage.  

  • Nice video Rob!

  • @Rob - what kind of sensor and firmware are you using? Maybe I just didn't catch it from the video. Is it kind of OpenSource project where I can participate, because I'm working on something very similar.

  • Brilliant video Rob, thanks for sharing it!

    I think a complete solution for:

    takeoff -> low level flight -> high level transit -> low level flight ->landing

    would be to combine several technologies to handle every aspect of both navigation and avoidance.

    High level navigation is clearly the domain of GPS but low level flight is subject to a high degree of environmental variability. This means either a single, high resolution scanning solution that would take massive processing power to handle the complex data, or alternatively, break the problem down into more manageable tasks where the roles of reflex avoidance and SLAM are separated out.

    Reflex avoidance could take place independently of, and in parallel with, a slower mapping function. SLAM data can be collected using a scanning mechanism like the one you have used in this video, whereas reflex sensors could be fixed, perhaps facing the direction of motion where there is the highest probability of a collision event. 

    From a technical perspective, the design of fixed sensors and scanning sensors are very different. Fixed sensors would have a shorter range, simple interfacing and update at 10-100 times per second. In contrast, scanning sensors would have a much longer range (>50m?) with complex 2D or 3D data arrays refreshing every second or so.

    You mention the effects of looking into the bright sky and I must admit that we hadn't expected the SF02/F to be used in this way when we designed it. As a result, some units will be more sensitive than others to the bright fringes of clouds, especially at sunset.

    We've tackled this situation in the SF10 design, and from serial numbers 501 onwards there is an additional software control loop that keeps the level of "paranoia" under control when the unit is faced with high IR backgrounds!


  • About a year ago I read a sort article in Photonics Spectra magazine that described a new way to detect electrical power with a laser based system. 

    The purpose was to protect helicopters from collision with power lines and apparently the existing laser based collision avoidance systems did not detect power lines/cables.

    I don't remember the details completely, but the laser system was used horizontally and it implemented AM detection which would detect when the laser beam path scanned across wire or cable. It supposedly it could detect cables/wires at quite an impressive range too, given that the target is so small.

    Even if the laser isn't scanned, a beam with a greater divergence could work,as pointed out by Robert's post, for horizontal collision avoidance.

    It would seem that such an AM pulse detection feature might not be too difficult to implement, but I wonder how a flight controller would react if the laser caught return pulses from a small swarm of insects.

    Regarding the wide angle laser in the OP: Terrain following for example, using the wide angle laser as an above ground (AGL) altimeter,  could that system provide an averaging with weighting so that when flying over fences or a leaf-less trees (winter time) would not cause the range reading to fluctuate between tree tops and the ground a  like a single pin point beam might?

    Perhaps the output could provide a min + max range data if one wanted to follow the terrain but stay above the tree tops too, while avoiding 'altitude dips' when passing over a treeless clearing.

    I suppose that either a setup utility would have to be used to set the operating mode or the flight controller would have to handle the extra data in the case of the last use example.

  • Phill, we were thinking along slightly different lines - there is a big difference in the processing requirements of "autonomous reflex" avoidance compared with full "SLAM". With this kind of fixed beam device, alarm events could create interrupts so that there is very little processing overhead. This might be used for blade strike avoidance in conjunction with a separate mapping/navigation function.

  • I've got just the application!  I've started dabbling with collision avoidance on Arducopter. This is an SF/02, I'm sweeping it with a servo drive to broaden the beam.

  • Hey LD,

    So normal method of operation is to have this (or an array) on constant transmit.  This would then give a field of returns, and when a change in depth is noted by the processing algorithm a target is said to have been detected?

    I could see that this would work for a stationary position where the scanned area is well understood, but would be interesting to see it implemented for on the move.  I guess if the transmits could be in perfect time, every other transmit becomes a new scanned area, and the next transmission is looking for stand out targets in that area, as an example?

This reply was deleted.