Arduino Lidar Scanning & Java Rendering

Replicate a 3D environment in real-time!

Jan 13, 2020

54249 views

47 respects

Components and supplies

2

Servo Motor MG996R

1

TFMini Lidar Sensor (UART)

1

Arduino Mega 2560

Apps and platforms

1

Arduino IDE

1

Netbeans Java IDE

Project description

Code

LidarScanRender

Source code for entire project including the Java Rendering program.

LidarScanRender

Source code for entire project including the Java Rendering program.

Downloadable files

LSR

LSR

Comments

Only logged in users can leave comments

maulepilot

2 years ago

I am working on a similar project with a Garmin LIDAR-Lite v3HP and an Arduing MKR WiFi 1010. My project is for an intrusion sensor and I'm having trouble eliminating false alarms due to occasional instability in the lidar measurement. I see from your Arduino code that you are taking 3 measurements at each servo position and using the average. Did you experiment with any other ways of distinguishing invalid distance measurements from valid ones? I'm considering taking 3 measurements at a time at each servo position and if they all are within a certain range, then take their average as the result. Have you tried that?

TravisLedo

2 years ago

I don't think I tried using any other ways to check for bad measurements. What you describe sounds like a good idea though.

Anonymous user

2 years ago

Waooouh! :-)

Anonymous user

2 years ago

This is such a well executed project!

Anonymous user

2 years ago

I can't use the java renderer application; it always gives me this error: "Error: JavaFX runtime components are missing and are required to run this application."

Anonymous user

2 years ago

Hey, this project looks great. I need to familiarize myself with LIDAR sensors for work and I will do this project at home with my kids. I love that this site facilitates al aspects of a project, including shopping for parts. But I wonder what pan & tilt brackets you used. Would be great if you could add an link to the exact brackets that work with the servos in the parts list. Thanks and best wishes. - DaveFer

Anonymous user

2 years ago

Nice!!

Anonymous user

2 years ago

I got my TFmini pro this last week along with a Chinese 1602 LCD shield and an UNO. I've read others say they encountered noise while scanning, because of the servos, and am interested in your workarounds, since I went the uno with a shield route, if you have time to answer...

TravisLedo

2 years ago

Hey my prediction is that your UNO only has 1 serial port. You can see me talk about the issue in the description. The reason I used a MEGA and not an UNO was because of that reason. The UNO cannot communicate via USB and read data from the lidar sensor at the same time (The same reason why you cannot push code to the UNO if you have something connected to TX/RX). There is a Software Serial Library that usually would solve this issue in most cases but in the situation where we are dealing with servos that continuously need to communicate with the Arduino, it would not work either. The servo would kind of move like a broken robot. The only way is to get a MEGA that has more than 1 TX/RX ports. I hope that is what you are talking about.

Anonymous user

2 years ago

nice project ,

darmspalter3000

2 years ago

This is such a well executed project!

davefer

3 years ago

Hey, this project looks great. I need to familiarize myself with LIDAR sensors for work and I will do this project at home with my kids. I love that this site facilitates al aspects of a project, including shopping for parts. But I wonder what pan & tilt brackets you used. Would be great if you could add an link to the exact brackets that work with the servos in the parts list. Thanks and best wishes. - DaveFer

Anonymous user

3 years ago

I can't use the java renderer application; it always gives me this error: "Error: JavaFX runtime components are missing and are required to run this application."

haideecr

4 years ago

Nice!!

maulepilot

4 years ago

I am working on a similar project with a Garmin LIDAR-Lite v3HP and an Arduing MKR WiFi 1010. My project is for an intrusion sensor and I'm having trouble eliminating false alarms due to occasional instability in the lidar measurement. I see from your Arduino code that you are taking 3 measurements at each servo position and using the average. Did you experiment with any other ways of distinguishing invalid distance measurements from valid ones? I'm considering taking 3 measurements at a time at each servo position and if they all are within a certain range, then take their average as the result. Have you tried that?

TravisLedo

2 years ago

I don't think I tried using any other ways to check for bad measurements. What you describe sounds like a good idea though.

judas79

4 years ago

I got my TFmini pro this last week along with a Chinese 1602 LCD shield and an UNO. I've read others say they encountered noise while scanning, because of the servos, and am interested in your workarounds, since I went the uno with a shield route, if you have time to answer...

TravisLedo

2 years ago

Hey my prediction is that your UNO only has 1 serial port. You can see me talk about the issue in the description. The reason I used a MEGA and not an UNO was because of that reason. The UNO cannot communicate via USB and read data from the lidar sensor at the same time (The same reason why you cannot push code to the UNO if you have something connected to TX/RX). There is a Software Serial Library that usually would solve this issue in most cases but in the situation where we are dealing with servos that continuously need to communicate with the Arduino, it would not work either. The servo would kind of move like a broken robot. The only way is to get a MEGA that has more than 1 TX/RX ports. I hope that is what you are talking about.

Anonymous user

5 years ago

nice project ,

Anonymous user

5 years ago

Waooouh! :-)

Anonymous user

5 years ago

nicely done!