Comparing LabView and Microsoft Robotics Studio
On the surface LabView and Microsoft Robotics Studio appear to me to have a very similar programming 开发者_如何学Goparadigm 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.
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
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
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.
精彩评论