LabView or Matlab?

A

Thread Starter

Ayman

Hi All,

Please advise me, i'm working in my graduation project, i bough an NI data acquisition card and i want to deal with it to control the motion of a robot.

Do you recommend Matlab or labview?

I already know the basis of the data acquisition toolbox of matlab and i know nothing about labview.

Thanks
Ayman
 
D

Davis Gentry

Labview is better for control, Matlab is better for data manipulation.

But why use either one to control robot motion???
Neither is well suited.

Davis Gentry
Senior Application Engineer
Delta Tau Data Systems
 
Since you already know Matlab, and you can talk to the DAQ board from within Matlab, I don't see any reason you should move to Labview. Labview is a 'data flow' language as opposed to an abstract programming language. You will find yourself getting frustrated trying to do things that you already know how to do easily in Matlab. If you are building your own robot controller, you will need to perform a lot of matrix manipulations. Labview isn't exactly meant for linear algebra - Matlab inherently is.
The only place where Labview is useful is if you need to quickly start reading data from your DAQ card (i.e., you want to whip up an app that reads signals from an external source and peforms simple manipulations, and you need to do it within a day of receiving the DAQ card!).

I'd readily suggest that you stay with Matlab.
 
D

Davis Gentry

Really? What kind of servo loop frequencies can you
get out of these packages? Are they deterministic?
The last time I used Labview you were lucky to get a 1
kHz update, and if Windows got hung up waiting on
another piece of hardware it could easily go into the
tens or even hundreds of milliseconds between updates,
which leaves latencies unacceptable in most motion
control applications. This forces you to use
intelligent drives and send them position commands,
relegating your "controller" to a trajectory generator
role. So you have now paid for intelligence at the
drives and at the PC, but the latencies still limit
your coordination between axes.

Has this changed in the last couple of years?

Davis Gentry
Senior Applications Engineer
Delta Tau Data Systems
 
C

Curt Wuollet

No, a ridiculous choice for motion control remains a ridiculous choice. But, everthing has to run on Windows anyway.

Regards

cww
 
How you control at robot? Today motion controllers have powerful tools for motion Data acquisition. Both MATLAB and LabView hardwares are expensive.

You may looking for special for motion data acquisition system also - as for example Motion analyzer from Control and Robotic Solutions.
 
B
Davis-
Labview is just a programming language, and it is subject to the limitations of the operating system. Yes, there is a real-time version of Labview. For motion control, though, I would almost always use a dedicated motion controller to handle the motion aspects of my program. Labview makes it easy to interface many different types of equipment into a single application.
 
D

Davis Gentry

Brian -

I agree entirely. I have used Labview at various times in the past and find it a good package for setting up data monitoring and manipulation - and it could concievably be used as a trajectory generator if you need to amalgamate a lot of data from widely varied sources. We used it for that purpose in setting up a data gathering and motion control system for the fluid dynamics lab at MIT. Mainly because they were familiar with the language and found it easy to modify on their own after I was out of the picture. It is an excellent package for use in R & D or a
university setting.

Davis
 
Davis-

You left out Production. Labview is just another programming language but it is graphical. I have set up many production machines that use Labview. They interface with test equipment, databases, temperature controllers, machine vision, and motion controllers. That includes 2-7 axis PMACs.

By the way, I like the PMACs very much, once they are configured properly. Getting to that point can be frustrating, though.

Brian
 
I would go with matlab. Ultimately, you will need to analyze the data. Matlab is very flexible and has lots of analysis functions and libraries.

Note that Matlab now supports M Series, USB, and other NI hardware with its Data Acquisition Toolbox. This wasn't always the case. Specifically, Matlab supports NIdaqmx drivers which allows it to support this hardware.

Here is Matlab's NIdaqmx page showing what hardware is supported:
http://www.mathworks.com/products/daq/supportedio5871.html
 
C

Claudy D'Costa

You should go for MATLAB itself. But i would advice you to use a micro controller also and then interface it with PC. This wil speed up things a bit.
 
I would recommend LabVIEW - you can either use NI embedded hardware for the robot control or you can use 3rd party hardware from PC104 to MCUs. Check out ni.com/robotics
 
I would recommend LabVIEW too - or as it concern to a robot for
education purpose you can check out something looks like the
brainstorms-nxt kit (LEGO) with a G language by NI.

--
Best regards,
Vladimir E. Zyubin


 
After Labview any other non-graphical language is sucks.
Just a few comments about Labview advantages:

1. Graphical representation of your program gives you clear understanding about its structure and data flow. You start thinking structurally. In case of text language you need to have a quite good imagination to see SW structure watching at the listing.

2. Labview debugging tools... to be honest, it is possible to say Matlab has absolutely no debugging tools in comparison to Labview.

3. Labiew has no syntax (as a graphical language). Most fresh Labview programmers have very good progress-it is easy to start when you do not need to care about syntax.

4. Most Labview functions are polymorphic: (it can be automatically adopted to different data type) for example, the same function can be used for <integer to integer> or <string to string> or <array to array> or <structure to structure> comparison. In Matlab you need to use a lot of different functions to do the same.

5. For those who are so conservative in programming style, Labview supports text programming (general C syntax). It helps to migrate from text languages sometimes...(Customers satisfaction... He-he )

Summary: Labview is a next generation language, extremely convenient for non-professional programmers, engineers, researchers and students.

Disadvantages: HW resources, code size, performance (but anyway Labview is much faster than Matlab in most general tasks).

About me: I have over 8 years programming experience in Labview and C, and about 2 years in Matlab
 
I have used Matlab and Labview. LabView is a compiled language whereas Matlab is interpretive ie it will fail half way through if there is an error. (though Matlab can be converted into say c language and compiled).

Nowadays LabView can do almost anything. The libraries are as extensive as Matlab for 99% of things. It will run sometime as fast as c++ (since it compiles) and has great graphical capabilities. I use it for all my research in signal processing. You can do real-time too with a compact-rio which is an FPGA device (+ processor). At present the rio is a bit clunky in my opinion.

For basic number crunching you cannot beat LabView. The program is far easier to understand than sequential code. Most student get the hang of the basic idea in about half an hour. Other fancy stuff with multiple loops takes a little longer but is still easier to follow than sequential code of any form. For sure LabView (NI) is ahead of the pack. People are still programming in primitive old-fashioned sequential code whilst the data-flow principle of LabView is light years ahead (and still object orientated!).

So what do I use Matlab for? Legacy code that I have.
 
@Red_Perez

I admit, the learning curve is shorter for LabVIEW. But even for someone who is an expert, LabVIEW is tedious to program, and time consuming to do so in order to ensure that you can have "clear understanding" a year later.

Honestly, think about how much longer (vs. typing) it takes to write a VI for:<pre>
function [aOut] = IterateA(nTimes, aIn)
aOut = [];
for n = 1:nTimes
aOut = aOut + aIn;
end
end</pre>
and how easy it is to visualize something simple like that, much less something that approaches any kind of everyday programming complexity.

From your statement re debugging, it's obvious you have very little Matlab experience. There's been syntax highlighting and integrated warnings/error messages (M-Lint) for ages, as well as standard (breakpoint/step) debugging.

Furthermore, the Matlab "Command Window" is essentially a code dev/customizable debugging tool, since you can use it to run sections of code and visualize it any way you want.
 
I guess that is a matter of opinion, and based on what you are comfortable with. Large Labview projects, if properly programmed, are much easier to follow. I know I could program the FOR loop much faster in Labview then in text. With text, I must remember if I declared the variables, used the proper syntax, and look out for typos. In Labiew I just draw the FOR loop, add a shift register and an ADD function, input and output, and I am done.
 
Top