Hokuyo LiDAR interfaced with Arduino Mega 2560 board

Successfully interfaced Arduino Mega 2560 with Hokuyo URG-04LX-UG01 LiDAR using a USB Host Shield 2.0 from Circuits @ Home....the LiDAR gives the device descriptors fine....next step is to send the VV commands and receive info from LiDAR using other USB library functions.....


I'll mount this lidar on ardupilot mega quad once this is done....planning to send lidar data to GCS via XBee....


So the modules connect like this:


LiDAR -> USB Host Shield -> Arduino Mega 2560 (on quad) -> Xbee -> GCS -> ROS

Views: 7183

Comment by Recmaster on November 20, 2011 at 12:18am

Hello Anant,

Is it releability for dust and snow? I mean UG01.

Didnt u think about Kinect using? It has the same stucture and more chipper.


Comment by Randy on November 20, 2011 at 3:03am

I've thought about this a bit so I'd like to jump in for a minute...one of the issues with the kinect is you need a powerful machines to pull all the data from it.  In particular I've heard that the circuits@home usb host (or the equivalent sparkfun usb host) can't handle the high speed usb that the kinect uses for the depth camera (although I know some functions like turning on/off the light on the front of the kinect can be accomplished with the usb host).  Also the kinect spits out >300k of data 15 or 30 times per second.

Comment by Anant Rao on November 20, 2011 at 8:42am

Recmaster, ur right.....UG01 doesn't respond very good in dust and snow....but following are its drawbacks wrt UG01:

1) Kinetic FOV is 57.8 degrees, UG01 has 240 degrees FOV....faster and better for 2d mapping (which we needed to do in our project)

2) Physical dimensions and weight: doesn't look like it can be mounted on ardu pilot quad rotor.....

3) as Randy rightly pointed out, dumps out tons of data to be processed....this either requires powerful processor to estimate depth frm sensor data, or comm channel with high bandwidth to send to GCS for further processing.....

4) Last but not the least, our project is university funded....n we were supposed to use a LiDAR for map creation.....


Comment by Anant Rao on January 31, 2012 at 11:03am

Found a better to interface usb slave devices to arduino - Vinculum USB Host Controller. There are 2 advantages over USB Host Shield:

- USB Host Shield uses SPI interface interface to communicate to arduino. That's 4 spi + 3 power pins + SS! + INT so total of 9 pins...vinculum connects through standard tx-rx serial so 2 + 2 (power pins). much lesser hardware compexity.

- If one plans to use optical flow sensor with apm, there is a conflict since optical flow sensor uses an spi port too. If the interface cannot be time-shared, no other usb slave device can be used with this setup (usb host shield).......while vinculum can talk to any of the 4 serial ports on apm, and optical flow sensor can still keep using spi port....

Yet to test the hardware and code.......!!!

Comment by Randy on February 1, 2012 at 4:34am


     Normally multiple sensors can share an SPI bus.  For example, in APM1 the dataflash and optical flow share an SPI bus.  On APM2 the barometer and MPU6000 share an spi port.  If you check out the optical flow library you can see how it backs-up and restores the SPI settings to ensure there's no interference even when the SPI settings required for each device are different.

Comment by Anant Rao on March 14, 2012 at 12:32am
Comment by Anant Rao on April 15, 2012 at 10:53pm

Our altitude hold with a LiDAR at about 1m agl (no sonar).....


A small mirror mounted at 45 degree wrt lidar diverts the beam to ground to sense altitude....

Comment by Randy on April 16, 2012 at 6:20am


     Looking great!  Very stable altitude hold.


Comment by Anant Rao on April 16, 2012 at 10:02pm

Thanks Randy...it was a team work...


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

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service