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)

davidthefat 29-03-2010 19:09

Programmers: I Have A Challenge For You
 
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

Epic 29-03-2010 19:12

Re: Programmers: I Have A Challenge For You
 
I will give you an internet high-five even if you just attempt this.

Rion Atkinson 29-03-2010 19:14

Re: Programmers: I Have A Challenge For You
 
I'm not a programmer, but I do know that because of the was the field system works, you will have to have the program read that it is now in teleoperated, and then begin a program.

But why not, instead of fully autonomous, make it to where it is mostly autonomous. Meaning that the only thing that isn't autonomous is driving across the field. So you drive a long distance, flip a switch, and then it does the rest on it's own? I'm not a programmer, but I have a feeling FULLY autonomous may be a little to hard. (My programmer has less hair than he had at the beginning of the season... )

Just my $0.02

Good luck!
-Rion

davidthefat 29-03-2010 19:21

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

Originally Posted by Formerly Famous (Post 945250)
I'm not a programmer, but I do know that because of the was the field system works, you will have to have the program read that it is now in teleoperated, and then begin a program.

But why not, instead of fully autonomous, make it to where it is mostly autonomous. Meaning that the only thing that isn't autonomous is driving across the field. So you drive a long distance, flip a switch, and then it does the rest on it's own? I'm not a programmer, but I have a feeling FULLY autonomous may be a little to hard. (My programmer has less hair than he had at the beginning of the season... )

Just my $0.02

Good luck!
-Rion

Was thinking of the switch too, if the robot is acting really dumb and going away from the action, you can flip a switch to get you into the real teleop mode... Teleop mode is way easier to code than auto so it will be a breeze

Slix 29-03-2010 19:26

Re: Programmers: I Have A Challenge For You
 
Wow..

That would be pretty challenging. I think it would have to involve AI... One would have to code in game strategy, get the robot to line the ball up to the goal, avoid penalties, use the camera to identify balls and enemy robots...

davidthefat 29-03-2010 19:28

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

Originally Posted by Slix (Post 945254)
Wow..

That would be pretty challenging. I think it would have to involve AI... One would have to code in game strategy, get the robot to line the ball up to the goal, avoid penalties....

:rolleyes: Don't use the word "ball" FIRST come up with some wacky games...

mwtidd 29-03-2010 19:51

Re: Programmers: I Have A Challenge For You
 
During this off season I am going to be working on finishing up my ADK (autonomous dev. kit).

The plan is to try to have a fully autonomous robot as a proof of concept.

My personal goal is to make a programming platform that even rookie teams could use to have a decent autonomous.

The more teams we get to have autonomous the more FIRST will work to help us improve it (personally i would love for them to add the zigbee into the KOP so robots could communicate).

cheers

davidthefat 29-03-2010 19:55

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

Originally Posted by lineskier (Post 945279)
During this off season I am going to be working on finishing up my ADK (autonomous dev. kit).

The plan is to try to have a fully autonomous robot as a proof of concept.

My personal goal is to make a programming platform that even rookie teams could use to have a decent autonomous.

The more teams we get to have autonomous the more FIRST will work to help us improve it (personally i would love for them to add the zigbee into the KOP so robots could communicate).

cheers

Thats great, but what language(s) will it be in? Because I think if FIRST will distribute it, you probably will have to port it to the other languages

ProgramLuke 29-03-2010 19:58

Re: Programmers: I Have A Challenge For You
 
I don't think the drivers would go for that otherwise I would SO do that! :rolleyes:

Dkt01 29-03-2010 20:07

Re: Programmers: I Have A Challenge For You
 
I'm nearly certain that 1756 won't be doing full-autonomous the whole match. That is, unless that's the challenge for next year. If it is the challenge next year, well just see how that goes. As always, we will probably try to incorporate autonomous actions into teleop.

Best of luck to you if you can run autonomous the whole time. Your drivers will look pretty useless, though.

davidthefat 29-03-2010 20:18

Re: Programmers: I Have A Challenge For You
 
I have some pretty radiacl ideas, I wanted to do full autonomous this year but never got to do it since I was new this year, so no one really listens to you... I think I want to make a 4 legged robot to go to the competition legally by my senior year

EricLeifermann 29-03-2010 20:23

Re: Programmers: I Have A Challenge For You
 
A programmer mentor and myself talked about a fully autonomous robot for 2008 Overdrive. But we couldn't convince the other mentors or the students to go for it. He had most of the code written for it by the end of the 1st week while we were still deciding what we wanted to do.

Tanner 29-03-2010 20:27

Re: Programmers: I Have A Challenge For You
 
Heh. That's a big challenge. Not impossible, but a big challenge indeed.

If I had a chance to do this for total fun (i.e. not in a competitive sense where points matter ergo not a regional), I think it would be fun though I think it would be really hard to sense the environment around the robot. There's only so much ultrasonic sensors, touch sensors, and a camera can pick up. I'm sure there are more advanced sensors, but there's a point where the robots look less and less like FIRST robots and more like DARPA cars with LIDAR and 5 different cameras plus infrared imaging.

Do I think it'd be neat? Yeah. Easy? Nope.

About the most automated thing I've done for the teleoperated mode is let the robot put our robot's kicker in the correct position and backwind the rope we used to bring the kicker back. Probably not the autonomous we're thinking of, but thought I'd add it in.

I still think it'd be fun. I want to play with some ultrasonic sensors and the camera during the off-season just to have fun and learn something new about autonomous.

-Tanner

davidthefat 29-03-2010 20:34

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

Originally Posted by Tanner (Post 945321)
Heh. That's a big challenge. Not impossible, but a big challenge indeed.

If I had a chance to do this for total fun (i.e. not in a competitive sense where points matter ergo not a regional), I think it would be fun though I think it would be really hard to sense the environment around the robot. There's only so much ultrasonic sensors, touch sensors, and a camera can pick up. I'm sure there are more advanced sensors, but there's a point where the robots look less and less like FIRST robots and more like DARPA cars with LIDAR and 5 different cameras plus infrared imaging.

Do I think it'd be neat? Yeah. Easy? Nope.

About the most automated thing I've done for the teleoperated mode is let the robot put our robot's kicker in the correct position and backwind the rope we used to bring the kicker back. Probably not the autonomous we're thinking of, but thought I'd add it in.

I still think it'd be fun. I want to play with some ultrasonic sensors and the camera during the off-season just to have fun and learn something new about autonomous.

-Tanner

Im thinking of using a couple IR sensors (one for each side) and a couple ultra sound ones too to track the closer stuff. And a couple gyros (yes couple) to keep the robot from going all crazy looking like a drunk driver or something, it has to go straight at least

Tanner 29-03-2010 20:39

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

Originally Posted by davidthefat (Post 945328)
Im thinking of using a couple IR sensors (one for each side) and a couple ultra sound ones too to track the closer stuff. And a couple gyros (yes couple) to keep the robot from going all crazy looking like a drunk driver or something, it has to go straight at least

I've done one thing with one gyro and it's worked quite well. I didn't actually use it for anything, but what it showed was quite neat.

http://www.youtube.com/watch?v=fdKXQo65T9E

From what I know, using IR/ultrasonic sensors will just give you a relatively blurry image of the outside world. What you do with that data is the hard part. How do I differentiate between a robot, a wall, and a goal? Friend/Foe? Acquisition of game element?

I know of ways to do it, but it'd be complicated. As I said earlier, it'd be challenging. Would I have fun doing it? Oh yeah...

-Tanner

Mr. Lim 29-03-2010 20:40

Re: Programmers: I Have A Challenge For You
 
A wise mentor once told me:

The smart have a great understanding of the things they know.

The wise have a great understanding of the things they do not know.

David, as a teacher I would NEVER stop a student from pursuing a project as ambitious as this. Based on your other threads, you definitely strike me as a VERY smart young individual. My only word of advice is that I hope there can be a very wise (and hopefully smart!) mentor to provide some wisdom along the way. I guarantee it will be the difference between having the most hard-working, fulfilling and successful 6-weeks of your life, versus a few moments of undirected enthusiasm followed by sustained frustration, eventually giving up, and resorting to playing Madden on your hand-held.

If you can find that mentor and successfully work with them, I'll certainly give you an internet high-five regardless of whether you actually produce a functioning fully-autonomous robot...

Deal?

Chris is me 29-03-2010 20:41

Re: Programmers: I Have A Challenge For You
 
1024 could have done that in 2008.

I don't see why I should do this when I could spend my time winning instead, especially because game pieces are basically in random locations and 5 other robots are on the field too. Implementing fully autonomous control, with any semblance of strategy, isn't going to happen.

davidthefat 29-03-2010 20:47

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

Originally Posted by Mr. Lim (Post 945334)
A wise mentor once told me:

The smart have a great understanding of the things they know.

The wise have a great understanding of the things they do not know.

David, as a teacher I would NEVER stop a student from pursuing a project as ambitious as this. Based on your other threads, you definitely strike me as a VERY smart young individual. My only word of advice is that I hope there can be a very wise (and hopefully smart!) mentor to provide some wisdom along the way. I guarantee it will be the difference between having the most hard-working, fulfilling and successful 6-weeks of your life, versus a few moments of undirected enthusiasm followed by sustained frustration, eventually giving up, and resorting to playing Madden on your hand-held.

If you can find that mentor and successfully work with them, I'll certainly give you an internet high-five regardless of whether you actually produce a functioning fully-autonomous robot...

Deal?

:)
Well one of my programming mentors is very supportive of my ideas, I wanted to used C++ this year, but he didn't trust my skills to pull it off since I was brand new and just a sophomore, but by the end of the 6 weeks, I have managed to get his attention and hes letting me use C/C++ next year. the other one thinks I will get extremely frustrated or something trying to use C++ and move back to Java. I have learned C++ as my first language and have been using it for 4 year, I don't think I will give up on it. Yea both are great mentors, but I have yet to deliver this message to them yet. I told them to let all the other programmers to code in Java and I will just out perform them with my C++ code.

slavik262 29-03-2010 20:56

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

Originally Posted by Chris is me (Post 945335)
I don't see why I should do this when I could spend my time winning instead, especially because game pieces are basically in random locations and 5 other robots are on the field too. Implementing fully autonomous control, with any semblance of strategy, isn't going to happen.

Essentially what I was going to say. Ambition is never a bad thing - it should always be a reward to go above and beyond. However, I think you underestimate how much work fully autonomous code is. Granted, I've never done it myself, but imagine how much you have to do. I'm not doubting anybody's programming ability, but you have to face the facts: even if you do extensive work during the off-season, you only have six weeks to tailor all of your code to a game. Good AI that adapts to the current situation is difficult enough to write by itself. Making a robot respond to it adds another very large layer.

A much more practical goal would be semi-autonomous systems which would let the robot "help" the driver in accomplishing certain taks, i.e. lining up for a shot.

apalrd 29-03-2010 20:59

Re: Programmers: I Have A Challenge For You
 
It's amazing how much automation creeps up as the years go by...

In 2001 (Back in the day of PBASIC) we had a robot that could balance itself on the ramp with the push of a button. A weight on a pot was all it needed. That's autonomy, however basic it is.

Then, in 2003, FIRST added Autonomous mode. I've heard stories from former members and mentors of back then ("Back in 2003, the robot entered Autonomous and hit a wall at full speed") and how bad it was programming it ("We had 63 bytes of RAM and spent more code caching things into EEPROM to save RAM then actually doing stuff")

In 2004 we had a decent processor and real autonomous programs began. This year, we also had an automatic transmission (autonomy in Teleop). It automatically shifted based on RPM's of the wheels vs output speed,

Several of our other robots have had semi-autonomy in Teleop. 2007 had some pretty sweet arm software that I would say goes beyond the "rc car" definition (you could slide the end point in and out and it would calculate joint angles on the fly, as well as make sure it didn't hit itself on the way). This is my personal favorite robot of ours, so I went and wrote a LabVIEW demo to illustrate automation of the arm (combining some elements from the 2005 game, notably the ability to store game pieces).

This LabVIEW demo was known as "the belly manager" and basically allowed the operator to perform many tasks with only 4 buttons. The total actions: Get Floor, Get Human, Score Hi, Score Lo, Hold Hi, Hold, Belly1, Belly2, Belly3 (get and put belly), as well as several intermediate states. The operator requested a Score Hi, Score Lo, Get Human, or Get Floor and the robot automatically stored game pieces in the belly when slots were available, and always tried to either empty or fill the claw. Based on states of the claw or belly slots, it would either hold the arm in a high position that makes manipulation easy or fold down to a lower position to be more stable. With the single press of Score Hi or Score Lo, it would execute a sequence to move to the setup position (possibly many steps depending on starting position), "stab" the goal, drop the game piece, and return on a path that was as stable and efficient as possible. The "robot" would try to determine the operators desired action (score, retrieve, move, etc) and act accordingly. While this never exited the simulator, this kind of automation could easily be incorporated into FIRST robots.

Radical Pi 29-03-2010 20:59

Re: Programmers: I Have A Challenge For You
 
This would be a fun project to tackle...except for the problem that in the past years our programming team has barely even had a day to work our magic with the robot, much less calibrate it for autonomous operation.

I know of a few teams that have implemented an "autonomous kicker", which, after pushing a button, will automatically align the robot with the goal, calculate the kicker force required to hit the goal, and then kick. It's a great mechanism (one that has caused me to recieve complaints from our drivers...), but nowhere near the level you are talking about

davidthefat 29-03-2010 21:06

Re: Programmers: I Have A Challenge For You
 
So noone here is actually going to take the challenge? Oh well, I think I will have a great time trying to figure this out...

edit: if you think this will not go well with your team, just make your autonomous mode in one function that you just call in both the real autonomous mode and tele op. So if your driver does not want that, he can flip a switch so its back to full tele op

apalrd 29-03-2010 21:27

Re: Programmers: I Have A Challenge For You
 
I would accept your challenge, but I an quite sure the mentors wouldn't like the idea of full autonomy when a human driver can do much better. It all depends on the next game, which apparently the GDC is already working on.... So we just need Dave to add some extra punctuation to his sentences and we can get a nice head-start on the automation.

As for discussion of kicker automation, has anyone seen the Killer Bees robot? We have some automation on the kicker/ball-o-fier (suck button, kick button, distance knob) to result in a kicker recoiling with aprox. feet (nonlinear scaling), kick sequence (reverse ball motor, kill kicker motor, pop clutch, wait, re-engage clutch, restore ball motor, restore kicker motor, wait out rest of 2 second delay). This is all very basic to us. We also have a P control loop on our arm, with a total of 8 different gains to use depending on the loading, direction, and other factors. This is a simple Gain Scheduler, another thing that is very basic to us. Yet, many teams still struggle in software. I have reviewed the code of several local teams and seen that both of them limited themselves to Teleop, Disabled, and Autonomous Independent and/or Autonomous Iterative. They didn't know how to use the most basic of functions, like feedback nodes (One had "Jim the Cluster" that they passed into the main loop so they could use the shift registers), or Enum's (a different team had a bool for each option). Many teams still need to overcome many of the basic programming challenges, so FIRST should not require more automation then these teams can handle. That isn't to say it's not impossible, just something that the game won't require for a long time.

davidthefat 29-03-2010 21:31

Re: Programmers: I Have A Challenge For You
 
I just emailed my main mentor/teacher (hes my AP Comp Sci teacher) hopefully he will allow this and not think its too much of a mouthful for me

theprgramerdude 29-03-2010 21:35

Re: Programmers: I Have A Challenge For You
 
This sounds like fun. Team 2503 is willing to do it (no one else can actually object, since I am the only programmer.)

The only problem would be convincing the rest of the team; they're kind of addicted to driving it.

EthanMiller 29-03-2010 21:38

Re: Programmers: I Have A Challenge For You
 
Very new to programming here, but I'm working on that for our Breakaway bot, hopefully portable to next year. Our drive team's retiring (Seniors), so we can just tell the new guys that it's always been done that way.

We'll probably end up with a half broken autonomous period and then a teleop code, though. This year, mistake in auto. made the robot spin around for the entire auto period. It was at FLR... who remembers?

davidthefat 29-03-2010 21:42

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

Originally Posted by EthanMiller (Post 945397)
Very new to programming here, but I'm working on that for our Breakaway bot, hopefully portable to next year. Our drive team's retiring (Seniors), so we can just tell the new guys that it's always been done that way.

We'll probably end up with a half broken autonomous period and then a teleop code, though. This year, mistake in auto. made the robot spin around for the entire auto period. It was at FLR... who remembers?

At first, I did not take the autonomous mode seriously, I was seriously considering spinning around for the whole period, until out team leader got the IR sensors and made me do the autonomous per

theprgramerdude 29-03-2010 21:47

Re: Programmers: I Have A Challenge For You
 
On another note, does anyone know if it would be legal/possible to mount two camera's and route them back to the crio? They wouldn't have to be the Axis 206.

davidthefat 29-03-2010 21:50

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

Originally Posted by theprgramerdude (Post 945402)
On another note, does anyone know if it would be legal/possible to mount two camera's and route them back to the crio? They wouldn't have to be the Axis 206.

Yes I believe that you have to get another camera, and treat it as a digital input or something.

apalrd 29-03-2010 21:52

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

Originally Posted by EthanMiller (Post 945397)
We'll probably end up with a half broken autonomous period and then a teleop code, though. This year, mistake in auto. made the robot spin around for the entire auto period.

I've made it go backwards. Autonomous errors tend to be followed with more "What is this Palardymalarchy?" then match losses, however. Apparently joysticks are messed up so -1 = forward, and WPI dosen't fix this so -1 = forward. That's not what I would expect, so I made +1 = forward and -1 = reverse. Oops. I'm the only programmer, but I never do any major changes without approval of the lead mentors (mostly Jim) or change any of the drive team's controls without asking them. Most of your team would probably be happy with human drivers that can react to issues, mentor suggestions, strategy, etc. and regional wins more then they would like an innovation in control award. I'm not saying I wouldn't do full automation, but that FRC isn't ready for it uet.

JamesBrown 29-03-2010 21:58

Re: Programmers: I Have A Challenge For You
 
Not to burst any one's bubble but there appears to be a severe lack of understanding of how large of an undertaking autonomous programming really is. There are many programmers in this thread, some of whom have already said they are new to programming who think this is feasible. I urge you all to re think this and to take this in small steps, automate a task in Tele-op, i.e. automatic aiming.

I think that it is important to improve the level of software development that we see in FIRST. However the posts in this thread show a severe lack of appreciation for the difficulty of developing true autonomous robots. I urge anyone considering this to talk to some of the more experienced software and control mentors on your teams and on Chief Delphi about the feasibility of this. If you still think it is practical or possible then rather than wasting a build season trying this, why not exhibition matches at one of the fall off season competitions, and any one who is interested could write autonomous code and test the feasibility of this type of competition in that environment.


-James

davidthefat 29-03-2010 22:01

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

Originally Posted by JamesBrown (Post 945413)
Not to burst any one's bubble but there appears to be a severe lack of understanding of how large of an undertaking autonomous programming really is. There are many programmers in this thread, some of whom have already said they are new to programming who think this is feasible. I urge you all to re think this and to take this in small steps, automate a task in Tele-op, i.e. automatic aiming.

I think that it is important to improve the level of software development that we see in FIRST. However the posts in this thread show a severe lack of appreciation for the difficulty of developing true autonomous robots. I urge anyone considering this to talk to some of the more experienced software and control mentors on your teams and on Chief Delphi about the feasibility of this. If you still think it is practical or possible then rather than wasting a build season trying this, why not exhibition matches at one of the fall off season competitions, and any one who is interested could write autonomous code and test the feasibility of this type of competition in that environment.


-James

Yes I am aware of the difficulty of the problem at hand, but I have always learned that with good preparation, anything is possible. Before I even write a single line of code, I would have to do a lot of studying and pseudo coding. Like I said in previous posts, if all goes wrong, the driver can just press a switch to go into real teleop. thats just one if statement. Yea I always take programming in small steps, get the smaller things working then work up

efoote868 29-03-2010 22:05

Re: Programmers: I Have A Challenge For You
 
You know that DARPA ran its challenge twice before a team even completed it?
The challenge was (arguably) more straight forward: get your unmanned vehicle around a 150 mile track.
Teams also sunk large sums of money into the project, they also had a year to prepare beforehand.


I say this because having a fully autonomous robot may be *impossible* in 6 weeks, unless of course your team can come up with a 469 strategy.



In 2007, another programmer and I were able to make the robot *nearly* autonomous - the drive team only had to drive the robot to tubes, and drive the robot to the rack. The robot took care of controlling when the gripper mechanism opened (to grasp a tube), the robot took care of raising the tube to the dedicated height (level 1, 2, or 3 for the rack), and the robot sensed when the rack was within scoring distance (and shut, then released accordingly). After the tube was scored, the driver would back away, and the robot's mechanism would go down to the bottom level, and the wheels to grab the tubes would start spinning again.

This took two veteran programmers two weeks to accomplish, and the robot still wasn't fully autonomous.




My advice:
Do as much as you can in your robot, mask as much of the work as you can from the drivers, and you will have a successful time on the field. The less the drivers have to think about, the faster and better they can think about it.


To all yous looking to complete this challenge, good luck!

theprgramerdude 29-03-2010 22:30

Re: Programmers: I Have A Challenge For You
 
The main thing I want to try, however, is attaching some PC components as add-on's for image processing.

From a cognitive stand-point, a thinking, autonomous robot must have some of the same capabilities as a human does. Currently, robots are stupid and dumb because they lack these capabilities for thinking, as well as the ability to sense accurately. DARPA challengers failed because they lacked the processing power to see and analyze in real-time, something a human has the power to do. If we could harness an actual CPU (and maybe score with a CUDA GPU, who knows?), an autonomous program is definitely feasible as long as the problem is approached from the correct angle, by trying to emulate a human's problem-solving skills. Otherwise, it'll eventually just encounter an anomaly and be unable to correct itself.

/rant, it's late at night :eek:

ideasrule 29-03-2010 22:32

Re: Programmers: I Have A Challenge For You
 
Oh my god. I'll be graduating next year and I'm fairly experienced in programming, but I've no idea how to do this. I think I'd have to spend a year reading about artificial intelligence, genetic algorithms, machine learning, and the like before I can even attempt this.

efoote868 29-03-2010 22:53

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

Originally Posted by theprgramerdude (Post 945432)
DARPA challengers failed because they lacked the processing power to see and analyze in real-time, something a human has the power to do.

I believe you'll find that the DARPA contestants had large, jeep styled vehicles filled with computers and sensors - more computing power and more sensors than your team will be able to afford.

They also had tens to hundreds of programmers and engineers trying to solve a very specific problem - avoid obstacles on a road.
More time, more man power, and an *easier* challenge.




Take a portion of this years game - defense. Defense is as simple as harassing a robot. A challenge that will keep you up for days is determining what is a robot, and what is a field element. Another problem that will keep you up is determining which robot is the one you want to defend. The last problem is *how* you defend it.

All of these are decisions that a human can make very very quickly - Harass this robot, stay between it and the goal, and make sure it doesn't take a shot.

Vikesrock 29-03-2010 23:03

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

Originally Posted by efoote868 (Post 945439)
I believe you'll find that the DARPA contestants had large, jeep styled vehicles filled with computers and sensors - more computing power and more sensors than your team will be able to afford.

This is correct. Stanley, the winning entry in the 2005 DARPA Grand Challenge ran off of 6 1.6GHz Pentium M laptops stored in the trunk.

ideasrule 29-03-2010 23:41

Re: Programmers: I Have A Challenge For You
 
AI is still a long way off from being able to emulate the human brain, so I doubt that any autonomous program, even if run on the world's fastest supercomputer, could approach the skill of the worst driver.

<off-topic speculation>Soon after getting into AI, you'd have to get into how the human brain works, and what makes it sentient. It's possible that humans have only a very dim consciousness at birth that grows stronger as years' worth of experiences are built into the hardware of the brain. In that case, how would you give a robotic program those many years of training necessary for common-sense tasks that humans can easily do?</off-topic speculation>

progal 29-03-2010 23:53

Re: Programmers: I Have A Challenge For You
 
With a few photoeyes, I'd definitely be up for the challenge! :)

mwtidd 30-03-2010 00:01

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

Originally Posted by efoote868 (Post 945439)
A challenge that will keep you up for days is determining what is a robot, and what is a field element. Another problem that will keep you up is determining which robot is the one you want to defend.

Both can be accomplished by looking for the bumpers.

http://letsmakerobots.com/node/3843
(obviously would have to be ported to Java ME)

davidthefat 30-03-2010 00:04

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

Originally Posted by lineskier (Post 945489)
Both can be accomplished by looking for the bumpers.

http://letsmakerobots.com/node/3843
(obviously would have to be ported to Java ME)

Do you realize that the code was run on a 2.6 ghz processor... cRio is not that fast

mwtidd 30-03-2010 00:09

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

Originally Posted by davidthefat (Post 945492)
Do you realize that the code was run on a 2.6 ghz processor... cRio is not that fast

Yeah, my thinking was try removing the ranging and center of mass calculations

Also you can shrink the viewing area as you know you are looking between 10 and 16 inches off the floor.

I think something able to detect a rectangle at a given height and a given color would definitely be feasible.

Rion Atkinson 30-03-2010 00:11

Re: Programmers: I Have A Challenge For You
 
Okay. So I keep seeing a lot of people saying "This is going to be to hard. You are wasting your time." Come on guys! FIRST is about Inspiring! I was taught the basics of CAD in my Pre-Engineering Academy. The very basics. And over the summer, I did this with Inventor. Why? Because I was inspired to do so through FIRST. I wanted to learn! By the end of this years season, I had taught myself SolidWorks and am now making this.

Had I told you guys that I was going to go off and teach myself CAD, would you have said "It's to big of a challenge. I wouldn't even consider it", or would you encourage me? Because it seems that you are all saying that you would just discourage me.

That being said. I wish I was a programmer, I would love to join you guys in taking on the daunting task. I wish you the best of luck! Keep on inspiring yourselves! :D

-Rion

(P.S. Nothing is impossible. )

davidthefat 30-03-2010 00:39

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

Originally Posted by Formerly Famous (Post 945495)
Okay. So I keep seeing a lot of people saying "This is going to be to hard. You are wasting your time." Come on guys! FIRST is about Inspiring! I was taught the basics of CAD in my Pre-Engineering Academy. The very basics. And over the summer, I did this with Inventor. Why? Because I was inspired to do so through FIRST. I wanted to learn! By the end of this years season, I had taught myself SolidWorks and am now making this.

Had I told you guys that I was going to go off and teach myself CAD, would you have said "It's to big of a challenge. I wouldn't even consider it", or would you encourage me? Because it seems that you are all saying that you would just discourage me.

That being said. I wish I was a programmer, I would love to join you guys in taking on the daunting task. I wish you the best of luck! Keep on inspiring yourselves! :D

-Rion

(P.S. Nothing is impossible. )

Never too late to start programming, honestly, with FIRST oversimplifying the libraries, you can pick up programming the cRio in less then a week to be honest with you. But if you want to get really deep into programming, it takes lots of practice.

Rion Atkinson 30-03-2010 00:47

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

Originally Posted by davidthefat (Post 945505)
Never too late to start programming, honestly, with FIRST oversimplifying the libraries, you can pick up programming the cRio in less then a week to be honest with you. But if you want to get really deep into programming, it takes lots of practice.

See, I went to a LABView thing before the season started. I had to leave early. But I was able to pick up enough to read the language. And I am currently programming in my aerospace class. But even that is following a book. I have learned that it is easier to read than write. (I have been able to read JAVA for some time now. Writing is a whole nother story though...)

I tried doing a little bit of programming... Didn't work out to well... It would take all summer for me to program a tele-op mode.... That's with a mentor.

davidthefat 30-03-2010 00:50

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

Originally Posted by Formerly Famous (Post 945510)
See, I went to a LABView thing before the season started. I had to leave early. But I was able to pick up enough to read the language. And I am currently programming in my aerospace class. But even that is following a book. I have learned that it is easier to read than write. (I have been able to read JAVA for some time now. Writing is a whole nother story though...)

I tried doing a little bit of programming... Didn't work out to well... It would take all summer for me to program a tele-op mode.... That's with a mentor.

LABView is a JOKE IMHO, its like RPG Maker or Game Maker for robots... Its not programming. but IDK may be my mind just works that way and I caught onto C++ when I was 12... LOL

Jetweb 30-03-2010 00:50

Re: Programmers: I Have A Challenge For You
 
This is something I have been toying with for the last few years and in certain games it would defiantly be possible to do in 6 weeks. last year we were able to track a trailer in full motion, track orbit balls, and using a current sensor on our intake roller we could count how many balls were in our basket. and if i was allowed to put 4 sonar sensors on we would have attempted a full auto match at an off season (the drive team would never go for this in a real match)

Things to note:
- we were only able to get code to this level because we had a complete practice bot by week 3 and worked on it right up to our regional (and through our 2 competitions), which i think would be critical in trying to program something as complicated as a fully autonomous robot

- 79 made an awesome obstacle avoidance program using (i believe) 3 sonars at bumper level, which shows that real time obstacle avoidance is very possible without complicated LIDAR or anything like that.

- it is also very helpful to have a good mentor as previously noted.

Even if it doesn't work i have fun trying to figure out how to do it every year and if other people were trying as well I would be even more motivated to try and pull it all together.

davidthefat 30-03-2010 00:52

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

Originally Posted by Jetweb (Post 945514)
This is something I have been toying with for the last few years and in certain games it would defiantly be possible to do in 6 weeks. last year we were able to track a trailer in full motion, track orbit balls, and using a current sensor on our intake roller we could count how many balls were in our basket. and if i was allowed to put 4 sonar sensors on we would have attempted a full auto match at an off season (the drive team would never go for this in a real match)

Things to note:
- we were only able to get code to this level because we had a complete practice bot by week 3 and worked on it right up to our regional, which i think would be critical in trying to program something as complicated as a fully autonomous robot

- 79 made an awesome obstacle avoidance program using (i believe) 3 sonars at bumper level, which shows that real time obstacle avoidance is very possible without complicated LIDAR or anything like that.

- it is also very helpful to have a good mentor as previously noted.

Even if it doesn't work i have fun trying to figure out how to do it every year and if other people were trying as well I would be even more motivated to try and pull it all together.

Well we had practice bots from day one... but they were old robots, so they don't really count do they?:(

Chris is me 30-03-2010 00:56

Re: Programmers: I Have A Challenge For You
 
Independent of everything else, how do you plan strategy and cooperation with alliance partners? How do you track the positions of the other 5 robots and make decisions accordingly and on the fly? How do you adjust and optimize this strategy?

I'm sure if you had 6 weeks you could code a robot to autonomously run laps in Overdrive or something, but games really require more than that.

Jetweb 30-03-2010 00:59

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

Originally Posted by davidthefat (Post 945515)
Well we had practice bots from day one... but they were old robots, so they don't really count do they?:(

those are helpful to, but we were really lucky last year to have the real robot done really early and i believe that allowed for us to really polish our code.

davidthefat 30-03-2010 01:01

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

Originally Posted by Chris is me (Post 945517)
Independent of everything else, how do you plan strategy and cooperation with alliance partners? How do you track the positions of the other 5 robots and make decisions accordingly and on the fly? How do you adjust and optimize this strategy?

I'm sure if you had 6 weeks you could code a robot to autonomously run laps in Overdrive or something, but games really require more than that.

I like re usability of code very much, its just the Object Oriented Programming way. If you have to repeat your self 3 or more times, Its better off in a separate function. Probably will load a file that has the strategy, just modify it prematch without reuploading code

mwtidd 30-03-2010 01:01

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

Originally Posted by Chris is me (Post 945517)
Independent of everything else, how do you plan strategy and cooperation with alliance partners? How do you track the positions of the other 5 robots and make decisions accordingly and on the fly? How do you adjust and optimize this strategy?

Accomplishing this by yourself is nearly impossible, however if FIRST added the Zigbee module to the KOPs, alliance partners could communicate with each other.

timothyb89 30-03-2010 04:25

Re: Programmers: I Have A Challenge For You
 
This is something myself and a few friends were (somewhat seriously) joking about last year and a bit this year. In the end we settled on using an ANN and it got to the point where one was started, but that was about it. It's still something we're interested in, but I still have a feeling the best option would be to avoid AI entirely.

From my experience, it just requires too much processing power and storage space- for example, one of the bots that hangs out in our chatroom was recently outfitted with an AI, and its database grew to about half a gig in around two weeks from just working with text. Not only that, but searching through all that data to find the relevant bits would take up an entire core on a reasonably beefy processor. I'd hate to see how the cRIO would handle something like that.

Anyway, for a relatively low-powered device like the cRIO I'd have to recommend just hardcoding everything. That, and creative use of a bunch of sensors all around the robot. Without enough sensors I don't think a robot could reasonably compete with the (human) driver, but if used correctly, they could give the robot a good advantage. It'd be hard, but pretty awesome!

Greg McKaskle 30-03-2010 08:36

Re: Programmers: I Have A Challenge For You
 
I think a programming intensive off season project sounds amazing. The Guitar Hero project is an example of something that isn't a full robot, is a good stretch, and will definitely impress crowds.

My point is that the project you describe is comparable to RoboCup, which is graduate level research. Attempting to do the whole thing in an offseason is a bit naive, but if you break it down and focus on one aspect that you are most interested in, learn a lot about one type of sensor, or one type of control, or learn about Kalman filters or path planning, this becomes something that will have impact on your team and on your abilities.

If you don't think something like that is ambitious enough, coordinate it with a few others, but again, plan it out, layer it so that you can make progress one step at a time.

Greg McKaskle

JamesBrown 30-03-2010 08:38

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

Originally Posted by davidthefat (Post 945513)
LABView is a JOKE IMHO, its like RPG Maker or Game Maker for robots... Its not programming. but IDK may be my mind just works that way and I caught onto C++ when I was 12... LOL

Learn LabView, it is far from being a joke and is extremely popular in the field of automation. LabView is absolutely programming, it is easily one of the most powerful programming tools available. I have been programming robots for quite a while, in every thing from MIPS to LISP. LabView is as much of a programming language as any of those, every design pattern you can implement in C/C++ (or your choice of other OO languages) can be implemented in LabView. The students out there who bash LabView most likely have not taken the time to learn it and master it. Sure it is cool to hard code every thing, I remember bashing EasyC when I was in High School because it wasn't real programming. However, I guarantee that when you get a real job writing software your boss isn't going to care that you can write code in a more noble language than the one I choose, if my code is as functional as yours, and I can write it faster I will get the raise, the contract, or the job 100% of the time.

Chris27 30-03-2010 08:40

Re: Programmers: I Have A Challenge For You
 
Here's some better ideas:

Option # 1:
Given a camera image, label all robots. As in a FRC competition you encounter many different robots, you should be able to recognize a robot you have never seen before.
No fair covering it with colored tape or lights. I don't think many teams will allow you to do that with their robots.

Option # 2:

Don't give the robot an AI, just have it construct a world map and correctly position itself (localization) w/o having to put florescent colored tape/lights on every square inch of the game field. If a robot can't do something as "simple" as tell you where it is, you won't be getting intelligent actions from any AI. Do this with any semblance of reliability/robustness and I'd be impressed...

efoote868 30-03-2010 08:57

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

Originally Posted by lineskier (Post 945489)
Both can be accomplished by looking for the bumpers.

http://letsmakerobots.com/node/3843
(obviously would have to be ported to Java ME)

Except you're not playing defense against an alliance, you're playing defense against a robot on an alliance.

Also, I'm guessing that code won't work in every environment you put it in. Differences in field setups like lighting and backgrounds could kill it.
There's no rules saying a robot can't be blue and red, in a bumper fashion.
There may be field elements that are those colors too, like the bumps this year. They're long, they're rectangular, and they're the color of the opposing robot's bumpers.


Code that will take forever to write and forever to execute won't be as beneficial as say, making your robot super easy to drive and control.

Bill_B 30-03-2010 09:00

Re: Programmers: I Have A Challenge For You
 
I'm encouraged that there are folks considering an AI approach to FRC programming. I once thought that the 15 second autonomous period was a "waste". But that was based on it being largely ignored by the teams. Now that it has inspired more "serious" thoughts about programming among the teams, I applaud its introduction.

As to the supposed superiority of one language or system over another - just look at natural languages. French has been given credit as the language of love, but based on results, Chinese should be considered for that title, n'est pas? The more familiarity you have with differing programming environments, the better your resume will read.

gvarndell 30-03-2010 09:19

Re: Programmers: I Have A Challenge For You
 
Not in response to any particular post, I love that this is being discussed.

I really hope FIRST will find a way to design next year's game such that clever software will stand a chance to share the limelight with clever mechanical systems.

I know some teams (1629 included) used software to _assist_ with goal scoring.
That is, the robot (under operator control) never decided to go for a goal.
Instead, the robot took a command to kick the ball and attempted to do a little fine-tuning on the aim -- using the camera; but this is a baby step.

Think about implementing "situational awareness" in software:
What does my universe (the field) look like?
How big is it and where are the fixed objects?
Where am I within my universe and which way am I facing?
Where are my friends and where are my foes?

These are robot smarts that should prove valuable to you next year, no matter what the game is.

the man 30-03-2010 09:21

Re: Programmers: I Have A Challenge For You
 
I dont know most of the fun for me, besides building the robot, is driving it.
Not every robot is atonomus in the real world, and our programers had a hard time this year, given they only had a few days to program the robot. I think that would take away some of what first is.

gvarndell 30-03-2010 09:27

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

Originally Posted by the man (Post 945595)
I think that would take away some of what first is.

Sorry. You think what "would take away some of what first is"?
What is FIRST to you?

TJ Cawley 30-03-2010 10:20

Re: Programmers: I Have A Challenge For You
 
I wish we could attempt this next year, but some teams that have the techology and money to try such a project, my cheers will be right behind you. no matter the outcome. but a safety switch would be good in case the programing went down and you had to manuever it yourself. here are my $0.02 and i wish teams that will try, the best of luck to you all.

davidthefat 30-03-2010 10:25

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

Originally Posted by gvarndell (Post 945594)
Not in response to any particular post, I love that this is being discussed.

I really hope FIRST will find a way to design next year's game such that clever software will stand a chance to share the limelight with clever mechanical systems.

I know some teams (1629 included) used software to _assist_ with goal scoring.
That is, the robot (under operator control) never decided to go for a goal.
Instead, the robot took a command to kick the ball and attempted to do a little fine-tuning on the aim -- using the camera; but this is a baby step.

Think about implementing "situational awareness" in software:
What does my universe (the field) look like?
How big is it and where are the fixed objects?
Where am I within my universe and which way am I facing?
Where are my friends and where are my foes?

These are robot smarts that should prove valuable to you next year, no matter what the game is.

I personally want to stay away from the camera. if you havent noticed, it had a big lag, IDK if that was just the data getting sent over, but I want to use IR sensors and Sonars instead

gvarndell 30-03-2010 10:29

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

Originally Posted by davidthefat (Post 945616)
I want to use IR sensors and Sonars instead

Good thinking -- I wasn't implying that camera vision was the best or only way to support situational awareness in a robot.

randalcr 30-03-2010 10:37

Re: Programmers: I Have A Challenge For You
 
That is a big challenge, and it's one that I'd be willing to accept! Lol, this will be fun.

Chris Hibner 30-03-2010 10:59

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

Originally Posted by JamesBrown (Post 945581)
Learn LabView, it is far from being a joke and is extremely popular in the field of automation. LabView is absolutely programming, it is easily one of the most powerful programming tools available. I have been programming robots for quite a while, in every thing from MIPS to LISP. LabView is as much of a programming language as any of those, every design pattern you can implement in C/C++ (or your choice of other OO languages) can be implemented in LabView. The students out there who bash LabView most likely have not taken the time to learn it and master it. Sure it is cool to hard code every thing, I remember bashing EasyC when I was in High School because it wasn't real programming. However, I guarantee that when you get a real job writing software your boss isn't going to care that you can write code in a more noble language than the one I choose, if my code is as functional as yours, and I can write it faster I will get the raise, the contract, or the job 100% of the time.


I'm going to second the godfather of soul.

Text based programming languages are starting to get to the point where assembly was 15-20 years ago (and punch cards before that). Everything is moving more in the direction of even higher level languages (i.e. graphics based).

In the field of embedded controls, everything is being shifted from hand-coded C to auto-coded model-based programming. In my current job and my last job we use Simulink and Stateflow to do all of our control design. When I left my previous job 4 years ago, we were already auto-coding the entire sensing and control algorithms from the Simulink/Stateflow models. At my current job, a good number of the control algorithms are already auto-coded from the Simulink/Stateflow models and the goal is for all of them to be auto-coded in the future.

Even for PC programming we're starting to see more graphical programming tools where you draw your windows and drag and drop menus and interface controls, then simply define the behavior of the interfaces and menus.

I don't know if we'll ever completely move away from text-based code (and in some cases, I think text based code is the most efficient method), but it would surprise me if software development was primarily text based 10 years from now.

For the on-topic part: there have been robots in the past that have played significant portions of the match autonomously. I once proposed a system to reward the teams with bonus points based upon how much of the match they played autonomously. I'll have to dig up that old thread and post it.

EricVanWyk 30-03-2010 11:18

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

Originally Posted by Chris Hibner (Post 945644)

For the on-topic part: there have been robots in the past that have played significant portions of the match autonomously. I once proposed a system to reward the teams with bonus points based upon how much of the match they played autonomously. I'll have to dig up that old thread and post it.

EXACTLY.

Autonomous has been pretty boring for two years because there is no point value to it. Give it value, and it will become interesting.

Egg 3141592654 30-03-2010 11:29

Re: Programmers: I Have A Challenge For You
 
I would like this to happen, but here are my 2 issues with this idea. Firstly, how do you track game objects and the areas to score? The program would need to have a serious if statement, or a periodic task to override the game piece searching code from the scoring area track code. We tried something like this recently with epic failure, aka we made a $5,000 doughnut preforming machine. Secondly, the robot would have to be as cunning as a human player to avoid silly penalties, like getting hit while kicking a ball making it go out of bounds.

Those are my little considerations in making our robot completely autonomous next year. I guess it also depends on what the game is next year as well because something like this puts drivers like me out of work. Good luck to those teams attempting this, I'm starting now so this way I'll only be 4 weeks late instead of the usual 5.

gvarndell 30-03-2010 11:50

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

Originally Posted by Egg 3141592654 (Post 945666)
something like this puts drivers like me out of work

Relax, you'll still have a job.
I know the topic is fully autonomous robots but no FRC team is going to accomplish that in the near future -- unless the games become mind-numbingly simple.
Does cruise control make a driver unnecessary?

slavik262 30-03-2010 11:56

Re: Programmers: I Have A Challenge For You
 
To echo and summarize a lot of really smart people, there's a lot of problems with a fully autonomous robot. I'm listing them in order of importance (in my eyes) from greatest to least.
  1. Time/People - As people have said, it took teams of grad students working around the clock to accomplish a simpler challenge (DARPA) than what you're aiming to achieve. Even if you start working now, you'll still need to tailor the AI to the game next year. You can't do that much in six weeks without a time machine. You're highly underestimating the complexity of everything the robot has to do.
  2. Hardware - Autonomous robots have extremely beefy processors, usually custom-designed for the task. You have a 400 MHz PowerPC processor, which is not just controlling your robot's movement, but is also busy doing other things like communicating with the field. Consider how much power you would need to run autonomously. Think of what you would have to do:
    • Gather inputs from a large amount of sensors.
    • Formulate a "world view" of what is going on. Where is your robot? Where are the other robots? Where are the game pieces? What is your current strategy? What step in the plan for that current strategy are you in? How much time is left in the match? There's a lot of questions. You'll need to use complex algorithms to analyze your data (including slow image analysis if you're using the data) and even more complex algorithms to take that analysis and turn it into some useful strategy.
    • Act on that strategy. Use even more complex algorithms to determine if your strategy is working. Decide when to switch strategies or dynamically adapt to the strategies being employed against you by the other alliance.
    There's just not enough processor to do it all in real-time.
  3. Your drivers will want to drive the robot. Arguments about "what FIRST is" aside, telling your drive team that your code can perform as well as they can is an insult to any human being. It may be a great off-season project, but don't you want to achieve your best during competitions? I'm not claiming that it's "all about winning" - but the competition makes it fun for a lot of people, and I can promise you that because of all the above reasons, an autonomous program developed by a few high school students with a year (maximum) of development time, running on FRC hardware, and within the context of an FRC game will not perform nearly as well as even the worst driver. You're removing almost any chance your team will do well if you run fully autonomous, provided the other alliance's robots so much as move. Is the rest of your team willing to accept this just so they can say that their robot is autonomous?

I'm sorry for raining on your parade, but it can't be done - at least not well. Ambition is a wonderful thing - never give up your dreams. But technological marvels aren't created with just a can-do attitude. It takes years of research, hard work, development, and custom hardware to finish the job. The people who think this is possible need to stop and be a bit more realistic.

Try something on a much smaller scale. An automated scoring algorithm would be great, and is a totally reachable goal. Work your way up, and see what you can do. There's a huge difference between playing a match "mostly autonomously" and fully autonomously in that the "mostly autonomous" option allows human drivers to position the robot, aware of the field and match conditions, before letting it go to work.

Kims Robot 30-03-2010 12:20

Re: Programmers: I Have A Challenge For You
 
I'll start this by saying its been a while since I have done any "real" programming. However, I did my masters degree in Robotic Intelligence and have loads of background knowledge here, in biorobotics, communications, etc.

I am excited that teams are considering this. FIRST should be about innovation.

Quote:

Originally Posted by efoote868 (Post 945418)
I say this because having a fully autonomous robot may be *impossible* in 6 weeks, unless of course your team can come up with a 469 strategy

Quote:

Originally Posted by Chris Hibner (Post 945644)
For the on-topic part: there have been robots in the past that have played significant portions of the match autonomously. I once proposed a system to reward the teams with bonus points based upon how much of the match they played autonomously. I'll have to dig up that old thread and post it.

Its definitely NOT impossible. Im 99% positive that team 176 did it one of the years (somewhere around 2001??). They didn't use it in every match, and as far as I know they only ran it in practice matches, but boy was it fun to watch their drivers press a button and walk away and see that robot do "its thing". Could it account for every variable? heck no. Was it impressive for the amount it did? YES!!

I've played around with everything from controlling an FRC robot with my bicep muscle to writing up simulation code for a modular robot. Its all about how complex you make the problem. If you start from the highest level and have a robot that can incorporate a lot of sensors, not only for knowing about it's mechanisms, but for "seeing" the world around it, you open up entirely new doors. We have seen plenty of teams be able to do this in tiny pieces - balancing the ramp, scoring tubes, keeping the arm inside the box, running cool auto modes with avoidance detection. A fully automated match is really just as step beyond all of those. Heck there are some FLL teams that can do this, why cant the FRC teams?!?!

It does require big picture and strategic thinking to consider what you might "run into". Do you need to avoid other robots? what do you need to interact with? what are the possible decisions to be made? But teams already do a lot of this type of thing for the 15 second auto modes. No not every team does, but some of the teams do!

Would I suggest using it in Finals? heck no. As already stated, in this competition we aren't going to be able to process like the human brain. But could it be a fun and awesome challenge for a programmer to try for an offseason or even to "show off" in a practice match?? Of course!! And hey if its "really good" you might even get your drivers to run it in one of those "easy" matches.

Stop being afraid of trying things you might "fail" at. Just because something seems impossible, doesn't mean you shouldn't try it. As long as your entire strategy isn't based around it, I would say go for it. Have one set of programmers implement the "normal functions", and have the other go for the full automation.

EricH 30-03-2010 12:41

Re: Programmers: I Have A Challenge For You
 
What I would suggest, as you go for it:

Start by writing automation for certain functions. For example, when you have a ball, target and shoot. When you don't have a ball, look for one.

It'll be a lot easier to get blocks of automation that can be used by the drivers and then combine them into one completely automated program than it will be to write the whole program from scratch. (It'll also allow the drivers to take control if they need to.)

slavic262, it's almost a simpler challenge. DARPA had to travel a certain distance, with a full-size vehicle, via previously unknown waypoints. On an FRC field, we know EXACTLY where the boundaries and other things are, other than gamepieces and other robots. It can't be done, you say. People said the same thing about: manned flight, steamboats, space flight, connecting computers... If it couldn't be done simply because some people thought it couldn't be done, we'd still be in the Middle Ages or earlier. Also note that some folks do stuff where the designers would say, "That plane can't do that!"--but they're still doing it. The plane wears out faster, but it can be done.

Also note that nothing in the rules prevents you from building a custom circuit to assist the cRIO with its processing. If you wanted to do that, you could get more done...

gvarndell 30-03-2010 13:08

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

Originally Posted by Chris Hibner (Post 945644)
Even for PC programming we're starting to see more graphical programming tools where you draw your windows and drag and drop menus and interface controls, then simply define the behavior of the interfaces and menus.

I don't know if we'll ever completely move away from text-based code (and in some cases, I think text based code is the most efficient method), but it would surprise me if software development was primarily text based 10 years from now.

Underlying those little widget-y, icon-y things with various kinds of lines crisscrossing between them is text based code (or perhaps more accurately, the compiled binary representation of text based code).

Yes, the ubiquity of text based programming is loosing ground to 'software through icon connection', but we should not fool ourselves into thinking it's going away.
Its replacement hasn't arrived yet.

Alan Anderson 30-03-2010 13:42

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

Originally Posted by gvarndell (Post 945707)
Underlying those little widget-y, icon-y things with various kinds of lines crisscrossing between them is text based code (or perhaps more accurately, the compiled binary representation of text based code).

This turns out not always to be the case. A typical LabVIEW vi doesn't have a text equivalent.

gvarndell 30-03-2010 14:20

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

Originally Posted by Alan Anderson (Post 945726)
This turns out not always to be the case. A typical LabVIEW vi doesn't have a text equivalent.

What would be an example of a typical VI?
And how does the executable object code for it come to exist?

Alan Anderson 30-03-2010 14:38

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

Originally Posted by gvarndell (Post 945747)
What would be an example of a typical VI?

Any one you see in FRC.

Quote:

And how does the executable object code for it come to exist?
It gets compiled, just like turning source code into object code for any compiled language.



I implied the existence of a "nontypical" vi which does have a text representation. That would be a reference to the LabVIEW code which gets compiled into VHDL for further compilation into an image for the FPGA. The VHDL is text.

TJ Cawley 30-03-2010 14:49

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

Originally Posted by Egg 3141592654 (Post 945666)
I would like this to happen, but here are my 2 issues with this idea. Firstly, how do you track game objects and the areas to score? The program would need to have a serious if statement, or a periodic task to override the game piece searching code from the scoring area track code. We tried something like this recently with epic failure, aka we made a $5,000 doughnut preforming machine. Secondly, the robot would have to be as cunning as a human player to avoid silly penalties, like getting hit while kicking a ball making it go out of bounds.

Those are my little considerations in making our robot completely autonomous next year. I guess it also depends on what the game is next year as well because something like this puts drivers like me out of work. Good luck to those teams attempting this, I'm starting now so this way I'll only be 4 weeks late instead of the usual 5.

it isn't easy but teams that managed to get their cameras working or other motion/vision devices working (we had encoders, the camera was for our drivers) could possibly do it. yes it is a LOT of coding and strategizing early, but why not when it might bring success? there's always a safe-mode people can create so of/when the robot gets out of hand you can take over and correct it, then let the controls go again.

gvarndell 30-03-2010 16:45

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

Originally Posted by Alan Anderson (Post 945759)
It gets compiled, just like turning source code into object code for any compiled language.

I hope this isn't headed to a chicken and egg thing but, compiled from what? :confused:

Quote:

I implied the existence of a "nontypical" vi which does have a text representation.
So a graphical element that represents the addition of 2 input integers and produces an integer sum at the output, is that a typical VI?
Or is that not a VI at all?

mwtidd 30-03-2010 19:04

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

Originally Posted by TJ Cawley (Post 945767)
there's always a safe-mode people can create so of/when the robot gets out of hand you can take over and correct it, then let the controls go again.

Similar to why you don't want an empty cockpit when a plane is in autopilot. :)

Putting a banner up in your driver station would be an interesting PR technique during practice rounds...

Chris is me 30-03-2010 19:07

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

Originally Posted by EricVanWyk (Post 945660)
EXACTLY.

Autonomous has been pretty boring for two years because there is no point value to it. Give it value, and it will become interesting.

Autonomy's value in this game rivals 2008, in my opinion. I like the subtle emphasis on it this year. I think it's not exciting simply because automatic robots are inherently less exciting.

EricH 30-03-2010 19:13

Re: Programmers: I Have A Challenge For You
 
There is a value. Look at L.A. Final Match 1.

Total points (final): 24.
Hanging points: 6.
24-6=18 points on the floor.

Of those 18 points, 9 were scored autonomously.

15 seconds saw the same number of points scored in the goals that the following 2 minutes saw. The difference? No defense.

Remember, defending a robot during automode carries massive penalties this year. So massive, you REALLY don't want to do it.

But being able to score autonomously can give plenty of points as a cushion, which you want going into teleoperated mode.

Bill_B 30-03-2010 19:17

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

Originally Posted by EricVanWyk (Post 945660)
Autonomous has been pretty boring for two years because there is no point value to it. Give it value, and it will become interesting.

The FTC matches have a double scoring for their autonomous mode. They take a long pause between auto and teleop modes to record the scores. The same scored objects are thereby scored twice. This can be quite a payoff for an effective auto program.

davidthefat 30-03-2010 19:20

Re: Programmers: I Have A Challenge For You
 
I delivered the message to my teacher today, he thinks its a fantastic idea. He is even happy that I was even thinking about next year's robot, because he told me that previous years, people just forget about robotics after the regionals. He said I can use the tech shop to make my test robots

ideasrule 30-03-2010 19:22

Re: Programmers: I Have A Challenge For You
 
Just to give an idea of how hard a good autonomous robot is, there's no computer in the world that comes close to matching the flexible and creative thinking of the human brain, nor is there a computer with the lifetime of experience that human robot drivers have. Making a robot smarter than a human isn't like CADing a robot framework; it's like designing a fusion reactor in 6 weeks, especially since decades of research by professional scientists haven't been able to do it.

If anybody plays real-time strategy games, the AI in them took a whole team of well-funded programmers years to write and debug. Even so, it can't compete with even moderately experienced gamers on an equal footing, and is very easy to exploit.

mwtidd 30-03-2010 19:22

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

Originally Posted by Chris is me (Post 945917)
Autonomy's value in this game rivals 2008, in my opinion. I like the subtle emphasis on it this year. I think it's not exciting simply because automatic robots are inherently less exciting.

I noticed your rookie year was 06, and I'm surprised you would say autonomous is boring, I thought the autonomous shooters were really exciting. Also look at 04, autonomous was really exciting then too.

davidthefat 30-03-2010 19:27

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

Originally Posted by ideasrule (Post 945928)
Just to give an idea of how hard a good autonomous robot is, there's no computer in the world that comes close to matching the flexible and creative thinking of the human brain, nor is there a computer with the lifetime of experience that human robot drivers have. Making a robot smarter than a human isn't like CADing a robot framework; it's like designing a fusion reactor in 6 weeks, especially since decades of research by professional scientists haven't been able to do it.

If anybody plays real-time strategy games, the AI in them took a whole team of well-funded programmers years to write and debug. Even so, it can't compete with even moderately experienced gamers on an equal footing, and is very easy to exploit.

You do make a good point, but where in the world does it ever say we are having a similar game next year? For all I know, it can be football, which is all pre layed out plays and stuff...

Rion Atkinson 30-03-2010 19:33

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

Originally Posted by davidthefat (Post 945935)
You do make a good point, but where in the world does it ever say we are having a similar game next year? For all I know, it can be football, which is all pre layed out plays and stuff...

Oh... I can promise you... It will not be similar in any way to this year... Darn the GDC....

theprgramerdude 30-03-2010 19:59

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

Originally Posted by slavik262 (Post 945682)
To echo and summarize a lot of really smart people, there's a lot of problems with a fully autonomous robot. I'm listing them in order of importance (in my eyes) from greatest to least.
  1. Time/People - As people have said, it took teams of grad students working around the clock to accomplish a simpler challenge (DARPA) than what you're aiming to achieve. Even if you start working now, you'll still need to tailor the AI to the game next year. You can't do that much in six weeks without a time machine. You're highly underestimating the complexity of everything the robot has to do.
  2. Hardware - Autonomous robots have extremely beefy processors, usually custom-designed for the task. You have a 400 MHz PowerPC processor, which is not just controlling your robot's movement, but is also busy doing other things like communicating with the field. Consider how much power you would need to run autonomously. Think of what you would have to do:
    • Gather inputs from a large amount of sensors.
    • Formulate a "world view" of what is going on. Where is your robot? Where are the other robots? Where are the game pieces? What is your current strategy? What step in the plan for that current strategy are you in? How much time is left in the match? There's a lot of questions. You'll need to use complex algorithms to analyze your data (including slow image analysis if you're using the data) and even more complex algorithms to take that analysis and turn it into some useful strategy.
    • Act on that strategy. Use even more complex algorithms to determine if your strategy is working. Decide when to switch strategies or dynamically adapt to the strategies being employed against you by the other alliance.
    There's just not enough processor to do it all in real-time.
  3. Your drivers will want to drive the robot. Arguments about "what FIRST is" aside, telling your drive team that your code can perform as well as they can is an insult to any human being. It may be a great off-season project, but don't you want to achieve your best during competitions? I'm not claiming that it's "all about winning" - but the competition makes it fun for a lot of people, and I can promise you that because of all the above reasons, an autonomous program developed by a few high school students with a year (maximum) of development time, running on FRC hardware, and within the context of an FRC game will not perform nearly as well as even the worst driver. You're removing almost any chance your team will do well if you run fully autonomous, provided the other alliance's robots so much as move. Is the rest of your team willing to accept this just so they can say that their robot is autonomous?

I'm sorry for raining on your parade, but it can't be done - at least not well. Ambition is a wonderful thing - never give up your dreams. But technological marvels aren't created with just a can-do attitude. It takes years of research, hard work, development, and custom hardware to finish the job. The people who think this is possible need to stop and be a bit more realistic.

Try something on a much smaller scale. An automated scoring algorithm would be great, and is a totally reachable goal. Work your way up, and see what you can do. There's a huge difference between playing a match "mostly autonomously" and fully autonomously in that the "mostly autonomous" option allows human drivers to position the robot, aware of the field and match conditions, before letting it go to work.


Seeing as your #2 covered my reasons for more power thoroughly, I thought we might as well discuss ways to get more power now, with another 8 months ahead to plan.
So, does anyone believe there is a way to feasibly add a inverter/converter widget from the PD board to a PC PSU, which then runs a small PC/GPGPU with Linux, which can interface with the Crio for image analysis and strategy planning? (I'm not an electrical engineer) The main problem I'd see is that the voltage drop with the battery under load might have more severe effects on a PC than on the Crio.

The

Chris is me 30-03-2010 20:01

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

Originally Posted by lineskier (Post 945930)
I noticed your rookie year was 06, and I'm surprised you would say autonomous is boring, I thought the autonomous shooters were really exciting. Also look at 04, autonomous was really exciting then too.

I was in FTC until 2008, so the rookie year part of my postbit isn't entirely accurate.

Autonomy's value is really a lot like 2008, strategically. The points are free, undefended points. On top of that, though, "clearing" a zone allows a team to maximize its resources. A starved offensive zone is a death sentence in Breakaway. If both teams clear a zone, then the advantage is negated and the battle is fought at midfield This is a lot like 2008's hybrid, in that a large hybrid advantage is unsurmountable, so having a comprehensive hybrid is essential if only to negate the other alliance's hybrid.

My #1 priority for alliance selection at CT is strength of back autonomous mode. It's that important to winning, in my opinion.

Rick Wagner 30-03-2010 20:03

Re: Programmers: I Have A Challenge For You
 
Notwithstanding the difficulty of totally autonomous play, well documented here by many, I think that this is the direction FIRST competition is headed in, eventually. Remember that before '03 there was no autonomy at all. FLL is fully autonomous. These kids are now graduating to FRC teams.

Greg McKaskle 30-03-2010 20:36

Re: Programmers: I Have A Challenge For You
 
On the LV compilation topic, the LV source code is a dataflow graph of objects -- diagrams contain nodes connected by wires, with the occasional node containing other diagrams

The objects are visited over several passes in order to perform compilation tasks.
1. Data types are propagated after each edit.
2. Nodes are validated and syntax errors identified after each edit.
3. An algorithm performs what we call clumping -- coloring the graph based upon asynchronous operation.
4. Another algorithm improves inplaceness, reordering nodes to execute in an order which minimizes data copies.
5. Nodes allocate data storage.
6. Nodes emit code into clumps.

Clumps are blocks of memory that contain machine instructions in binary form. You can disassemble the instructions if you like and display them in text.

Of course the LV graph could be stored into a textual graph form, and internally, we experiment with such things as a save format. The compiler, however, does not operate on a sequential "tape" of characters.

On the robotic topic, instead of waiting for next years game and potentially interfering with the progress of the team, why not pretend that you just learned of this year's game. Start to automate the tasks given the current field and robot.

You state that the camera has lots of lag, but perhaps you should concoct a test to measure the lag. I did it last year, and it isn't that bad to the cRIO. If you test thoroughly, it isn't bad to the PC either. Anyway, try using different sensors and the camera to find the goal, find balls, find lines on the floor, find the edge of the field.

I'd consider it a huge step forward if robots in autonomous would detect the walls of the field and would do something other than barrel into them at high rates of speed.

If you have those elements, start trying to identify and track robots. Try to plan a path to the ball avoiding the robots...

This and all FRC games are built to challenge human drivers. There are more than enough challenges to keep SW people busy trying to navigate.

Greg McKaskle

Tom Bottiglieri 30-03-2010 21:14

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

Originally Posted by Chris is me (Post 945952)
My #1 priority for alliance selection at CT is strength of back autonomous mode. It's that important to winning, in my opinion.

Don't box yourself into a corner. I believe you are exercising a bit of confirmation bias by believing autonomous is the end-all, be-all that makes a team successful. The teams that win are the teams who have the experience and expertise to build high quality machines and play well thought out strategies. If they have gotten to that point, they probably put the time in to make their autonomous mode work well.

For example, I could say that the only thing I will be looking for in a team is the ability to hang in under 3 seconds. Does that make a robot good? Not necessarily, but the teams who planned ahead enough and implemented this strategy are probably strong to begin with. The hanging is just an indicator of this.

The problem with this is that there are always corner cases. There is always going to be a team that has a strong auto, but has a bone-head driver who just racks up penalties. The same way there will probably be a team who hangs fast, but can't do squat for the rest of the match.

All in all, looking at a team's auto mode is probably a smart thing to do. But, there are a bunch of other aspects to what makes a team successful, and many of them are intangibles. If you want to pick like the pros, don't put all of your eggs in one basket.

Chris is me 30-03-2010 21:18

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

Originally Posted by Tom Bottiglieri (Post 945987)
The problem with this is that there are always corner cases. There is always going to be a team that has a strong auto, but has a bone-head driver who just racks up penalties. The same way there will probably be a team who hangs fast, but can't do squat for the rest of the match.

I don't mean to say that robots with strong autos are invariably higher ranked than robots without them (or at least I don't now, after reading your post), but that of a list of qualities I want in an alliance partner, strong autonomous is probably the most important. I guess the best way to phrase how I intend to pick is like evaluating robots with a WOT; autonomous right now would have the highest weight, but not enough to offset other categories.

dtengineering 30-03-2010 21:19

Re: Programmers: I Have A Challenge For You
 
Perhaps an interesting way to implement the challenge would be to build it in as part of the Breakaway game simulation.

There are several "competitive coding" games of this nature... a simple one that I use to teach PIC assembly language is called PicBots, but there are many more complex ones. A list of some is at http://www.google.com/Top/Games/Vide...ames/Robotics/ I've used CRobots3D and AI Wars with junior students as a programming introduction.

The advantage, of course, is that the robots can compete in an ideal environment and can access all kinds of expensive "sensors", and the programmer can have access to the "robot" 24 hours/day at basically no cost.

Once the algorithms are worked out in the simulated environment, then they could be ported to a robot for real. Kind of like building a robot in CAD before cutting out the parts.

The added advantage, of course, is that by developing an AI for the Breakaway game simulation, it would be possible to play the game with fewer than 6 people.

Jason

davidthefat 30-03-2010 21:28

Re: Programmers: I Have A Challenge For You
 
All of you who are attempting this, how do you suppose you will get started? I am thinking of making an omni drove robot with 2 gyros, one in the main body and one on a little platform that a server will rotate up and down. 2 IR sensors mounted on a servo that will rotate it side to side will scan in front of the robot and the other 2 mounted on the platform will also scan side to side. they will take in an array of data regarding the objects inthe way

Tom Line 30-03-2010 21:59

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

Originally Posted by davidthefat (Post 945995)
All of you who are attempting this, how do you suppose you will get started? I am thinking of making an omni drove robot with 2 gyros, one in the main body and one on a little platform that a server will rotate up and down. 2 IR sensors mounted on a servo that will rotate it side to side will scan in front of the robot and the other 2 mounted on the platform will also scan side to side. they will take in an array of data regarding the objects inthe way

I'm curious. Are you aware that a single hard collision can easily throw a gyro off by hundreds of degrees?

We removed our gyro from this year's competition bot - we were using it to measure inclination in order to automatically stop our winch - because each time we fired our kicker (it was a 300+ degree per second gyro) it would lose 30-40 degrees in a random direction. In fact, we tried 6 different gyros, all the ones we had in the build room, and they all showed the same results.

We used one in 2009 to make our turret field-oriented and had the same issue when we had a hard collision.

I'm also curious why you want a gyro on a platform when servos can be commanded accurately to any angle you want?

theprgramerdude 30-03-2010 22:06

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

Originally Posted by davidthefat (Post 945995)
All of you who are attempting this, how do you suppose you will get started? I am thinking of making an omni drove robot with 2 gyros, one in the main body and one on a little platform that a server will rotate up and down. 2 IR sensors mounted on a servo that will rotate it side to side will scan in front of the robot and the other 2 mounted on the platform will also scan side to side. they will take in an array of data regarding the objects inthe way

Personally, I was thinking more along the lines or using two accelerometers mounted on opposing sides of the robot to measure motion and turn, as well as two front facing camera's for depth perception and (maybe) object recognition.

IMHO, we would need more processing power to develop complex strategy's that a human could think up, which is why I'm trying to figure out if <R50> means we can't use a DC-DC converter (I thought there was one powering the Crio) to power a mini-PC attached to the robot for image analysis.

Edit: something along the lines of this: http://www.mini-box.com/M4-ATX?sc=8&category=981

<R50> Custom circuits shall NOT directly alter the power pathways between the battery, Power Distribution Board, speed controllers, relays, motors, or other elements of the robot control system (including the power pathways to other sensors or circuits). Custom high impedance voltage monitoring or low impedance current monitoring circuitry connected to the ROBOT’S electrical system is acceptable, because the effect on the ROBOT outputs should be inconsequential.

davidthefat 30-03-2010 22:07

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

Originally Posted by Tom Line (Post 946015)
I'm curious. Are you aware that a single hard collision can easily throw a gyro off by hundreds of degrees?

We removed our gyro from this year's competition bot - we were using it to measure inclination in order to automatically stop our winch - because each time we fired our kicker (it was a 300+ degree per second gyro) it would lose 30-40 degrees in a random direction. In fact, we tried 6 different gyros, all the ones we had in the build room, and they all showed the same results.

We used one in 2009 to make our turret field-oriented and had the same issue when we had a hard collision.

I'm also curious why you want a gyro on a platform when servos can be commanded accurately to any angle you want?

Gyro are cool... but seriously, I don't always want to rely on just one sensor, thats why multiple IR sensors are used, A sonar probably will be used. Its just being on the safe side I guess.

davidthefat 30-03-2010 22:15

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

Originally Posted by theprgramerdude (Post 946023)
Personally, I was thinking more along the lines or using two accelerometers mounted on opposing sides of the robot to measure motion and turn, as well as two front facing camera's for depth perception and (maybe) object recognition.

IMHO, we would need more processing power to develop complex strategy's that a human could think up, which is why I'm trying to figure out if <R50> means we can't use a DC-DC converter (I thought there was one powering the Crio) to power a mini-PC attached to the robot for image analysis.

Edit: something along the lines of this: http://www.mini-box.com/M4-ATX?sc=8&category=981

<R50> Custom circuits shall NOT directly alter the power pathways between the battery, Power Distribution Board, speed controllers, relays, motors, or other elements of the robot control system (including the power pathways to other sensors or circuits). Custom high impedance voltage monitoring or low impedance current monitoring circuitry connected to the ROBOT’S electrical system is acceptable, because the effect on the ROBOT outputs should be inconsequential.

I was thinking of forgetting the cRio as of now and using a custom made microprocessor board, since its just experimental small prototypes

theprgramerdude 30-03-2010 22:22

Re: Programmers: I Have A Challenge For You
 
By ditch the Crio, do you mean just build an autonomous robot independant of any competition with the spare parts from FRC?


All times are GMT -5. The time now is 18:52.

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