Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Programmers: I Have A Challenge For You (http://www.chiefdelphi.com/forums/showthread.php?t=84797)

Chris27 04-04-2010 12:01

Re: Programmers: I Have A Challenge For You
 
I would not issue motion commands and do vision processing on the same thread of execution. Vision processing takes a long time and usually you would like to issue/modify motion commands on very regular small intervals.

If you want a model to base code off of, check out Tekkotsu
http://www.tekkotsu.org/
http://www.tekkotsu.org/dox/

davidthefat 04-04-2010 12:03

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris27 (Post 947773)
I would not issue motion commands and do vision processing on the same thread of execution. Vision processing takes a long time and usually you would like to issue/modify motion commands on very regular small intervals.

If you want a model to base code off of, check out Tekkotsu
http://www.tekkotsu.org/
http://www.tekkotsu.org/dox/

I was planning on doing the vision stuff on a board that I will make (as soon as I order the chip...)with ATmega1284p chip (pdip package) so it takes the load off the crio


apparently ATmega1284p chip is industrial use status... It must be hard core

The Lucas 04-04-2010 12:49

Re: Programmers: I Have A Challenge For You
 
If any of the control system higher ups are still monitoring this thread: Are we going to be allowed to send packets to alliance robots next year?

When the control system was introduced 2 years ago there was talk about communication between alliance robots. Since we have been rolling out new features of this system every year (CAN and vision feed are new this year). Is alliance communication still in the plans?

mwtidd 04-04-2010 13:47

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by The Lucas (Post 947790)
If any of the control system higher ups are still monitoring this thread: Are we going to be allowed to send packets to alliance robots next year?

Is it possible? yes. Is it allowed? not yet.

I spoke with Brad Miller (wpilib) about this a couple weeks ago regarding robot-robot com. From his response it didn't seem like something FIRST was considering right now. Seeing as the Zigbee is a legal device except for the price tag (cheapest one is $700), I think the best way to have something like this is if FIRST would exempt Zigbee module from the price restriction, or even better if it could be registered as a KOP item of the bill of materials.

http://shop.sea-gmbh.com/crio-produk...-modul-10.html

It would also be nice if they used a localization system like the star gazer for target recognition. I think it would be much easier on the crio to use this sensor rather than the camera. Also could possibly be used for robot identification

http://www.robotshop.com/hagisonic-s...-system-1.html

Kevin Watson 04-04-2010 14:02

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 947699)
...but they stop for 10 seconds every 20 seconds for the vision processing to complete.

I'm not sure where your numbers are from, but each rover drives 10cm and then stops while calculating the next arc to drive. The stereo image to range map calculations alone take about 50 seconds.

-Kevin

AustinSchuh 04-04-2010 15:49

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 947774)
I was planning on doing the vision stuff on a board that I will make (as soon as I order the chip...)with ATmega1284p chip (pdip package) so it takes the load off the crio

apparently ATmega1284p chip is industrial use status... It must be hard core

I would be very impressed if you were able to do much vision with the ATmega. It's a 20 MIPS CPU[1]. The CPU in the cRIO is a FreeScale MPC5200 runs at 750 MIPS at 400 MHz, and includes a floating point unit. So, the power added by the Atmega has about 2% of the CPU power of the cRIO's CPU. And if you need to do any floating point on the ATmega, the cRIO would outperform the ATmega by an even larger margin if it were doing the same job. And none of that even takes into account the extra hardware that some CPU's will have to deal with getting the picture into memory to operate on.

The ATmega is typically used by Industry when someone needs a cheap CPU that has a fair amount of performance and uses very little power.

I'm not saying that the ATmega is a bad CPU. I'm just trying to say that it isn't very well fit for the job you are trying to offload to it. If you do get an ATmega and start to program it, you will learn a lot about how embedded systems are put together. And while that may not be the lesson you are looking for, it's definitely pretty cool to learn how that kind of stuff works.

Something like the Beagleboard or Gumstix that were posted earlier are quite a bit faster. They both use OMAP3 series CPU's. The Beagleboard clocks in at 600 MHz and 1200 MIPS. The Gumstix uses the same CPU. Both of those also have DSP's, which will let you do even more computations. The DSP it's self clocks in at 500 MHz and 4000 MIPS, and that's on top of the 1200 MIPS from the CPU.

[1] MIPS stands for million instructions per second. Since each instruction on different architectures will do different amounts of work, it's still comparing apples to oranges, but it's a lot better than comparing MHz due to all the fun stuff you can do with superscalar CPUs.

Kevin Watson 04-04-2010 17:15

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by AustinSchuh (Post 947857)
Something like the Beagleboard or Gumstix that were posted earlier are quite a bit faster. They both use OMAP3 series CPU's. The Beagleboard clocks in at 600 MHz and 1200 MIPS. The Gumstix uses the same CPU. Both of those also have DSP's, which will let you do even more computations. The DSP it's self clocks in at 500 MHz and 4000 MIPS, and that's on top of the 1200 MIPS from the CPU.

If I were to attack this problem, I'd start with an Intel Atom 330 with NVIDIA ION GPU and then start reading up on SIMD, CUDA and OpenCL. Assuming stereo vision is used, anyone who wants to attempt this would need to read up and fully comprehend algorithms like SLAM (Simultaneous Localization and Mapping) for localization, scale and rotation invariant model matching for identification and tracking of moving objects, and D* (pronounced "dee star") for path planning. I'd be happy to provide some guidance to teams seriously interested in implementing any kind of autonomy.

-Kevin

mwtidd 04-04-2010 18:52

Re: Programmers: I Have A Challenge For You
 
ICRA Robotic Planetary Contingency Challenge...

The goal is to program and build a robot for an unknown task that you receive at the event.

May be another goal for teams considering a fully autonomous robot.

http://modlabupenn.org/icra/icra-2008/

Robototes2412 04-04-2010 22:14

Re: Programmers: I Have A Challenge For You
 
actually, I wrote a method that would manually (no gyro) align a robot to a target using a mecanum drive. Sadly, I lost it. :(

EDIT:

What it did was get the target radius (size), target x-pos, and target y-pos. It then turned the robot arbitrarily to match up and strafed accordingly. It was slow, it was ugly, it ate/raped small children, bur it worked. Until I lost it that is.

kamocat 05-04-2010 14:00

Re: Programmers: I Have A Challenge For You
 
I've been thinking about full-autonomous since 2008.
My approach is through high-level functions, field awareness, and inter-robot communication.
Our team has done some work on all three of those, however, it all tends to get bogged down with lack of testing.
For high-level functions, we have a forward(ft), turn(deg), strafe(ft), and kick(ms).
For field-awareness, I have an algorithm for detecting the soccer balls on the green carpet when in view of the camera.
For inter-robot communication, I was planning on using an ultrasonic signal generated by the cRIO from the digital sidecar, but I found I could only generate a 3khz signal. I may have to resort to using more hardware (making it more expensive to implement for a sizable quantity of teams) Modulated IR is still an option.


I'll stand up on my soapbox for a moment to mention a couple of ways that FIRST could further encourage autonomous:
make autonomous 30s, and put it at the END of the match
OR
make autonomous a necessary part of the match (e.g, make autonomous/teleop determined by where the robot is on the field, so that in certain essential parts of the field, robots must be in autonomous)
OR
encourage a method of communication BETWEEN robots, so that they can be more field-aware
OR
use RFID so the robots can tell when they are in a certain region
OR
broadcast beacons (modulated IR?) that the robots can triangulate off of
OR
make the game piece stand out and be easily acquired by a camera or other common sensor
OR
provide an objective in autonomous that can ONLY be completed in autonomous. (For example, something that allows the robots to complete a finale objective)

sircedric4 05-04-2010 14:52

Re: Programmers: I Have A Challenge For You
 
So maybe I missed it, but it seems that a VAST majority of the teams have a hard enough time getting their robot to just move forward and do one small thing during autonomous. How exactly would you do this challenge and still keep it rookie friendly?

Are we talking about seriously canned code here with simple GUI interfaces. For example I had a toy when I was a kid called a Big Track where you programmed what you wanted it to do, then activated it and watched it. It only had certain moves it could do and it was programmed from a small keypad. The point is that it had canned algorithms that required nothing but parameters. Unless someone comes up with code this simple I just can't see FIRST going full autonomous.

Now if the powerhouse teams are bored with their standard coding, maybe there can be an advanced FIRST like event at the college level that could do this kind of stuff. I have a hard enough time getting any of my students to even program teleop and that's easy compared to the 15 second autonomous mode. Now tell them the robot can't even compete unless they put a mars rover amount of code into it and I won't have any students left.

davidthefat 05-04-2010 15:18

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948550)
So maybe I missed it, but it seems that a VAST majority of the teams have a hard enough time getting their robot to just move forward and do one small thing during autonomous. How exactly would you do this challenge and still keep it rookie friendly?

Are we talking about seriously canned code here with simple GUI interfaces. For example I had a toy when I was a kid called a Big Track where you programmed what you wanted it to do, then activated it and watched it. It only had certain moves it could do and it was programmed from a small keypad. The point is that it had canned algorithms that required nothing but parameters. Unless someone comes up with code this simple I just can't see FIRST going full autonomous.

Now if the powerhouse teams are bored with their standard coding, maybe there can be an advanced FIRST like event at the college level that could do this kind of stuff. I have a hard enough time getting any of my students to even program teleop and that's easy compared to the 15 second autonomous mode. Now tell them the robot can't even compete unless they put a mars rover amount of code into it and I won't have any students left.

:ahh: Now really is that true? I mean if a programmer has any idea what he is doing, he can get the drive working just by looking at the API... I think new programmers don't look at APIs but more towards step by step applications of it like a tutorial...

Actually I believe you, there is this one "programmer" that has no idea what he is doing, and all he knows is if statements... Doesnt even know what a variable is really...

mwtidd 05-04-2010 15:23

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948550)
So maybe I missed it, but it seems that a VAST majority of the teams have a hard enough time getting their robot to just move forward and do one small thing during autonomous. How exactly would you do this challenge and still keep it rookie friendly?

This is actually the goal of my ADK, which is a collaborative initiative to bring an autonomous framework that would be easy to use. What I realized this year is that dozens of teams programmed a drive forward and kick. Why not just have one team do it and share it. The goal of the ADK is to give you cookie cutter templates to create code that can run the same autonomous as another team.

we are looking for more teams to sign on (so far we have 4)
there are repositories for both java and c++, but I need a lead developer for the c++

here is a link to the project:

http://firstforge.wpi.edu/sf/projects/bobotics

sircedric4 05-04-2010 15:46

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 948571)
:ahh: Now really is that true? I mean if a programmer has any idea what he is doing, he can get the drive working just by looking at the API... I think new programmers don't look at APIs but more towards step by step applications of it like a tutorial...

Actually I believe you, there is this one "programmer" that has no idea what he is doing, and all he knows is if statements... Doesnt even know what a variable is really...

Well there is the simple matter that with most rookie teams I have seen and is still true for our second year team, its that the teams are still fairly small. It doesn't surprise me that there is little interest in programming when you only have 15 people on a team. From our area, they are mostly interested in the actual mechanical stuff, which is perfectly fine.

We do have a couple this year that were interested in programming, but only when it was at the school meetings and only while you were standing over their shoulder. :-) They had no motivation to look at it on their own time even with the links and training presentations provided to them. The problem is that it is very difficult to give the necessary training in the programming when you only have a 6 week build season. There's just not enough time to be training and doing at the same time with small teams, unless the students are self-motivating and interested. (I do look forward to one of these mythical students that the people recommending this challenge have, it'll make my workload easier that's for sure.)

I think FIRST recognizes this which is why they went with the WPI libraries. The WPI libraries have been life savers in that they have let us attempt some cool things we wouldn't have the ability to do otherwise. (now if they could just get some good documentation and a decent "canned" example on every library function it would be perfect) And even with all these programming helpers, there is still half the teams at the regionals I have attended that are lucky to have a working robot. Remember that not all mentors are engineers or programming professionals, they are teachers and parents that might not have experienced this stuff before.

So unless you are talking about having some heavily canned autonomous modes that can be mixed and matched, I just don't see how FIRST could go with this as an entire game's goals. That is of course if they want to continue to let new teams play that don't have vast resources. Now if the teams that signed up are just setting challenges for themselves because they already have got the basics zipped up, well then that's a good thing and I look forward to what they come up with.

I am one that is in favor of raising the less capable up instead of bringing the high flyers down, but it has to be done in fairly small steps. Like some Star Trek Prime Directive, we can't give pre-industrial age men nuclear propulsion and expect them to know how to take advantage of it. Not without the education that goes with it. I really do think FIRST could do with a "varsity" and "junior varsity" level. And I feel that the level should be based on the resources a team has, the size of the team, and the mentor skills available to that team, but I don't know how you would split the teams up correctly.

mwtidd 05-04-2010 16:08

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948586)
I really do think FIRST could do with a "varsity" and "junior varsity" level. And I feel that the level should be based on the resources a team has, the size of the team, and the mentor skills available to that team, but I don't know how you would split the teams up correctly.

FIRST has a history of teams wins losses and ties. I think it would be interesting rather than having a JV Varsity division, have teams of robots that you compete with throughout the comp. You could easily arrange these teams based on records. It would also bring upon an aspect of long distance collaboration which is critical in business and even certain college projects.

kamocat 05-04-2010 16:11

Re: Programmers: I Have A Challenge For You
 
Don't assume that many older teams have more programming expertise than the rookies. This will be a struggle for the whole FIRST community. However, we have some things to help us here.

1. A common platform spec, to make generic code independent of the robot.
http://spreadsheets.google.com/ccc?key=0AgYDudKXpgOzcFI5aW5EUVhnVVUxNUVuQTdZLWNIW Xc&hl=en

2. Canned moves, as you were saying. They can be stringed in a sequence with the error terminals. An alternative is wiring an enum array into a for loop, where a case structure executes the correct move (determined by the value of the enum).

3. Simple GUI interfaces: LabVIEW. Next year we will have LabVIEW 2009, with the addition of some nice features like snippets.

4. Collaboration, communication, sharing of resources. I do LabVIEW and control system workshops in my area. I try to collaborate with people to make sure the community progresses as a whole.

The point is to start programmers out from a very high-level view in autonomous: I want the robot to do this, then this, then this, then this. If sonar value is less than 20in, then turn right. Otherwise, keep following the line. And so on.

Of everything on the robot, programming is the hardest to explain, and so it needs the biggest push. We're not coding machine language anymore. A well-documented VI can be understood by normal people, so long as they know that data flows along the wires, and a subVI won't execute until it gets data from all its wired inputs. Block diagrams are a pretty clear way of thinking.

I understand your concern. It's a little scary to think of 6 150lb robots moving around a field without direct human control, especially with little testing.
FIRST sometimes challenges us in ways that we think are unnecessary, and there are some challenges we'd like in FIRST that aren't yet present. One of the major selling points of this control system is that it makes it more feasible to do a comprehensive autonomous. Autonomous is underrepresented in FRC; in FLL, it's virtually all autonomous, and FTC gets 30s of autonomous per match. I believe the reason FIRST hasn't made autonomous a larger portion of the match is not that they think we're not capable, but that they want to draw in spectators, and make the game interesting. They're struggling to balance between popularity and technical prowess.
I certainly won't stop them from encouraging new teams, but I'm going to push for technical proficiency in all FIRST teams.

The biggest one is how to solve a problem. It's a process. You must single out the problem, clearly define a solution, and test that solution.
Similarly, with code, you must define what you want to accomplish and how you are going to accomplish it before you try to code the whole thing. Take a look at my Software Development Process.



sircedric4, I do think one of the problems you're running into is people not understanding the fun, importantness, or awesomeness of programming. Often it can be hard to convey, because people assume it's simply geeky. People have streams of thought, and so do robots. If they can describe each decision the robot will make, then that's half the programming. It's like giving someone a set of instructions, but that person only knows what it's been told, and what it is told by the sensors you put on the robot.

sircedric4 05-04-2010 16:46

Re: Programmers: I Have A Challenge For You
 
Quote:

3. Simple GUI interfaces: LabVIEW. Next year we will have LabVIEW 2009, with the addition of some nice features like snippets.
I will check this link out, but as for simple GUI interfaces, I have never found Labview code easy to read. Maybe its because I am used to text programming and think in pseudocode to begin with, but I have always found it easier to follow steps right down a page. I look at Labview flowcharts and my brain just freezes. There are just too many icons that don't mean anything to me. Where with text code I can at least recognize a word.

This is a problem I recognize, especially with people moving toward GUI stuff more and more everyday, that I am trying to remedy, but it is hard to "grok" once you've worn other coding tracks into your brain. It why I also have a hard time getting my head around object oriented programming, because when I learned everything was straight down the page and easy to follow. I mean I learned on FORTRAN and still use it and Visual Basic day to day. Most of the new stuff I do is written for VBA because everyone has Excel.

I'm just saying that just because some people can follow flowcharts easier doesn't mean everyone can. People all have different thought methods and I like that FIRST maintains all 3 code bases to support whatever your thought model is. And there is something that just gripes my open source heart when LabView is a 3rd party proprietary language when C++ and Java have free development environments. I think that whatever coding would come out of an all autonomous task would need to be useable by both types of coders, grapical and text based.

Quote:

sircedric4, I do think one of the problems you're running into is people not understanding the fun, importantness, or awesomeness of programming. Often it can be hard to convey, because people assume it's simply geeky. People have streams of thought, and so do robots. If they can describe each decision the robot will make, then that's half the programming. It's like giving someone a set of instructions, but that person only knows what it's been told, and what it is told by the sensors you put on the robot.
You are right here, and its something I try to convey to my students, but getting the students to make a decision isn't always easy. I don't know if its reverse peer pressure and those that are really into it are afraid to shine and speak up or what. High school is a pressure cooker, seeing the difference in maturity level between a freshman and a senior, so it can be hard to get new information into their already overworked brains. :-) It's a lot of fun seeing the students change though as they become more aware of what they are capable of. I am hoping since I finally have some younger students and not just all seniors on their way out that some will grow into liking programming once they've been exposed to it and how important it is.

I imagine each team has to fight with attrition and changing high school environments and students, so once again I can't see a way to do full autonomous without some locked up, easy to understand, and pre-canned repository. We all live in a real world environment, with different resources, and I think from looking at the Regionals, this is a huge undertaking. Worthy for the teams who can do it, but as a game design goal I hesitate to try it.

synth3tk 05-04-2010 17:51

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 948571)
Actually I believe you, there is this one "programmer" that has no idea what he is doing, and all he knows is if statements... Doesnt even know what a variable is really...

Did you help him learn?

ideasrule 05-04-2010 19:30

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lineskier (Post 948574)
we are looking for more teams to sign on (so far we have 4)
there are repositories for both java and c++, but I need a lead developer for the c++

here is a link to the project:

http://firstforge.wpi.edu/sf/projects/bobotics

Given the complexity of the undertaking, I think it's better to focus on one project than to have two projects going in different directions. If some people here only know one language, I can help convert C++ code into Java code or vice versa, so that's not a problem.

ideasrule 05-04-2010 19:42

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948550)
So maybe I missed it, but it seems that a VAST majority of the teams have a hard enough time getting their robot to just move forward and do one small thing during autonomous. How exactly would you do this challenge and still keep it rookie friendly?

I know that rookie teams are fairly small, but it only takes one competent programmer to write all the code in teleop and (at least this year) write a successful autonomous. It takes much more than one person to machine the parts and assemble the robot. If a team can't get one competent programmer, there's something wrong with the recruitment efforts.

Currently, teams with great mechanical skills or great strategies dominate the competition. Why shouldn't teams with great programmers be rewarded as well?

davidthefat 05-04-2010 19:42

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by synth3tk (Post 948663)
Did you help him learn?

Actually he thinks he know everything and he doesnt listen and he says "I know" and Just don't like him personally. I cod something and hes right next to me watching, and when I get the code to work right, and the team leader congratulates me, he says "WE did it, It was team work" Obviously not... But he is older than me, and Its alright if he thinks he can do it...

sircedric4 05-04-2010 19:58

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 948768)
I know that rookie teams are fairly small, but it only takes one competent programmer to write all the code in teleop and (at least this year) write a successful autonomous. It takes much more than one person to machine the parts and assemble the robot. If a team can't get one competent programmer, there's something wrong with the recruitment efforts.

Currently, teams with great mechanical skills or great strategies dominate the competition. Why shouldn't teams with great programmers be rewarded as well?

Uh, I agree with you, great programming teams should be and are quite obviously rewarded just like good mechanical bots. But to continue your analogy, teams can still build the basic kitbot and compete, all I am saying is that you need that same level of head start if you are going to tackle this full auto as a game challenge. This goes back to the needing canned algorithms thing.

And as for recruitment efforts and finding competent programmers let's remember that not everyone has the resources, contacts, or interest and recognize that not every team can get a competent programmer all the time. I live in the real world and there isn't enough time in the day sometimes. As it is, our team does have one competent programmer and its the mentor your chatting with right here. :-) I can name 6 teams in my immediate area that don't have the luxury of a dedicated programmer and they get help where they can. I just think when setting up game designs, the GDC does remember to give a little consideration to smaller teams (which I would be willing to bet is the vast majority of teams, just not the powerhouse known teams) and as such I don't expect to see fully auto as a requirement anytime soon.

AustinSchuh 05-04-2010 20:10

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948586)
I do look forward to one of these mythical students that the people recommending this challenge have, it'll make my workload easier that's for sure.

You and every other team around... 971 has been blessed to get one about every 4 years. Now that I look back and think about it, our current programmer at any point in time seems to be the one that finds the next programmer and trains them. If anyone has any tips on how to find self-motivated and talented programmers, I'm willing to bet that there are a lot of teams who would be interested in listening. Come to think of it, 111 might have some good ideas.

ideasrule 05-04-2010 20:31

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948778)
Uh, I agree with you, great programming teams should be and are quite obviously rewarded just like good mechanical bots. But to continue your analogy, teams can still build the basic kitbot and compete, all I am saying is that you need that same level of head start if you are going to tackle this full auto as a game challenge. This goes back to the needing canned algorithms thing.

I don't think anybody here is saying that FIRST should require all matches to be fully autonomous. Some people, like me, think that autonomous mode should be made at least as important to the match as teleop. Right now, you hardly need any autonomous at all; if your robot is mechanically well-built and well-designed, you're going to win the match.

gblake 05-04-2010 20:44

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lineskier (Post 948574)
we are looking for more teams to sign on (so far we have 4)
there are repositories for both java and c++, but I need a lead developer for the c++

here is a link to the project:

http://firstforge.wpi.edu/sf/projects/bobotics

I'm curious who the four folks/teams are, and how you are organizing your assault on this mountain - Can you post a few of the project schedule milestones and high-level software architecture outlines? Those would be good fodder for this thread.

Blake

sircedric4 05-04-2010 22:00

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 948800)
I don't think anybody here is saying that FIRST should require all matches to be fully autonomous. Some people, like me, think that autonomous mode should be made at least as important to the match as teleop. Right now, you hardly need any autonomous at all; if your robot is mechanically well-built and well-designed, you're going to win the match.

Well Aim High was basically the game you are looking for. I didn't get to Atlanta that year since it was my rookie year as a mentor and I was in way over my head, but a decent autonomous pretty much won the game for you at least at the regional level.

Now maybe at the Nationals the auto mode wasn't such a game winner but I know that the bonus for scoring the most on autonomous was enough to equal the points during the match. I actually liked that game because the autonomous mode wasn't difficult to be worthy of a good chunk of points. I mean we competed well at our regional and all we did was turn on our shooter. It was aimed by hand and good for 3-4 balls which usually won us our matches.

But the thing is, even when autonomous was worth so many points that year, there were still only 2-3 robots that did it at the Houston Regional that year. The balance that FIRST has been trying to figure out since then is how to make auto mode worth enough to pursue, but not enough to leave those without programmers hopelessly behind. They went from auto being useless in Rack and Roll, to their hybrid mode, to last years where you had to at least move or have your team sunk by human players. I think that this year is a good balance.

You have to do some auto unless you want to contest those balls with your opponent in their own home zone, but your robot can also score as well. Now if you want to use that same model and extend the time or put it towards the bonus round then I am all for that. I liked the balance this year in auto consequences, and also that it doesn't leave those that can't score behind too far to catch up.

MJ Miller 05-04-2010 23:04

Re: Programmers: I Have A Challenge For You
 
I'm a mentor for Team 1421 and Computational Scientist who would be happy to help with this project. I look forward to hearing more about it.

MJ

mwtidd 06-04-2010 00:36

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 948761)
Given the complexity of the undertaking, I think it's better to focus on one project than to have two projects going in different directions. If some people here only know one language, I can help convert C++ code into Java code or vice versa, so that's not a problem.

The initial goals of the project require both a Java version and a C++ version. We are trying to develop a code base for easy programming of Mechanisms(Drives, Arms, Shooters...), Maneuvers, and an Event System. The architecture should be able to be utilized by teams regardless of what language they are using. So don't look at it as two projects, look at it as one architecture in two languages. (i.e. Hello and Bonjor accomplish the same goal, but by being able to say both you increase the number of people you can say hi to)


Quote:

Originally Posted by gblake (Post 948810)
I'm curious who the four folks/teams are, and how you are organizing your assault on this mountain - Can you post a few of the project schedule milestones and high-level software architecture outlines? Those would be good fodder for this thread.

Blake

I am a mentor for team 319, and a senior of CS @ WPI.
History of 319 autonomous successes: pull 10 pt ball into field in 05, shoot 9/10 in 06, knock a ball in 08, shoot 2/3 in 10. The teams have recently signed on to the first forge project so not much has been organized but will be soon (I have a competition in 2 weeks for $1200 which i am trying to get to start the first FRC team in Haiti).

The goals of the project are to first get the basic architecture down so you can implement a cookie cutter program in one day.

Second phase would be to implements a more intelligent system (possibly working off some form of decision tree), which could play a match of Breakaway offensively.

Third phase would be to implement some form of localization and communication (Zigbee module) so robots could communicate with one another.

See above for basic architecture idea, but more complex is described on the firstforge page. The idea is that maneuvers are the same for every robot, and same with basic mechanisms(a drive drives, a arm raises and lowers, a shooter cocks and shoots..) by using maneuvers that can pass, fail and timeout (decided by the mechanisms) you can create a state machine of maneuvers which should work on any mechanism based system. All the programmer has to define is how the mechanism actually executes a given task, and what it believes a pass or fail to be, alternatively you can do it all on timers through the timeouts, and then the mechanism just runs that operation until it receives another.

The importance is in a simple but extendable architecture.

Quote:

Originally Posted by MJ Miller (Post 948913)
I'm a mentor for Team 1421 and Computational Scientist who would be happy to help with this project. I look forward to hearing more about it.

MJ

If you are looking to help that would be awesome! I am so excited by the response from teams looking to work collaboratively, I feel this is one area where FIRST has been held back ... (why for all the secrecy among teams??). As the awards that are given out are not actually monetary, I would like to see teams work together much more. But thats besides the point...

for anyone even considering working on this project please sign up for a first forge account and register under the ADK project, this is where all the tasks will be organized and delegated.

http://firstforge.wpi.edu/sf/projects/bobotics

cheers to all!

kamocat 06-04-2010 00:47

Re: Programmers: I Have A Challenge For You
 
I can't say if my team is up for making a fully autonomous 'bot, but I'm more than happy to help in the planning and coding (LabVIEW) for a system to make an autonomous implementation easy for all teams.
You can reach me at kamocat@gmail.com.

Brandon_L 06-04-2010 01:26

Re: Programmers: I Have A Challenge For You
 
It would completely depend on the game. That, and my team might not be that happy about it. Our driver would step forward to control it and he would have no control. I can see his face now.

If I do it, it wouldn't be used at competitions, just for lolz.

I'm in.

gblake 06-04-2010 08:01

Re: Programmers: I Have A Challenge For You
 
To all of the posters who have said that ... their team won't like ..., I have a suggestion. Get permission to use one of your team's current robots to do some software work, and start learning.

You aren't asking the team to stake their next several seasons on the success or failure of creating a fully autonomous robot. You are instead scheduling some time with the robot to get some useful work done. Work that will be educational, and will contribute to both the team's and the community's body of knowledge. My guess is that the robot can be up on blocks for most of the time.

Once you are initially successful developing a few small and useful improvements (small steps first, big steps once enough small steps can be combined), put a smile on your face let your team know that whether or not you (and team mates) can make the next-season robot work better during the autonomous periods, or assist your drivers during tele-op, is no longer an open question. The code for doing it is already done and is on-the-shelf for next season. That should be a good day.

My point is not that you need to "go rogue"; but that you simply need to confer with the team mentors/leaders and let them know you will want to schedule some off-season time for using the robot (safely) to do some ordinary, simple, code integration and testing. If it is possible for a team to say that is a bad idea, then I'll be dumbfounded.

Sound good?

Blake

mwtidd 06-04-2010 11:36

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gblake (Post 949065)
The code for doing it is already done and is on-the-shelf for next season. That should be a good day.

Make sure you post any code made in past seasons or the offseason in a public repository linked to CD or first forge, otherwise it doesn't register as a COTS and is illegal to use according to the first rules.

ChaosX73 06-04-2010 20:50

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 945246)
Next Year, no matter the game, I challenge you to make your robot fully autonomous. That means autonomous during tele operation period too. Anyone up for that challenge? That would challenge your skills and dedication to the robot. That means no more just drive up 3 feet, kick, repeat type of coding. It would have to be a lot more thought out and will have to use real life robot coding. Its not really a robot if its not autonomous, its just an over glorified RC car if its human controlled. And if you are still sceptical, FIRST pretty much writes the libraries so that even a guy that picks up a programming book can code the robot in a week or even less... Well IMHO you can't learn programming from a book, sure you may learn the language and syntax, but you have to have experience to actually program. Programming comes with experience, and the way FIRST makes it, you get minimum experience as a programmer programming these robots. I will be announcing to my club next year that we want to try this. Just post your opinions and I will add to the list if you want to take the challenge.

Teams That Are Willing To Take The Challenge:

*Team 589 (Just Me As Of Now)
*Team 33
*Team 2503
*Team 1086

You would be a programming god if you could do this. I was the programmer for my team's autonomous, and it took me longer than the allotted six weeks, although that may be because this was my first year of official programming. Although I have thought about this concept before, it almost seems like we'd be making our own AI system, and we all know what happens then...:ahh:

davidthefat 06-04-2010 21:23

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ChaosX73 (Post 949447)
You would be a programming god if you could do this. I was the programmer for my team's autonomous, and it took me longer than the allotted six weeks, although that may be because this was my first year of official programming. Although I have thought about this concept before, it almost seems like we'd be making our own AI system, and we all know what happens then...:ahh:

Honestly it only took us 2 days to get the autonomous right, the day before the competiton when you have to get inspection and stuff and the first day of autonomous... I think you over complicated it

ideasrule 06-04-2010 22:13

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ChaosX73 (Post 949447)
You would be a programming god if you could do this. I was the programmer for my team's autonomous, and it took me longer than the allotted six weeks, although that may be because this was my first year of official programming. Although I have thought about this concept before, it almost seems like we'd be making our own AI system, and we all know what happens then...:ahh:

It took us longer than 6 weeks to get it right too. The reason was that we misread the rules and thought the balls were placed randomly on the field. Once we found out that wasn't true--which was after ship date--it took only an hour of coding + testing time during our first regional to get autonomous right.

That said, it was interesting to see the robot drive to the ball based on its own vision, turn, and take a shot. I really wish we could have used it during the competition.

lemiant 06-04-2010 22:19

Re: Programmers: I Have A Challenge For You
 
During the off-season this year or next year, someone should hold an all autonomous event.

<rambling>
I wish first would make a game with way more. but it would sort of wreck their "no robot left behind", since for some reason there isn't enough support for beginner programmers.
</rambling>

But I digress, anyone up to host an all-autonomous off-season?

kamocat 07-04-2010 00:08

Re: Programmers: I Have A Challenge For You
 
I like the "Perceive, Plan, Control" paradigm that was mentioned earlier, and I think it's time that we break the conversation up into those three topics.
Should I take the liberty of starting a thread for each of those?

The "control" discussion is almost solely about the Autonomous Development Kit.
In essence, what is the code structure for controlling mechanisms?
It needs to be able to handle both sequential and simultaneous tasks, with a variety of control parameters for each task. (For example, a ball kick must be able to be triggered by the completion of another action, or an input, or after a time delay, or during a certain time in the match. Similarly, it must be able to be stopped by any of those.)

The "plan" discussion is the most complex of the three, as it deals with analyzing the situation, and there's a range of levels that this can be done on.
Here's a couple of examples (in first-person robot):
  • Where should I move next?
  • Is now a good time to kick, or will that robot get in the way?
  • Should I block or score?
  • Is it worth it to go over the bump?
  • Will I get penalized if I go into that section of the field?

The "perceive" discussion entails what sensors should be used for what purposes.
I'll list some things an autonomous 'bot might want to know:
  • Where am I on the field?
  • Where are the robots around me? (what alliance are they?)
  • Where are the balls around me? (on the floor, presumably)
  • Where are the goals? The bumps? The towers? The walls?
  • Have I flipped over?
  • What are the other robots doing? Do they need help? (Inter-robot communication)
There are also simpler things, implemented into the "control" section, liked "have I completed my kick" or "is my arm fully extended", usually potentiometers or limit switches, that are used in feedback to make sure the action is completed. Unless someone's doing something exotic like using a non-contact thermometer to tell when a motor is stalled, I don't think these need to be discussed with the rest of the sensors.


As many have said, the scope is huge. I don't plan to do all of those things in "plan" and "perceive", but the first step is to consider the "how" so we can determine what is and is not feasible.

biojae 07-04-2010 00:48

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by kamocat (Post 949581)
The "perceive" discussion entails what sensors should be used for what purposes.
I'll list some things an autonomous 'bot might want to know:
  • Where am I on the field?
  • Where are the robots around me? (what alliance are they?)
  • Where are the balls around me? (on the floor, presumably)
  • Where are the goals? The bumps? The towers? The walls?
  • Have I flipped over?
  • What are the other robots doing? Do they need help? (Inter-robot communication)
There are also simpler things, implemented into the "control" section, liked "have I completed my kick" or "is my arm fully extended", usually potentiometers or limit switches, that are used in feedback to make sure the action is completed. Unless someone's doing something exotic like using a non-contact thermometer to tell when a motor is stalled, I don't think these need to be discussed with the rest of the sensors.

This is where the GDC may play nice again, and bring back something like the 2 freq. IR beacons.
But, even if they don't there are simple ways for determining where you are on a field using encoders (Assuming the wheels don't slip. Hard for last year).

Using kinematic formulas:

Code:

S = (Delta Left + Delta Right) / 2
Delta Theta = (Delta left - Delta right) / wheelbase
Theta = Theta + Delta Theta
X = X + (S * cosine ( Theta ) )
Y = Y + (S * sine    ( Theta ) )

This satisfies one item on the list, but only slightly.

As far as knowing where other robots are, that would need a lot of DSP, or an external observer telling the bots where they are, or all bots to communicate with each other

gblake 07-04-2010 19:49

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lemiant (Post 949491)
During the off-season this year or next year, someone should hold an all autonomous event.

<rambling>
I wish first would make a game with way more. but it would sort of wreck their "no robot left behind", since for some reason there isn't enough support for beginner programmers.
</rambling>

But I digress, anyone up to host an all-autonomous off-season?

Great idea!

Let's carry it out in a way that will let us try walking before we try to run.

I'll assert that it would be easy to produce a fully autonomous competition using Vex or Tetrix equipment and fields; and that it would be reasonably easy to replicate that competition set-up in many geographically diverse locations around North America and the rest of the planet.

Before any instinctive reaction takes hold and you reject this suggestion as being too unlike FRC, think for a minute.

The reduced diversity found in the the Vex/Terix equipment suites, the greater simplicity of the Vex/Terix computers, and all of the other factors that make a fully autonomous Vex or Tetrix match unlike an autonomous FRC match are all good things for people who want to take on David's challenge.

Working with, and succeeding with the simpler, Vex or Tetrix equipment will lay a solid foundation on which to base the FRC attempts. There will still be plenty of work to do when the project members graduate into FRC attempts; but many of the "Doh!" realizations and many of the collaboration-process SNAFUs will have been shaken out of the software and out of the project teams processes.

Think it over. Walk before running.

Blake
PS: This would not replace my earlier suggestion to use a simulator or appropriate video game as a learning tool. A Vex/Tetrix competition would complement also using a simulator.

the programmer 07-04-2010 22:22

Re: Programmers: I Have A Challenge For You
 
through my 3 years in FLL, I realize that performing routines like getting a ball, aiming, and shooting is something that's very realistic, so my suggestion, treat teleop like 08's hybrid mode and give the drivers different routines that they could run and just a normal teleop

Frenchie 08-04-2010 03:41

Re: Programmers: I Have A Challenge For You
 
I didn't read the entire thread, so my apologies if I repeat what has been said already.

Imho, most FRC games of years past did not lend themselves well to full autonomous play. Just look at how much trouble teams had to go through to get the smallest aspects of autonomy down (autonomous mode, camera use, automatic transmission, ...).

Instead, maybe an offshoot of FRC should be created with full autonomy in mind. The scale of the robots would probably have to be smaller. Hell, a standard platform could even be issued (i'm thinking robocup and aldebaran Nao robots...).

After all, we already have FTC and LLC.

This would allow for games that are better suited to autonomy. The lighting of the field could be standardized, AR tags could be integrated to field components, robot to robot communication could even be enabled...

The game could have a 10 sec "teleoperated" mode at the beginning of each match as a cameo to FRC.

Just a wild idea ;).

45Auto 08-04-2010 08:12

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat
Honestly it only took us 2 days to get the autonomous right, the day before the competiton when you have to get inspection and stuff and the first day of autonomous... I think you over complicated it

It could be that there are different definitions of "getting autonomous right". Looking at davidthefats last 3 games on the Blue Alliance, I personally wouldn't call their autonomous "right".

It appears that in Q77 they started in the close zone and knocked the ball toward the goal without scoring.

Q84 they start in the far zone and kick one ball into the middle.

Q89 they start in the close zone and don't move at all.

I think you may be over-simplifying it .....

davidthefat 08-04-2010 09:45

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by 45Auto (Post 949877)
It could be that there are different definitions of "getting autonomous right". Looking at davidthefats last 3 games on the Blue Alliance, I personally wouldn't call their autonomous "right".

It appears that in Q77 they started in the close zone and knocked the ball toward the goal without scoring.

Q84 they start in the far zone and kick one ball into the middle.

Q89 they start in the close zone and don't move at all.

I think you may be over-simplifying it .....

The Q89, we chose NOT to go or that was the one with the leak in the pneumatic system. (the robot does not do anything if the kicker is not retracted, since the ir sensor is triggered by default)Don't blame me, thats the best autonous can get without an adjustable kicker. Its right since our goal was just to kick the ball, the camera was out for the last half of the competition, so we didn't even track.

45Auto 08-04-2010 10:55

Re: Programmers: I Have A Challenge For You
 
Quote:

Don't blame me, thats the best autonous can get without an adjustable kicker.
I'm not "blaming" anyone for anything, just trying to point out that a decent full-autonomous may not be quite as simple as you are assuming, given the level of performance you have demonstrated. I would disagree that what you have is the best you could do, an adjustable kicker would have no effect on how many balls you could kick out of the far zone. Just a matter of driving to each ball and kicking (sounds simple doesn't it?). It doesn't get much easier than knowing EXACTLY where each ball is located when you start and not having to worry about any defending robots.

We could only kick one ball in autonomous because one of our encoders died and there is no way to change it without dismantling half the robot. The robot has a small drift to the left and there wasn't time to get the time-based autonomous to compensate for it. Hopefully having all encoders working at Atlanta will allow us to clear whichever zone we are in. I would consider clearing our zone of balls (or scoring from the front zone) a minimum level of autonomous competence to shoot for. Many of the top teams already do this. Our programmers have been working on it all season and haven't got there yet.

Rather than trying to develop a full-autonomous game, it may be to your advantage to try smaller steps. Demonstrating a working 15 second autonomous that would at least clear the zone you are in would be a more attainable goal, and could possibly help in persuading your team to attempt more complicated building (you need to integrate the sensors into your robot) and programming projects.

davidthefat 08-04-2010 22:58

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by 45Auto (Post 949953)
I'm not "blaming" anyone for anything, just trying to point out that a decent full-autonomous may not be quite as simple as you are assuming, given the level of performance you have demonstrated. I would disagree that what you have is the best you could do, an adjustable kicker would have no effect on how many balls you could kick out of the far zone. Just a matter of driving to each ball and kicking (sounds simple doesn't it?). It doesn't get much easier than knowing EXACTLY where each ball is located when you start and not having to worry about any defending robots.

We could only kick one ball in autonomous because one of our encoders died and there is no way to change it without dismantling half the robot. The robot has a small drift to the left and there wasn't time to get the time-based autonomous to compensate for it. Hopefully having all encoders working at Atlanta will allow us to clear whichever zone we are in. I would consider clearing our zone of balls (or scoring from the front zone) a minimum level of autonomous competence to shoot for. Many of the top teams already do this. Our programmers have been working on it all season and haven't got there yet.

Rather than trying to develop a full-autonomous game, it may be to your advantage to try smaller steps. Demonstrating a working 15 second autonomous that would at least clear the zone you are in would be a more attainable goal, and could possibly help in persuading your team to attempt more complicated building (you need to integrate the sensors into your robot) and programming projects.

The last paragraph: I have been trying to do that since day one, I wanted a kicker that shoots ACCURATELY from the 3 zone... But my ideas just got shot down because I was new to the club and the team did not have faith in themselves, since our history of robots are not the best, infact I heard ours this year was the best out of all our robots... but I say it needs TONS of improvements...

45Auto 09-04-2010 08:41

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat
I wanted a kicker that shoots ACCURATELY from the 3 zone

Quote:

Originally Posted by davidthefat
Honestly it only took us 2 days to get the autonomous right, the day before the competiton when you have to get inspection and stuff and the first day of autonomous... I think you over complicated it

I think you'll find it much easier to guide your team towards your goals if you attempt smaller steps. I'm having a hard time understanding why you couldn't at least KICK 3 balls from the 3 zone (not worrying about accuracy) if it's as easy as you seem to think.

Right now, you're like the Wright brothers trying to invent the airplane. They didn't start with a 747. You'll probably be much more successful if you work towards your goals in smaller, more realistic steps. Claiming you can invent warp drive by next weekend and fly to Mars in 5 minutes isn't going to get you many followers. Talk is cheap.

lemiant 09-04-2010 09:15

Re: Programmers: I Have A Challenge For You
 
FIRST should make a game where you're only able to send commands to your robot every 5 seconds, or there could be an area which was completely blacked out, so you pretty much had to use auto as you couldn't see.

kamocat 09-04-2010 12:39

Re: Programmers: I Have A Challenge For You
 
The "no sending a command for 5 seconds" could pose a safety problem. However the portion "blacked out" could be simulated by putting a wall up the middle of the field (with a small doorway in it for robots to go through).

Robototes2412 09-04-2010 12:42

Re: Programmers: I Have A Challenge For You
 
Actually, this kind of thing would be a good experiment for the off-season

ideasrule 09-04-2010 13:56

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by sircedric4 (Post 948778)
And as for recruitment efforts and finding competent programmers let's remember that not everyone has the resources, contacts, or interest and recognize that not every team can get a competent programmer all the time. I live in the real world and there isn't enough time in the day sometimes. As it is, our team does have one competent programmer and its the mentor your chatting with right here. :-) I can name 6 teams in my immediate area that don't have the luxury of a dedicated programmer and they get help where they can. I just think when setting up game designs, the GDC does remember to give a little consideration to smaller teams (which I would be willing to bet is the vast majority of teams, just not the powerhouse known teams) and as such I don't expect to see fully auto as a requirement anytime soon.

I still find it surprising that you're the only competent programmer, but I concede that may be because I don't have much experience with teams outside my immediate area. Our school is medium/smallish, with 90 people in each grade, but we've managed to find 3 competent programmers this year, 2 of them dedicated. Our team isn't particularly good, certainly not a powerhouse, but any of the 3 programmers can write the teleop code within an hour (provided the drivers know what they want, the electrical stuff is connected correctly, the mechanics work, etc).

As for recruiting programmers, I think the best way to get them is to inspire them. Don't say they get to write the driving code and winning the game is entirely the responsibility of the drivers. Tell them they get to work on the camera, let the robot make intelligent decisions, or score autonomously. That's what got me enticed; I certainly wouldn't have joined the team just to make the robot drive.

sircedric4 09-04-2010 14:14

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 950867)
I still find it surprising that you're the only competent programmer, but I concede that may be because I don't have much experience with teams outside my immediate area. Our school is medium/smallish, with 90 people in each grade, but we've managed to find 3 competent programmers this year, 2 of them dedicated. Our team isn't particularly good, certainly not a powerhouse, but any of the 3 programmers can write the teleop code within an hour (provided the drivers know what they want, the electrical stuff is connected correctly, the mechanics work, etc).

As for recruiting programmers, I think the best way to get them is to inspire them. Don't say they get to write the driving code and winning the game is entirely the responsibility of the drivers. Tell them they get to work on the camera, let the robot make intelligent decisions, or score autonomously. That's what got me enticed; I certainly wouldn't have joined the team just to make the robot drive.

Well part of this is that I misunderstood the original post and thought he was lobbying for FIRST to make an all autonomous game. I still can't see how anyone can expect that to work out as a mandatory requirement given the sad state of most regional's autonomous modes. Since I have reread it and he's just challenging teams to try it, well then more power to those that want to do it.

Well one thing your team has going for it is that you are from a low number team. I would bet that your team has been around long enough to become an institution at your school and a program that many students want to participate in, or at least have heard of. We're only a second year team, and though our Rookie All Start trip to Atlanta made some headway towards getting us known at the school, we still have a long way to go. We're still kind of unheard of in the area, so we have to overcome that. It's entirely possible the school has programmers begging to try something real-world but just don't know there's a robot team. We're not "school-sanctioned" like a football team so being able to announce things on the intercom and such isn't easy. We're still considered a "club" and there are different rules for them.

One of our goals is to try and get robots the same benefits as a sports team at our school, even having letter jackets for the students. That would open us up to more of the student base. We have given various demos around the school and all, but the interest just isn't there yet. Give us a few more years and we'll see.

I just think that everyone needs to remember that everyone has different stories and rules and requirements they have to overcome, and to not be surprised about anyone's limitations. :-) "FIRST is not fair" is one of those things you learn in your rookie year, and that applies at every aspect of the game. I imagine there are teams that have nothing but programmers and very few mechanical oriented students and mentors, we just happen to be the opposite of this.

MattSr 11-04-2010 03:05

Re: Programmers: I Have A Challenge For You
 
as you can see i am from 488, i will be a mentor next year but i still hope to be able to make a version of our code that could be fully autonomous and we could use when we aren't too stressed about winning the match depending on how well the auton works, it will probably be just me working on this with the help of maybe one more

its funny that this topic came up since a few weeks before the Seattle, WA regional, a few of the programmers and I were discussing this exact topic as a definite possibility with the sensors that FIRST is letting us use on our robots

theprgramerdude 11-04-2010 11:44

Re: Programmers: I Have A Challenge For You
 
Rather than the 5-second rule, I think a far better, and more adjustable, step for FIRST teams would simply be to expand the autonomous period past 15 seconds. Because, seriously, 15 seconds isn't enough to do anything worthwhile. It would make the autonomous a bit more important, and give some motivation to teams that decide "our drivers can make up for anything we dont do in autonomous."

Chris27 11-04-2010 11:48

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 952077)
15 seconds isn't enough to do anything worthwhile.

Good thing we have teams like 1114 to prove you dead wrong :rolleyes:

Chris is me 11-04-2010 11:54

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 952077)
Rather than the 5-second rule, I think a far better, and more adjustable, step for FIRST teams would simply be to expand the autonomous period past 15 seconds. Because, seriously, 15 seconds isn't enough to do anything worthwhile. It would make the autonomous a bit more important, and give some motivation to teams that decide "our drivers can make up for anything we dont do in autonomous."

I'm sure teams that decided to do that in 2006, 2008, and 2010 were playing the final match on Einstein.

kamocat 11-04-2010 11:54

Re: Programmers: I Have A Challenge For You
 
15 seconds isn't enough to take advantage of full-field awareness.
It's only enough time to do something and hope it works. (For example, if you fire a ball into the goals from mid- or far- field, you don't have enough time to go over there and make sure it actually went in.)

Kevin Watson 11-04-2010 13:06

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by kamocat (Post 952084)
15 seconds isn't enough to take advantage of full-field awareness.
It's only enough time to do something and hope it works. (For example, if you fire a ball into the goals from mid- or far- field, you don't have enough time to go over there and make sure it actually went in.)

Back in 2004 we had an infrared beacon system that could be used to determine your position on the field and perform a fully autonomous action. It's demonstrated at about 1:40:40 of the kick-off video:

http://robotics.nasa.gov/first/2004/kickoff.htm

It used $10-$15 dollars worth of parts plus some custom code that's still available here:

http://kevin.org/frc/2004/

-Kevin

ideasrule 11-04-2010 13:12

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris27 (Post 952081)
Good thing we have teams like 1114 to prove you dead wrong :rolleyes:

1114 didn't prove him dead wrong this year. 1114's ranking at any regional would definitely not have been different if they stayed still during autonomous. The robot was averaging 1-2 balls scored per autonomous mode. Our robot averaged 1 ball per autonomous mode, and despite being a much weaker team, the one match where that one score mattered was better known as the match where we got disqualified.

Chris27 11-04-2010 13:52

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by ideasrule (Post 952110)
1114 didn't prove him dead wrong this year. 1114's ranking at any regional would definitely not have been different if they stayed still during autonomous. The robot was averaging 1-2 balls scored per autonomous mode. Our robot averaged 1 ball per autonomous mode, and despite being a much weaker team, the one match where that one score mattered was better known as the match where we got disqualified.

Not as much this year but in Overdrive their auton alone could have won them 9/10 matches. I'm just saying its absurd to dismiss a 15s autonomous period as useless. I know there are not any bonus points this year for scoring in auton like in past years, but that was also the case last year. Before the season started many people on CD were also saying that auton would be mostly useless and the only really useful thing to do was to not get scored on. Not really meaning to toot my own horn but last year one thing that gave my team a substantial early advantage was that we were able to load up during auton. I think we set a good example of what could be done. I think a lot of the effort spent complaining about how FIRST views the role of autonomy would be better spent developing an autonomous mode that consistently scores 3-5 balls. That's nothing to sneeze at considering most alliances struggle to break 10 points.

Andrew Schreiber 11-04-2010 14:26

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by theprgramerdude (Post 952077)
Rather than the 5-second rule, I think a far better, and more adjustable, step for FIRST teams would simply be to expand the autonomous period past 15 seconds. Because, seriously, 15 seconds isn't enough to do anything worthwhile. It would make the autonomous a bit more important, and give some motivation to teams that decide "our drivers can make up for anything we dont do in autonomous."

2003, taking the entire stack on the top of the bump and then controlling the bump could win. (I wasn't around this year perhaps someone could figure out how much of a swing it could be)

2004, several teams hung in autonomous and then controlled the bar, they swung the match score up to 150 points (+50 for their hang -100 for their opponents not being able to hang). I guess that isn't serious.

2006, winning auton was a huge benefit. I saw many matches decided by auton alone.

2008, 1114, do I need to say more? Ok, 217. There you go. Auton could decide the match.

2009, on Einstein the final match autons consisted of loading up the bots to go dump a load into their opponents, not as important but it added many balls to the arsenal of the dumpers (or 217's shooter).

2010, 469 shows how useful a good auton can be. If they get set in auton you are pretty much down 4 points at the start of the match (They score 2 balls and then recycle them as soon as people start moving).

I would say that 15 seconds is plenty of time to do something important.

davidthefat 11-04-2010 22:48

Re: Programmers: I Have A Challenge For You
 
All who are trying this: I have a book for you. http://www.amazon.com/Introduction-A.../dp/026219502X
The TOC:
Code:

Contents
Acknowledgments                                                  xi
Preface                                                          xiii
1    Introduction                                                  1
    1.1 Introduction                                              1
    1.2 An Overview of the Book                                  10
2    Locomotion                                                  13
    2.1 Introduction                                            13
          2.1.1 Key issues for locomotion                        16
    2.2 Legged Mobile Robots                                    17
          2.2.1 Leg configurations and stability                  18
          2.2.2 Examples of legged robot locomotion              21
    2.3 Wheeled Mobile Robots                                    30
          2.3.1 Wheeled locomotion: the design space              31
          2.3.2 Wheeled locomotion: case studies                  38
3    Mobile Robot Kinematics                                      47
    3.1 Introduction                                            47
    3.2 Kinematic Models and Constraints                        48
          3.2.1 Representing robot position                      48
          3.2.2 Forward kinematic models                          51
          3.2.3 Wheel kinematic constraints                      53
          3.2.4 Robot kinematic constraints                      61
          3.2.5 Examples: robot kinematic models and constraints  63
    3.3 Mobile Robot Maneuverability                            67
          3.3.1 Degree of mobility                                67
          3.3.2 Degree of steerability                            71
          3.3.3 Robot maneuverability                            72
viii                                                                            Contents
    3.4  Mobile Robot Workspace                                                      74
          3.4.1 Degrees of freedom                                                    74
          3.4.2 Holonomic robots                                                      75
          3.4.3 Path and trajectory considerations                                    77
    3.5  Beyond Basic Kinematics                                                      80
    3.6  Motion Control (Kinematic Control)                                          81
          3.6.1 Open loop control (trajectory-following)                              81
          3.6.2 Feedback control                                                      82
 4  Perception                                                                        89
    4.1 Sensors for Mobile Robots                                                    89
          4.1.1 Sensor classification                                                  89
          4.1.2 Characterizing sensor performance                                      92
          4.1.3 Wheel/motor sensors                                                    97
          4.1.4 Heading sensors                                                        98
          4.1.5 Ground-based beacons                                                  101
          4.1.6 Active ranging                                                        104
          4.1.7 Motion/speed sensors                                                  115
          4.1.8 Vision-based sensors                                                  117
    4.2 Representing Uncertainty                                                    145
          4.2.1 Statistical representation                                            145
          4.2.2 Error propagation: combining uncertain measurements                  149
    4.3 Feature Extraction                                                          151
          4.3.1 Feature extraction based on range data (laser, ultrasonic, vision-based
                ranging)                                                              154
          4.3.2 Visual appearance based feature extraction                            163
 5  Mobile Robot Localization                                                        181
    5.1 Introduction                                                                181
    5.2 The Challenge of Localization: Noise and Aliasing                            182
          5.2.1 Sensor noise                                                          183
          5.2.2 Sensor aliasing                                                      184
          5.2.3 Effector noise                                                        185
          5.2.4 An error model for odometric position estimation                      186
    5.3 To Localize or Not to Localize: Localization-Based Navigation versus
          Programmed Solutions                                                        191
    5.4 Belief Representation                                                        194
          5.4.1 Single-hypothesis belief                                              194
          5.4.2 Multiple-hypothesis belief                                            196
Contents                                                                      ix
      5.5  Map Representation                                              200
            5.5.1 Continuous representations                                200
            5.5.2 Decomposition strategies                                  203
            5.5.3 State of the art: current challenges in map representation 210
      5.6  Probabilistic Map-Based Localization                            212
            5.6.1 Introduction                                              212
            5.6.2 Markov localization                                        214
            5.6.3 Kalman filter localization                                227
      5.7  Other Examples of Localization Systems                          244
            5.7.1 Landmark-based navigation                                  245
            5.7.2 Globally unique localization                              246
            5.7.3 Positioning beacon systems                                248
            5.7.4 Route-based localization                                  249
      5.8  Autonomous Map Building                                          250
            5.8.1 The stochastic map technique                              250
            5.8.2 Other mapping techniques                                  253
 6    Planning and Navigation                                                257
      6.1 Introduction                                                      257
      6.2 Competences for Navigation: Planning and Reacting                  258
            6.2.1 Path planning                                              259
            6.2.2 Obstacle avoidance                                        272
      6.3 Navigation Architectures                                          291
            6.3.1 Modularity for code reuse and sharing                      291
            6.3.2 Control localization                                      291
            6.3.3 Techniques for decomposition                              292
            6.3.4 Case studies: tiered robot architectures                  298
Bibliography                                                                305
      Books                                                                  305
      Papers                                                                306
      Referenced Webpages                                                    314
      Interesting Internet Links to Mobile Robots                            314
Index


As you can see, it covers everything from the Perception to Logic and even drive systems

gvarndell 12-04-2010 06:10

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by davidthefat (Post 952490)
All who are trying this: I have a book for you.

:) :) :)

Doug Leppard 12-04-2010 08:51

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Andrew Schreiber (Post 952137)
2003, taking the entire stack on the top of the bump and then controlling the bump could win. (I wasn't around this year perhaps someone could figure out how much of a swing it could be)

2004, several teams hung in autonomous and then controlled the bar, they swung the match score up to 150 points (+50 for their hang -100 for their opponents not being able to hang). I guess that isn't serious.

2006, winning auton was a huge benefit. I saw many matches decided by auton alone.

2008, 1114, do I need to say more? Ok, 217. There you go. Auton could decide the match.

2009, on Einstein the final match autons consisted of loading up the bots to go dump a load into their opponents, not as important but it added many balls to the arsenal of the dumpers (or 217's shooter).

2010, 469 shows how useful a good auton can be. If they get set in auton you are pretty much down 4 points at the start of the match (They score 2 balls and then recycle them as soon as people start moving).

I would say that 15 seconds is plenty of time to do something important.

I would agree. As a mentor I have been there for all auto years. If the game is designed right you can do a lot in 15 seconds.

2003 purpose, to knock your boxes to your side of field. Auto gave you a good position and start against your opponents.

2004 Purpose to knock down the balls early in game. Gave you a small advantage. But mostly if you moved during auto you go noticed. It was a fun one to do and watch.

2005 It was the tetra year and idea was to put the tetra in place. It was a bust. Almost no one could do much with it, too hard.

2006 Aim high place balls in corner or middle target. It was 1902's rookie year and we had a simple auto mode that consistently put 10 balls in corner and gave bonus points. Because of that we were 9-0 in Houston.

2007 Rack and Roll, place tube on rack. Many said it did not help. I calculated it made the difference in winning or losing several matches.

2008 Race around track and knock down balls. This was the most fun and challenging auto mode. Could make huge difference.

2009 Auto was hard and mostly in my opinion did not make a big difference unless you didn't move and you got nailed for not moving.

Bottom line auto modes are fun and most years make a difference. Longer than 15 seconds and it becomes boring because most teams do not even move during that time.

I think auto mode is important for a team because you stand out during that the 15 seconds awhile so many others just sit there.

kamocat 12-04-2010 10:24

Re: Programmers: I Have A Challenge For You
 
The thing I notice about all of those is that autonomous is always playing an assistive role to teleop. I wonder if that could be reversed?

toastnbacon 15-04-2010 16:09

Re: Programmers: I Have A Challenge For You
 
I love the sound of this, but I can almost guarantee my team won't.

gblake 18-04-2010 20:38

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by toastnbacon (Post 954010)
I love the sound of this, but I can almost guarantee my team won't.

See post #231 Link_to_231

gblake 18-04-2010 20:59

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by kamocat (Post 952630)
The thing I notice about all of those is that autonomous is always playing an assistive role to teleop. I wonder if that could be reversed?

Another mentor wrote something like this during the Rack-N-Roll season - I'm paraphrasing:

Once you create a machine that can score a ring (or some other useful function) during the autonomous period, you use that capability like a macro to automate scoring during the entire match.

A good autonomous scorer, becomes a predictable/reliable tool for the drive team to use throughout teleop. It multiplies their effectiveness and frees them to think about higher level concerns, instead of the minutiae of the actions a machine can carry out on their behalf.

How about starting with this general mindset and then pushing it as far as we are able?

Blake

WJF2011 18-04-2010 21:14

Re: Programmers: I Have A Challenge For You
 
Understand this. This is a beatable robot. All robots can be defeated with strategy. - Alexander McGee

Please see team 71 in 2002:
http://www.youtube.com/watch?v=h4slvnvPHW8

kamocat 18-04-2010 21:49

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by gblake
Once you create a machine that can score a ring (or some other useful function) during the autonomous period, you use that capability like a macro to automate scoring during the entire match.

A good autonomous scorer, becomes a predictable/reliable tool for the drive team to use throughout teleop. It multiplies their effectiveness and frees them to think about higher level concerns, instead of the minutiae of the actions a machine can carry out on their behalf.

Higher-level control?
Funny you should mention that.

One way I'd like to automate is the movement of the robot. However, since we don't have a touchscreen to say "go here", I've been wondering what the best way to do that is.
One idea is to have "canned moves" selected with a button and configured with a joystick.
In 2009, the canned moves would have been a non-slip turn, a trailer-swinging spin, or a backwards flip around the trailer.
(Each of these moves will work within certain parameters (speed, rate of turn, angle of trailer, weight of trailer vs weight of 'bot.)

Can you think of a simpler or more intuitive interface?

davidthefat 29-04-2010 21:01

Re: Programmers: I Have A Challenge For You
 
Anyone have any progress with this? LOL I really have not even officially started on it, just brainstormed and now I have AP tests and stuff... I don't have much time, Spring Football is coming up, final projects are due and wow...

theprgramerdude 29-04-2010 21:38

Re: Programmers: I Have A Challenge For You
 
Knowing that fully autonomous will be a big project, I'm focusing on recruiting replacements for the seniors that are leaving this year, and training whomever I can in basic c++/Labview while I can, since part of the decision making engine (which is critical) will have to be based on next years game.

Tom Line 29-04-2010 22:37

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by WJF2011 (Post 954983)
Understand this. This is a beatable robot. All robots can be defeated with strategy. - Alexander McGee

Please see team 71 in 2002:
http://www.youtube.com/watch?v=h4slvnvPHW8

That WAS a beatable robot. If your robot was quick enough to get to them and knock them off center before they locked on, they were defeatable.

Many people said the same thing about 469 on einstein this year - that they were a lock with 1114.

It requires a clear understanding of the game and a good grasp of strategy, but any robot is beatable.

Chris is me 29-04-2010 23:18

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Tom Line (Post 959084)
That WAS a beatable robot. If your robot was quick enough to get to them and knock them off center before they locked on, they were defeatable..

I've read in old threads that the "knocking them off center" problem was fixed for Championship.

Ian Curtis 29-04-2010 23:33

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris is me (Post 959089)
I've read in old threads that the "knocking them off center" problem was fixed for Championship.

I'm not sure what the fix was but it couldn't have been a cure-all, because SPAM did it to them during Einstein Match 2. I don't know how 2002 was scored though. Did Beatty and Rage win anyways, or did they force a third match that TBA doesn't have?

Chris is me 29-04-2010 23:38

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by iCurtis (Post 959090)
I'm not sure what the fix was but it couldn't have been a cure-all, because SPAM did it to them during Einstein Match 2. I don't know how 2002 was scored though. Did Beatty and Rage win anyways, or did they force a third match that TBA doesn't have?

Everything I have is heresy from reading old threads, but I heard the second match was a combination drive shaft failure and the gate latches not working. The third match was won without Beatty on the field for the win.

CN-U-NEFCU? 30-04-2010 19:48

Re: Programmers: I Have A Challenge For You
 
This would be extremely difficult not only due to the intense amount of code and possible errors that could present them selves, but also because it would be hard to keep track of the robots position on the field due to Field obstacles getting in the way of items such as encoders, can anyone say bump?

theprgramerdude 30-04-2010 20:13

Re: Programmers: I Have A Challenge For You
 
Naturally, absolute values cannot be used, just like in full scale/industrial robots and control systems (thinking of aircraft). It has to be able to adjust and calculate for errors, and use multiple position sensing methods.

W1NG$ 11-05-2010 18:50

Re: Programmers: I Have A Challenge For You
 
This is one amazing goal. I do find it annoying that for a majority of the match the "robots" are not really robots. Just a big RC car in the hands of a highschooler. "A robot is an automatically guided machine, able to do tasks on its own." I will talk to our programming team about this, Fo Sho!
I think what FIRST is really trying to do though is make the competition viewer and fan friendly. No one wants to watch a low scoring match of slow moving robots. If this goal could be accomplished while still keeping the games entertaining then that would be great. I think having the game part autonomous and part teleop is the best way to go, though it would be nice if they made the autonomous longer and worth more points.

oddjob 13-05-2010 12:06

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by W1NG$ (Post 961682)
I think what FIRST is really trying to do though is make the competition viewer and fan friendly. No one wants to watch a low scoring match of slow moving robots.


... or a high scoring match. Who'd pay to watch robotically driven NASCAR or robot tennis? Not many. Even the Mars rovers are driven by commands sent from Earth, with some autonomy build in to the rover. (human said what?).

A fully autonomous FIRST competition would be a dud. It's technically brilliant, but has a very limited audience. Adding some automated tasks to human control does make sense though, such as camera assisted aiming and shooting mechanisms. In Formula 1 car racing the FIA is constantly having to evaluate how much of the car is to be driven by computer versus having the driver in control. They understand the fans want to see the drivers perform too, it's not just about who has the best engineers. The same applies to FIRST.

DaveS_1511 13-05-2010 12:23

Re: Programmers: I Have A Challenge For You
 
I agree with W1NG$, that autonomous should be encouraged but not be the whole match. Make autonomous a little longer relative to teleoperated or make autonomous scores count for more points.

For a more extreme idea, how about a detachable autonomous robot, so each team would have a teleoperated and an autonomous robot fielded at the same time - - - mayhem ensues!

Enigma's puzzle 13-05-2010 12:54

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Chris is me (Post 959093)
Everything I have is heresy from reading old threads, but I heard the second match was a combination drive shaft failure and the gate latches not working. The third match was won without Beatty on the field for the win.

After talking to someone that drove against that robot the key to beating it was beating it to the middle goal and moving it off center or out of the middle of the field so it would then miss the other two goals. but you had to do this in autonomous. So the anti-Hammond autons were similar to the anti-Guerillas autons we saw this year.

JamesBrown 13-05-2010 13:27

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Enigma's puzzle (Post 961971)
but you had to do this in autonomous. So the anti-Hammond autons were similar to the anti-Guerillas autons we saw this year.

I was under the impression that autonomous mode didn't exist until 2003. (I could be mistaken)

Doug G 13-05-2010 14:44

Re: Programmers: I Have A Challenge For You
 
You are correct, no autonomous period until 2003. You could still write some auto code, but not many did, just for operational functions and systems.

I remember Team 60 was like Beatty at SVR that year. You could beat them, but you had to control the goals before they got to them. I distinctly remember one team that drove at ridiculus high speed as soon as the match started and rammed 60 so hard it broke one of their four drive transmissions. There were no bumpers back then. I still haven't heard a robot collision like that since.

Back on topic... I think pursuing this challenge within the constraints of FIRST is a bit silly and maybe not as inspiring as you may hope. Sure it may inspire you and a few hard core programmers, but what about the rest of the teams. I think a better challenge (or an alternate one) is to offer up a Championship Autonomous Trophy or something for the best auto mode next season. Don't let it be decided by points though, maybe teams submit their best auto mode video clip (from a regional/championship) to YouTube, have a panel decide on the top five and then the FIRST community vote on a winner. Maybe we find a sponsor for it like what AutoDesk does for CADders. This maybe more inviting for more programmers of various levels and hopefully inspire them to take on more challenging adventures like yours.

kamocat 14-05-2010 01:11

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by oddjob (Post 961966)
... or a high scoring match. Who'd pay to watch robotically driven NASCAR or robot tennis? Not many. Even the Mars rovers are driven by commands sent from Earth, with some autonomy build in to the rover. (human said what?).

A fully autonomous FIRST competition would be a dud. It's technically brilliant, but has a very limited audience. Adding some automated tasks to human control does make sense though, such as camera assisted aiming and shooting mechanisms. In Formula 1 car racing the FIA is constantly having to evaluate how much of the car is to be driven by computer versus having the driver in control. They understand the fans want to see the drivers perform too, it's not just about who has the best engineers. The same applies to FIRST.

If the robots are fully autonomous, then the issue becomes how well they interact with human players. The actions of human players and robots can have zero overlap, in contrast to the direct competition present in 2009.
I feel there is a limited vision of the individuality of autonomous robots, and an assumption that fully autonomous robots will make every match the same. If the robots are very repeatable, then make the field environment less predictable. Perhaps Guinea Pigs in exercise balls that robots must collect?
RC cars are not the future of robotics. I don't understand how we can get students interested in new engineering fields if we don't expose them to it.

angelawence11 14-05-2010 08:20

Re: Programmers: I Have A Challenge For You
 
The thing with making something completely autonomous is that other robots that may be teleoperated are completely unpredictable. Itd make defense difficult... wouldnt it? i dunno. for any team who can do it, good luck!!!

JamesBrown 14-05-2010 08:32

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by kamocat (Post 962078)
I don't understand how we can get students interested in new engineering fields if we don't expose them to it.

I don't think it is necessary to directly expose the students to the fields, what FIRST does is tease them with a little introduction, and let them find their way from there.

We can't just force teams to build more autonomous robots and force them to function in more dynamic environments. We need to keep in mind that this is still a high school program, and the majority of high school programmers (and a lot of the mentors) don't have the necessary skill set to build and control sophisticated robots. There were teams this year, including very experienced teams (even original teams from 1992) who did nothing in autonomous. This year you could score >75% of the time by just driving forward in the front zone, and yet there were teams that couldn't do it. There were teams in 2005 that could not knock the hanging tetra off, and in 2008 that could not drive forward to cross one line. These are extremely simple tasks that teams are just not doing. Whether it is due to lack of time, programming experience, or anything else it is obvious we are not ready to make autonomous any harder.

mwtidd 14-05-2010 13:33

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by JamesBrown (Post 962103)
the majority of high school programmers (and a lot of the mentors) don't have the necessary skill set to build and control sophisticated robots.

I've attatched a link to the trinity fire fighting robot contest.

This has not only a high school division, but also a junior division.

http://www.trincoll.edu/events/robot/

I think what is holding FIRST back is the way it encourages autonomous. First off unlike trinity, it is not really a requisite. As many have said the advantage of having a strong autonomous robot has been reduced greatly recently, which confuses me seeing as they invested in the cRIO. In the past we were given 15 seconds, and a good autonomous gave you a distinct advantage but did not at all guarantee a win (see 2004). Now we've been given c++, java, and labview but we're only allotted 10 sec, and in this game 3 points if you were lucky.

because of this movement it has forced a priority shift almost entirely to the engineering, which is why I believe you saw almost no autonomous this year... making programming an "if we have time" sort of thing. I would like to see a shift back to the 04/06 style autonomous, to give us and more importantly our teams the incentive for making impressive autonomous robots.

kamocat 15-05-2010 16:39

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by JamesBrown (Post 962103)
I don't think it is necessary to directly expose the students to the fields, what FIRST does is tease them with a little introduction, and let them find their way from there.

I guess I just don't understand how that helps create more engineers. We've all seen Bill Nye the Science Guy, but does that make us want to be scientists? Do we actually pursue science with a passion due to him, or do we find inspiration in the technology we create?
With the millions in scholarships and the direct contact with professional engineers, I don't see how FIRST could justify saying "engineering is cool" and leave it at that. Connections, education, and experience are what help people become professionals. If you were a student, would you be interested in a robotics program if you only knew of it as a hobby, if you had no idea how to actually do it as a profession? If FIRST was just a game, would it be a fraction as important as it is? It would only be a sport.

Quote:

Originally Posted by JamesBrown (Post 962103)
We can't just force teams to build more autonomous robots and force them to function in more dynamic environments. We need to keep in mind that this is still a high school program, and the majority of high school programmers (and a lot of the mentors) don't have the necessary skill set to build and control sophisticated robots. There were teams this year, including very experienced teams (even original teams from 1992) who did nothing in autonomous. This year you could score >75% of the time by just driving forward in the front zone, and yet there were teams that couldn't do it. There were teams in 2005 that could not knock the hanging tetra off, and in 2008 that could not drive forward to cross one line. These are extremely simple tasks that teams are just not doing. Whether it is due to lack of time, programming experience, or anything else it is obvious we are not ready to make autonomous any harder.

In order to make autonomous more common, not only does its treatment within the game need to change, but its ease of programming. Programming autonomous should be no more difficult than planning a field trip. However, that's a community-based project. At the moment autonomous may be difficult for most teams, but that's something we can change. Do you want to help?

artdutra04 15-05-2010 17:20

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by kamocat (Post 962269)
In order to make autonomous more common, not only does its treatment within the game need to change, but its ease of programming. Programming autonomous should be no more difficult than planning a field trip. However, that's a community-based project. At the moment autonomous may be difficult for most teams, but that's something we can change. Do you want to help?

How do you make programming autonomous easier? There are thousands of different FRC robot configurations, every one different from the other. Different drive trains, different mechanisms, different sensors (or lack thereof).

Programming fully autonomous (or semi-autonomous) robots is difficult and takes a long time. It takes a lot of processor power, a lot of memory, a lot of sensors to make them "smart". Odometry calculations, matrix frame transformations, filtering of sensor data (such as with Kalman filters), forward/inverse kinematics, environment mapping, navigation and pathfinding/planning, etc. This is all high-level stuff that isn't even approached until the second half of an undergraduate engineering degree, and would be way over the heads of high school students.

And then to package this into a modular software package applicable to any FRC robot with simplicity that would make Apple jealous? If there is anyone who is seriously considering the effort to create this, they're probably in industry right now doing it to earn money, either for an existing company or a start-up they founded, because that final product would be worth serious $$$.

The only way you'd ever see any kind of really advanced autonomous or even significant-majority autonomous action in FRC is to use small, nearly identical robots. Shift the focus away from mechanisms and towards controls and programming. But this would cause major outrage in the FIRST community. Many of the students and mentors currently involved like to be involved because of what FRC currently is; there are plenty of other competitions where mechanical design takes a backseat to programming and controls, like the autonomous soccer competitions or Trinity Firefighting.

That being said, if autonomous in FRC was extended to 20 seconds long, and if there was a significant scoring bonus for achieving tasks during this time (especially with an easy task, a medium task and a difficult task, all rewarded appropriately with points), then you'd see a lot of teams out there with advanced autonomous modes.

Increase the return-on-investment for points scored in autonomous mode versus the man-hours of effort to get those points, and you'll see a lot more teams doing a lot more advanced autonomous modes.

Tom Line 15-05-2010 20:09

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lineskier (Post 962138)
I've attatched a link to the trinity fire fighting robot contest.

This has not only a high school division, but also a junior division.

http://www.trincoll.edu/events/robot/

I think what is holding FIRST back is the way it encourages autonomous. First off unlike trinity, it is not really a requisite. As many have said the advantage of having a strong autonomous robot has been reduced greatly recently, which confuses me seeing as they invested in the cRIO. In the past we were given 15 seconds, and a good autonomous gave you a distinct advantage but did not at all guarantee a win (see 2004). Now we've been given c++, java, and labview but we're only allotted 10 sec, and in this game 3 points if you were lucky.

because of this movement it has forced a priority shift almost entirely to the engineering, which is why I believe you saw almost no autonomous this year... making programming an "if we have time" sort of thing. I would like to see a shift back to the 04/06 style autonomous, to give us and more importantly our teams the incentive for making impressive autonomous robots.

I'm not sure I understand. Autonomous is 15 seconds. It was all of this year.

In addition, while many people didn't realize it, autonomous was absolutely critical this year to success. Much like normal soccer, ball control this year was absolutely critical. Getting your balls moved into your zone in auto gave you a HUGE advantage - even if you did not score them.

If you look back at the highly contested matches this year (heck, look at Einstein), without auton you lose. Without hanging, the team that won might very well have lost.

While it isn't worth the insane amount it was in '06, if you wanted to compete at the high end of the spectrum then you had a good autonomous.

As a great example - ours was malfunctioning during qualification rounds because we had to change the surgical tubing powering our shooter, and the new stuff had significantly different spring rates than the old stuff. Had we had it running correctly, our final seeding score might have made it a different ball game. In the playoffs, we got it working. Our semifinals matches would have been lost without us nailing the shots that we did.

Auton this year wasn't critical to playing the game, but it was crucial to playing the game at a high level. I think that is the perfect measure of it's importance, as it lets newer teams still compete, and powerhouse teams show off their prowess. (Edit - I am not suggesting we are a powerhouse. Far from it. But without a good auton we wouldn't have done nearly as well as we did this year).

mwtidd 17-05-2010 00:42

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Tom Line (Post 962309)
I think that is the perfect measure of it's importance, as it lets newer teams still compete, and powerhouse teams show off their prowess.

Sorry for my mistake on the length of autonomous, and thanks for correcting me.

My comments were directed at two things, capability and priority.

I believe that high school students are capable of building an impressive autonomous as displayed by the trinity comp.

With regards to priority, Trinity forces autonomous and programming to be considered for all teams, where as FIRST it is "optional". As you said for all-stars it is also necessary, I can't tell you how many times our matches were decided in the first and last 15 seconds. If you look at my team, years we have autonomous we make it to the elimination rounds and years we don't have one we don't make it. So I totally agree.

My thoughts are though that as FIRST doesn't "require" autonomous, it falls down the priority chain for even experienced teams. My comments were with regards to FIRST making autonomous more "mandatory" and raising its priority. In doing so they would have to better support the programming in such a way that a rookie team could have an autonomous.

I think given the appropriate tools and learning channels (tutorials) all teams could produce very impressive autonomous robots, its just a matter of adjusting the priority with the engineers.

I also know the argument can be made that this isn't the responsibility of FIRST, I just wish i wasn't always debugging in the pits :)

JamesBrown 17-05-2010 09:14

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by kamocat (Post 962269)
In order to make autonomous more common, not only does its treatment within the game need to change, but its ease of programming. Programming autonomous should be no more difficult than planning a field trip. However, that's a community-based project. At the moment autonomous may be difficult for most teams, but that's something we can change. Do you want to help?

I would be more than willing to help, however, I think that the solution to the problem is not making programming Autonomous simpler, it is teaching students (and in some cases mentors) the basics of programming and control.

Creating an effective autonomous that performs a basic task (i.e. dropping the hanging tetra in 2005, crossing 1-2 lines in 2008, or scoring from the first zone in 2010, or just moving defensively 2006 and 2009) is not difficult given the libraries first has provided. I taught myself to program for FIRST in 2005, by the end of 6 weeks our robot could consistently score in autonomous (by dropping the hanging tetra) by Battle Cry we could score twice in autonomous (drop the hanging tetra and put the preloaded tetra into the bottom of the middle goal). Since teaching my self to program in 2005, I have decided to pursue a career in Control and Automation. Needless to say my teams' autonomous modes have gotten more sophisticated as I went through college, but along the way I have seen/helped plenty of high school students learn to write code and wire sensors that let them create their own autonomous modes, beyond what I could do when I started.

Long story short, I don't know what you are proposing to do to make autonomous a attainable task for all teams, but feel free to PM me with more information. I think that a group of mentors and capable HS programmers spread out around the country could easily create a program and run workshops to teach teams with out the necessary mentor support how to program so they can write their own autonomous modes. However the more commonly proposed method, building libraries, or a scripting language for students to use, is ultimately curing the symptom (Teams that don't move in autonomous), not the problem (Teams don't have the knowledge/resources to write their own autonomous).

progal 17-05-2010 09:16

Re: Programmers: I Have A Challenge For You
 
When I responded to this before, I think I made myself unclear. I would love to take the challenge, but of course, I would have to talk to my team about it. This would be a very fun challenge, yes, but like I said before, team 1086 isn't going to participate unless said otherwise.

Sorry for the misunderstanding! :)

mwtidd 17-05-2010 13:10

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by JamesBrown (Post 962543)
I would be more than willing to help, however, I think that the solution to the problem is not making programming Autonomous simpler, it is teaching students (and in some cases mentors) the basics of programming and control.

James, I have a few developers who have signed on with me for the Bobotics ADK, you can find it on First Forge, and I would love it if you could help out.


The ADK is set up in a way to make programming easier to learn. After someone learns the basics, they can do more advanced things like using an async event system, set up complex state machines, learn about the MVC and factory design patterns. The core of the program does most of the background work, which helps to lower the "getting started barrier", however it is highly extensible for advanced developers.

Robototes2412 17-05-2010 13:29

Re: Programmers: I Have A Challenge For You
 
Im sorry if this angers anyone, but I firmly believe that people need to start by sending raw pwm values to the speed controllers, then use the class, then make a class to control the victors, then work on autonomous. In order to program effectively, you need to tailor the code to the device by learning how it works.

Then you can use the Bobotics ADK.

Joe Ross 17-05-2010 14:01

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by lineskier (Post 962138)
I've attatched a link to the trinity fire fighting robot contest.

This has not only a high school division, but also a junior division.

http://www.trincoll.edu/events/robot/

There are (at least) two features of the trinity competition that make it much more feasible to be fully autonomous.

First, there are no limitations on time to build the robot. The competitions are approximately the same from year to year. Thus you have a lot more time to work on autonomy. Not only does FIRST have a six week build season, and radically different games each year, but you aren't even allowed to reuse code (in many cases). In Trinity, you could build the robot one year, and just make software and sensor tweaks over the years. You can really learn from the best and directly apply those the next year.

Second, in Trinity, you're the only robot on the course. All the obstacles are things that you choose based on the point values. In FIRST, you have to figure out how to sense and avoid 5 other robots, who will be moving very fast.

gblake 17-05-2010 14:03

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Robototes2412 (Post 962569)
Im sorry if this angers anyone, but I firmly believe that people need to start by sending raw pwm values to the speed controllers, then use the class, then make a class to control the victors, then work on autonomous. In order to program effectively, you need to tailor the code to the device by learning how it works.

Then you can use the Bobotics ADK.

Don't forget how important it is to write the initial versions of these routines using assembly language; and and also only using locally developed device drivers, instead of skipping past that part of learning how the devices work.

Blake

PS: I have a spare Morse code key if anyone wants to use it to enter the 1's and 0's of their executables.
PPS: ;)
PPPS: There certainly is value in understanding a layer or two of detail below whatever layer of abstraction you are writing code for; but I'm not sure that you have fully articulated a compelling reason for why the path you advocate is the best way to learn to effectively program an FRC robot (or similar device). You have made an assertion with some merit; but so far I don't see it as a compelling argument.

JamesBrown 17-05-2010 14:39

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Robototes2412 (Post 962569)
Im sorry if this angers anyone, but I firmly believe that people need to start by sending raw pwm values to the speed controllers, then use the class, then make a class to control the victors, then work on autonomous. In order to program effectively, you need to tailor the code to the device by learning how it works.

Then you can use the Bobotics ADK.

All of those layers are important to learn but learning them in that order is not the best option. Why not start at the top. Once you learn what a class does you can follow through by learning why and how it does it.

The beautiful thing about using an API is that you don't need to tailor your code to a device, you can write high level code while programmers with more time/experience/expertise can handle the low level platform specific code.

conceptsingh 17-05-2010 14:54

Re: Programmers: I Have A Challenge For You
 
wow that is very challenging because it like the robot have it own mind to play the game but it also depend on the field too because they change the measurement and what on the field too like this year they said that the bump height was 12 in but later when i check the online manual they change the bump height to 13 and a half in. So it basically depend on the game and what they want us to do.

mwtidd 17-05-2010 15:14

Re: Programmers: I Have A Challenge For You
 
Quote:

Originally Posted by Joe Ross (Post 962574)
There are (at least) two features of the trinity competition that make it much more feasible to be fully autonomous.

This is definitely true, my comments weren't regard with the challenge but rather that every team should be able to have an autonomous if they're given the proper tools and learning channels. I agree that trinity forces fully autonomous and thus maybe the analogy wasn't fully appropriate. My thoughts were that FIRST could do the same on a smaller scale. If they continued the model of 2006 it would have forced all teams to at least think about defense in autonomous.

Also as long as you make your source code public at the end of every year, you can reuse it as it acts as a COTS part.

Quote:

Originally Posted by gblake (Post 962575)
There certainly is value in understanding a layer or two of detail below whatever layer of abstraction you are writing code for; but I'm not sure that you have fully articulated a compelling reason for why the path you advocate is the best way to learn to effectively program an FRC robot (or similar device). You have made an assertion with some merit; but so far I don't see it as a compelling argument.

I agree that assembly should be in there somewhere. I was trying to mimic my undergraduate education in the way I approached the ADK. First you learn the basics of programming languages, then you would learn basic soft eng techniques, and finally design patterns. I am not great at system level things like assembly. My hopes is that someone else could help with this end. Also I was not emphasizing this because I view the wpilib as the low level. My goal with the ADK is to provide high level object oriented design education.

This is a link to WPI's course flow chart
http://www.wpi.edu/Images/CMS/UGP/cschart-10-11.pdf

To summarize start with java, then go to C and C++, then go to soft eng and assembly, and finally go to OOAD(design patterns)

Quote:

Originally Posted by JamesBrown (Post 962582)
All of those layers are important to learn but learning them in that order is not the best option. Why not start at the top. Once you learn what a class does you can follow through by learning why and how it does it.

The beautiful thing about using an API is that you don't need to tailor your code to a device, you can write high level code while programmers with more time/experience/expertise can handle the low level platform specific code.

Good point. In retrospect looking at the WPI plan this is exactly how they approach it.


All times are GMT -5. The time now is 14:58.

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