Tuesday, October 9, 2012

Matlab API for Hokuyo UTM-30LX-EW

We recently acquired a new Hokuyo UTM-30LX-EW laser range finder. It's based on the old UTM-30LX laser so that means it has an effective range of 30m and 270 degrees. The only differences with the previous model are:

  • Ethernet connection instead of USB
  • Multi-echo functionality, very helpful for outdoors
Anyway since it's a fairly new laser, I couldn't find any drivers or API to use with matlab. So I decided to write my own. It's very simple and the only thing it does is initialize a connection to the laser and then starts grabbing the data. It also incorporates decoding and error detection functions. The code runs at almost 40hz. You can find it uploaded at mathworks file exchange.

My friend Ana form KIT has upgraded the API with the capability to also return intensities and multi-echo data. You can find it here.

Labels: ,


At 30 March, 2013 08:24 , Blogger JaeHoon Jung said...


I am PhD student, just started studying laser scanning system. Recently, I rented a scanner Hokuyo UTM-30LX EW for my research. To control the device with MATLAB, I searched for your files through the Internet, but couldn't run it due to the following error: "Undefined function or method 'utmDecode' for input arguments of type 'double'". I think one of your function, 'utmDecode', it doesn't work in my system.

My system is MATLAB 7.8.0 (R2009a). is it a version problem or is there anything that I missed to run your files, particularly for 'utmDecode'?



At 15 May, 2013 14:50 , Blogger Ana Đuričić said...

Hi Jung,

Maybe I can help you with hint because i had the same problem and than Stathis answered me already...
I solved it like this: if you open utmDecode you can see that is c++, so what you need to do is to compile it with mex in order to run it within matlab. It is an essential part of the driver.
What it does is decode the raw readings into meaningful data. It is written in c++ for speed.

I hope this helps. Let us know.
Good luck with Hokuyo :)


At 28 May, 2013 16:48 , Blogger William Buller said...


I am interested in this lidar's distance and intensity function. I see that utmGetScan uses the GD Measurement request message. Has anyone adapted this to support the GE Measurement request in utmGetScan, so that it can return data with distance and intensity?

William Buller

At 28 May, 2013 17:48 , Blogger kabamaru said...

Hi William,

AFAIK Ana has been working on that and had some excellent results. I think she will be posting her code really soon. Try to contact her maybe she can provide some code beforehand.

I've already answered to JaeHoon through email but for completeness sake his problem was that he didn't compile the appropriate mex file.


At 28 May, 2013 20:04 , Blogger William Buller said...

Hi Ana,

I wonder if you have adapted this to support the Matlab API for the Hokuyo lidar to request GE Measurements, so that it can return data with distance and intensity? I work with Michigan Tech University and we are interested in using the Hokuyo as a remote sensing lidar suitable for various mobile platforms. The Matlab API is something we will be able to contribute code to, but we are still in the shopping process.

Thank you much,

William Buller

At 11 July, 2013 18:00 , Blogger Ana Đuričić said...

Hi William,

Sorry for the delay, but do not worry the new code is finally online! Go check it out> http://www.mathworks.com/matlabcentral/fileexchange/42584-hokuyo-utm-30lx-ew-matlab-api

It can return data with MULTIECHO distance and intensity (cmd HE). Customized graphical user interface is also available.

For questions or more information, clarifications, etc., please feel free to contact me anytime.

Btw, for which application you plan to use Hokuyo?

Kind regards,
Ana Djuricic


Post a Comment

Subscribe to Post Comments [Atom]

<< Home