|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
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! |
|
#2
|
||||
|
||||
|
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.
|
|
#3
|
|||
|
|||
|
Re: Check My Autonomous Code
Quote:
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 |
|
#4
|
||||
|
||||
|
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. Last edited by RyanN : 26-03-2012 at 23:59. |
|
#5
|
|||
|
|||
|
Re: Check My Autonomous Code
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. |
|
#6
|
||||
|
||||
|
Re: Check My Autonomous Code
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.
|
|
#7
|
|||
|
|||
|
Re: Check My Autonomous Code
You think the bottom code will work now? How about the virtual digital inputs?
|
|
#8
|
||||
|
||||
|
Re: Check My Autonomous Code
No, the bottom code won't work. Check out the comments I left in the code.
|
|
#9
|
|||
|
|||
|
Re: Check My Autonomous Code
Quote:
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. |
|
#10
|
||||
|
||||
|
Re: Check My Autonomous Code
Quote:
Let me step you through your own logic. We're looking at this code right here: Let's clean it up to view everything a little better: Now let's minimize the code, removing code that does nothing. Step 1: Step 2: Step 3: 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. |
|
#11
|
|||
|
|||
|
Re: Check My Autonomous Code
Quote:
|
|
#12
|
||||
|
||||
|
Re: Check My Autonomous Code
Keep me informed. I'm wanting to get it working for you.
|
|
#13
|
|||
|
|||
|
Re: Check My Autonomous Code
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. |
|
#14
|
||||
|
||||
|
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.
|
|
#15
|
|||
|
|||
|
Re: Check My Autonomous Code
Quote:
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). |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|