|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: no control of bot when kicker is operating
What you've posted is essentially a state machine, where the state variable is the value of kickTimer.
A generic state machine might look like this: Quote:
The above has the advantage that it's a little easier to see how to use events (like limit switches etc) to change states, instead of being strictly timer-based. ~ Last edited by Ether : 12-06-2010 at 00:53. |
|
#2
|
|||||
|
|||||
|
Re: no control of bot when kicker is operating
Thanks for the suggestions. I should have also stated:
I'm a non-student member (I guess a mentor, in some ways), and our team is extremely small. I couldn't even coerce any students to learn programming, so I had to learn Java with some small help from the team mentor (who knew very little more about Java than I did) and the internet starting 2 days from Kick-Off. We were just getting the bare minimum working. But I'll keep that in mind for the future, if/when we teach the new programmers. |
|
#3
|
||||
|
||||
|
Re: no control of bot when kicker is operating
I've seen the following kicker approach successfully implemented in LabVIEW. The same approach could be used in Java or C++.
put the following code in a separate concurrent periodic task using your language of choice. for a kicker, 20Hz is probably plenty fast enough. Code:
/*
to establish the 50ms period (20Hz frequency) put your code here
to block wait for 50ms to elapse, releasing the CPU so this task
does not run at high speed and use CPU resources unnecessarily
when not kicking
*/
if (kickRequested && !kicking) {
kicking=1; // prevent reentrancy
/*
"kickRequested" is a global boolean that is used by your code in Autononmous and/or TeleOp to request that a kick be performed. "kicking" is a local boolean to control reentrancy: If a kick is presently in progress when the request is made, the request will be ignored (so as not to interrupt the ongoing kick cycle) |
|
#4
|
|||
|
|||
|
Re: no control of bot when kicker is operating
One thing I liked doing for the kicker code was making sure you couldn't violate the timing rules (2 seconds between extensions out of the main robot body), and tossing in a few extra threads made it fit together nicely. Obviously reload time can make this unneeded, so it might not even be needed, depending.
Example code here. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 842 Kicker On Bot | kE7JLM | General Forum | 36 | 29-01-2010 11:51 |
| How & where do you build the bot when it snows and your robo-base (school) is closed? | Elgin Clock | General Forum | 28 | 03-03-2008 00:12 |
| paper: Control an FRC bot with a Wiimote | Greg Marra | Extra Discussion | 8 | 21-01-2008 12:41 |
| 1189 - Human-Bot Arm Control | jmcr8on | Robot Showcase | 50 | 13-10-2007 22:58 |