LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Automatic Robo Arm

Hello, I'm currently working on code to allow a robotic arm to move its 3 different motors automatically once it reads the input a user types. I currently have it so that it can move manually, but not automatically, through 3 different DQ assistants attached to build arrays and switches, in a while loop. It also reads the arm's current position through a DQ Assistant and displays three different outputs: height, in/out, and rotation, also in a different while loop. Can I get some pointers or example code on how to write part 2 of the code that will read 3 different inputs and move the arm accordingly? Having trouble finding resources.

0 Kudos
Message 1 of 5
(108 Views)

Robotic programming is always a bit tricky. But my first recommendation would be to actually learn DAQmx programming and forget about those DAQ Assistant Nodes. They are great to begin doing a single task without knowing anything about programming but they quickly detoriate into an uncontrollable mess once you need to do more than one thing simultanously.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 2 of 5
(64 Views)

@MFedu wrote:

Hello, I'm currently working on code to allow a robotic arm to move its 3 different motors automatically once it reads the input a user types. I currently have it so that it can move manually, but not automatically, through 3 different DQ assistants attached to build arrays and switches, in a while loop. It also reads the arm's current position through a DQ Assistant and displays three different outputs: height, in/out, and rotation, also in a different while loop. Can I get some pointers or example code on how to write part 2 of the code that will read 3 different inputs and move the arm accordingly? Having trouble finding resources.


This seems like an architectural nightmare, but we can't really tell from your description what you are actually doing.

For motor control, one would typically use NI-motion. I have never head of "DQ assistants". Can you explain your hardware?

 

You cannot "built arrays and switches in a while loop". Can you show us your code drafts so we can get a clearer picture?

 

Can you explain the three user inputs? Why do they need to be different? Do they just define e.g. an xyz position? If this is a robotic arm, you might need to solve inverse kinematics. Have you worked out all the math based on the arm geometry?

0 Kudos
Message 3 of 5
(47 Views)

@MFedu wrote:

It also reads the arm's current position: height, in/out, and rotation ...


I'm guessing that "position" is being specified in cylindrical coordinates, with "height" being "z" along the cylinder's axis, "in/out" being "radius" in the x-y plane at height z, and "rotation" being the "angle" (from "x") in the XY plane.

 

My first LabVIEW project involved "sound localization in large primates" (primarily BME undergraduates) that involved a vertical motor that rotated (±30°) a 2-meter arm (fixed "radius" of 2 m)  on which was mounted a vertical track holding a speaker that could move vertically ("height") about a meter.  Fortunately, one axis (call it X) was fixed (2 meters), and we mostly just moved the vertical (rotatory, Z) axis, so only had to deal with one degree of freedom (at a time).

 

Bob Schor

0 Kudos
Message 4 of 5
(27 Views)

This is the current setup. It controls the arm manually, by pressing the buttons and displays the current position of the arm, just needs pointers on to making to make it move automatically. Like any examples or references that could help. I have also measured the dimensions of the arm.

MFedu_2-1775958310941.jpeg

MFedu_3-1775958322032.jpeg

 

 

 

 

 

0 Kudos
Message 5 of 5
(16 Views)