![]() |
Interest in Programming Competition?
Is anyone interested in participating in a FIRST-only team programming competition?
See this other thread for info ... http://www.chiefdelphi.com/forums/sh...ad.php?t=25123 Reply here if you are interested. |
Re: Interest in Programming Competition?
Depends on when it is and the cost of the entry fee (still being disputed over at the other thread, so I don't know what you'll decide). Sounds like fun! :)
|
Re: Interest in Programming Competition?
Quote:
How about one for what you run in a bot at a competition? |
Re: Interest in Programming Competition?
I would be interested, but like they said I need to know what the entry fee is going to be.
|
Re: Interest in Programming Competition?
:eek: Well it is nice to know that my team just signs me up for stuff. :eek:
|
Re: Interest in Programming Competition?
What do you think is a fair entry fee and prize?
|
Re: Interest in Programming Competition?
This is what I would ideally want the competition to look like:
Write an autonomous program that would read in data from virtual sensors and attempt to do a certain thing. The simulator (that is written by the organizers) would feed realistic sensor data to the program. The program would respond by sending signals to the motors. When everybody's submitted their code, NRG would make the "robots" compete in an online Flash presentation. Like in real competitions, people would be able to modigy and resubmit their code for subsequent matches. If me and the other NRG members can pull this off, I think it would be really cool. |
Re: Interest in Programming Competition?
This sounds like a fun thing ... but I'm not too sure about entrance fees and prizes and all. Maybe if it started out as a friendly competition with name recognition and a virtual pat on the back the reward more participation would be obtained. I assume the simulator would be available to teams so they could test their code? (How about the source? Would this be developed independently ... or is community involvement being sought).
Eithe way, all I can say is now is too soon! Far too much going on to give it any serious thought (in school alone ... but also I believe there's some sort of robot competition approaching? ;)) |
Re: Interest in Programming Competition?
Point taken well, but if something is to be ready when Nationals are over, I think it would be best to plan ahead.
1. Yes, the simulator would be available to teams ahead of time. 2. Who is writing the simulator? I don't know. Maybe I'll make it a sourceforge project. And, I think the visual simulator will be a Java/C++ hybrid, not Flash. OR - the simulator could be a Direct3d application that would download real time data from NRG's server. |
Re: Interest in Programming Competition?
There's an idea. DirectX covers video, audio, multi-player, and probably some other things. But realtime may be a little excesive (Maybe not- you may just stream position data and sound)
If you go DirectX, can we send virtual models of our bots with an INI describing motor data? |
Re: Interest in Programming Competition?
I must say that using DirectX is one of the best ideas i have seen posted on this fourm. Not that i am saying that i would not be interested if you didn't use it cuz i still would be. (Even though my team said i would participate before i even knew about it) I think that this is a very creative way of fundraising and depending on just what the fee is I would be very interested. :D
|
Re: Interest in Programming Competition?
Quote:
http://nrg.chaosnet.org/coder I would have to precompute each match's results at our computers. Then I would make the simulator download the latest match and play it so that each robot followed the path I precomputed. Then after the match, you could resubmit code to improve. I would then precompute the next match's results, and the cycle continues. I'm trying to figure out a way to spread the word, how would I go about doing this? |
Re: Interest in Programming Competition?
If you check MSDN and search for DirectX, there should be some SDKs on it. I downloaded v7, but I don't claim to understand it. I would recomend starting a thread to create the file standard. (.Bot for data? :))
|
Re: Interest in Programming Competition?
Quote:
Quote:
|
Re: Interest in Programming Competition?
Quote:
|
Re: Interest in Programming Competition?
Quote:
|
Re: Interest in Programming Competition?
The reason I sugested the INI thing was so that the sim could get feed-back from any pots or whatever you have on the bot. Of course, we would have to check it to make sure you don't have, like, a gear with .5 teeth (REALLY slow, ultra powerful). I would say restrict the motors to kinds in the kit, and in the INI, say which one. I'll create a thread on it.
|
Re: Interest in Programming Competition?
A system like this already exists, developed using Java by IBM. http://robocode.alphaworks.ibm.com/home/home.html The robots attack each other, but you may be able to use the framework as a starting point.
|
Re: Interest in Programming Competition?
I think we should all program with one robot like mtrawls said. You can see my response to this kind of over-complication here:
Focus on the competition This is the overall structure that I propose: Everything is written in Java. (If you want to, it may be possible to write in C and link into Java using Native methods, but that's something to be discussed later). A simulator class will calculate the position of the robots and keep track of scores, the game world, etc. Each team submits one Java class that implements a "RobotCode" interface. Interrupts would not be implemented. The simulator would call an "Initialize" method on each Robot. Then, at every "frame", the simulator class would call a "NextFrame" method on each robot so that it could calculate the signal to its motors. The robot can call a GetSensorValue method on the simulator to get sensor values. A summary follows: |---------| <--- GetSensorValue ------< |----------| |Simulator| >--- Initialize -------------> |RobotCode| |---------| >--- NextFrame -----------> |----------| |
Re: Interest in Programming Competition?
I'm a C man myself (of the languages I use, Java is not included), so this discussion will concentrate on C/C++ data types and such (I trust it should be easy enough to follow, though, Java or not).
I'll start a discussion of the Robot class, as this is where all the end user action will be, so the most "community" discussion should be concentrated here (as I see it, anyway). The important things for this class will be the private (or public) data and the methods. The data is mostly sensory input (and other metadata the simulator might need, such as team number). It should be decided, then, what types of sensors will be used, and their range (I assume it would most likely emulate the behaivor of the stuff we use). Maybe an IR sensor -- in which case, this might be an opportunity for simplification. Since the competition isn't designed to test our interrupt-from-scratch skills, just a simple boolean value (see IR or not) would do (or a more complicated value in case there are various beacon types). If you include a gyro, it might be a bit easier so far as the simulator itself is concerned just to give the angle directly, instead of giving rate of turn. Maybe we have some sort of arm that we can extend for some reason, in which case we might have a pot input, which should be straightforward enough. Who knows? The inputs should be controlled by "the creators" of the competition, obviously, so I'll just leave my thoughts as they are here. (I imagine all this will be encapsulated healthfully enough in some Get_xxx methods. Go OOP! ;)) Then we can move to the (other) methods. This is the fun stuff! Things like Move_Robot(x) and Turn_Robot(x) -- or perhaps a bit more indirectly, via Set_Left_Drive(x) and Set_Right_Drive(x). This is where we'd be able to set the motor output to our hypothetical arm, for instance. However you expect us to respond to our inputs will have to be considered here. Therefore, it would be nice to start with a description of the "robot" we'd all be using ... a base design by "the people in charge" so we all have some baseline to work from, and then some community input based on that. It would be immensely easier to start thinking of the design of the simulator itself once it is figured out just exactly what it has to do -- and hence what the robot is capable of needs to be defined first. |
Re: Interest in Programming Competition?
Quote:
A square base with two tank treads, one on each side (I'm biased). One motor on left side, one motor on right side. Motion is "perfect," as in, speed is linear with PWM output. Sensor collection: 3 Line Sensors (downward facing in "front" center, front left, and front right of robot) IR sensor in center of robot (you can set the angle that the sensor faces) 3 distance sensors (see picture below) ![]() |
Re: Interest in Programming Competition?
I agree that it would most likely be a good idea to use C/C++ because that is what most of the teams will have used in programming the actual robot but it is not really up to me so...I will say that I would be interested in participating no matter what language you deside to use.
|
Re: Interest in Programming Competition?
There is actually a program from IBM that has the Graphical Interface already made. All you have to do is write the code for the robot in Java, which is very similar to C/C++. check the link in my signature for more info on the program.
|
Re: Interest in Programming Competition?
btw, does anyone know if IBM has posted the source code for robocode?
|
Re: Interest in Programming Competition?
Not bloody likely.
And if I may paraphrase what some one else said: You lame pig farmer! I'm not talking about a simple little thing that runs this little postage stamp. I'm talking about a full-out, tricked-out, customizable-inside-out, big simulator. [edit]Not to say I wouldn't apresiate the reader code[/edit] |
Re: Interest in Programming Competition?
This all seems cool I guess, but really complex. I think if you made this competition more open, you'd get a lot more entries when it comes time to run it. Here's a possibility:
Each year, the competition sets up a new 'problem.' For instance, this year, the contest could be on developing a Scouting program. You could enter the contest and attempt at creating a scouting program (obviously, there would be more requirements and guidelines). You could, for instance, require the program to be able to run on windows, but if your app is cross-platform, then you get bonus points. This would allow all entrants to develop their app in whatever language and IDE they chose. Java, C++, ObjC, VB, or whatever. In this sense you accomplish a number of things: 1) The competition is more than just an algorithm competition. It's a competition on who can build the best overall application. It's important to know all the phases of application development in the real world. 2) The end result is something EVERYONE can benefit from. In this case, I mentioned the scouting application, which could be distributed freely to all FIRST teams. 3) You will get many more entries because the competition is NOT language specific. 4) Each year, you'd gain a new and exciting programming experience. Maybe next year the application could be some type of application that has to do stuff over the internet. And the next year something to do with graphics programming (match simulator?). Any thoughts? Best of luck! |
Re: Interest in Programming Competition?
Whatever sort of compitition you want to have, if you want to be able to watch whats happening, it will most likely need to be done in Java. Java is pretty much C/C++ with graphical capacities, so it's the closest language with graphics to the robot code. but thats just my two cents.
|
Re: Interest in Programming Competition?
Quote:
Quote:
Quote:
Now granted I haven't done a lot of programming on major projects; but I have done a little bit of it all by my lonesome on some smaller scale, but still complex projects, and like to think that I have some sort of idea about what I am talking about. It seems like you don't realize the amount of time, frustration, etc. that has to go into something like this ... and you have to decide if it is worth it, i.e., what you'll get from it. And it may very well be a lot ... but I think a lot of people here would have trouble finding time for it all while being in FIRST, school, job, etc. As a challenge to those who suggest these complex features, and to get everyone thinking on what exactly is required for such an application ... come up with a fairly detailed framework (no coding required) for the system you'd like. |
Re: Interest in Programming Competition?
Quote:
Quote:
Quote:
Ok, not quite. but part of it is that urge to cram all the fetures you can. Quote:
Quote:
|
Re: Interest in Programming Competition?
OK, hold everything!!!
It seems we have divided into two seperate factions. One that is focusing on the programming of the simulator and one that is focused on the competition. Since before I came up with and posted the idea for this type of competition, I have been developing a simple framework to allow two virtual robots to play some sort of a match using autonomous code. Astronouth7303 wants to create a complex simulator. Now this has very useful (and fun!) attributes, but I do not think that it will be as useful in a autonomous programming competition. Since (I think) I came up with the idea (see this thread, and another thread)for the competition, I am going to take lead and continue writing some Java classes for the competition. If Astronouth wants to write a simulator, then that's great - but I think it should be seperate from the NRG RoboCoder competition, which is currently focused soley on autonomous programming. EDIT: And .... RoboCoder source and documentation v0.01 is public. (It does not include the simulator.) http://nrg.chaosnet.org/coder/src/docs/ - JavaDoc documentation for the RoboCoder SDK http://nrg.chaosnet.org/coder/src/ - Source files (indiv. files, not Zip) |
Re: Interest in Programming Competition?
Quote:
Granted, you are the first person to actually do anything about it. It seems like a good idea and all but I really have my doubts. 1) Writing an autonomous simulator framework seems rather complicated 2) Everyone is already writing their autonomous for the REAL robot, why would they want to develop a second autonomous program? 3) Everyone seems to program in different languages. A lot of the older members program in C/C++ because that's what was taught at their high school. However, the Programming AP exam this year changed to java. So now all the younger members program in java. And then there will be the people who hate both :) 4) You have no corporate sponsor. All the current award competitions have big sponsors. This allows for judging by professionals and assistance by professionals. It's much cooler to have your work reviewed by Ted Boardman than team number whatever from down the street. Not to mention cool prizes in cases such as the autodesk awards. 5) Interest? I only see a handful of people actually interested in this by browsing through the forums. And 3/4 of those people are the ones that want to run on it. Most teams have only one programmer, so you guys are going to need to market yourselves heavily. Best of luck. You've at least started working something, which is more than anyone has ever done :) |
Re: Interest in Programming Competition?
Ok, I'll excuse myself from this thread. If you want to know why we should make such a thing, check the other thread. I know it will be hard, It will probably take a while, but we can do it.
And I think that your idea is a great starting pont, but it's hard to exhibit a great program without hardware to go with. |
Re: Interest in Programming Competition?
Quote:
|
Re: Interest in Programming Competition?
I had never heared of JNI. I'll have to check it out. Great job organizing this! :)
|
Re: Interest in Programming Competition?
v0.02 of the SDK had been released:
http://nrg.chaosnet.org/coder/src You can now download it in Zip format! [EDIT]The Zip format download PHP script is not working. Just use this link http://nrg.chaosnet.org/coder/src/docs [/edit] If someone would examine the Simulation and Sensor sub-class documentation and tell me if they want more sensors, that would be great! If there's anything else needs to be added, tell me! I'm only working on the structure, not the implementation. |
Re: Interest in Programming Competition?
Will the line/IR sensors return an analog value? Looks good.
|
Re: Interest in Programming Competition?
will this competition include the platforms. And if so, can you include tilt sensors in the functions. they could just return a boolean with true being tilted and false being level. Great job on the code.
|
Re: Interest in Programming Competition?
Quote:
Distance sensors do need to be analog, and they are. By default all sensors can return "int" values. The SetSetting methods on the sensor allows you to customize the sensor like in real life. As in: LineSensor - setting is 0 for on when bright, or 1 for on when dark IRSensor - setting is the 0 to 255 (mapping to 0 to 360 degrees) angle that the sensor faces (like a servo that rotates the sensor) |
| All times are GMT -5. The time now is 14:34. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi