Obstacle Avoidance for 3DR Solo using LightWare LW20

Our friend Stephan Schindewolf, in collaboration with Thomas Stone and I.R. Lock, developed an affordable, front facing collision detection solution for the 3DR Solo, using a LightWare LW20 (or SF20) and a servo.

The LW20 comes standard with a built-in servo driver for SLAM maps within user-definable view angle and distance. The Lidar is being controlled by an Arduino, which manages the Lidar configuration, scanning and obstacle detection.

The Arduino is connected to the IMX companion computer in Solo via USB. On the IMX Stephan added the required controls and actions, LED handling, speech output and collision prevention routines in shotmanager.


Current features include:

  • 3 sector scanning for obstacles (left, center, right) within a 6 meter range ahead of Solo.
  • Scan is enabled by log-button press on the controller paddle. A short button press toggles the GoPro on/off as before.
  • Scanning on/off is indicated by a text and voice prompt in Solex.
  • The Solo LEDs indicate the detection of an obstacle by flashing in purple color: Left LED: obstacle to the left; right LED: obstacle to the right; both front LEDs: obstacle in center (LED control requires Arducopter 3.5 or higher installed)
  • If a front collision is detected, Solo goes into BRAKE mode in all flight modes except LAND or RTL. You can exit BRAKE by pressing the FLY button anytime.
  • In all smartshots, you will get visual feedback by the LEDs and voice feedback in Solex.
  • Obstacle avoidance keeps track of the forward pitch angle along with Solo altitude. As soon as the pitch angle for the current altitude would cause the lidar beam to hit ground, obstace avoidance is temporarily disabled. Both front LEDs flash in yellow to indicate that status.
  • Text and speech output in Solex, for obstacles in the center of the flight path also the approximate distance to the obstacle is reported

The following videos show the result of the hard work:



You can view the full project here: Obstacle Avoidance for 3DR Solo

A word of caution before you proceed:

1. All the modifications require a great portion of care since you are modifying some of the core modules of the 3DR Solo software. It is strongly recommended to backup all the original files on the IMX before making any changes.

2. This project will void your 3DR warranty.

3. The project describes a 3D printed plastic housing for the SF20, but the LightWare aluminium housing, as fitted on the LW20, is recommended to avoid possible overheating of the Lidar (the aluminium acts as a heat sink).

LightWare would like to thank Stephan and Thomas for this great project. I'm sure many will find it interesting and helpful.

For more information about the LW20 please visit our website: LightWare

Views: 1325

Comment by Robert Hoermann on January 9, 2018 at 12:05am

Cool, looking forward to this.

We have done oru first tests on this in 2016 with the rangefinder SF33 T/B from Lightware.

Check: Film on youtube

May I ask you in which flight modes you have been testing it?

Thanks Robert

Comment by Nadia Nilsen on January 9, 2018 at 12:14am

@Robert, yes, we remember your project well. The video is linked to our Youtube channel under Customer Applications.

They tested it in all flight modes except LAND or RTL.

Comment by Stephan on January 9, 2018 at 5:46pm

Thanks @Nadia. As the author of this hack, let me please add to this- you will get visual and voice feedback on the Solex app in all flight modes once the Lidar detects an obstacle. BRAKE mode is entered only in GPS assisted modes with the exception of Land and RTL Be aware of some limitations, such as there is a little time lag before entering Brake mode as well as the drone still may continue to drift a few meters - so it’s not preventing you from a crash. 

The full description of the project can be found here:


Comment by Nadia Nilsen on January 10, 2018 at 12:51am

Thank you Stephan.


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service