Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
fsmbot [2010/04/04 01:40]
honza sentence fix
fsmbot [2010/04/04 01:53]
honza Added info about flow of state
Line 20: Line 20:
  
 Click to enlarge Click to enlarge
 +
 +I try to smooth the flow between phases, so if your state is being initialized, and it doesn't require additional time (isReady() return true), the method run is immediately called. Basically unless you require some additional time during maintenance (isReady(), isInterrupted(), isCleaned() all return true), the flow won't be suspended. The flow will however will be suspended after run().
 +
 +This benefits developer, because he can be sure, that at least in first execution of method run(), the condition that enabled transition to the state is still valid.
  
 ==== Creation of transition ==== ==== Creation of transition ====
Line 72: Line 76:
  
 ===== Cons ===== ===== Cons =====
-* FSMs are great for small and simple bots (up to 10-15 states)__[at least that is what I have been told]__, but as number of states increases, so does number of transitions that have to be maintained. Upper bound is (num of states)^2. Use of hiearchy can mitigate this up to certain degree, e.g. CTF bot can have three roles FlagTaker, Hunter and Defender with defined transitions between them. Simple FSM. Of course every role has its FSM that has much more limited scope. I am planning to try this and I may share results.+* FSMs are great for small and simple bots (up to 10-15 states)__[at least that is what I have been told]__, but as number of states increases, so does number of transitions that have to be maintained. Upper bound is (num of states)^2. Use of hiearchy can mitigate this up to certain degree, e.g. CTF bot can have three roles FlagTaker, Hunter and Defender with defined transitions between them. Simple FSM. Of course every role has its FSM that has much more limited scope. 
  
 ===== Where can I get it? ===== ===== Where can I get it? =====