![]() |
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 |
Re: Programmers: I Have A Challenge For You
I will give you an internet high-five even if you just attempt this.
|
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 |
Re: Programmers: I Have A Challenge For You
Quote:
|
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... |
Re: Programmers: I Have A Challenge For You
Quote:
|
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 |
Re: Programmers: I Have A Challenge For You
Quote:
|
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:
|
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. |
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
|
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.
|
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 |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
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 |
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? |
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. |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
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. |
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 |
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 |
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. |
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
|
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. |
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? |
Re: Programmers: I Have A Challenge For You
Quote:
|
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.
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
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 |
Re: Programmers: I Have A Challenge For You
Quote:
|
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! |
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: |
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.
|
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
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> |
Re: Programmers: I Have A Challenge For You
With a few photoeyes, I'd definitely be up for the challenge! :)
|
Re: Programmers: I Have A Challenge For You
Quote:
http://letsmakerobots.com/node/3843 (obviously would have to be ported to Java ME) |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
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. |
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. ) |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
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! |
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 |
Re: Programmers: I Have A Challenge For You
Quote:
|
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... |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
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. |
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. |
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. |
Re: Programmers: I Have A Challenge For You
Quote:
What is FIRST to you? |
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.
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
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.
|
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
Autonomous has been pretty boring for two years because there is no point value to it. Give it value, and it will become interesting. |
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. |
Re: Programmers: I Have A Challenge For You
Quote:
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? |
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.
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. |
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:
Quote:
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. |
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... |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
And how does the executable object code for it come to exist? |
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
Or is that not a VI at all? |
Re: Programmers: I Have A Challenge For You
Quote:
Putting a banner up in your driver station would be an interesting PR technique during practice rounds... |
Re: Programmers: I Have A Challenge For You
Quote:
|
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
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
|
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
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 |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
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.
|
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 |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
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 |
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
|
Re: Programmers: I Have A Challenge For You
Quote:
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? |
Re: Programmers: I Have A Challenge For You
Quote:
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. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
|
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