![]() |
Re: Programmers: I Have A Challenge For You
I would not issue motion commands and do vision processing on the same thread of execution. Vision processing takes a long time and usually you would like to issue/modify motion commands on very regular small intervals.
If you want a model to base code off of, check out Tekkotsu http://www.tekkotsu.org/ http://www.tekkotsu.org/dox/ |
Re: Programmers: I Have A Challenge For You
Quote:
apparently ATmega1284p chip is industrial use status... It must be hard core |
Re: Programmers: I Have A Challenge For You
If any of the control system higher ups are still monitoring this thread: Are we going to be allowed to send packets to alliance robots next year?
When the control system was introduced 2 years ago there was talk about communication between alliance robots. Since we have been rolling out new features of this system every year (CAN and vision feed are new this year). Is alliance communication still in the plans? |
Re: Programmers: I Have A Challenge For You
Quote:
I spoke with Brad Miller (wpilib) about this a couple weeks ago regarding robot-robot com. From his response it didn't seem like something FIRST was considering right now. Seeing as the Zigbee is a legal device except for the price tag (cheapest one is $700), I think the best way to have something like this is if FIRST would exempt Zigbee module from the price restriction, or even better if it could be registered as a KOP item of the bill of materials. http://shop.sea-gmbh.com/crio-produk...-modul-10.html It would also be nice if they used a localization system like the star gazer for target recognition. I think it would be much easier on the crio to use this sensor rather than the camera. Also could possibly be used for robot identification http://www.robotshop.com/hagisonic-s...-system-1.html |
Re: Programmers: I Have A Challenge For You
Quote:
-Kevin |
Re: Programmers: I Have A Challenge For You
Quote:
The ATmega is typically used by Industry when someone needs a cheap CPU that has a fair amount of performance and uses very little power. I'm not saying that the ATmega is a bad CPU. I'm just trying to say that it isn't very well fit for the job you are trying to offload to it. If you do get an ATmega and start to program it, you will learn a lot about how embedded systems are put together. And while that may not be the lesson you are looking for, it's definitely pretty cool to learn how that kind of stuff works. Something like the Beagleboard or Gumstix that were posted earlier are quite a bit faster. They both use OMAP3 series CPU's. The Beagleboard clocks in at 600 MHz and 1200 MIPS. The Gumstix uses the same CPU. Both of those also have DSP's, which will let you do even more computations. The DSP it's self clocks in at 500 MHz and 4000 MIPS, and that's on top of the 1200 MIPS from the CPU. [1] MIPS stands for million instructions per second. Since each instruction on different architectures will do different amounts of work, it's still comparing apples to oranges, but it's a lot better than comparing MHz due to all the fun stuff you can do with superscalar CPUs. |
Re: Programmers: I Have A Challenge For You
Quote:
-Kevin |
Re: Programmers: I Have A Challenge For You
ICRA Robotic Planetary Contingency Challenge...
The goal is to program and build a robot for an unknown task that you receive at the event. May be another goal for teams considering a fully autonomous robot. http://modlabupenn.org/icra/icra-2008/ |
Re: Programmers: I Have A Challenge For You
actually, I wrote a method that would manually (no gyro) align a robot to a target using a mecanum drive. Sadly, I lost it. :(
EDIT: What it did was get the target radius (size), target x-pos, and target y-pos. It then turned the robot arbitrarily to match up and strafed accordingly. It was slow, it was ugly, it ate/raped small children, bur it worked. Until I lost it that is. |
Re: Programmers: I Have A Challenge For You
I've been thinking about full-autonomous since 2008.
My approach is through high-level functions, field awareness, and inter-robot communication. Our team has done some work on all three of those, however, it all tends to get bogged down with lack of testing. For high-level functions, we have a forward(ft), turn(deg), strafe(ft), and kick(ms). For field-awareness, I have an algorithm for detecting the soccer balls on the green carpet when in view of the camera. For inter-robot communication, I was planning on using an ultrasonic signal generated by the cRIO from the digital sidecar, but I found I could only generate a 3khz signal. I may have to resort to using more hardware (making it more expensive to implement for a sizable quantity of teams) Modulated IR is still an option. I'll stand up on my soapbox for a moment to mention a couple of ways that FIRST could further encourage autonomous: make autonomous 30s, and put it at the END of the match OR make autonomous a necessary part of the match (e.g, make autonomous/teleop determined by where the robot is on the field, so that in certain essential parts of the field, robots must be in autonomous) OR encourage a method of communication BETWEEN robots, so that they can be more field-aware OR use RFID so the robots can tell when they are in a certain region OR broadcast beacons (modulated IR?) that the robots can triangulate off of OR make the game piece stand out and be easily acquired by a camera or other common sensor OR provide an objective in autonomous that can ONLY be completed in autonomous. (For example, something that allows the robots to complete a finale objective) |
Re: Programmers: I Have A Challenge For You
So maybe I missed it, but it seems that a VAST majority of the teams have a hard enough time getting their robot to just move forward and do one small thing during autonomous. How exactly would you do this challenge and still keep it rookie friendly?
Are we talking about seriously canned code here with simple GUI interfaces. For example I had a toy when I was a kid called a Big Track where you programmed what you wanted it to do, then activated it and watched it. It only had certain moves it could do and it was programmed from a small keypad. The point is that it had canned algorithms that required nothing but parameters. Unless someone comes up with code this simple I just can't see FIRST going full autonomous. Now if the powerhouse teams are bored with their standard coding, maybe there can be an advanced FIRST like event at the college level that could do this kind of stuff. I have a hard enough time getting any of my students to even program teleop and that's easy compared to the 15 second autonomous mode. Now tell them the robot can't even compete unless they put a mars rover amount of code into it and I won't have any students left. |
Re: Programmers: I Have A Challenge For You
Quote:
Actually I believe you, there is this one "programmer" that has no idea what he is doing, and all he knows is if statements... Doesnt even know what a variable is really... |
Re: Programmers: I Have A Challenge For You
Quote:
we are looking for more teams to sign on (so far we have 4) there are repositories for both java and c++, but I need a lead developer for the c++ here is a link to the project: http://firstforge.wpi.edu/sf/projects/bobotics |
Re: Programmers: I Have A Challenge For You
Quote:
We do have a couple this year that were interested in programming, but only when it was at the school meetings and only while you were standing over their shoulder. :-) They had no motivation to look at it on their own time even with the links and training presentations provided to them. The problem is that it is very difficult to give the necessary training in the programming when you only have a 6 week build season. There's just not enough time to be training and doing at the same time with small teams, unless the students are self-motivating and interested. (I do look forward to one of these mythical students that the people recommending this challenge have, it'll make my workload easier that's for sure.) I think FIRST recognizes this which is why they went with the WPI libraries. The WPI libraries have been life savers in that they have let us attempt some cool things we wouldn't have the ability to do otherwise. (now if they could just get some good documentation and a decent "canned" example on every library function it would be perfect) And even with all these programming helpers, there is still half the teams at the regionals I have attended that are lucky to have a working robot. Remember that not all mentors are engineers or programming professionals, they are teachers and parents that might not have experienced this stuff before. So unless you are talking about having some heavily canned autonomous modes that can be mixed and matched, I just don't see how FIRST could go with this as an entire game's goals. That is of course if they want to continue to let new teams play that don't have vast resources. Now if the teams that signed up are just setting challenges for themselves because they already have got the basics zipped up, well then that's a good thing and I look forward to what they come up with. I am one that is in favor of raising the less capable up instead of bringing the high flyers down, but it has to be done in fairly small steps. Like some Star Trek Prime Directive, we can't give pre-industrial age men nuclear propulsion and expect them to know how to take advantage of it. Not without the education that goes with it. I really do think FIRST could do with a "varsity" and "junior varsity" level. And I feel that the level should be based on the resources a team has, the size of the team, and the mentor skills available to that team, but I don't know how you would split the teams up correctly. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Don't assume that many older teams have more programming expertise than the rookies. This will be a struggle for the whole FIRST community. However, we have some things to help us here.
1. A common platform spec, to make generic code independent of the robot. http://spreadsheets.google.com/ccc?key=0AgYDudKXpgOzcFI5aW5EUVhnVVUxNUVuQTdZLWNIW Xc&hl=en 2. Canned moves, as you were saying. They can be stringed in a sequence with the error terminals. An alternative is wiring an enum array into a for loop, where a case structure executes the correct move (determined by the value of the enum). 3. Simple GUI interfaces: LabVIEW. Next year we will have LabVIEW 2009, with the addition of some nice features like snippets. 4. Collaboration, communication, sharing of resources. I do LabVIEW and control system workshops in my area. I try to collaborate with people to make sure the community progresses as a whole. The point is to start programmers out from a very high-level view in autonomous: I want the robot to do this, then this, then this, then this. If sonar value is less than 20in, then turn right. Otherwise, keep following the line. And so on. Of everything on the robot, programming is the hardest to explain, and so it needs the biggest push. We're not coding machine language anymore. A well-documented VI can be understood by normal people, so long as they know that data flows along the wires, and a subVI won't execute until it gets data from all its wired inputs. Block diagrams are a pretty clear way of thinking. I understand your concern. It's a little scary to think of 6 150lb robots moving around a field without direct human control, especially with little testing. FIRST sometimes challenges us in ways that we think are unnecessary, and there are some challenges we'd like in FIRST that aren't yet present. One of the major selling points of this control system is that it makes it more feasible to do a comprehensive autonomous. Autonomous is underrepresented in FRC; in FLL, it's virtually all autonomous, and FTC gets 30s of autonomous per match. I believe the reason FIRST hasn't made autonomous a larger portion of the match is not that they think we're not capable, but that they want to draw in spectators, and make the game interesting. They're struggling to balance between popularity and technical prowess. I certainly won't stop them from encouraging new teams, but I'm going to push for technical proficiency in all FIRST teams. The biggest one is how to solve a problem. It's a process. You must single out the problem, clearly define a solution, and test that solution. Similarly, with code, you must define what you want to accomplish and how you are going to accomplish it before you try to code the whole thing. Take a look at my Software Development Process. sircedric4, I do think one of the problems you're running into is people not understanding the fun, importantness, or awesomeness of programming. Often it can be hard to convey, because people assume it's simply geeky. People have streams of thought, and so do robots. If they can describe each decision the robot will make, then that's half the programming. It's like giving someone a set of instructions, but that person only knows what it's been told, and what it is told by the sensors you put on the robot. |
Re: Programmers: I Have A Challenge For You
Quote:
This is a problem I recognize, especially with people moving toward GUI stuff more and more everyday, that I am trying to remedy, but it is hard to "grok" once you've worn other coding tracks into your brain. It why I also have a hard time getting my head around object oriented programming, because when I learned everything was straight down the page and easy to follow. I mean I learned on FORTRAN and still use it and Visual Basic day to day. Most of the new stuff I do is written for VBA because everyone has Excel. I'm just saying that just because some people can follow flowcharts easier doesn't mean everyone can. People all have different thought methods and I like that FIRST maintains all 3 code bases to support whatever your thought model is. And there is something that just gripes my open source heart when LabView is a 3rd party proprietary language when C++ and Java have free development environments. I think that whatever coding would come out of an all autonomous task would need to be useable by both types of coders, grapical and text based. Quote:
I imagine each team has to fight with attrition and changing high school environments and students, so once again I can't see a way to do full autonomous without some locked up, easy to understand, and pre-canned repository. We all live in a real world environment, with different resources, and I think from looking at the Regionals, this is a huge undertaking. Worthy for the teams who can do it, but as a game design goal I hesitate to try it. |
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:
Currently, teams with great mechanical skills or great strategies dominate the competition. Why shouldn't teams with great programmers be rewarded as well? |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
And as for recruitment efforts and finding competent programmers let's remember that not everyone has the resources, contacts, or interest and recognize that not every team can get a competent programmer all the time. I live in the real world and there isn't enough time in the day sometimes. As it is, our team does have one competent programmer and its the mentor your chatting with right here. :-) I can name 6 teams in my immediate area that don't have the luxury of a dedicated programmer and they get help where they can. I just think when setting up game designs, the GDC does remember to give a little consideration to smaller teams (which I would be willing to bet is the vast majority of teams, just not the powerhouse known teams) and as such I don't expect to see fully auto as a requirement anytime soon. |
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:
Blake |
Re: Programmers: I Have A Challenge For You
Quote:
Now maybe at the Nationals the auto mode wasn't such a game winner but I know that the bonus for scoring the most on autonomous was enough to equal the points during the match. I actually liked that game because the autonomous mode wasn't difficult to be worthy of a good chunk of points. I mean we competed well at our regional and all we did was turn on our shooter. It was aimed by hand and good for 3-4 balls which usually won us our matches. But the thing is, even when autonomous was worth so many points that year, there were still only 2-3 robots that did it at the Houston Regional that year. The balance that FIRST has been trying to figure out since then is how to make auto mode worth enough to pursue, but not enough to leave those without programmers hopelessly behind. They went from auto being useless in Rack and Roll, to their hybrid mode, to last years where you had to at least move or have your team sunk by human players. I think that this year is a good balance. You have to do some auto unless you want to contest those balls with your opponent in their own home zone, but your robot can also score as well. Now if you want to use that same model and extend the time or put it towards the bonus round then I am all for that. I liked the balance this year in auto consequences, and also that it doesn't leave those that can't score behind too far to catch up. |
Re: Programmers: I Have A Challenge For You
I'm a mentor for Team 1421 and Computational Scientist who would be happy to help with this project. I look forward to hearing more about it.
MJ |
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
History of 319 autonomous successes: pull 10 pt ball into field in 05, shoot 9/10 in 06, knock a ball in 08, shoot 2/3 in 10. The teams have recently signed on to the first forge project so not much has been organized but will be soon (I have a competition in 2 weeks for $1200 which i am trying to get to start the first FRC team in Haiti). The goals of the project are to first get the basic architecture down so you can implement a cookie cutter program in one day. Second phase would be to implements a more intelligent system (possibly working off some form of decision tree), which could play a match of Breakaway offensively. Third phase would be to implement some form of localization and communication (Zigbee module) so robots could communicate with one another. See above for basic architecture idea, but more complex is described on the firstforge page. The idea is that maneuvers are the same for every robot, and same with basic mechanisms(a drive drives, a arm raises and lowers, a shooter cocks and shoots..) by using maneuvers that can pass, fail and timeout (decided by the mechanisms) you can create a state machine of maneuvers which should work on any mechanism based system. All the programmer has to define is how the mechanism actually executes a given task, and what it believes a pass or fail to be, alternatively you can do it all on timers through the timeouts, and then the mechanism just runs that operation until it receives another. The importance is in a simple but extendable architecture. Quote:
for anyone even considering working on this project please sign up for a first forge account and register under the ADK project, this is where all the tasks will be organized and delegated. http://firstforge.wpi.edu/sf/projects/bobotics cheers to all! |
Re: Programmers: I Have A Challenge For You
I can't say if my team is up for making a fully autonomous 'bot, but I'm more than happy to help in the planning and coding (LabVIEW) for a system to make an autonomous implementation easy for all teams.
You can reach me at kamocat@gmail.com. |
Re: Programmers: I Have A Challenge For You
It would completely depend on the game. That, and my team might not be that happy about it. Our driver would step forward to control it and he would have no control. I can see his face now.
If I do it, it wouldn't be used at competitions, just for lolz. I'm in. |
Re: Programmers: I Have A Challenge For You
To all of the posters who have said that ... their team won't like ..., I have a suggestion. Get permission to use one of your team's current robots to do some software work, and start learning.
You aren't asking the team to stake their next several seasons on the success or failure of creating a fully autonomous robot. You are instead scheduling some time with the robot to get some useful work done. Work that will be educational, and will contribute to both the team's and the community's body of knowledge. My guess is that the robot can be up on blocks for most of the time. Once you are initially successful developing a few small and useful improvements (small steps first, big steps once enough small steps can be combined), put a smile on your face let your team know that whether or not you (and team mates) can make the next-season robot work better during the autonomous periods, or assist your drivers during tele-op, is no longer an open question. The code for doing it is already done and is on-the-shelf for next season. That should be a good day. My point is not that you need to "go rogue"; but that you simply need to confer with the team mentors/leaders and let them know you will want to schedule some off-season time for using the robot (safely) to do some ordinary, simple, code integration and testing. If it is possible for a team to say that is a bad idea, then I'll be dumbfounded. Sound good? Blake |
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:
That said, it was interesting to see the robot drive to the ball based on its own vision, turn, and take a shot. I really wish we could have used it during the competition. |
Re: Programmers: I Have A Challenge For You
During the off-season this year or next year, someone should hold an all autonomous event.
<rambling> I wish first would make a game with way more. but it would sort of wreck their "no robot left behind", since for some reason there isn't enough support for beginner programmers. </rambling> But I digress, anyone up to host an all-autonomous off-season? |
Re: Programmers: I Have A Challenge For You
I like the "Perceive, Plan, Control" paradigm that was mentioned earlier, and I think it's time that we break the conversation up into those three topics.
Should I take the liberty of starting a thread for each of those? The "control" discussion is almost solely about the Autonomous Development Kit. In essence, what is the code structure for controlling mechanisms? It needs to be able to handle both sequential and simultaneous tasks, with a variety of control parameters for each task. (For example, a ball kick must be able to be triggered by the completion of another action, or an input, or after a time delay, or during a certain time in the match. Similarly, it must be able to be stopped by any of those.) The "plan" discussion is the most complex of the three, as it deals with analyzing the situation, and there's a range of levels that this can be done on. Here's a couple of examples (in first-person robot):
The "perceive" discussion entails what sensors should be used for what purposes. I'll list some things an autonomous 'bot might want to know:
As many have said, the scope is huge. I don't plan to do all of those things in "plan" and "perceive", but the first step is to consider the "how" so we can determine what is and is not feasible. |
Re: Programmers: I Have A Challenge For You
Quote:
But, even if they don't there are simple ways for determining where you are on a field using encoders (Assuming the wheels don't slip. Hard for last year). Using kinematic formulas: Code:
S = (Delta Left + Delta Right) / 2As far as knowing where other robots are, that would need a lot of DSP, or an external observer telling the bots where they are, or all bots to communicate with each other |
Re: Programmers: I Have A Challenge For You
Quote:
Let's carry it out in a way that will let us try walking before we try to run. I'll assert that it would be easy to produce a fully autonomous competition using Vex or Tetrix equipment and fields; and that it would be reasonably easy to replicate that competition set-up in many geographically diverse locations around North America and the rest of the planet. Before any instinctive reaction takes hold and you reject this suggestion as being too unlike FRC, think for a minute. The reduced diversity found in the the Vex/Terix equipment suites, the greater simplicity of the Vex/Terix computers, and all of the other factors that make a fully autonomous Vex or Tetrix match unlike an autonomous FRC match are all good things for people who want to take on David's challenge. Working with, and succeeding with the simpler, Vex or Tetrix equipment will lay a solid foundation on which to base the FRC attempts. There will still be plenty of work to do when the project members graduate into FRC attempts; but many of the "Doh!" realizations and many of the collaboration-process SNAFUs will have been shaken out of the software and out of the project teams processes. Think it over. Walk before running. Blake PS: This would not replace my earlier suggestion to use a simulator or appropriate video game as a learning tool. A Vex/Tetrix competition would complement also using a simulator. |
Re: Programmers: I Have A Challenge For You
through my 3 years in FLL, I realize that performing routines like getting a ball, aiming, and shooting is something that's very realistic, so my suggestion, treat teleop like 08's hybrid mode and give the drivers different routines that they could run and just a normal teleop
|
Re: Programmers: I Have A Challenge For You
I didn't read the entire thread, so my apologies if I repeat what has been said already.
Imho, most FRC games of years past did not lend themselves well to full autonomous play. Just look at how much trouble teams had to go through to get the smallest aspects of autonomy down (autonomous mode, camera use, automatic transmission, ...). Instead, maybe an offshoot of FRC should be created with full autonomy in mind. The scale of the robots would probably have to be smaller. Hell, a standard platform could even be issued (i'm thinking robocup and aldebaran Nao robots...). After all, we already have FTC and LLC. This would allow for games that are better suited to autonomy. The lighting of the field could be standardized, AR tags could be integrated to field components, robot to robot communication could even be enabled... The game could have a 10 sec "teleoperated" mode at the beginning of each match as a cameo to FRC. Just a wild idea ;). |
Re: Programmers: I Have A Challenge For You
Quote:
It appears that in Q77 they started in the close zone and knocked the ball toward the goal without scoring. Q84 they start in the far zone and kick one ball into the middle. Q89 they start in the close zone and don't move at all. I think you may be over-simplifying it ..... |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
We could only kick one ball in autonomous because one of our encoders died and there is no way to change it without dismantling half the robot. The robot has a small drift to the left and there wasn't time to get the time-based autonomous to compensate for it. Hopefully having all encoders working at Atlanta will allow us to clear whichever zone we are in. I would consider clearing our zone of balls (or scoring from the front zone) a minimum level of autonomous competence to shoot for. Many of the top teams already do this. Our programmers have been working on it all season and haven't got there yet. Rather than trying to develop a full-autonomous game, it may be to your advantage to try smaller steps. Demonstrating a working 15 second autonomous that would at least clear the zone you are in would be a more attainable goal, and could possibly help in persuading your team to attempt more complicated building (you need to integrate the sensors into your robot) and programming projects. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
Right now, you're like the Wright brothers trying to invent the airplane. They didn't start with a 747. You'll probably be much more successful if you work towards your goals in smaller, more realistic steps. Claiming you can invent warp drive by next weekend and fly to Mars in 5 minutes isn't going to get you many followers. Talk is cheap. |
Re: Programmers: I Have A Challenge For You
FIRST should make a game where you're only able to send commands to your robot every 5 seconds, or there could be an area which was completely blacked out, so you pretty much had to use auto as you couldn't see.
|
Re: Programmers: I Have A Challenge For You
The "no sending a command for 5 seconds" could pose a safety problem. However the portion "blacked out" could be simulated by putting a wall up the middle of the field (with a small doorway in it for robots to go through).
|
Re: Programmers: I Have A Challenge For You
Actually, this kind of thing would be a good experiment for the off-season
|
Re: Programmers: I Have A Challenge For You
Quote:
As for recruiting programmers, I think the best way to get them is to inspire them. Don't say they get to write the driving code and winning the game is entirely the responsibility of the drivers. Tell them they get to work on the camera, let the robot make intelligent decisions, or score autonomously. That's what got me enticed; I certainly wouldn't have joined the team just to make the robot drive. |
Re: Programmers: I Have A Challenge For You
Quote:
Well one thing your team has going for it is that you are from a low number team. I would bet that your team has been around long enough to become an institution at your school and a program that many students want to participate in, or at least have heard of. We're only a second year team, and though our Rookie All Start trip to Atlanta made some headway towards getting us known at the school, we still have a long way to go. We're still kind of unheard of in the area, so we have to overcome that. It's entirely possible the school has programmers begging to try something real-world but just don't know there's a robot team. We're not "school-sanctioned" like a football team so being able to announce things on the intercom and such isn't easy. We're still considered a "club" and there are different rules for them. One of our goals is to try and get robots the same benefits as a sports team at our school, even having letter jackets for the students. That would open us up to more of the student base. We have given various demos around the school and all, but the interest just isn't there yet. Give us a few more years and we'll see. I just think that everyone needs to remember that everyone has different stories and rules and requirements they have to overcome, and to not be surprised about anyone's limitations. :-) "FIRST is not fair" is one of those things you learn in your rookie year, and that applies at every aspect of the game. I imagine there are teams that have nothing but programmers and very few mechanical oriented students and mentors, we just happen to be the opposite of this. |
Re: Programmers: I Have A Challenge For You
as you can see i am from 488, i will be a mentor next year but i still hope to be able to make a version of our code that could be fully autonomous and we could use when we aren't too stressed about winning the match depending on how well the auton works, it will probably be just me working on this with the help of maybe one more
its funny that this topic came up since a few weeks before the Seattle, WA regional, a few of the programmers and I were discussing this exact topic as a definite possibility with the sensors that FIRST is letting us use on our robots |
Re: Programmers: I Have A Challenge For You
Rather than the 5-second rule, I think a far better, and more adjustable, step for FIRST teams would simply be to expand the autonomous period past 15 seconds. Because, seriously, 15 seconds isn't enough to do anything worthwhile. It would make the autonomous a bit more important, and give some motivation to teams that decide "our drivers can make up for anything we dont do in autonomous."
|
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
15 seconds isn't enough to take advantage of full-field awareness.
It's only enough time to do something and hope it works. (For example, if you fire a ball into the goals from mid- or far- field, you don't have enough time to go over there and make sure it actually went in.) |
Re: Programmers: I Have A Challenge For You
Quote:
http://robotics.nasa.gov/first/2004/kickoff.htm It used $10-$15 dollars worth of parts plus some custom code that's still available here: http://kevin.org/frc/2004/ -Kevin |
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:
2004, several teams hung in autonomous and then controlled the bar, they swung the match score up to 150 points (+50 for their hang -100 for their opponents not being able to hang). I guess that isn't serious. 2006, winning auton was a huge benefit. I saw many matches decided by auton alone. 2008, 1114, do I need to say more? Ok, 217. There you go. Auton could decide the match. 2009, on Einstein the final match autons consisted of loading up the bots to go dump a load into their opponents, not as important but it added many balls to the arsenal of the dumpers (or 217's shooter). 2010, 469 shows how useful a good auton can be. If they get set in auton you are pretty much down 4 points at the start of the match (They score 2 balls and then recycle them as soon as people start moving). I would say that 15 seconds is plenty of time to do something important. |
Re: Programmers: I Have A Challenge For You
All who are trying this: I have a book for you. http://www.amazon.com/Introduction-A.../dp/026219502X
The TOC: Code:
ContentsAs you can see, it covers everything from the Perception to Logic and even drive systems |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
2003 purpose, to knock your boxes to your side of field. Auto gave you a good position and start against your opponents. 2004 Purpose to knock down the balls early in game. Gave you a small advantage. But mostly if you moved during auto you go noticed. It was a fun one to do and watch. 2005 It was the tetra year and idea was to put the tetra in place. It was a bust. Almost no one could do much with it, too hard. 2006 Aim high place balls in corner or middle target. It was 1902's rookie year and we had a simple auto mode that consistently put 10 balls in corner and gave bonus points. Because of that we were 9-0 in Houston. 2007 Rack and Roll, place tube on rack. Many said it did not help. I calculated it made the difference in winning or losing several matches. 2008 Race around track and knock down balls. This was the most fun and challenging auto mode. Could make huge difference. 2009 Auto was hard and mostly in my opinion did not make a big difference unless you didn't move and you got nailed for not moving. Bottom line auto modes are fun and most years make a difference. Longer than 15 seconds and it becomes boring because most teams do not even move during that time. I think auto mode is important for a team because you stand out during that the 15 seconds awhile so many others just sit there. |
Re: Programmers: I Have A Challenge For You
The thing I notice about all of those is that autonomous is always playing an assistive role to teleop. I wonder if that could be reversed?
|
Re: Programmers: I Have A Challenge For You
I love the sound of this, but I can almost guarantee my team won't.
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Once you create a machine that can score a ring (or some other useful function) during the autonomous period, you use that capability like a macro to automate scoring during the entire match. A good autonomous scorer, becomes a predictable/reliable tool for the drive team to use throughout teleop. It multiplies their effectiveness and frees them to think about higher level concerns, instead of the minutiae of the actions a machine can carry out on their behalf. How about starting with this general mindset and then pushing it as far as we are able? Blake |
Re: Programmers: I Have A Challenge For You
Understand this. This is a beatable robot. All robots can be defeated with strategy. - Alexander McGee
Please see team 71 in 2002: http://www.youtube.com/watch?v=h4slvnvPHW8 |
Re: Programmers: I Have A Challenge For You
Quote:
Funny you should mention that. One way I'd like to automate is the movement of the robot. However, since we don't have a touchscreen to say "go here", I've been wondering what the best way to do that is. One idea is to have "canned moves" selected with a button and configured with a joystick. In 2009, the canned moves would have been a non-slip turn, a trailer-swinging spin, or a backwards flip around the trailer. (Each of these moves will work within certain parameters (speed, rate of turn, angle of trailer, weight of trailer vs weight of 'bot.) Can you think of a simpler or more intuitive interface? |
Re: Programmers: I Have A Challenge For You
Anyone have any progress with this? LOL I really have not even officially started on it, just brainstormed and now I have AP tests and stuff... I don't have much time, Spring Football is coming up, final projects are due and wow...
|
Re: Programmers: I Have A Challenge For You
Knowing that fully autonomous will be a big project, I'm focusing on recruiting replacements for the seniors that are leaving this year, and training whomever I can in basic c++/Labview while I can, since part of the decision making engine (which is critical) will have to be based on next years game.
|
Re: Programmers: I Have A Challenge For You
Quote:
Many people said the same thing about 469 on einstein this year - that they were a lock with 1114. It requires a clear understanding of the game and a good grasp of strategy, but any robot is beatable. |
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 would be extremely difficult not only due to the intense amount of code and possible errors that could present them selves, but also because it would be hard to keep track of the robots position on the field due to Field obstacles getting in the way of items such as encoders, can anyone say bump?
|
Re: Programmers: I Have A Challenge For You
Naturally, absolute values cannot be used, just like in full scale/industrial robots and control systems (thinking of aircraft). It has to be able to adjust and calculate for errors, and use multiple position sensing methods.
|
Re: Programmers: I Have A Challenge For You
This is one amazing goal. I do find it annoying that for a majority of the match the "robots" are not really robots. Just a big RC car in the hands of a highschooler. "A robot is an automatically guided machine, able to do tasks on its own." I will talk to our programming team about this, Fo Sho!
I think what FIRST is really trying to do though is make the competition viewer and fan friendly. No one wants to watch a low scoring match of slow moving robots. If this goal could be accomplished while still keeping the games entertaining then that would be great. I think having the game part autonomous and part teleop is the best way to go, though it would be nice if they made the autonomous longer and worth more points. |
Re: Programmers: I Have A Challenge For You
Quote:
... or a high scoring match. Who'd pay to watch robotically driven NASCAR or robot tennis? Not many. Even the Mars rovers are driven by commands sent from Earth, with some autonomy build in to the rover. (human said what?). A fully autonomous FIRST competition would be a dud. It's technically brilliant, but has a very limited audience. Adding some automated tasks to human control does make sense though, such as camera assisted aiming and shooting mechanisms. In Formula 1 car racing the FIA is constantly having to evaluate how much of the car is to be driven by computer versus having the driver in control. They understand the fans want to see the drivers perform too, it's not just about who has the best engineers. The same applies to FIRST. |
Re: Programmers: I Have A Challenge For You
I agree with W1NG$, that autonomous should be encouraged but not be the whole match. Make autonomous a little longer relative to teleoperated or make autonomous scores count for more points.
For a more extreme idea, how about a detachable autonomous robot, so each team would have a teleoperated and an autonomous robot fielded at the same time - - - mayhem ensues! |
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
You are correct, no autonomous period until 2003. You could still write some auto code, but not many did, just for operational functions and systems.
I remember Team 60 was like Beatty at SVR that year. You could beat them, but you had to control the goals before they got to them. I distinctly remember one team that drove at ridiculus high speed as soon as the match started and rammed 60 so hard it broke one of their four drive transmissions. There were no bumpers back then. I still haven't heard a robot collision like that since. Back on topic... I think pursuing this challenge within the constraints of FIRST is a bit silly and maybe not as inspiring as you may hope. Sure it may inspire you and a few hard core programmers, but what about the rest of the teams. I think a better challenge (or an alternate one) is to offer up a Championship Autonomous Trophy or something for the best auto mode next season. Don't let it be decided by points though, maybe teams submit their best auto mode video clip (from a regional/championship) to YouTube, have a panel decide on the top five and then the FIRST community vote on a winner. Maybe we find a sponsor for it like what AutoDesk does for CADders. This maybe more inviting for more programmers of various levels and hopefully inspire them to take on more challenging adventures like yours. |
Re: Programmers: I Have A Challenge For You
Quote:
I feel there is a limited vision of the individuality of autonomous robots, and an assumption that fully autonomous robots will make every match the same. If the robots are very repeatable, then make the field environment less predictable. Perhaps Guinea Pigs in exercise balls that robots must collect? RC cars are not the future of robotics. I don't understand how we can get students interested in new engineering fields if we don't expose them to it. |
Re: Programmers: I Have A Challenge For You
The thing with making something completely autonomous is that other robots that may be teleoperated are completely unpredictable. Itd make defense difficult... wouldnt it? i dunno. for any team who can do it, good luck!!!
|
Re: Programmers: I Have A Challenge For You
Quote:
We can't just force teams to build more autonomous robots and force them to function in more dynamic environments. We need to keep in mind that this is still a high school program, and the majority of high school programmers (and a lot of the mentors) don't have the necessary skill set to build and control sophisticated robots. There were teams this year, including very experienced teams (even original teams from 1992) who did nothing in autonomous. This year you could score >75% of the time by just driving forward in the front zone, and yet there were teams that couldn't do it. There were teams in 2005 that could not knock the hanging tetra off, and in 2008 that could not drive forward to cross one line. These are extremely simple tasks that teams are just not doing. Whether it is due to lack of time, programming experience, or anything else it is obvious we are not ready to make autonomous any harder. |
Re: Programmers: I Have A Challenge For You
Quote:
This has not only a high school division, but also a junior division. http://www.trincoll.edu/events/robot/ I think what is holding FIRST back is the way it encourages autonomous. First off unlike trinity, it is not really a requisite. As many have said the advantage of having a strong autonomous robot has been reduced greatly recently, which confuses me seeing as they invested in the cRIO. In the past we were given 15 seconds, and a good autonomous gave you a distinct advantage but did not at all guarantee a win (see 2004). Now we've been given c++, java, and labview but we're only allotted 10 sec, and in this game 3 points if you were lucky. because of this movement it has forced a priority shift almost entirely to the engineering, which is why I believe you saw almost no autonomous this year... making programming an "if we have time" sort of thing. I would like to see a shift back to the 04/06 style autonomous, to give us and more importantly our teams the incentive for making impressive autonomous robots. |
Re: Programmers: I Have A Challenge For You
Quote:
With the millions in scholarships and the direct contact with professional engineers, I don't see how FIRST could justify saying "engineering is cool" and leave it at that. Connections, education, and experience are what help people become professionals. If you were a student, would you be interested in a robotics program if you only knew of it as a hobby, if you had no idea how to actually do it as a profession? If FIRST was just a game, would it be a fraction as important as it is? It would only be a sport. Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Programming fully autonomous (or semi-autonomous) robots is difficult and takes a long time. It takes a lot of processor power, a lot of memory, a lot of sensors to make them "smart". Odometry calculations, matrix frame transformations, filtering of sensor data (such as with Kalman filters), forward/inverse kinematics, environment mapping, navigation and pathfinding/planning, etc. This is all high-level stuff that isn't even approached until the second half of an undergraduate engineering degree, and would be way over the heads of high school students. And then to package this into a modular software package applicable to any FRC robot with simplicity that would make Apple jealous? If there is anyone who is seriously considering the effort to create this, they're probably in industry right now doing it to earn money, either for an existing company or a start-up they founded, because that final product would be worth serious $$$. The only way you'd ever see any kind of really advanced autonomous or even significant-majority autonomous action in FRC is to use small, nearly identical robots. Shift the focus away from mechanisms and towards controls and programming. But this would cause major outrage in the FIRST community. Many of the students and mentors currently involved like to be involved because of what FRC currently is; there are plenty of other competitions where mechanical design takes a backseat to programming and controls, like the autonomous soccer competitions or Trinity Firefighting. That being said, if autonomous in FRC was extended to 20 seconds long, and if there was a significant scoring bonus for achieving tasks during this time (especially with an easy task, a medium task and a difficult task, all rewarded appropriately with points), then you'd see a lot of teams out there with advanced autonomous modes. Increase the return-on-investment for points scored in autonomous mode versus the man-hours of effort to get those points, and you'll see a lot more teams doing a lot more advanced autonomous modes. |
Re: Programmers: I Have A Challenge For You
Quote:
In addition, while many people didn't realize it, autonomous was absolutely critical this year to success. Much like normal soccer, ball control this year was absolutely critical. Getting your balls moved into your zone in auto gave you a HUGE advantage - even if you did not score them. If you look back at the highly contested matches this year (heck, look at Einstein), without auton you lose. Without hanging, the team that won might very well have lost. While it isn't worth the insane amount it was in '06, if you wanted to compete at the high end of the spectrum then you had a good autonomous. As a great example - ours was malfunctioning during qualification rounds because we had to change the surgical tubing powering our shooter, and the new stuff had significantly different spring rates than the old stuff. Had we had it running correctly, our final seeding score might have made it a different ball game. In the playoffs, we got it working. Our semifinals matches would have been lost without us nailing the shots that we did. Auton this year wasn't critical to playing the game, but it was crucial to playing the game at a high level. I think that is the perfect measure of it's importance, as it lets newer teams still compete, and powerhouse teams show off their prowess. (Edit - I am not suggesting we are a powerhouse. Far from it. But without a good auton we wouldn't have done nearly as well as we did this year). |
Re: Programmers: I Have A Challenge For You
Quote:
My comments were directed at two things, capability and priority. I believe that high school students are capable of building an impressive autonomous as displayed by the trinity comp. With regards to priority, Trinity forces autonomous and programming to be considered for all teams, where as FIRST it is "optional". As you said for all-stars it is also necessary, I can't tell you how many times our matches were decided in the first and last 15 seconds. If you look at my team, years we have autonomous we make it to the elimination rounds and years we don't have one we don't make it. So I totally agree. My thoughts are though that as FIRST doesn't "require" autonomous, it falls down the priority chain for even experienced teams. My comments were with regards to FIRST making autonomous more "mandatory" and raising its priority. In doing so they would have to better support the programming in such a way that a rookie team could have an autonomous. I think given the appropriate tools and learning channels (tutorials) all teams could produce very impressive autonomous robots, its just a matter of adjusting the priority with the engineers. I also know the argument can be made that this isn't the responsibility of FIRST, I just wish i wasn't always debugging in the pits :) |
Re: Programmers: I Have A Challenge For You
Quote:
Creating an effective autonomous that performs a basic task (i.e. dropping the hanging tetra in 2005, crossing 1-2 lines in 2008, or scoring from the first zone in 2010, or just moving defensively 2006 and 2009) is not difficult given the libraries first has provided. I taught myself to program for FIRST in 2005, by the end of 6 weeks our robot could consistently score in autonomous (by dropping the hanging tetra) by Battle Cry we could score twice in autonomous (drop the hanging tetra and put the preloaded tetra into the bottom of the middle goal). Since teaching my self to program in 2005, I have decided to pursue a career in Control and Automation. Needless to say my teams' autonomous modes have gotten more sophisticated as I went through college, but along the way I have seen/helped plenty of high school students learn to write code and wire sensors that let them create their own autonomous modes, beyond what I could do when I started. Long story short, I don't know what you are proposing to do to make autonomous a attainable task for all teams, but feel free to PM me with more information. I think that a group of mentors and capable HS programmers spread out around the country could easily create a program and run workshops to teach teams with out the necessary mentor support how to program so they can write their own autonomous modes. However the more commonly proposed method, building libraries, or a scripting language for students to use, is ultimately curing the symptom (Teams that don't move in autonomous), not the problem (Teams don't have the knowledge/resources to write their own autonomous). |
Re: Programmers: I Have A Challenge For You
When I responded to this before, I think I made myself unclear. I would love to take the challenge, but of course, I would have to talk to my team about it. This would be a very fun challenge, yes, but like I said before, team 1086 isn't going to participate unless said otherwise.
Sorry for the misunderstanding! :) |
Re: Programmers: I Have A Challenge For You
Quote:
The ADK is set up in a way to make programming easier to learn. After someone learns the basics, they can do more advanced things like using an async event system, set up complex state machines, learn about the MVC and factory design patterns. The core of the program does most of the background work, which helps to lower the "getting started barrier", however it is highly extensible for advanced developers. |
Re: Programmers: I Have A Challenge For You
Im sorry if this angers anyone, but I firmly believe that people need to start by sending raw pwm values to the speed controllers, then use the class, then make a class to control the victors, then work on autonomous. In order to program effectively, you need to tailor the code to the device by learning how it works.
Then you can use the Bobotics ADK. |
Re: Programmers: I Have A Challenge For You
Quote:
First, there are no limitations on time to build the robot. The competitions are approximately the same from year to year. Thus you have a lot more time to work on autonomy. Not only does FIRST have a six week build season, and radically different games each year, but you aren't even allowed to reuse code (in many cases). In Trinity, you could build the robot one year, and just make software and sensor tweaks over the years. You can really learn from the best and directly apply those the next year. Second, in Trinity, you're the only robot on the course. All the obstacles are things that you choose based on the point values. In FIRST, you have to figure out how to sense and avoid 5 other robots, who will be moving very fast. |
Re: Programmers: I Have A Challenge For You
Quote:
Blake PS: I have a spare Morse code key if anyone wants to use it to enter the 1's and 0's of their executables. PPS: ;) PPPS: There certainly is value in understanding a layer or two of detail below whatever layer of abstraction you are writing code for; but I'm not sure that you have fully articulated a compelling reason for why the path you advocate is the best way to learn to effectively program an FRC robot (or similar device). You have made an assertion with some merit; but so far I don't see it as a compelling argument. |
Re: Programmers: I Have A Challenge For You
Quote:
The beautiful thing about using an API is that you don't need to tailor your code to a device, you can write high level code while programmers with more time/experience/expertise can handle the low level platform specific code. |
Re: Programmers: I Have A Challenge For You
wow that is very challenging because it like the robot have it own mind to play the game but it also depend on the field too because they change the measurement and what on the field too like this year they said that the bump height was 12 in but later when i check the online manual they change the bump height to 13 and a half in. So it basically depend on the game and what they want us to do.
|
Re: Programmers: I Have A Challenge For You
Quote:
Also as long as you make your source code public at the end of every year, you can reuse it as it acts as a COTS part. Quote:
This is a link to WPI's course flow chart http://www.wpi.edu/Images/CMS/UGP/cschart-10-11.pdf To summarize start with java, then go to C and C++, then go to soft eng and assembly, and finally go to OOAD(design patterns) Quote:
|
| All times are GMT -5. The time now is 14:58. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi