2

On the surface LabView and Microsoft Robotics Studio appear to me to have a very similar programming paradigm and environment.

Is it fair to compare these two products, or are they in different leagues?

I am hoping someone who has used both products will help compare and contrast them so that I can understand when it is appropriate to use one or the other.

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
JonnyBoats
  • 5,177
  • 1
  • 36
  • 60

3 Answers3

7

Disclaimer. I have not worked with Microsoft Robotics Studio. I only looked at the fact sheet and some of the documentation. However I have a great deal of knowledge of LabVIEW. So this answer might be (and probably is) biased.

History wise LabVIEW has been around for 20 years and has the following features which MSRS doesn't have (from the first glance).

  • Platform independent (LV compiles on Windows, Linux, Mac and various embedded platforms), however hardware support varies
  • A compiler, directly into machine code
  • LabVIEW is a programming language not targetted at robotics but originated in Test and Measurement
  • Extensive DAQ and data analysis support

The VPL (MSRS) looks very clumsy compared to LabVIEW code, it looks like MS doesn't really makes the switch to visual programming (or is not allowed by patents from third parties).

Price wise, MSRS is much friendlier with a free 'hobbyist' version, while a LabVIEW base begins around $1300.

Additional MSRS does not run on the robot, it only controls the robot via the robot API (bluetooth or wired), while LabVIEW (and more specific NXT-G) run on the processer inside the robot stand-alone.

What might be important is the LabVIEW is the main software product of NI while MSRS is one of many products of MS, so support and development should have a higher priority.

Ton

Dennis Williamson
  • 346,391
  • 90
  • 374
  • 439
Ton Plomp
  • 3,020
  • 1
  • 18
  • 35
  • 3
    I believe LabView has a student version for about $80 as well as the ability to download a 30 day trial. I mention this as I don't want a student reading this post to be scared off of LabView because of high price. Also I do believe MSRS compiles as well (in the sense that C# compiles, technically they both use the Microsoft intermediate language). I voted up your answer, and will accept it if there are no other answers posted. Hopefully someone with experience in both will respond though. – JonnyBoats Feb 27 '10 at 23:11
  • @Johnny: You are correct, LabVIEW certainly does have 30 day trials of just about all their products, including modules. @Ton: I bet you were just jumping at the bit when you saw a LV question posted on SO. Good to see you outside of ni's forums =) – SiegeX Feb 28 '10 at 07:03
  • @SiegeX I love RSS ;-) @Jonny I would love to see the answer of an intermediate/advanced MSRS user. Perhpas someone with HP/Agilent Vee experience is nice. – Ton Plomp Feb 28 '10 at 16:47
  • I would say that LabVIEW support for Linux and Mac is more of an afterthought. A lot of features are not available on those platforms. I consider the fact that LabVIEW is compiled to be a bad attribute. The way the language is shaped and used really should belong in an interpreter. – CookieOfFortune Mar 01 '10 at 19:34
3

I have programmed extensively with MSRDS and to a lesser extent with LabVIEW and here is my opinion. Earlier, most of our software used to developed using LabVIEW but the last few years we have been moving a major part of it to C# because it is much easier to do objected oriented programming using a language like C#. I personally feel MSRDS and in particular the Concurrency Coordination Runtime (CCR) is so underrated partly because of the not so detailed documentation. Although the MSDN forums are excellent, we are required to search through them to find out some of the things that I feel should have been part of the documentation. Another excellent source of information to refer is the book "Professional Microsoft Robotics Developer Studio" by Kyle Johns and Trevor Taylor.

Coming back to the comparison, I feel both LabVIEW and MSRDS (although I am not sure about LabVIEW Robotics) follow different programming methodologies. Although it has been targeted to Robotics, MSRDS is used to harness asynchronous behavior in any application. CCR has some excellent coordination primitives (such as Joins and Interleaves) and it makes asynchronous programming a lot easier. DSS is used to develop service oriented applications that are distributed across multiple nodes residing in the same machine or across different machines. We developed a framework for developing Laboratory Automation Systems using MSRDS. The framework is used to develop distributed component based software that is both thread-safe and responsive.

It is also worth mentioning that Task Parallel Library Data Flows in .NET 4.5 is based on the CCR concepts and also the concepts from .NET RX. I suggest you consider looking at them as well.

Thanks,

Venkat

Venk K
  • 1,157
  • 5
  • 14
  • 25
2

I think Ton hit it on the nose, but there a couple key points I disagree on.

Independent of price LabView is a far superior system for automation and embedded programming. However, there is the catch that without a license LabView will break the bank a few times over. Depending on your targeted platform, you could easily spend several thousand dollars for a development environment.

Both systems do have a compiler. For a while LabView was restricted to only a few embedded environments, but with the addition of an ARM compiler there are now a huge number of supported hardware systems. LabView is compiled in real time as you program, MSDS is compiled on request (as far as I know).

LabView is absolutely targeted to robotics. NI has put forth a lot of tools for robotic applications and many of the ideas taken from automation can be dropped right into a robotics setting. As an interesting note, the FIRST Robotics Competition exclusively uses NI hardware (the cRIO) and LabView is a popular programming option.

RDS's visual programming and LabView's visual programing aren't really comparable. They don't operate by the same paradigms.

RDS does create machine code and the code can run on a robot without intervention.

If you are looking to buy a complete robotics system for development with LabView check out this page: http://www.ni.com/robotics/how_to_buy.htm

Just as a bit of background, I am a certified LabView developer and have used RDS with the lego NXT system as an instructor.

Jay
  • 2,861
  • 3
  • 29
  • 51