Close
0%
0%

Open Simple LIDAR

Open Source scanning laser rangefinder

Similar projects worth following
This is simple enough open source scanning laser rangefinder. It is using triangulation method. It is based on my previous Lidar projects: http://hackaday.com/2016/06/05/in-soviet-russia-diy-laser-rangefinder-scan-you/ (https://github.com/iliasam/OpenLIDAR) and earlier lidar versions (in Russian): http://roboforum.ru/forum10/topic12095.html It is really cheap - its components cost less than $35 (without shipping).This Lidar can be very useful in robotics - for SLAM and navigation tasks.

This Lidar is using triangulation method for measuring distance to an objects. It can be shown by this picture:


Laser light is reflected by some object. Lens get part of that light and create an image of the laser dot at the image sensor (TSL1401). It can bee seen that the position of that image depends on distance to object.

Current Lidar parameters:

5 scans/second;

180 measurements per rotation (2 deg angle resolution);

Maximum distance - 4 m;

Measured accuracy now is - 5 cm at 2 m, 10 cm at 3 m (I hope that it can be improved).

I suppose that the price of all needed parts will be near $35 ($30 without interference optical filter) - without delivery price.

P.S. Sorry for my bad English - I am from non-English speaking country.

Video with testing this Lidar with Hector SLAM: 


Another video:

.

plate_for_printing_v1.0.stl

Standard Tesselated Geometry - 238.04 kB - 10/01/2017 at 15:26

Download

Encoder_ring.png

Encoder ring drawing.

Portable Network Graphics (PNG) - 63.79 kB - 08/03/2017 at 17:10

Preview

holder_v1.0.stl

3D model of the PCB holder.

Standard Tesselated Geometry - 263.01 kB - 08/03/2017 at 17:09

Download

laser_holder_v1.0.stl

3D model of the laser holder.

Standard Tesselated Geometry - 120.54 kB - 08/03/2017 at 17:09

Download

  • 1 × TSL1401CL Sensors / Image
  • 1 × Slip Ring Used to pass power and signals to rotating scanning head.
  • 1 × Encoder RPI-352
  • 1 × IR filter Interference bandpass filter
  • 1 × Small electrical and mechanical parts

View all 13 components

  • OpenSimpleLidar calibration

    iliasam05/26/2019 at 15:26 0 comments

    OpenSimpleLidar need calibration after assembling so I had made a video about it:

  • Published PC utility for Lidar testing

    iliasam05/04/2019 at 13:36 0 comments

    I have published PC utility for testing my Lidar:  "LidarScanningTest". It is published with its source files at the Github.

    Screenshot:

  • Autonomous robot moving with Open Simple Lidar

    iliasam04/17/2018 at 19:21 0 comments

    I write a special simple navigation node for the ROS called "simple_nav".

    Here is a video of robot autonomous moving to the given goal point:

  • Interference filter

    iliasam04/10/2018 at 18:45 0 comments

    I'm using interference filter in my lidar: https://en.wikipedia.org/wiki/Interference_filter

    It is used to decrease ambient light from different sources.

    Here is example of filter working:

    The left picture show influence of the lamp light (it is placed to the floor) to the Lidar image. Right picture was captured with filter installed.

  • Updated PCB

    iliasam03/04/2018 at 16:42 0 comments

    I have updated PCB of the Open Simple Lidar.

    I have routed and placed small motor board together with the main PCB of the lidar. Earlier that motor PCB must be produced separately, but now only one common PCB in needed to be produced.  Motor board must be cut from the main PCB before assembling the main PCB.

    Also I draw some descriptions for assembling PCB.  

    New PCB image (motor PCB is on the left):  

    Updated files: https://github.com/iliasam/OpenSimpleLidar/tree/master/PCB

  • Testing Lidar with ROS

    iliasam09/19/2017 at 18:44 0 comments

    I had installed my Open Simple Lidar to the old Roomba and tested it with ROS (including Hector SLAM): 

    Photo of the lidar installed at the Roomba:


    The left board is Orange Pi PC running ROS nodes (Lidar node, Roomba node, Hector SLAM).
    All robot controlling was manual (using keyboard).

    The resulting map of the rooms:


    This map was created with a lidar working in 2 deg angular resolution mode.

    Also I had published Firmware code and lidar ROS node at the Github.

    Next step is increasing parameters of the Lidar by optimizing  its firmware.

  • Open Simple LIDAR is fully assembled!

    iliasam09/11/2017 at 19:14 0 comments

    Here is the photo of the assembled LIDAR:

    Last thing that I had installed is the small PCB with DC-DC converter for powering  motor.
    Photo of the installed board:

    This board also simplifies connections between LIDAR's components.

    Photo with the scanning head installed:

    Front view of the assembled LIDAR:

    My next step - write a node for ROS and to test SLAM algorithm.

  • First tests of my Lidar

    iliasam08/31/2017 at 11:47 0 comments

    I have done with basic firmware for my Lidar.

    There were some problem with encoder signals - UART communication produce some electrical noise at the encoder's line.

    Here is a video of first test:

    I decrease angle resolution to 2 deg to increase rotational speed - it is near 5 rotations per second.

    Circles at the "radar" images are 1, 2, 3 m in radius.

  • Testing encoder

    iliasam08/14/2017 at 18:14 0 comments

    I wrote a simple program for testing encoder. It's just blinking led at PCB when there is a hole in encoder disk.

    Photo of LIDAR with big exposure:

  • Assembling LIDAR

    iliasam08/13/2017 at 15:46 0 comments

    Now it is time to final LIDAR assembling.

    I have installed encoder to the "main plate", installed the PCB to the PCB holder, installed slip ring to the PCB holder, solder wires of the slip ring to the PCB pads.
    Photo of the assembled LIDAR:

    Side view:

    I have tested mechanics of the LIDAR - everything is working fine, the eccentricity of the LIDAR rotating head is not very big.

    Encoder is working fine too - oscilloscope shows  a good signal.

    Next steps are assembling small PCB for motor controlling and programming.

View all 16 project logs

Enjoy this project?

Share

Discussions

seyda wrote 04/26/2020 at 12:02 point

hello which program do you use to programming to MCU? and also how do you programming MCU? Thank youu

  Are you sure? yes | no

mert.karaca wrote 10/14/2019 at 06:15 point

Dear Sir, I will make your LIDAR project form my senior project, ı wonder can I use M12 f16mm lens below product? https://uk.rs-online.com/web/p/video-modules/1633898/

  Are you sure? yes | no

Justin Qiu wrote 08/07/2018 at 18:42 point

I want to ask you a question regarding the pcb. What is the difference between  the v1.0 and v1.1?

  Are you sure? yes | no

iliasam wrote 08/07/2018 at 19:02 point

Thre were several small changes like C10 added, J2 SWD connector added.

  Are you sure? yes | no

josh zhao wrote 04/07/2018 at 09:54 point

That's really a great project !  How can I get the COMPONENTS online?

  Are you sure? yes | no

iliasam wrote 04/08/2018 at 15:07 point

See "TotalBOM" file at the https://github.com/iliasam/OpenSimpleLidar/

There are links to the most Lidar components.

  Are you sure? yes | no

Radu Motisan wrote 10/17/2017 at 10:48 point

love this! Congrats 

  Are you sure? yes | no

Kristjan Berce wrote 08/26/2017 at 15:02 point

Would love to see a video of it working soon! :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates