![]() |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
That said, it's not the compilation I was asking about. Assuming that a node is what I was calling an icon and graphically represents some logical or computational operation, there must exist some sequence of machine instructions to implement that operation. You referred to these as clumps. An assertion was made that there is no traditional textual source code associated with clumps -- notwithstanding that that terminology was not part of the discussion. My claim is simply that the machine instructions contained in those clumps almost certainly were produced by a traditional compiler using a traditional text-based programming language -- quite likely C. For the record, this didn't start out as a Labview discussion and I didn't lead it here -- nor did I want to. There was first a claim that iconic programming was replacing text based programming. I claimed that, on the contrary, text based programming is the foundation upon which iconic programming is built. Icons (nodes if you prefer) graphically represent machine code. AFAIK, other than compiling and/or assembling text files, we have no spiffier way of producing the machine code. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
note: running a compass is an expensive operation so it should only be run to reset the gyro which is less expensive (or so I've read...) |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
If I were doing this, my first project would be a defensive robot. It is actually the simplest to code IMO. Just take the camera image, do a color analysys to find a rectangle of the opposing team's color, and drive towards that. Once you factor in a pinning timer through an accelerometer to determine if you are still moving, you could probably have a decent autonomous defensive robot.
Next would be the offensive ball collector. I personally would think of using an array of IR sensors that can give you a rough map of what is in front of you. Finding roundish-objects would be a bit of a challenge on the cRIO, but a fun one at that (would it be possible to generate a rough IMAQ image to use the existing libraries?). Alternatively, if a team could use a second camera, they could mount one high for targeting and one low for an ellipse detection below the bumper for balls. Once you have possesion of the ball, I think the rest would be fairly easy. Do a spin until you detect a target, do a color check below the target to make sure you are aiming at the right team (180 spin if wrong), and then the rest has been done by other teams this year. Sensor-wise, I think a gyro is a given. If you zero it after every targeting calculation, you could easily use it for relative motion in targeting through a state machine. I think flow would be camera detection->calculate turn amount->zero gyro->turn->when finished, re-check targeting and repeat if necessary. After a gyro, I think 2 cameras would be much more valuable than most other sensors. As I said before, a high camera has been proven to be acurrate for goal targeting. A low camera (kicker level?) could work using another ellipse detection algorigthm. Against the field, the balls would definitely have enough contrast to detect, but the field walls I'm not sure about. On top of the cameras, some form of possession detection would be good. For our system, we mounted 3 IR sensors around the ball entry area. 1 sensor above the ball indicates when a ball is in our kicker (would have used this for autonomous if we had time most likely), and then 2 sensors, one on the left of the ball and one on the right, tell us the internal position of the ball in the kicker. A similar system might work in the autonomous bot idea. AI flow as of now in my idea: Spin randomly->check for balls, spin again until found->aim for nearest ball->drive until in possession->spin until goal found->check if is correct goal, spin around if not->aim for goal and kick->repeat Input? EDIT: one more thing: a compass wouldn't work too well in this situation. I would expect that as electromagnetic motors, a fair amount of drift would be seen in any compass operation, causing the accuracy of the compass to change depending on speed and direction of driving |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
to paraphrase the words of the preeminent voice in the field of computer vision when DARPA asked the somebody to make a computer that could see as well as a 5 year old child: "Could we try for 2 year old autistic monkey instead?"
I will realize that this view isn't very adventurous, but I'm a firm believer that taking small steps to improve ones programming is important, that and I wouldn't want my programmers to spend so much time on it that they fail their classes. I personally would rather see my team automate everything except the basic movement of the machine. Make the machine collect the game piece, turn and score. I've programmed fully autonomous tank games and it can be very hard to design a system that can predict the actions of an opponent. I like having a human mind in the loop acting as a garbage collector and main decision maker. -Alex |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
http://www.chiefdelphi.com/forums/sh...highlight=ball My thinking is by having a camera at the ball level, it would greatly reduce if not eliminate the shadow issue, allowing you to use the findEllipse method. one design i did see which is a median between the two is putting the camera on a pneumatic, lower position for being at the ball level, top position for being high enough to see the goal. |
Re: Programmers: I Have A Challenge For You
I'll try to sum up the icon and compile thing quickly so as not to interrupt the design of SkyNet.
Quote:
There are actually numerous ways for LV to target a platform, the compiler is the most common, another is a bytecode/VM method used for small targets such as the NXT, and the third is a translator that does produce C or VHDL to more quickly be able to use vendor specific tools. So while this is a way LV to target VxWorks, it is not the method being used. As for icons replacing text, I don't think that is the right comparison to make. In fact text is just a sequence of graphics. Textual and mathematical language is just as abstract, if not more so, than a drawing. The issue is the expressiveness of the programming language. Would you rather write down a paragraph about the sunset or snap a photo? Is a map better than directions? Is a picture of food better than a recipe? It all depends on what you are trying to do. IMO, the best environment would let you pick based on the task. Did I mention that LV has had a formula box since 1.0? And now ... back to SkyNet. Greg McKaskle |
Re: Programmers: I Have A Challenge For You
Quote:
Text to graphical coding is no different than the last evolution from assembly to C. Just like many graphical "languages" start out by auto-coding C, most C compilers start out by "auto-coding" the C to assembly. That doesn't mean that C isn't a higher level language than assembly, nor does it mean everyone has to know assembly to use C. Assembly is just the relic and the automation handles the details. There also isn't necessarily a chicken-and-egg scenario. The original C compiler was most likely written in assembly or another high level language (like, say, FORTRAN). Current C compilers are written using the previous C compiler. In other words, you may need a different language to write the initial compiler, but as soon as you write that first compiler, you may be able to do away with it from that point on. With all of that being said, text based programming is currently more efficient for coding than graphical languages in certain areas (as I said in the original post). For that reason, I don't see text based programming dying any time soon. What I do see is it will become less and less prevalent and it will only be used when there isn't a much better choice (much like when people use assembly today). |
Re: Programmers: I Have A Challenge For You
Quote:
It is a distracting tangent to the thread. I think all us software types are pleased that the kids (at least I hope it's the kids) are exploring the possibilities of software, so let's let them get back to it. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Blake Main 5th Gear Thread: Link to 5G Thread |
Re: Programmers: I Have A Challenge For You
This appears to be a very challenging yet intriguing problem. From personal coding experience on my team it seams that creating a 100% autonomous robot would be very plausible. In past years, I've been able to implement code to completely automate driver twos job. Although one difficulty of this is if a sensor breaks or something fails driver two will never trust the code again.
As for a entirely autonomous robot, I agree it's possible but the logic behind it would be massive. I have no doubt it can be done; As the head programmer on my team I find myself automating everything I can with sensors. The two main limits keeping me from pursuing a robot with more autonomy or 100% autonomous robot is time, and resources. I have no doubt other people have hit similar bottlenecks. As for me, I'm planning on structuring a very modular library of labview code to speed up this process and allow for easy implementation regardless of next years game |
Re: Programmers: I Have A Challenge For You
Quote:
I used DARPA as an example early on in this thread - teams of professionals and graduate level students with near unlimited bankroll behind them, completing a task that is arguably easier/more straight forward. It took them two years to complete the challenge. Take this years game as an example, broken into its most simplistic macro steps. (offense) 1. Find a ball 2. Drive to the ball 3. Kick or push the ball into the goal That's very straight forward, until you toss in the fact that there are 5 other robots on the field. If you spent time completing all three steps in code and then testing, I say that's time wasted that could have been spent perfecting your autonomous mode, or spent making your robot the easiest machine to control on the field. I don't want to sound like a nag or a nay-sayer, and I don't want to keep you from learning or failure. I'm trying to offer my words of wisdom having spent 4 years as a student in FIRST and a year as a mentor in FIRST. There's a reason all cars don't drive themselves, this AI stuff isn't as easy as you think it may be. |
Re: Programmers: I Have A Challenge For You
Quote:
If you remember that we are building role models, leaders and careers; and that we are using robots and tournaments to do that; then I think teams and students can be outstanding successes in the time and money available to them. Blake |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
I would be down with this. I know if I brought it up during a meeting it would be cut down pretty fast, but that doesn't stop me from working on it outside the competition to learn.
I see a lot of time spent in the parking lot with bot the next couple of months. |
Re: Programmers: I Have A Challenge For You
Quote:
But I think anyone trying this can take some experiences away from the DGC. First of all, the teams who had the best software also had the best hardware. If your machine is not mechanically reliable or controllable, you aren't going anywhere fast. One of the biggest lessons I've learned in my years as a software guy in FIRST is that the best software fix is usually a mechanical fix. As far as the software goes, you really need to start thinking about how to set up your machine as a series of interconnected systems. There are basically three components to an autonomous robot control system: Perception, Planning, and Control. Perception is the data you take in from the world around you (vision, distance, GPS, and their associated post-processing). Planning is the part that understands how to interpret the world around it and make educated decisions on what to do. Control is the part that actually makes the robot do what it wants to do. If you are familiar with the Model/View/Controller design pattern, you can loosely parallel Perception to the Model, Planning to the Controller, and Control to the View. (Where the model is what you have, the controller is what you want, and the view is what you get.) |
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
Nearly 30 years ago, I didn't need a disassembler to read 6502 opcodes -- 8-bit machine with small instruction set. Today, 20 years after last touching a 68K machine, I still remember the opcode for the NOP instruction. Nowadays, even RISC machines have sufficiently complex opcode and operand encoding that I don't even try -- don't need to and there's no glory or money in it if I could. |
Re: Programmers: I Have A Challenge For You
Collaborative Development...?
Seeing as many of the tasks are the same from robot to robot, (ie drive to target) I am wondering what people would think about working on the problem in a collaborative manner. Also if you were to work on a collaborative autonomous engine, what language would you want to use. (any language is the right language, I'm not trying to open another debate about languages) |
Re: Programmers: I Have A Challenge For You
In the latest Wired Magazine (April 2010, page 42) it addressed this issue. Article was called "Advantage: Cyborgs". It asked the question which is smarter humans or machines? As an example machines have been beating humans in chess for years. But if you combine humans with machines as a team they beat both the human alone and the machine alone because the team uses the strength of each.
Really if a FRC machine is done well it is a cyborg of the drivers and machine, each playing the part they do best. I have always pushed for putting as much as intelligence in the machine to help the drivers. So you drivers and teams out there on the fields are really cyborgs killing off your opponents. |
Re: Programmers: I Have A Challenge For You
You know what, people that bring up DARPA and stuff, you got to think, their goal is totally different than ours, they want to build a machine that is pretty fail proof in the unexpected. We are trying to do it in a known environment with known factors, 2 different ball parks.
edit: I am very offended by the thoughts of some people "highschool programmers" well honestly, that may be tru to a certain extent, but think of the potential of someone that got this far without any help... I learned from books and trying things out myself, I only went to a programming class this year to get my career prep credit but then I learned of robotics through this class... Honestly how many 12 year olds do you see that know C++? |
Re: Programmers: I Have A Challenge For You
Quote:
-Tanner |
Re: Programmers: I Have A Challenge For You
Quote:
One programmer from 1124 is taking on the challenge. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Okay, so here goes another post for this thread.
I keep seeing people say "I've been in FIRST four year and am now a mentor. I think you are over ambitious high-schoolers. This can't be done. MIT students can't do it. Not in six weeks anyway." Where are your heads? I mean seriously. Think! :mad: You call yourself mentors... Aren't you supposed to inspire? Would those people be and MIT if they weren't ambitious? Would we be here in FIRST if we didn't think that high-schoolers could build robots? I can't say this is true. But I have a feeling that when FIRST was started people like yourself said "That's stupid, high-schoolers can't build robots." And now look! We have teams like 148, 114, 254, 33, and 1114(The list goes on.) who are amazing! I sit back in awe practically drooling at when I see their robot! If I knew that they also had a fully autonomous robot, I would be floored! So please, use your brains and think people. Do we encourage these ambitious students, or do we tell them it can't be done? (Which we all know will just make them want to do it all the more. ;) ) Plus, it's the off-season! I'm going to be starting up my own team, keeping up with school, mastering designing with sheet metal, along with fine-tuning my CAD skills. I see no reason why we shouldn't encourage these students to try their best to do what MIT students take two years to do. I hope they succeed! :D Do I expect them to get a almost perfect code by the beginning of next season? YES! Do I expect them to have a fully autonomous robot for next season bot? No, but I would love to see it! :D I would personally offer any help that is needed, but I am not a programmer. I'll be over here cheering you on though. Go for it guys, have fun, learn, fail, stand up, do it all over again, and then when there seems to be no hope. You will succeed. -Rion P.S. - FIRST isn't DARPA. Feel free to give me some bad rep for this post, I don't care. |
Re: Programmers: I Have A Challenge For You
So just got the book http://www.amazon.com/Introduction-A.../dp/026219502X
Now read some of it, there are so many wheel configurations you can do and I think I want to attempt 2 and 4 legged bots later... Will post a chart later |
Re: Programmers: I Have A Challenge For You
![]() |
Re: Programmers: I Have A Challenge For You
Quote:
Should we start a sign-up list for those that want to do this over our 8-month break? I'm definitely psyched for this. Edit: Plus, the rules would allow us to use this code next year (with modifications for the THAT game) as long as we keep releasing it to the public. |
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
Another question for y'all: Which way do you make the omni bot "front" the diagonal wheel or the front face?
This way? ![]() or that tilted so the flat side is the front? |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
edit: Im not quitting until I get it... That means even after college I don't get an autonomous robot, I will just join a company that has a same goal as me |
Re: Programmers: I Have A Challenge For You
Quote:
EDIT: I mean one that actually generates electricity instead of consuming it. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Why not Subversion, CVS, or the like? Google Code, Sourceforge, and the like can be used for free. WindRiver and Netbeans I know have the ability to do SV and CVS, I don't know about LabView.
Also: Who's bot would it run on? It would be a little hard to develop for a robot that you've never seen. Just my opinion, of course, having never developed for an application like that. Also would make testing a small bit harder. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
But that's my opinion. Quote:
I would absolutely love it if all of you proved me wrong. I'm also suggesting that you guys should set more realistic goals given the time, money, manpower, not to mention computing capabilities of the cRio. A more worthy goal than a fully automated match would be: 1. A fully functioning and planned autonomous 2. A very easy to control robot 3. A mesh of automated functions and a simple user interface. 4. Get more sponsorship for your team, so that it may survive longer. 5. Start another team. |
Re: Programmers: I Have A Challenge For You
Quote:
Using some sort of simulator/game would be a wise first step to take on this ambitious undertaking. How do you eat an elephant? One bite at a time. Blake |
Re: Programmers: I Have A Challenge For You
Here's the thing:
Is anyone really going to be able to accomplish this for next year. Probably not (but it depends on the game). However, a lot of people might get very close, and they're going to learn an insane amount during the process. If you want to try it, give it a go. The best thing is that you'll learn a lot of shortcomings of a lot of sensing technologies, you'll learn how to translate human thought process into logic steps, and you'll come away with a boat-load of knowledge about real world control systems and the typical issues you have to deal with. Try it and have fun! |
Re: Programmers: I Have A Challenge For You
Quote:
Now yes, i would suggest that you first program a two minutes autonomous that just involves a empty field with the game pieces. Ones you have that down. I would then add in the chance of other robots. Just a thought. |
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:
|
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
Ah $@#$@#$@#$@#... Robotics is too addicting, I have halted my game that I have to turn in the end of the year for my AP Comp Sci class... Better not slack off on that
|
Re: Programmers: I Have A Challenge For You
The biggest problem that I can see here (assuming all of the sensor, code, etc...) works perfectly is the development of an Artificial Intelligence. How does the machine decide when it is prudent to go for a game piece, heck how do you choose to go left/right at any given moment.
The AIs that I have worked with in the past used hundreds of runs to get good predictive and training data. How do you get your machine this type of data against a good opponent? Getting a machine that can run around an empty field is one problem. Getting a machine that can play against even another AI is extremely difficult. As an example I'm currently working on a biomimetic vision system that will runs of data sets well in excess of 10,000 images and despite this it can still only tell the difference between a zebra and a car 80% of the time. The next major hurdle that I can on the horizon is processing power. From this discussion it would seems that most people want to bet on the camera for most of their more complex sensing needs. Doing this will involve object recognition (ball, other bots) integrated with position control to accurately place the robot on the field. Doing real time image processing (I haven't seen the NI libraries for this so I don't know what functions they do have) that must process and recognize objects takes a amazing amount of processing power. Power that I'm sure the cRio doesn't have, especially considering how much I've heard about the camera slowing the robot down too much. If somebody has a proposal for how to solve the processing problem I would be happy to work on a project like this. Sadly I don't have access to a robot so I would need to work more from the strategy end. If somebody feels like organizing this PM me. |
Re: Programmers: I Have A Challenge For You
Collaborative Development.
To everyone looking to work with me on the ADK, i have created a FirstForge project (Bobotics ADK) The framework is very basic, but very extendable. In there there is the ADK, and then a sample Robot (Bob) which is built utilizing the ADK library. My hope is that it is simple enough to pick up quickly, the goals of the project are two fold: Bring autonomous to every team, and successfully implement a basic fully autonomous proof of concept. http://firstforge.wpi.edu/sf/projects/bobotics *oh and its written in Java as I feel it is the easiest to learn. |
Re: Programmers: I Have A Challenge For You
Quote:
For example, for tracking other robots, require that every participating robot computes, and broadcasts, 5 or 10 times per second, its location on the field and its acceleration vector. This could be a tiny little network packet tagged with robot ID. Is this less sexy to contemplate than full realtime vision on each robot? Sure it is. Is it almost infinitely more doable than full realtime vision on each robot? Duh. Constraining the problem domain is the only way this is going to fly. Even so, the enormity of this undertaking only seems apparent to some. Perhaps that's a good thing... |
Re: Programmers: I Have A Challenge For You
I tried one in 09, but unfortunately I the robot wasn't ready until ship day and it had too many quirks (mostly relating to the camera). We ended up never using it. I'll try again next year if I have enough time with the robot. To help with this it would be nice if FIRST revealed the scores on the board + time left, so that your strategy could change when you were winning and losing.
|
Re: Programmers: I Have A Challenge For You
Quote:
My current idea is as follows. It would involve a DC-DC converter connected to the PD board, which could then plug straight into the ATX connector on a motherboard. Example:http://www.mini-box.com/M4-ATX?sc=8&category=981 A proccesor would then handle several inputs from various sensors that the Crio can't handle. A CUDA-based GPGPU would be able to handle most calculations from the cameras such as pattern recognition and positioning. What do you think? Back to the 10,000 Lakes Regional as my team needs the current Auton code done. Edit: and IMHO, I believe Java would be a horrible language to create a fully autonomous robot, as it's slowness and inefficiences would handicap even the best system. It's why I chose to use C++ this year again. |
Re: Programmers: I Have A Challenge For You
As long as your definition of a "fully autonoumous" robot consists of something on the order of simply finding a game piece and kicking it in the direction of a goal you at least have a chance to be succesful. Many of this year's and previous year's robots already do that in autonomous, no big deal to run it for an additional 2 minutes.
However, don't expect your robot to do very well in competition. A game designed for competely autonoumous robots like FIRST TECH CHALLENGE or FIRST LEGO LEAGUE is much simpler than the games FIRST designs for their top level of competition. Remember that you are part of an alliance. Your inability to co-operate with your teammates to maximize each robot's potential would be the equivelent of a football player running whatever play he feels like without co-operating with the rest of the team. Don't expect it to work very well. Using this year's game for an example, how do you in intend to determine whether your robot should be going after a ball or blocking an opposing robot? How do you decide when to come over the bump into the front zone and assist in scoring? How do you decide when to come over the bump into the front zone and block the opposing alliance's blocker bot so your striker can score? How do you know if your alliance partner has moved to the middle and you need to move to the far zone to clear balls from it? If you do decide to block an opposing robot, how do you know it's not dead and you're wasting your time on it? How do you know that your alliance's striker bot is broken down and you need to move forward and score? How do you know both your alliance mates are on their back and you need to flip one back upright to have a chance to get past their blocker bot and score (this happened to us in the semi-finals, we won the game 2-1: http://www.thebluealliance.net/tbatv...2010la_sf2m2)? These are just some of the decisions I've made as field coach on our team this year. They're all pretty straight forward and simple, but impossible to make without an overview of the game situation. I'd be interested to hear how you intend to implement any kind of awareness of the tactical situation into your robot. You can pre-program a game plan into it, but without an overall awareness of the game, you'll discover the truth of an old saying that's proven itself through the years: "No plan survives contact with the enemy". I think it's great to inspire people to work towards fully autonomous robots, just don't lose sight of reality. Many of your teammates will probably want to do at least reasonably well at their competions. In the real world, your robot will be a liability to it's alliance. |
Re: Programmers: I Have A Challenge For You
I vote for C++ too. Not only is Java slow, the WPILibJ has no libraries for file access or for more than basic vision processing. Java also doesn't allow low-level access to memory.
|
Re: Programmers: I Have A Challenge For You
Quote:
Also, the fact that it doesn't allow low-level access to memory is a feature in most cases, making it harder to screw up. More important than picking a language is figuring out the algorithms themselves, which may be as simple as "drive here, do action x, turn"... etc, with the smaller pieces left to teams to implement. But then again, you don't know what the game will be, so its incredibly difficult to make meaningful decisions on strategies. Best of luck anyhow. I feel like I've been a negative nancy for too long with this, I'll only post in this thread from now on if I can offer help :] |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Right now I am starting up a Java team to build an ADK(autonomous dev. kit). It would be nice if the C++ team could get a lead too, this way we could combine our efforts to provide an ADK in both c++ and java. The java project is on first forge : http://firstforge.wpi.edu/sf/projects/bobotics |
Re: Programmers: I Have A Challenge For You
Quote:
A program written in C can easily be run on a cRIO imaged for Java, but as far as I know a Java program cannot be run on a cRIO imaged for C. |
Re: Programmers: I Have A Challenge For You
Well I delivered this message in the team meeting today, went pretty well, but I think Im the only one still that wants full sutonomous
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
The underlying vision for Java, C++, and LV are all thin wrappers calling into the same binary. While the languages have different capabilities and different runtime features, as long as you are using NI-IMAQ via the WPI libraries, the vision performance isn't due to a language choice.
Greg McKaskle |
Re: Programmers: I Have A Challenge For You
I must say, if I ever saw this I would be amazed. It would be awesome. BTW this is my 340th post. Go GRR. :)
|
Re: Programmers: I Have A Challenge For You
Quote:
January-February: Nonstop work on robot March-April: Competitions and Nationals May-December: Intermittent workload until next season. <-8 month break |
Re: Programmers: I Have A Challenge For You
Is there any rules on limiting the number of extra microprocessors the robot may have? Was thinking of uing like 2 or 3 extra microcontrollers to help the cRio
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Figuring out how to power a PC motherboard on a robot gets you nothing but added weight and battery drain. You're gonna have to take this idea to a higher plane if you want anyone to get excited about it. My point is not to squelch your obvious enthusiasm, but engineers generally don't design solutions and then look for a problem that it solves. Pretend that you've just read a product announcement: Late summer 2010, BeastlyRoboVision Inc. will be offering a self-contained robot vision module. The module will cost around $900.00. It will be capable of tracking up to 16 (relatively large) objects out to a distance of 100 feet, with a 360 degree field of view. The module interfaces to any robot control system via 10 Gbit wired network interface, providing a low latency, high bandwidth, TCP/IP connection. FIRST has already approved this module for use in the 2011 FRC robots and NI has promised a 10 Gbit ethernet module for the cRio to be available by late summer. Now, some of you set out to design and build that vision module, and some of you set out to design a robot that can make good use of it. |
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Blake PS: I haven't forgotten that this would/will be a very hard job. Nor have I changed my mind about spending more than one season helping a dedicated group of students eat this elephant one bite a time. |
Re: Programmers: I Have A Challenge For You
I agree, the processing is a very debilitating bottleneck. We've debated some solutions such as other processors and ran into the same problems discussed above. I think the way to combat would be to find the best combination of processing and plausibility of it actually working. As stated above you could strap a computer on the robot but not only does a CUDA processor pull massive power, upwards of 400 watts if I remember correctly; and as for getting useful information out of the mother bored would be a challenge. Also probability of a mother bored not cracking is slim to none. Although I'm unfamiliar with this new camera module I think that may be the way to do it. I'm planning on researching it in depth as soon as I can.
And as discussed above, the amount of field combinations is practically infinite. Maybe the way to go at this problem would be to be to use the AI to execute a small task within the game. Just like the ability to activate camera tracking in teleop this year, I agree we should aim for the best possible AI, but as stated that's a massive task. As a software developer and with experience from working with my drive team I believe this would be a valuable asset. It would take a lot of processing off the cRIO, and allow the coach to process the entire field, then rely to the drivers to press a button to execute the proper function. |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
Quote:
Quote:
A fully autonomous robot has the ability to - Gain information about the environment. - Work for an extended period without human intervention. - Move either all or part of itself throughout its operating environment without human assistance. - Avoid situations that are harmful to people, property, or itself unless those are part of its design specifications. Not sure what your "human sensors" are (voice recognition or real people pressing buttons in the loop?) but in either case, it's still human intervention. Quote:
Quote:
It is a fact of life that not all kids are interested in the programming side of FIRST. Nothing wrong with that, and nothing wrong with the programmers doing everything they can. Some kids are more interested in the mechanical aspects, some are more interested in the robotic competition aspects. Doesn't FRC still stand for FIRST ROBOTICS COMPETITION ? Nothing wrong with a team sacrificing their competitiveness to demonstrate their programming skills, just make sure that's what the team wants. My personal viewpoint is that sacrificing everything else about FIRST to emphasive a team's programming skills may not be in the best interests of FIRST or the rest of the team. |
Re: Programmers: I Have A Challenge For You
Quote:
It's still big, no doubt. But please consider that, for some of these kids, the typical team's 'make the robot so I can drive it' programming is about as challenging as putting Legos together or 'paint by numbers'. Personally, I only hope this initiative isn't a flash in the pan. |
Re: Programmers: I Have A Challenge For You
For people who are interested in this, take a look at the autonomous programs on Spirit, Opportunity, and MSL. They have 20, 20, and 200 MHz processors respectively, running vxWorks, the same operating system that's on the cRIO. They also operate in a much simpler environment than FRC. These robots give a good idea of what vision processing is capable of.
|
Re: Programmers: I Have A Challenge For You
Wish me luck, Im gonna order the ATmega640 and get all the parts from radio shack and put it all together during spring break... Hope I don't fry anything
|
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Imagine walking to the field with a control board that is one switch: score or block. These tasks are all autonomous, it's just the human operators tell the bot whether to kick that ball or to pin that bot. I'd still call this an excellent project if that was where it went |
Re: Programmers: I Have A Challenge For You
Quote:
I guess we'd also need a way to keep a powersupply which can survive even in extreme low voltage situations and keep the current going to the system. As you could witness by watching the DS during a match this year, simply taxing 2 CIM's to stall drops the voltage to 8ish volts from a full battery, more if you have other systems or a damaged battery (as I witnessed when we got down to 5, then witnessed some fluid around it after the match. It was retired). |
Re: Programmers: I Have A Challenge For You
Folks - About adding more computing power to an FRC Robot - The last time I looked into them, I thought the Gumstix line offered some attractive options - Blake
http://www.gumstix.com/ http://en.wikipedia.org/wiki/Gumstix |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Oh $@#$@#$@#$@#, costing me about $100 out of my mom's pocket for all this stuff... $@#$@#$@#$@# it can get expensive real fast
|
Re: Programmers: I Have A Challenge For You
Cost is one of the reasons why mentors have been encouraging you to consider simulation or emulation. SW development doesn't have to wait for HW completion, and in the real world it typically doesn't.
Greg McKaskle |
Re: Programmers: I Have A Challenge For You
Although I haven't read the full thread, I would like to say that I think it's feasable, and would love to attempt this over the summer.
We had a concept like this early on, but it was scrapped due to hardware problems-half the sensors it needed didn't get mounted. It definitely wasn't as complete a concept as this, but it should possible with Chopshop's current system. We still have the code saved in svn and hg, so we can get it back. The hardest part would probably be using the camera to see what's going on... |
Re: Programmers: I Have A Challenge For You
Quote:
BeagleBoard The BeagleBoard and the Gumstix are running an OMAP3 chip, which as an ARM Cortex-A8 core in it. They are clocked between 500 Mhz and 600 Mhz CPUs with Cortex-A9's are coming out shortly, and look to be very high performers. They are clocked at about 1 Ghz, and have two cores. I'm personally waiting until I can get my hands on an Cortex-A9 before I invest in any hardware for a similar project. For those of you interested in learning how to do some AI, I recommend looking over the CS188 lecture slides from Berkeley. http://inst.eecs.berkeley.edu/~cs188...uncements.html I took the class a semester ago, and learned a lot. |
Re: Programmers: I Have A Challenge For You
The BeagleBoard could be a good option. Load a small distro of linux on it, and then communicate over RS-232. Personally I couldn't do it since my mentor would kill me for breaking the CAN-bus :P (do RS-232 multiplexers exist, and more importantly, would they be FRC-legal?
EDIT: Actually, a board with an ethernet port would probably be easier to use. If we put a switch on eth2, we could plug the camera and extra board in and have the alternate board read directly from the camera and do the processing there. It would save a lot of overhead for many teams and bypass any rules issues, since ethernet switches are perfectly legal (2CAN) |
Re: Programmers: I Have A Challenge For You
You can also use SPI, I2C, and CAN for communication, provided you follow the rules.
|
Re: Programmers: I Have A Challenge For You
Quote:
-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
I actually laughed out load at the first post :D I would love to do it, but our head mentor has zero faith in the programming for who knows what reason. I was told that once she decided the robot was performing fine i wasn't allowed to touch it again until after competition. God himself couldn't convince her to allow the programmers to fully automate our robotn:mad:
|
Re: Programmers: I Have A Challenge For You
Quote:
-Kevin |
Re: Programmers: I Have A Challenge For You
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
Quote:
|
Re: Programmers: I Have A Challenge For You
Quote:
If you had realtime vision that could identify and track numerous objects out to 100 feet and down to roughly 1 cubic foot in size, and the information about those objects was streaming into your robot control system via a simple socket connection, *** what would you do with the data??? ***. You can fairly easily synthesize a virtual playing field, populate it with virtual allies, opponents, fixed obstacles, and game pieces. You can animate this virtual world and provide well defined information about what's going on in it to your autonomy functions. You can then start *really* exploring the difficulties of implementing autonomous behavior in software. Or, you can pipe-dream about strapping more computers onto your robot in hopes of solving.... what? |
Re: Programmers: I Have A Challenge For You
Quote:
BTW The way I am thinking of doing it is obviously smaller functions all ran in succession; like: Code:
/* |
| 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