Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Championship Event (http://www.chiefdelphi.com/forums/forumdisplay.php?f=12)
-   -   Hibner: Flexible, Scripted Autonomous Control (http://www.chiefdelphi.com/forums/showthread.php?t=94709)

Chris Hibner 20-04-2011 09:39

Hibner: Flexible, Scripted Autonomous Control
 
At the FIRST Robotics Conference I will be presenting a strategy for autonomous software design. The presentation will be Wednesday 6:00 p.m.

Here's the abstract:

Quote:

Creating a new autonomous routine can take less than one minute. This presentation describes a strategy for autonomous programming which allows ultimate flexibility. Robot control is broken down into simple pieces that can be strung together with simple scripts that can be stored on the cRIO. Making an entirely new autonomous routine is as simple as creating a new script, saving it on the cRIO, then selecting it before the start of the match. Variations of this method have been used successfully since 2003.
The presentation is not about what to do during the autonomous period. It's about how to architect your software to make it do what YOU want it to do with extreme flexibility. Tired of re-building and delpoying software between matches to change your autonomous? With this strategy, there is no need to re-build software.

The presentation will be highly interactive and audience participation will be highly encouraged (Pavlov would be proud). Throughout the presentation, working autonomous software will be developed with audience input. This means there will be a live example, which is a little scary for me, but it should be fun. If nothing else, you can come and witness the potential train wreck.

If there is anything you would like to see addressed, feel free to post it in this thread.

ajlapp 20-04-2011 10:33

Re: Hibner: Flexible, Scripted Autonomous Control
 
This sounds excellent. Unfortunately I'll be packing in on Wednesday night.

Hopefully you plan to capture your presentation in some sort of whitepaper. :)

Good luck.

marccenter 20-04-2011 11:37

Re: Hibner: Flexible, Scripted Autonomous Control
 
Chris,
I would encourage you to post your presentation to the white paper section of Chief Delphi even before the FIRST presentation in order to gather possible feedback for your material. If you have a lot of pictures you will most likely exceed Chief Delphi's size limit. In that case, you need to email to an admin (brandon martus) in order for him to post it for you.

Congrats on being a speaker! There are a lot of students hanging around Nationals with time on their hands (pits are small) that can benefit from
your experience!

Jon Stratis 20-04-2011 11:54

Re: Hibner: Flexible, Scripted Autonomous Control
 
A semi-related question... This is going to be our first trip to Championships, so exactly how does this work Wednesday evening? The pits are open to 5 people. To send someone to this presentation, do they have to be part of that pit crew, or can they be separate? I'm not sure we can spare spots in our Wed. night pit crew for this.

I know something like this would be very well received by my team - we even played around with something similar in the off-season a few years ago!

spacepenguine 20-04-2011 12:33

Re: Hibner: Flexible, Scripted Autonomous Control
 
This sounds like a great presentation! I'm actually working on developing something like this right now for our team. Unfortunately, we wont be at nationals this year. Is there any chance you are recording/streaming this/posting a corresponding white paper?

Chris Hibner 20-04-2011 13:02

Re: Hibner: Flexible, Scripted Autonomous Control
 
Here are some answers to the questions so far:

Quote:

Is there any chance you are recording/streaming this/posting a corresponding white paper?
I believe WPI has recorded presentations in the past and have them available online. Coleen would have to answer that.

As for a whitepaper, all of the presentation materials and example source code to help get you started will be available here on chiefdelphi.com after the championship. I doubt I'll have time to get it refined to the point where I can post it before the championship in enough time for people to review it. I'll try, but I'm not counting on it.

Quote:

A semi-related question... This is going to be our first trip to Championships, so exactly how does this work Wednesday evening? The pits are open to 5 people. To send someone to this presentation, do they have to be part of that pit crew, or can they be separate? I'm not sure we can spare spots in our Wed. night pit crew for this.
The conference is not held in the pit area, so you do not have to lose one of your pit spots to attend the conference. However, since this presentation will be during the Wednesday pit window you won't be able to be in two places at the same time.

There is an admission fee to the conference. Details are available at: http://www.usfirst.org/roboticsprogr....aspx?id=19359

wireties 20-04-2011 14:28

Re: Hibner: Flexible, Scripted Autonomous Control
 
This is exactly how our (FIRST Team 1296) autonomous mode works. Our major functions are isolated in separate tasks, each monitoring a message queue. In teleop mode, we translate the DS inputs to messages and send them to each function/task. In auto mode, a dedicated task reads a text file and sends the same sets of messages. The script is modal, executing different blocks depending on the alliance and starting position. But we also download new text files w/o changing the robot firmware.

We look forward to your white paper.

apalrd 20-04-2011 15:08

Re: Hibner: Flexible, Scripted Autonomous Control
 
Interesting.

I run a system where I write auto code in script files, which are read by an interpreter and executed line by line, by calling the appropriate function with arguments (by looking up the command by name and calling it by ref).

CoachPoore 20-04-2011 16:03

Re: Hibner: Flexible, Scripted Autonomous Control
 
This is also very similar to the way we do autonomous. We build an autonomous virtual machine with a robot/game specific instruction set. The virtual machine can execute one of any number of different programs which can be specified independently. Being able to tune autonomous and write new autonomous programs without really changing your robot code is invaluable. I'd recommend this kind of approach to anyone, and also look forward to seeing the presentation/white paper.

Noel

Chris Hibner 20-04-2011 21:19

Re: Hibner: Flexible, Scripted Autonomous Control
 
I also forgot to mention:

The presentation and examples will be developed in LabVIEW, BUT examples will also be given for text-based languages.

wireties 21-04-2011 07:03

Re: Hibner: Flexible, Scripted Autonomous Control
 
Quote:

Originally Posted by Chris Hibner (Post 1055031)
I also forgot to mention:

The presentation and examples will be developed in LabVIEW, BUT examples will also be given for text-based languages.

A lexer and parser in LabVIEW? This might get ugly... ;o)

siggy2xc 21-04-2011 07:09

Re: Hibner: Flexible, Scripted Autonomous Control
 
We actually have ours set up where u can record what you do then play that back for autonomous.

Ether 21-04-2011 09:16

Re: Hibner: Flexible, Scripted Autonomous Control
 
Quote:

Originally Posted by siggy2xc (Post 1055103)
We actually have ours set up where u can record what you do then play that back for autonomous.

I assume what you are recording (and playing back) is just a time-based profile of the the driver inputs?

The advantage to what Chris is describing is that -- assuming you have the necessary sensors installed and control loops coded -- you can quickly type up a script that says for example "go forward exactly 15 feet; slide to the left exactly 39 inches; raise the elevator to the 55 inch position; position the arm at 63 degrees" etc etc.



apalrd 21-04-2011 11:57

Re: Hibner: Flexible, Scripted Autonomous Control
 
Quote:

Originally Posted by wireties (Post 1055102)
A lexer and parser in LabVIEW? This might get ugly... ;o)

I wrote a script interpreter in LabVIEW, it's not ugly at all. It looks very nice, actually.
It reads the text file, splits it into lines, then parses it line by line.
Foreach line, it determines if it is a comment or contains less than 3 characters (and skips it if it does), then splits up the line's text by spaces, taking the first block of text and finding a command with that name, and calling it byref and feeding it the arguments (the rest of the text) as an array of strings. Generally, the functions either take those strings and turn them into doubles, or compare them to constants (to determine an enumerated type).
I spent a little while debugging it on Windows before running it on a robot, and most of my errors were from not initializing shift registers.

Chris Hibner 25-04-2011 19:15

Re: Hibner: Flexible, Scripted Autonomous Control
 
Quote:

Originally Posted by wireties (Post 1055102)
A lexer and parser in LabVIEW? This might get ugly... ;o)

Who says you need a parser? :)

The method I'm presenting is actually incredibly simple. I think most people will be very surprised at how simple it is and how little code it will take.


All times are GMT -5. The time now is 09:24.

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