jump to navigation

LabVIEW Robotics Connects to Microsoft Robotics Studio Simulator January 27, 2010

Posted by emiliekopp in labview robot projects.
Tags: , , , , , , , , , , , ,

Several people have pointed out that Microsoft Robotics Developer Studio has some strikingly familiar development tools, when compared to LabVIEW. Case in point: Microsoft’s “visual programming language” and LabVIEW “graphical programming language;” both are based on a “data flow” programming paradigm.

LabVIEW Graphical Programming Language

MSRDS Visual Programming Language

There’s no need for worry, though (at least, this is what I have to keep reminding myself). National Instruments and Microsoft have simply identified a similar need from the robotics industry. With all the hats a roboticist must wear to build a complete robotic system (programmer, mechanical engineer, controls expert, electrical engineer, master solderer etc.), they need to exploit any development tools that allow them to build and debug robots as quickly and easily as possible. So it’s nice to see that we’re all on the same page. 😉

Now, both LabVIEW Robotics and MSRDS are incredibly useful robot development tools, each on its own accord. That’s why I was excited to see that LabVIEW Robotics includes a shipping example that enables users to build their code in LabVIEW and then test a robot’s behavior using the MSRDS simulator. This way, you get the best of both worlds.

Here’s a delicious screenshot of the MSRDS-LabVIEW connectivity example I got to play with:

How it works:

Basically, LabVIEW communicates with the simulated robot in the MSRDS simulation environment as though it were a real robot. As such, it continuously acquires data from the simulated sensors (in this case, a camera, a LIDAR and two bump sensors) and displays it on the front panel. The user can see the simulated robot from a birds-eye view in the Main Camera indicator (large indicator in the middle of the front panel; can you see the tiny red robot?). The user can see what is in front of the robot in the Camera on Robot indicator (top right indicator on the front panel) . And the user can see what the robot sees/interprets as obstacles in the Laser Range Finder indicator (this indicator, right below Camera on Robot,  is particularly useful for debugging).

On the LabVIEW block diagram, the simulated LIDAR data obtained from the MSRDS environment is processed and used to perform some simple obstacle avoidance, using a Vector Field Histogram approach. LabVIEW then sends command signals back to MSRDS to control the robot’s motors, and successfully navigates the robot throughout the simulated environment.

There’s a tutorial on the LabVIEW Robotics Code Exchange that goes into more detail for the example. You can check it out here.

Why is this useful?

LabVIEW users can build and modify their robot control code and test it out in the MSRDS simulator. This way, regardless of whether or not you have hardware for your robot prototype, you can start building and debuging the software. But here’s the kicker: once your hardware is ready, you can take the same exact code you developed for the simulated robot and deploy it to an actual physical robot, within a matter of minutes. LabVIEW takes care of porting the code to embedded processors like ARMs, RT OS targets and FPGAs so you don’t have to. Reusing proof-of-concept code, tested and fined-tuned in the simulated environment, in the physical prototype will save the developers SO MUCH TIME.

Areas of improvement:

As of now, the model used in the LabVIEW example is fixed, meaning, you do not have the ability to change the physical configuration of actuators and sensors on the robot; you can only modify the behavior of the robot. Thus, you have a LIDAR, a camera, two bumper sensors and two wheels, in a differential-drive configuration, to play with. But it’s at least a good start.

In the future, it would be cool to assign your own model (you pick the senors, actuators, physical configuration). Perhaps you could do this from LabVIEW too, instead of having to build one from scratch in C#. LabVIEW already has hundreds of drivers available to interface with robot sensors; you could potentially just pick from the long list and LabVIEW builds the model for you…

Bottom line:

It’s nice to see more development tools out there, like LabVIEW and MSRDS, working together. This allows roboticists to reuse and even share their designs and code. Combining COTS technology and open design platforms is the recipe for the robotics industry to mirror what the PC industry did 30 years ago.



1. Tweets that mention LabVIEW Robotics Connects to Microsoft Robotics Studio Simulator « LabVIEW Robotics -- Topsy.com - January 28, 2010

[…] This post was mentioned on Twitter by Shelley Gretlein, TransBotica. TransBotica said: LabVIEW Robotics Connects to Microsoft Robotics Studio Simulator … http://bit.ly/9stJ9P […]

2. LabVIEW Robotics binding to Gostai’s Urbi? « LabVIEW Robotics - February 3, 2010

[…] a product suggestion forum for Gostai users. Someone must have read my post featuring the connectivity between MSRDS and LabVIEW Robotics and thought a similar example for LabVIEW and Gostai could be useful. He/she is petitioning Gostai […]

3. Aniket - LabVIEW, mostly! - February 24, 2010

Would it be a part of Measurement Studio? How to use LabVIEW Robotics with Visual Studio 2010?

emiliekopp - February 24, 2010

Currently, I do not think the functions and IP from LabVIEW Robotics is included in NI Measurement Studio. Rather, Measurement Studio is primarily used by programmers who want to use NI data acquisition hardware and program in Visual Studio. Are you currently using Measurement Studio for robotics development?
You can certainly write .dlls in Visual Studio and then call them in LabVIEW Robotics. I imagine a lot of robot developers might be interested in this. They can use the robotics IP they’ve already created in text-based environments and then integrate it with the graphical-based robotics IP in LabVIEW. The best of both worlds.

Aniket - February 25, 2010

I’m using VS 2008 Pro as well as NI Suite (LabVIEW 2009) for some Robotics Development. I find LabVIEW (especially for cRIO or PXI based control) & Visual Studio – VB & C# (especially for basic software functions) very nifty.
Measurement Studio makes things a lot easier when the project is primarily developed using say C#. In such cases, I just thought if the additional functions in LabVIEW Robotics would be available in Visual Studio.

I’m evaluating LabVIEW Robotics shortly and shall be back here with my experience. Thanks for the great blog, looking forward to more posts with real world examples.

emiliekopp - February 25, 2010

Hi Aniket,

I’ll be sure to pass along your feedback to the LabVIEW Robotics development team. If you have any additional feedback regarding the product, do not hesitate to let me know.

I’d love to hear more about your robotics projects, especially since you’re taking a hybrid approach to programming; i.e. graphical programming + text-based programming. Be sure to share your experience with the rest of the NI Robotics community on the LabVIEW Robotics Code Exchange.

4. Microsoft ups the ante in the robotics market, makes MSRDS free « LabVIEW Robotics - May 20, 2010

[…] I, for one, am excited to see this play out and welcome Microsoft’s increased investment in the robotics market. I’ve seen first hand that MSRDS plus LabVIEW can be a powerful combination of simulation and g… […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: