Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Technical Discussion (http://www.chiefdelphi.com/forums/forumdisplay.php?f=22)
-   -   LIDAR Sensor has arrived! (http://www.chiefdelphi.com/forums/showthread.php?t=132213)

PaulDavis1968 08-01-2015 23:53

Re: LIDAR Sensor has arrived!
 
From the products google groups

https://groups.google.com/forum/#!to...3d/ebRaHl6sylM



Paul,

That's very exciting... in the course of looking at the forum I found Innovation First International... I grew up fairly near Greenville, TX. Will be joining the forum to follow along... have been getting into ROS.org and robotics in my hobby-time.

@Polycarbonate - the way the sensor acquires readings is by sending a bunch of pulses out and then capturing what comes back, combining those into a "correlation record" and then measuring the distance between the crossing point in the reference signal and the next strongest signal (or if you ask for it, the second strongest).

There are a few surfaces and conditions it can't "see" but in my experimental experience it can detect most surfaces from one angle or another. Sometimes with reflective and clear surfaces you can get unexpected results, but that's where that second reference comes in handy. You can use it to see a reflection or an object on the far side of a clear object if you are picking up your strongest signal from the clear object.

Pg. 17 "Signal Acquisition process" through pg 22 "Processing" of our manual goes into detail about how the sensor records information: http://pulsedlight3d.com/pages/docs

Let me know if you have any more questions very happy to help! We're excited about what the chiefdelphi.com community is going to do with LIDAR-Lite!

- Austin

seg9585 10-01-2015 22:06

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by tech2077 (Post 1424117)
In case anyone is interested, I wrote up a java class for this, you can use the start/stop functions to use the built in updater Timer, or use the update function to only poll distance when needed.
LIDAR.java

tech2077, are you having any luck with this code? When I attempt to run I get zero distance data. Also, the i2c.read() function returned "true" (aborted). I'm passing in Port.kOnBoard and the sensor is plugged into the I2C port on the roboRio

tech2077 11-01-2015 03:33

Re: LIDAR Sensor has arrived!
 
Strange, it has worked for me. I've been using the mxp port so far, so I'll test with the on board one.

tech2077 11-01-2015 04:16

Re: LIDAR Sensor has arrived!
 
Right now it seems that only the MXP port is supported with the LIDAR, I'm still investigating, but using the same power source and code, only the MXP I2C port will return data.

Poseidon5817 11-01-2015 10:20

Re: LIDAR Sensor has arrived!
 
Quote:

Dimensions: 21 X 48.3 X 35.5 mm
• Performance: Range: 0-40m Laser Emitter
• Accuracy: +/- 0.025m
• Power: 5vdc, <100ma
• Acquisition Time: < 0.02 sec
• Rep Rate: 1-100Hz
• Interface: I2C or PWM
•Max Operating Temp.: 70° C
•Eye safe, laser hazard free
Works up to 40 m, + or - 2.5 cm, <20 ms acquisition time.

We have ordered one.

seg9585 11-01-2015 15:16

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by tech2077 (Post 1426115)
Right now it seems that only the MXP port is supported with the LIDAR, I'm still investigating, but using the same power source and code, only the MXP I2C port will return data.

Ah, thank you! I originally wrote up my own test code without the scheduler implementation and couldn't get it to work in this port, so I switched to yours with similar results. They seem to work just fine in the expansion port, making me curious if the I2C onboard has a bug or is otherwise disabled on the roboRio. I'll contact NI and let them know.
For now, works perfectly on the MXP, thanks again!

JesseK 11-01-2015 15:39

Re: LIDAR Sensor has arrived!
 
I might get one of these to poke around with. Our programming team is talking crazy talk for autonomous, and I don't know that the drive train will have quite the precision they require to squeak in under 15 seconds.

Anyone tried this out on diamond plate? I bet more than my team has felt a twinge of failure with ultrasonics when moving from the lab to the field.

tech2077 11-01-2015 16:08

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by seg9585 (Post 1426303)
Ah, thank you! I originally wrote up my own test code without the scheduler implementation and couldn't get it to work in this port, so I switched to yours with similar results. They seem to work just fine in the expansion port, making me curious if the I2C onboard has a bug or is otherwise disabled on the roboRio. I'll contact NI and let them know.
For now, works perfectly on the MXP, thanks again!

Poking around the linux side with i2ctools there are definitive read/write errors showing up for the onboard port, so I'll be sure to let them know.

Quote:

Originally Posted by JesseK (Post 1426316)
I might get one of these to poke around with. Our programming team is talking crazy talk for autonomous, and I don't know that the drive train will have quite the precision they require to squeak in under 15 seconds.

Anyone tried this out on diamond plate? I bet more than my team has felt a twinge of failure with ultrasonics when moving from the lab to the field.

Anything solid and IR opaque should have good data from this sensor. The diamond plate will definitely give good distance readings, but totes and lexan still need to be tested.

DavisC 11-01-2015 18:34

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by tech2077 (Post 1424117)
In case anyone is interested, I wrote up a java class for this, you can use the start/stop functions to use the built in updater Timer, or use the update function to only poll distance when needed.
LIDAR.java

How do you (or anyone that has gotten this to work) implement this with the main class. I specifically am using the "Getting Started" example.

I tried using it something like this (don't have the exact code in front of me...):
Where variables are declared:
Code:

LIDAR myLidar = new LIDAR(port.kOnboard);
then in teleopPeriodic() I did:
Code:

myLidar.update();
System.out.println(myLidar.getPID());

However, 0.0 is only ever printed out to the Riolog. (I also tried having the myLidar.start() and myLidar.stop() inside of teleopInit and disabledInit respectively.

Thanks in advance,
DavisC

tech2077 11-01-2015 20:23

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by DavisC (Post 1426400)
How do you (or anyone that has gotten this to work) implement this with the main class. I specifically am using the "Getting Started" example.

I tried using it something like this (don't have the exact code in front of me...):
Where variables are declared:
Code:

LIDAR myLidar = new LIDAR(port.kOnboard);
then in teleopPeriodic() I did:
Code:

myLidar.update();
System.out.println(myLidar.getPID());

However, 0.0 is only ever printed out to the Riolog. (I also tried having the myLidar.start() and myLidar.stop() inside of teleopInit and disabledInit respectively.

Thanks in advance,
DavisC

It's been discovered that the on board I2C port is having communication problems, use the I2C on the MXP port until the issue is resolved.

DavisC 11-01-2015 21:39

Re: LIDAR Sensor has arrived!
 
Thanks, so I just use kMXP instead of kOnBoard and connect to the expansion port bottom left 2 pins for sda and scl?

seg9585 11-01-2015 21:45

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by DavisC (Post 1426481)
Thanks, so I just use kMXP instead of kOnBoard and connect to the expansion port bottom left 2 pins for sda and scl?


Correct. I still had my sensor power pins plugged into the I2C power and ground ports, which seem to work (for what it's worth).

Also, if you execute myLidar.start(); in your init area or constructor, you can access myLidar.getDistance() in both autonomous and teleOp methods and allow it to run its own thread, which will help avoid bogging down the rest of your code (because the update() method includes delay timers up to ~10ms to write and read).

JesseK 11-01-2015 22:33

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by tech2077 (Post 1426332)
Anything solid and IR opaque should have good data from this sensor. The diamond plate will definitely give good distance readings, but totes and lexan still need to be tested.

The raised diamonds on the diamond plate caused excessive backscatter with the sonar sensor. A better way to put the question is, do the diamond shapes cause the Lidar laser to reflect/refract as the robot moves down the wall next to the diamond plate? If so, is it momentary and how long does it take to recover?

tech2077 11-01-2015 23:01

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by JesseK (Post 1426512)
The raised diamonds on the diamond plate caused excessive backscatter with the sonar sensor. A better way to put the question is, do the diamond shapes cause the Lidar laser to reflect/refract as the robot moves down the wall next to the diamond plate? If so, is it momentary and how long does it take to recover?

I'll do testing on this as soon as I can, but from what I have tested most surfaces do not refract it enough to actually change the measurements. The only situations I've noticed a problem is with a few thin plastics they are entirely transparent to the IR laser.

WDB 12-01-2015 20:45

Re: LIDAR Sensor has arrived!
 
Quote:

Originally Posted by seg9585 (Post 1426487)
Correct. I still had my sensor power pins plugged into the I2C power and ground ports, which seem to work (for what it's worth).

Also, if you execute myLidar.start(); in your init area or constructor, you can access myLidar.getDistance() in both autonomous and teleOp methods and allow it to run its own thread, which will help avoid bogging down the rest of your code (because the update() method includes delay timers up to ~10ms to write and read).

We tried the I2C port too and failed. Moved over to the MXP and still getting zeroes.

Using lidar.start() in the teleopInit and calling lidar.getDistance() in teleopPeriodic which is returning zero. Am I missing anything?

Thanks!


All times are GMT -5. The time now is 04:53.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi