![]() |
Crio autonomous delay overlaps tele
For this years autonomous i added a delay after our code so that we can shoot and feed balls. we added a delay as a cheap fix to stop the robot from shooting and lifting blanks. So i added a 30 sec delay thinking that would be "good enough". During our match, after auto i had no control over the robot it would not respond at all. the ds was still geting its readings and was telling us that we were good on communication and robo code. we regained control around 20 sec's into the teleop period.
Did the delay overlap into teleop? What may of happened? I thought after auto was disabled and tele enabled, all process in the auto code would stop? |
Re: Crio autonomous delay overlaps tele
A problem we had in Portland sounds very simular to this... while i do not know all the details, I believe our basic problem was that we could not come out of autonomous... we would run our auto, then it would just sit there for tele-op... we tried disabling our auto, but then it just sat there for the entire match... i'm not sure what all we did to fix it friday night, but it was a problem in our code. We ran the robot in our pit using the FMS simulator and recreated the problem found it in the code and fixed it. we ran the FMS simulator several more times after and never had the issue again... luckily for us, even though we were ranked like 33rd, our 3 matches saturday earned us a spot as the number 3 pick.
|
Re: Crio autonomous delay overlaps tele
I don't believe you state what language you are using or where you placed the delay. The frameworks in the different languages are generally the same, but how they check for and transition between states is quite different.
Greg McKaskle |
Re: Crio autonomous delay overlaps tele
Im sorry about that.
We are using WindRiver c++. The delay was placed at the very end of our code in the auto function. If you need any thing else just ask:D |
Re: Crio autonomous delay overlaps tele
A delay at the end should effectively keep you from doing anything in auto or teleop during the duration of that delay.
In C++ you need to do a periodic check to see if IsAutonomous is over and done with. |
Re: Crio autonomous delay overlaps tele
In both C++ and Java using the SimpleRobotTemplate, there is no code that will force you're autonomous method to end. So as was stated, you can loop using the isAutonomous() or isOperatorControl() methods.
We were afraid that there might be locked resources and if we just ended the method, you could have deadlock waiting for those resources to free up. If you're using the Periodic template (or the command based stuff), then it will get out of Autonomous naturally. Brad |
| All times are GMT -5. The time now is 00:50. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi