Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Rules/Strategy (http://www.chiefdelphi.com/forums/forumdisplay.php?f=6)
-   -   How many RoboCoach Commands? (http://www.chiefdelphi.com/forums/showthread.php?t=60884)

Jon Stratis 09-01-2008 12:20

Re: How many RoboCoach Commands?
 
Quote:

Originally Posted by Nate Laverdure (Post 673342)
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.

Mark McLeod 09-01-2008 12:37

Re: How many RoboCoach Commands?
 
Q&A will need to clarify more of this Hybrid interaction.
The mixture of autonomous control and the 4 Robocoach commands can make for quite a variety of responses even under the most benign of conditions.

For example, a robot that senses and avoids traffic jams autonomously,
and a Robocoach command to order a left or right override.
The robot can detour all over the field on just those two commands.

ebarker 09-01-2008 12:45

Re: How many RoboCoach Commands?
 
Quote:

Originally Posted by Nate Laverdure (Post 673332)
Sorry to be in the middle of this epic Morse code throwdown, but I have a thought:
Could a lack of a command also be a command? Would it count as one of the four?

Example: Press "1" and the robot does something. If no command is received in the next three seconds, the robot reverts to a previous behavior until another button is pushed.

In this example, you are technically sending information by not pressing a button within a time period. Would this count as a command?

If Press "1" says "go forward for three seconds" that is an command that execute a preprogrammed sequence. Like "go explore that rock".

Not pressing "1" within 3 seconds is not sending a command. The bot is simply playing out it's program.

Pressing "1" again before the 3 seconds to restart the timer could be considered
1) reissuing the command (so you are patting the "watchdog)
2) or a new type of command (extended period)

Nate Laverdure 09-01-2008 14:00

Re: How many RoboCoach Commands?
 
If your robot ever makes this decision, then IMO, you have sent a command to the robot, even if you HAVE NOT sent any signal to your robot:

1. Doing Action A for 3 seconds...
2. Has a signal been sent to the robot in the last 3 seconds? If so, GOTO 3. If not, GOTO 4.
3. Doing Action B...
4. Doing Action C...

ebarker 09-01-2008 14:19

Re: How many RoboCoach Commands?
 
If you press "1" and that means

"go explore that rock, drill a hole in it, do some chemistry, and back up ten feet and stop."

That is a single command. A complex command but still a single command.

It is what a lot of different types of devices do.

Jon Stratis 09-01-2008 16:30

Re: How many RoboCoach Commands?
 
Quote:

Originally Posted by Nate Laverdure (Post 673490)
If your robot ever makes this decision, then IMO, you have sent a command to the robot, even if you HAVE NOT sent any signal to your robot:

1. Doing Action A for 3 seconds...
2. Has a signal been sent to the robot in the last 3 seconds? If so, GOTO 3. If not, GOTO 4.
3. Doing Action B...
4. Doing Action C...

So how do you account for default behavior? The hybrid mode isn't supposed to be a different form of teleoperation - it's an automated period with guided oversight. You can send signals to your robot that are designed to change its behavior, so the whole concept of "if signal received goto 3, else goto 4" is perfectly legitimate. I would say that a communications window (like the 3 seconds posted above) is also perfectly legal - in fact, it's a concept that is used all the time in industry. Do you think the Rover has it's modem powered on 24/7? My guess would be that it is set up to turn on at set times to receive any new instructions - that saves on power consumption, which is a pretty important part of such a device - without it, they would have to design the rover to be able to draw more power at any given time than it does if only some parts are on at once. That means that the rover would be bigger, and weigh more, and thus be more expensive to send to Mars.

Ziaholic 09-01-2008 16:47

Re: How many RoboCoach Commands?
 
I'm not clear on the benefits of Squirrell's proposal ... while I do agree with most of the comments that this is not a legal operation.

What exactly do you gain by sending 123 or 456 or 789 versus a simple 1 or 2 or 3? What are the benefits of sending an (imo illegal) multi-button command?

If alliance and/or opponent interference is the problem that you're trying to avoid then perhaps we should get some time prior to match start to verify that our remote commands do not overlap. It'd be a darned shame if in the middle of my Auto-HURDLE, my alliance partner inadvertantly makes me TURN LEFT!
:ahh:

This concern will end up influencing my team's placement of the IR sensor, to make sure that we have access to the PROGRAMMING button ... we can re-load the 1/2/3/4 buttons from our (very typical) Sony remote control into something like CH UP / CH DN / MUTE / MENU ... or some other keys.

JohnC 09-01-2008 18:24

Re: How many RoboCoach Commands?
 
Quote:

Originally Posted by squirrel (Post 673279)
I am not doing any of the following prohibit things:

--switching between more than 4 states or conditions

It says you can't use "changes in the signal states to encode or transmit larger messages." Let me explain it by defining the words so that it makes sense that what you're doing is illegal.

I don't know exactly how IR works, but let's say every single button press on every single remote control in the world has a unique wavelength, and that's how the board identifies them. I know they aren't that unique, but just for the sake of argument.

Now let's say you press the "A" button. Good, now you press the "B" button. The signal state has changed from x nanometers in wavelength to y nanometers in wavelength, and by doing so it has encoded a larger message.

If that explanation doesn't make it crystal clear... then I guess go ahead and use your idea.

Quote:

Originally Posted by Nate Laverdure (Post 673342)
But what if I wanted to add an additional command to the system and remain below the refs' radar?

Dude... gracious professionalism. Come on. I read what you said and it doesn't look like having that default in there is breaking any rules, but language like that makes your intent seem questionable.

Nate Laverdure 09-01-2008 18:37

Re: How many RoboCoach Commands?
 
Quote:

Originally Posted by GaryVoshol (Post 673334)
Wouldn't that be very similar to a command "Move forward for 3 seconds"? That sounds legal.

Quote:

Originally Posted by eagle33199 (Post 673409)
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.

Quote:

Originally Posted by ebarker (Post 673432)
Not pressing "1" within 3 seconds is not sending a command. The bot is simply playing out it's program.

Quote:

Originally Posted by eagle33199 (Post 673618)
So how do you account for default behavior?

Wow, nobody agrees with me? I didn't expect that.

All of you are concerned with default behavior. Specifically, you all mention that when the Action (which is triggered by the Command) ends, then the robot should default to Default Behavior.

Let me first define some of my terms:
Action -- a series of clearly defined movements; can be as simple as "move faster" or as complicated as "go explore that rock, drill a hole in it, do some chemistry, and back up ten feet and stop." (credit: ebarker)
Command -- any information sent to the robot to trigger an action; according to FIRST rules, there can be no more than four distinct commands.
Default Behavior -- whatever the robot was doing before any commands were issued, and before any actions were embarked upon.

Now if you'll bear with me, imagine this: what if the default behavior was that the robot was standing still, and would remain standing still unless any other command was received?

Now my examples and previously expressed exasperation should make sense, and you should agree with me that what I describe is illegal according to the 2008 rules, but in case it doesn't make sense and/or you don't agree, I'll walk through the 15-second hybrid period, time slot by time slot. If you're just tuning in now, you'll need to refer to my previous post to understand what I'm talking about.

Time
00:00 -- Hybrid period begins. The robot begins its default behavior, which, as I previously mentioned, is standing still.
00:00 - 00:03 -- Command "1" is received. Action "A" is triggered.
00:03 - 00:06 -- No command is sent. Since no command is received in this time slot (00:03 - 00:06), Action "E" is triggered.
00:06 - 00:09 -- Command "4" is received. Action "D" is triggered.
00:09 - 00:12 -- Command "3" is received. Action "C" is triggered.
00:12 - 00:15 -- Command "2" is received. Action "B" is triggered.

Action E is triggered by the lack of a command in any of the 5 time slots, would NOT normally happen as a part of Default Behavior.

This is what I've been trying to say: it is possible to
1) transmit a command,
2) and trigger any action (including complex series of events),
without actually sending a signal to the robot. AND, if the sum total of the distinct commands (including any commands sent by a LACK of a signal) total more than four, then the robot is violating the rules.

Quote:

Originally Posted by GaryVoshol (Post 673334)
Dude... gracious professionalism. Come on.

I was being facetious. I don't want to break the rules-- I just want to let other people know that as the rules are currently written, there is a whole lot of room for interpretation.

Alan Anderson 09-01-2008 21:09

Re: How many RoboCoach Commands?
 
Quote:

Originally Posted by Ziaholic (Post 673637)
What exactly do you gain by sending 123 or 456 or 789 versus a simple 1 or 2 or 3? What are the benefits of sending an (imo illegal) multi-button command?

As I understand it, the extra complexity is intended to provide some immunity to accidental triggering of actions.

ebarker 09-01-2008 21:31

Re: How many RoboCoach Commands?
 
So what I'm seeing is action "E" occurs after any of A, B, C, or D. E is just simply an extension to the other four. In other words the E property is contained inside of the A,B,C,D.

Think of it this way. If you have multiple programs you can choose several ways to implement things.

abort - pressing A then B. B aborts A and executes B.
example. A = go forward, B = stop

interrupt - pressing A then B. B interrupts A and executes and the returns which lets A resume it's task.
example. A = make tea, B = make coffee, when done go back to making tea

queue - pressing A then B. A is executed completely, then B
example, A = make tea, B = then make coffee

What I think is clearly forbidden and against the spirit of the rules is this:
If you telegraphed within a short interval say:

AAA - program #1
AAB - program #2
ABC - program #3
ABD - program #4
ABA - program #5
DBA - program #6
DAD - program #7

and the list go's on and on, etc

"It is left as an exercise to the student to determine the number of permutations."

ebarker 09-01-2008 22:26

Re: How many RoboCoach Commands?
 
More -
Definitions:

lawyering - turning and twisting an interpretation to suit the needs of the reader, usually to the detriment of the person or group that wrote the document.

specification - fullfilling a customer need, making a precise determination what the customer needs in the product.

It is generally agreed that "lawyering" is undesirable and we don't want to telegraph a zillion messages.

So let's see if we can fulfill this customer specification.

buttons = A - go, B - turn left, C - turn right, D - stop

example #1 - a command can cancel or abort a previous command
elapsed time
0 - A start going forward
3 - B stop and turn left
5 - A start going forward
7 - D stop

example #2 a command can interrupt a previous command
elapsed time
0 - A start going forward
3 - B keep going and turn left
5 - D stop
7 - C turn right and stop

In example #2 it interrupts the previous command and resumes after completion. The theoretical principal is the same as a software interrupt. Just a different implementation.

Back to lawyering versus specification.

Clearly using 4 buttons to telegraph a zillion programs is forbidden.

But does our customer want the behavior in example #1 or #2 ???

(This sounds like my job every day, discerning this type of customer spec.)


Two more examples.

buttons = A - go control, B - turn left control, C - turn right control

Notice the button descriptions are slightly different than above

example #3 - a command can cancel or abort a previous command
elapsed time
0 - A start going forward
3 - A stop
5 - B start turning left
7 - B stop turning left

example #4 a command can interrupt a previous command
elapsed time
0 - A start going forward
3 - B start turning left and keep going
3 - B stop turning left and keep going
5 - A stop

are examples #3 and #4 legal ? And if so how do label the 3x5 card ?


1st card
buttons = A - go, B - turn left, C - turn right, D - stop

2nd card
buttons = A - go control, B - turn left control, C - turn right control

?????????????

KRV 10-01-2008 20:27

Re: How many RoboCoach Commands?
 
I think that there is a definite difference between an action and a state change. For example, if pressing button A "switches direction," is that legal? In some cases, it allows the robot to move forward, but other times backward...

My question, though, is how many total times can the Robocoach press the various buttons? Say A is turn left, B is turn right, C is manipulator up, and D is manipulator down. The rules specify that only 4 commands may be sent; they do not specify how many times each of the four commands may be sent. It seems that they only want a maximum of four button presses, but the wording is not definite either way.

Jon Stratis 11-01-2008 11:29

Re: How many RoboCoach Commands?
 
1 Attachment(s)
Quote:

Originally Posted by Nate Laverdure (Post 673736)
Wow, nobody agrees with me? I didn't expect that.

All of you are concerned with default behavior. Specifically, you all mention that when the Action (which is triggered by the Command) ends, then the robot should default to Default Behavior.

Let me first define some of my terms:
Action -- a series of clearly defined movements; can be as simple as "move faster" or as complicated as "go explore that rock, drill a hole in it, do some chemistry, and back up ten feet and stop." (credit: ebarker)
Command -- any information sent to the robot to trigger an action; according to FIRST rules, there can be no more than four distinct commands.
Default Behavior -- whatever the robot was doing before any commands were issued, and before any actions were embarked upon.

Now if you'll bear with me, imagine this: what if the default behavior was that the robot was standing still, and would remain standing still unless any other command was received?

Now my examples and previously expressed exasperation should make sense, and you should agree with me that what I describe is illegal according to the 2008 rules, but in case it doesn't make sense and/or you don't agree, I'll walk through the 15-second hybrid period, time slot by time slot. If you're just tuning in now, you'll need to refer to my previous post to understand what I'm talking about.

Time
00:00 -- Hybrid period begins. The robot begins its default behavior, which, as I previously mentioned, is standing still.
00:00 - 00:03 -- Command "1" is received. Action "A" is triggered.
00:03 - 00:06 -- No command is sent. Since no command is received in this time slot (00:03 - 00:06), Action "E" is triggered.
00:06 - 00:09 -- Command "4" is received. Action "D" is triggered.
00:09 - 00:12 -- Command "3" is received. Action "C" is triggered.
00:12 - 00:15 -- Command "2" is received. Action "B" is triggered.

Action E is triggered by the lack of a command in any of the 5 time slots, would NOT normally happen as a part of Default Behavior.

This is what I've been trying to say: it is possible to
1) transmit a command,
2) and trigger any action (including complex series of events),
without actually sending a signal to the robot. AND, if the sum total of the distinct commands (including any commands sent by a LACK of a signal) total more than four, then the robot is violating the rules.

If you draw out a state diagram, you'll see that default behavior isn't just "standing still". Once you interact with it at all (send it ANY commands) the behavior of the robot changes, potentially for the rest of the match. If you draw out a state diagram, it might look something like the attached image.

In this example, sending a signal to the robot initiates a series of commands, and the lack of a signal just means that the series initiated by the previous command.

for example, you might hit "1" which means "drive over there, pick up that rock, and drill a hole in it" as three separate and distinct states. If during the first state in the sequence you send it command "2" which says "turn left, drive straight for 3 seconds, then stop and wait for instructions", you would be interrupting the sequence started with command "1", which is perfectly legal.

So from your example, action E is part of the default behavior of A.

They key is to draw out the state diagram, and ensure that each command received by the robot only goes to one state - it's illegal for button 4 to mean something different based on the state it's in. You could have more than one state per button, so long as the state is the same in every instance and the only difference is that it goes back to whatever it was doing previously (instead of always moving on to the same next state). The signal means the same thing every time. the robot's actions are the same every time for that signal.

Urban Hawk 11-01-2008 16:46

Re: How many RoboCoach Commands?
 
Quote:

• use a maximum of four different inputs from the ROBOCOACH (e.g. use four different buttons) during any single MATCH
• communicate no more than four messages, states or conditions to the ROBOT (please refer to Rule <R69> and Rule <G01> for additional information) during any single MATCH.
Here is another fun idea for the controls!
the rules say that the robocoach can communicate no more than four messages, states or conditions to the ROBOT. However, what if he messages are not sent to the robot. Rather, if they were sent to the driver. in that aspect you could communicate to the driver after autonomous mode was over. Also it is stated that no more then four inputs may be used by the robocoach.... it never mentions outputs though!!!!:yikes:


All times are GMT -5. The time now is 02:19.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi