Quote:
Originally Posted by Nate Laverdure
OK, I agree with you. But here's how I can exploit this to gain an extra command:
Program 5 time slots into the 15-second hybrid mode. Within each 3-second time slot, a command must be received for the robot to do something. So a potential history of these time slots might look like this:
Time / Command
00:00 / 1
00:03 / 2
00:06 / 4
00:09 / 3
00:12 / 2
But what if I wanted to add an additional command to the system and remain below the refs' radar?
Time / Command
00:00 / 1
00:03 / No command sent
00:06 / 4
00:09 / 3
00:12 / 2
You could program the "No command sent" command to do anything, not just revert to previous behavior. Perhaps "No command sent" means "turn left." How many commands do I really have now?
|
My team and i believe the idea of a "no command sent" command is entirely within the letter and the spirit of the rule - such a command is called default behavior. The presence of this default behavior in the robot is critical. Without it, the Mars Rover wouldn't work. The programming on the rover isn't as simple as "drive straight unless i tell you to do something else". No, it probably has code that avoids collisions with big rocks or skirts around the outside of craters instead of falling in. The presence of a command from NASA (lets say drive straight for 500 feet) might override these behaviors and cause the Rover to head down into a crater. Thus the presence of a signal causes certain behavior, as does its absence.
With the game this year, there is a pretty small number of finite states you could have for your robot. A basic state diagram for one might be something like "drive straight. stop. knock ball off. drive straight. turn to the left in an arc of radius X. goto state 1". Pretty simple stuff, doesn't really require input from the robocoach to go through knocking random balls off. Now, you might modify the above state machine to throw in some bypasses - "if we're in state one(driving straight) and receive a "1" signal, turn to the left 5 degrees. a "2" signal turn to the right 5 degrees". That would give you three possible behaviors for that portion of operation using only two button pushes. you could also have buttons 3 and 4 modify state 5 (turning at radius X) so you turn at a different radius to line up with your ball on the other side - a default radius might take you from the outside of the track to the inside (or inside to outside), while a signal of "3" could be a tight radius (inside to inside) and a signal of 4 could be a wide radius (outside to outside)... that would give you again 3 possible behaviors using only 2 signals.
So i would say using the absence of a signal to dictate robot behavior is entirely acceptable, making your example above perfectly fine. You do need to be careful, however, when talking about breaking the hybrid period into time slots - there's a powerful urge there to have signals mean something different in different time slots, which, i think, would be breaking the rule.