![]() |
paper: LabVIEW Mecanum Programming
|
Re: paper: LabVIEW Mecanum Programming
Nice presentation. This should prove helpful to teams just getting started with LabVIEW and mecanum. There's a small error on Page 19 which may lead some astray: Quote:
You can't just pass the joystick angle and gyro angle to the PID as-is. The PID will not like that at all. For example, if the joystick angle is -1 degree and the gyro is reading +359 degrees, the PID will calculate (and act upon) an error of -1-359 = -360 degrees... even though the vehicle is already pointing in the desired direction. To use the LabVIEW PID in this situation, you need to do something like this: Code:
angle_error = joystick_angle - gyro_angle;Example LabVIEW code for the second line in the code block above can be found here. |
Re: paper: LabVIEW Mecanum Programming
Thank you Ether. I added in a solution that I used but neglected to include in the first version. Now that I look at your solution closer, however, yours seems a great deal more elegant.
|
Re: paper: LabVIEW Mecanum Programming
I have a question on slide 9; what is the blue thing within the case structure? Sorry 1st time programming mechanum drive. Very helpful presentation
|
Re: paper: LabVIEW Mecanum Programming
I don't know what it is you're referring to. Can you describe the "blue thing" a little better? Blue typically means an integer value.
|
Re: paper: LabVIEW Mecanum Programming
Sorry about that; I mean in the true/false case structure, there is the"blue thing" that says"L1 rotate_mode." My question is where is that located in labview?
|
Re: paper: LabVIEW Mecanum Programming
rotate_mode is a global variable that was defined on the immediately preceding slides. L1 is an enumerated constant that was obviously created by right-clicking the input terminal of the variable and choosing Create Constant.
|
Re: paper: LabVIEW Mecanum Programming
Hello,
I did all the steps in page 8, but can not get my robot global data to read the "rotate mode" enum. Any help would be appreciated. Thanx, David |
Re: paper: LabVIEW Mecanum Programming
I'm not sure what you mean. The robot global data doesn't "read" or "write" the values. It just provides a place that contains them.
Are you trying to say you can't get the global variable to appear on the Teleop block diagram? |
Re: paper: LabVIEW Mecanum Programming
Yes sir. That is what I meant. I defined it's values in the Robot Global Value.vi but they won't show in teleoperated.
Thanks, David |
Re: paper: LabVIEW Mecanum Programming
It's not exactly obvious how to place a reference to an existing global variable. Here's how to do it:
Right-click on an empty spot in the block diagram to call up the function palette. Choose "Select a vi..." and navigate to the folder containing your robot project. Open "Robot Global Data.vi" and you'll have a global variable attached to your cursor (it will likely be named "Enable Vision" -- don't worry about it). Click to place that variable on the block diagram. Now you can click on the middle of the variable to bring up a list of all the globals that are part of the Robot Global Data vi. Choose the one you want. The default is to make a "write" reference. To change it to "read", right-click on the variable and choose "Change To Read". |
Re: paper: LabVIEW Mecanum Programming
Okay. I got the global variable to show up, and I can connect the constant to it. But when I change the global variable to read, I can't connect my constants anymore. Did I totally mess up somewhere? This is my third year programming, but I've never messed with the global robot data vi.
Thanks, David |
Re: paper: LabVIEW Mecanum Programming
If you want to put a constant in the global variable, you need to write to it. You would read it if you want to do something with the value it contains.
|
Re: paper: LabVIEW Mecanum Programming
Okay. On to page 14 :) I'm getting tired of asking questions. But thanks to everyone for your help. The rotate mode runs into the case structure and then connects to the symbol I can't seem to find. It's blue with an arrow and a box with a circle under it.
Also, do need to create a global variable called "header"? If so, what properties does it need to have? And... what is connect to the PID on page 15? Thanks again, David |
Re: paper: LabVIEW Mecanum Programming
Quote:
(The Feedback Node look has changed slightly between LabVIEW 8.6 and LabVIEW 2011. The "box with circle" is now a wider box with an asterisk.) |
| All times are GMT -5. The time now is 08:27. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi