Tuesday, February 10, 2009

A Short Robot Video

In my last post, I talked about the instrument driver for a Hokuyo LIDAR that I've been working with. The new driver that supports more models (and supports them all better) will be posted to IDNet in the next week or two.

I thought I'd show you how I was actually using the LIDAR. Meet NIcholas, a robot I've been working with for the last few weeks...

NIcholas is based on a radio-controlled car platform, but is controlled entirely by the on-board single-board RIO computer running LabVIEW Real-Time and LabVIEW FPGA.

Single-board RIO is an OEM-able circuit board that contains both LabVIEW Real-time and LabVIEW FPGA targets. It's similar in functionality to the compactRIO platform. I'm using the Real-time part for processing the LIDAR data, and the FPGA for controlling the motors and steering.

I didn't build NIcholas myself; he was built by an intern last summer. As a research project, I've taken him under my wing for a while to learn more about LabVIEW on the RIO platform, and a little bit about robotics.

NIcholas doesn't have much of a mission, yet. He just drives around autonomously and tries to avoid obstacles. The LIDAR is used to detect obstacles and find the clearest path to take.

Here's a short video showing NIcholas in action...

For more information on robotics with LabVIEW, see ni.com/robotics.


Michael Aivaliotis said...

That was awesome Brian. Thanks for the robotic tour. I loved the LAVA T-Shirt side note. I was wondering if Jeff put that up somewhere.

emilie said...

I love the first-person view on the vid, Brian!
I remember I tinkered a bit with NIcolas when I brought him along as a demo to the 2008 RoboDevelopment conference (i.e. before Brian enhanced NIc's AI). A cool thing happened: I was making some last minute tweaks to the gains for NIc's motors on the show floor, before the doors had been opened to the public. I had my laptop connected to the sbRIO through a crossover cable and was literally walking NIc around the floor, adjusting the code to speed him up and slow him down. As I'm doing this, Tandy Trower and some MSRS developers walk by and they are literally stopped in their tracks, watching me debug, in real time, the embedded code running on my sbRIO target(something that MSRS cannot do at the moment!). I had to hide my smile, but I think they still noticed. :)

Anonymous said...

Hey are you a professional journalist? This article is very well written, as compared to most other blogs i saw today….
anyhow thanks for the good read!

Brad said...

Brian, was this using the Vector Field Histogram VIs in the Robotics Module? I'm surprised how much NIcolas has to back up to turn and go around obstacles. Could you adjust the "panic distance" (I think that's what it is called) to get better performance?

Brian Powell said...

Yes, this was using the Simple VFH from the LabVIEW Robotics module.

One of the limitations of NIcholas is that it doesn't have any odometry. If we were going to do more research with NIcholas, there's a good chance we'd add encoders to the wheels to have a better idea of how fast and far it is traveling.

But since it doesn't have odometry, the backup algorithm simply backs up for a fixed amount of time, then tries again.

We could probably fine tune the algorithm, or come up with a different algorithm. There's no doubt that our research robots like NIcholas inspire lots of future research projects, too.

They also inspire improvements for future robots. Our subsequent research robot VINI and our LabVIEW Robotics Starter Kit Robot both have encoders on their wheels.