Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   NI LabVIEW (http://www.chiefdelphi.com/forums/forumdisplay.php?f=182)
-   -   Check My Autonomous Code (http://www.chiefdelphi.com/forums/showthread.php?t=105089)

jhellr13 26-03-2012 20:21

Check My Autonomous Code
 
1 Attachment(s)
Hey all,

If you don't mind, can you take a look at my autonomous code? First time really trying to do it. One part is the kinect which I am certain to work, and the other is moving to the bridge and lowering our arm to tilt the balls towards us.

As a way of switching between modes, I went with the route of using the virtual digital inputs on the driver station. In the code, you will see how I have a wire going from that array to the kinect in a case structure, and another wire from the array to the other autonomous mode in a case structure. Not sure if it is correct that way.

Any help would be appreciated!!!

Thanks!

Jay1986 26-03-2012 21:04

Re: Check My Autonomous Code
 
First of all, make sure you reset your encoders before using them. So make a sequence before you move back to reset them to 0 and then you can see accurate results. Also your bridge arm code doesnt look correct, but I dont know how yours runs so I cant be for sure. The array part that you are using is something that I havent used before so I have no help for that.

jhellr13 26-03-2012 21:08

Re: Check My Autonomous Code
 
Quote:

Originally Posted by Jay1986 (Post 1149783)
First of all, make sure you reset your encoders before using them. So make a sequence before you move back to reset them to 0 and then you can see accurate results. Also your bridge arm code doesnt look correct, but I dont know how yours runs so I cant be for sure. The array part that you are using is something that I havent used before so I have no help for that.

I'll have to add that for the encoders.
The arm code looks pretty confusing because it involves a limit switch to stop it when it hits its lowest point. That is why there is an array part and logic code in there. It has worked in teleop before.

Thanks

RyanN 26-03-2012 23:55

Re: Check My Autonomous Code
 
In your attached code, you have two while loops.

The one on the top has some useless logic in there with the < 0 thing since you're giving it values of 0.3 and 0, the value will never be less than 0. I think you're trying to code in protection so the motor never goes in reverse, right? Or is your logic backwards and you want to use the AND to enable the motor output? I'm not sure what's going on here. You might want to think it out on paper. Also, you should GET your references outside of the while loop to reduce CPU load.

The one on the bottom definitely won't work the way you think it will.
I think you want your robot to move forward 5 feet, stop, and lower the bridge arm, right? Look where your while loop is located. It will execute the sequence diagram with every loop. So you'll be telling your drive motors to move, then stop, move then stop... Another issue is where your bridge switch GET method is located, outside of the while loop. The switch will only be read once, then that's it. Your motor output will never be controlled. And again, some useless logic. Is 1 < 0? No, you know that, so why have that in your program. Since you're using an AND, and you have a constant FALSE being pushed in it, it will always be false, which will cause your bridge arm motor to be on the full time.

Also, good job using the Select on the second sequence. Why not use it for the motor values in the first sequence?

Don't forget to add a small Wait timer to each while loop. Not having this will cause the CPU to spike out to 100% and hog all resources.

One last additional thing. You should re-enable the safety config for your drive motors once you're done with autonomous. Really, it's not needed. As long as you update your motors every 100ms, you'll be fine.

And as Jay1986 said, make sure to reset your encoders before using them.

jhellr13 27-03-2012 18:38

Re: Check My Autonomous Code
 
1 Attachment(s)
I changed some stuff and tried to fix what you suggested though somethings i was unsure of. Let me know how this one looks. Could you possibly comment in the physical code what I need to change?
In regards to the code on the top, that is for the kinect. Don't worry about that because it works PERFECTLY! I'm just worried with that part in regards to the digital inputs on the driver station and how I attached that array to a case structure outside.

RyanN 27-03-2012 22:52

Re: Check My Autonomous Code
 
1 Attachment(s)
I didn't really edit any of your code. You had a floating number and boolean that I deleted, and I move a few elements around to better document it.

jhellr13 27-03-2012 22:58

Re: Check My Autonomous Code
 
Quote:

Originally Posted by RyanN (Post 1150469)
I didn't really edit any of your code. You had a floating number and boolean that I deleted, and I move a few elements around to better document it.

You think the bottom code will work now? How about the virtual digital inputs?

RyanN 27-03-2012 23:09

Re: Check My Autonomous Code
 
Quote:

Originally Posted by jhellr13 (Post 1150478)
You think the bottom code will work now? How about the virtual digital inputs?

No, the bottom code won't work. Check out the comments I left in the code.

jhellr13 27-03-2012 23:14

Re: Check My Autonomous Code
 
Quote:

Originally Posted by RyanN (Post 1150488)
No, the bottom code won't work. Check out the comments I left in the code.

Just fixed some of the things you commented. I appreciate the comments you had with my logic on somethings, but I kept them the way they were because I am confident that logic works. I added timers and a while loop at the end, though I'm not too sure on that while loop. I didn't change much in the part with the arm because I couldn't quite understand your comment.

To give you more insight of how the arm works, I'll describe it to the best of my ability. It starts straight up, then rotates down to I guess to be something like a 115 degree angle or whatever needed to tilt the bridge on our robot. At that lowest point, there is a limit switch to make the output 0. I am trying to make this autonomous work where when it moves to that sequence, the arm will rotate down at 1, then hit 0 when limit switch is hit. I'm definite the logic is correct as it is also used in my teleop.

RyanN 27-03-2012 23:35

Re: Check My Autonomous Code
 
5 Attachment(s)
Quote:

Originally Posted by jhellr13 (Post 1150489)
Just fixed some of the things you commented. I appreciate the comments you had with my logic on somethings, but I kept them the way they were because I am confident that logic works. I added timers and a while loop at the end, though I'm not too sure on that while loop. I didn't change much in the part with the arm because I couldn't quite understand your comment.

To give you more insight of how the arm works, I'll describe it to the best of my ability. It starts straight up, then rotates down to I guess to be something like a 115 degree angle or whatever needed to tilt the bridge on our robot. At that lowest point, there is a limit switch to make the output 0. I am trying to make this autonomous work where when it moves to that sequence, the arm will rotate down at 1, then hit 0 when limit switch is hit. I'm definite the logic is correct as it is also used in my teleop.

Can you post your new code so I can take a look? My comment about the logic is that you have some stuff in there that doesn't do anything, and then some of it that doesn't do anything will cause your motor to keep running indefinitely.

Let me step you through your own logic.

We're looking at this code right here:
Attachment 12440

Let's clean it up to view everything a little better:
Attachment 12441

Now let's minimize the code, removing code that does nothing.
Step 1:
Attachment 12442

Step 2:
Attachment 12443

Step 3:
Attachment 12444

Please let me know if you do or do not understand this. The reason it all cancels out to a False is because you're using an AND gate, meaning both input X AND input Y must be True in order for the Output to be True.

jhellr13 28-03-2012 06:25

Re: Check My Autonomous Code
 
1 Attachment(s)
Quote:

Originally Posted by RyanN (Post 1150512)
Can you post your new code so I can take a look? My comment about the logic is that you have some stuff in there that doesn't do anything, and then some of it that doesn't do anything will cause your motor to keep running indefinitely.

Let me step you through your own logic.

We're looking at this code right here:
Attachment 12440

Let's clean it up to view everything a little better:
Attachment 12441

Now let's minimize the code, removing code that does nothing.
Step 1:
Attachment 12442

Step 2:
Attachment 12443

Step 3:
Attachment 12444

Please let me know if you do or do not understand this. The reason it all cancels out to a False is because you're using an AND gate, meaning both input X AND input Y must be True in order for the Output to be True.

Alright. I'll change that stuff later in the day. Sort of in a rush right now, but I attached my new code from last night.

RyanN 28-03-2012 15:02

Re: Check My Autonomous Code
 
Quote:

Originally Posted by jhellr13 (Post 1150593)
Alright. I'll change that stuff later in the day. Sort of in a rush right now, but I attached my new code from last night.

Keep me informed. I'm wanting to get it working for you.

jhellr13 28-03-2012 15:35

Re: Check My Autonomous Code
 
Quote:

Originally Posted by RyanN (Post 1150790)
Keep me informed. I'm wanting to get it working for you.

I just looked over the code again. I left the logic you were talking about the same as I feel safer keeping it the way I've always done limit switches since I know it works. I'm not doubting your suggestions, I would just like to keep it the way it is.

The new code is in my previous response in the zip attachment.

RyanN 28-03-2012 18:16

Re: Check My Autonomous Code
 
Well, I'm going to tell you right now, it's will not work. I cannot explain it any further. Maybe someone else can look at your code and help you. I've done all I can do.

RufflesRidge 28-03-2012 18:23

Re: Check My Autonomous Code
 
Quote:

Originally Posted by RyanN (Post 1150864)
Well, I'm going to tell you right now, it's will not work. I cannot explain it any further. Maybe someone else can look at your code and help you. I've done all I can do.

Ryan is correct.

I highly recommend looking through Ryan's images above, step by step to see why your logic doesn't work the way you want it to (in addition to the fact that the code for the bottom mode isn't in a loop).


All times are GMT -5. The time now is 04:05.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi