Close
0%
0%

Open Simple LIDAR

Open Hardware 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:

.

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
Download

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

  • 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 instlled 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 lidar working at 2 deg angular resolution mode.

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

    Next step is increasing parameters of Lidar by optimizing  it's 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.

  • Assembling LIDAR mechanics

    iliasam08/06/2017 at 18:10 0 comments

    First step is building "main plate" - it is the part that holds ball bearing, motor, and some other parts. This part can be cut from some flat plastic plate. I have used 5mm acrylic glass:


    Drilling 42 mm hole for bearing was a little tricky.
    This part can be printed at 3D printer.

    Next step is assembling everything.

    Photos of assembled mechanics (top view):


    Side view:


    Motor is connected with the PCB holder with rubber belt.

    Down view:


    Here it can be seen method of fixing the PCB holder to the ball  bearing.

    Next step is to fix encoder at the "main plate" and to test it.

  • PCB holder

    iliasam07/30/2017 at 12:31 0 comments

    I have printed special holder for PCB. This holder will be rotated by motor.

    Here is a photo of it:

    The right part is encoder disk.

    PCB holder don't have holes for slip ring wires, so I have to drill two.
    Here is a photo of the PCB holder with the slip ring installed in it:

    Photo of PCB placed to holder:

    Encoder disk is glued to the PCB holder.

View all 14 project logs

Enjoy this project?

Share

Discussions

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