Now that game engine technology has advanced greatly in the last couple years, it is possible that we can start seeing more 3d FRC game simulations in the 2009 season. Gaming engines such as Half-Life 2 have incredible visuals and physics in place that could be modded for the purpose and other free or cheap engines and tools have been developed that makes it easier then ever to develop games.
There are a lot of ways such a simulation could be used. How would you use it?
Here are some examples why you might pick each of these options:
A team-building activity
The simulation would have a LAN style capability so team-mates could have fun competing in a FIRST-like video game.
Promotes teamwork with a fun activity
Developing and testing strategy
The simulation implements the current year’s game.
Drivers can learn some of the nuances of the game through extensive practice before a practice field or even the robot is built.
The team could try their strategy in conjunction with different styles of ally robots and against different styles of opponents
The simulation could be run back to back in constant fashion early in the build season
Designing your robot
The simulation could allow users to customize a robot design using prebuilt pieces and mechanisms
The simulation would have advanced physics so that most possible design features could be modeled
Users could build their robot virtually to help them conceptually before building the robot physically
The field could be simulated as well, allowing you to interact with it and game pieces, simulated as close as possible to real life.
Driver practice and vetting
Drivers could begin training before the drive-train of the robot is complete
The simulation could implement customizable controller interfaces so that the team’s controller could be simulated as closely as possible
Multiple drivers could train simultaneously
New drivers could be picked and vetted through such a simulation
A way to promote FIRST to others
The simulation could focus purely on the fun aspects of playing a FRC game
The simulation could be distributed widely over the internet with strong video game appeal, reaching gamers and getting them interested in FIRST
The simulation could focus on such things as good AI opponents and online gaming against other players around the world
None of the above – A simulation would result in negative results
It would be too much of a distraction for team members
Because it can’t model real life exactly, it could create bad habits
Other reasons that a simulation would have more negatives than positives (please explain)
Other (Please explain)
*]Any other possible use for a 3d simulation not described
I personally see this as useful for large teams, but for small teams it would take much more time then it is worth. It is an interesting idea, but I don’t see my team using it any time soon.
Voted none of the above, for the “bad habits” reason. A sim would have to be nearly perfect in order to teach you optimal strategies for the real game. You could come away learning lessons, but those lessons could be corrupted by small omissions on the part of the programmers.
Also, I’m not sure there is a robust enough physics and simulation system available. For 2006, you would need to model soft balls very accurately, as the deform-ability of the poof balls were a key part of many team’s pickup systems. For 2007 and 2008, you’d need to very accurately model inflatable objects. You’d have to model proprietary electronics and sensors such as the CMUCam and gear tooth sensors, since most teams run in teleop with some level of automation and forcing them to push vastly different sequences of commands than they would in competition would remove much of the benefits of practicing.
I wish I could re-vote, I’d also vote “driver training”, in that it could be useful in getting a driver used to operating a robot from a fixed position, but not for practicing the finer points of robot operation.
This is not far off as you might think… We did ours part time in about a month with two programmers. Next year should be even easier, assuming the game is similar in ease of modeling as Overdrive is. I don’t know about 1 week though! Maybe 1 week for a rudimentery 1st version for just driving robots around the new field and another week or two implementing new capabilities.
A lot of work could be done this year, because there is a lot that can carry over from season to season.
Very good points. A lot of abstractions need to be made for a simulation to work, and some might find the abstractions too distracting to benefit them during build season. Some engines, such as HL2’s Havok physics engine, are pretty dang close to real life, but as you point out, nothing made yet (at least that can run on a home PC) can replace real life in some circumstances.
If the control view was locked to only the driver station’s point of view, then it would be decent driver practice. Add in lighting and AA and we might have been able to forsee the “blind spot” on the far side of the '08 field. Add in the ability to customize the controls to what the drivers use and I’d say it would give decent practice for the drivers.
Unfortunately, our team’s drivers are also typically subsystem student leads. This works well in most cases since they know the limitations of the bot on the field, however they get less practice during the build season itself.
All in all, a simulation would just add a visual correlation between the game pieces, field, robots, and the driver’s point of view. Past that the usefulness in robot design becomes obscured since there’s alot more that goes into detailed design than driving & strategy considerations.
I still can’t believe I got whooped 96-48 in that TYCTWD game ><
I’ve always wanted to use a simulation to test code. I have a simulation that I am working on with a simple 6 wheeled robot and dynamic friction (static friction doesn’t work yet). We found that our real robot exhibited a certain behavior, and I was able to pretty much see that behavior on my simulation (I believe that I would have been able to see the behavior more accurately if static friction worked in my model). What I want to do next with it is to write some software encoders for the bot and maybe a gyro or so and then program in PID loops or other more hackish solutions to see if that would fix the handling problem. And maybe test out Autonomous mode.
Unfortunately, some of the criteria are almost mutually exclusive. For example, if you want a simulation that focuses on getting mechinisms modeled as close as possible to real life, with all the moving parts, physics, and realistic motion, it makes it more and more difficult to network it for a 6 player online enabled version. It would also drive up the performance requirements so less people would be able to meet the minimum spec.
While it may be possible for one simulation to cover all of these uses, the likelihood would be that it wouldn’t do any one of them exceptionally well, and you may find yourself biting more than you can chew during development. So it would be better to focus on one or two of the possible uses, and make the simulation very good for those uses (this from a wise Systems Engineer who is also the godfather of our project).
Very cool. Have you thought of making your simulation public?
I have though about it, and my general feeling is that I will do that once I get it to a slightly better state. As in having it so that static friction actually kicks in and lets the robot actually stop rather than slowly drift around the field after it decelerates. And it handles collisions between bots better than just stopping both robots. Currently, it is Linux only, but I am sure someone who was interested could port it to Windows. It uses GTK and OpenGL for the graphics, so it can’t be too hard to port.
We’re looking into that possibility. I’m pretty sure it will be released publically, but not sure when or how at this point.
Right now we are mostly focusing on events local to some Lockheed Martin sites (which of course are pretty much everywhere). We have one possibility in Atlanta and another in Baltimore (both in June). We do the full setup, 6 computers and two plasmas.
About the subject though, it looks like next year we have the possibility of having different simulations which cover all of the uses listed above, if current ideas are built upon and updated for next season. There’s the Half-Life mod, the recently released flash game, AustinSchuh’s driving/autonomous sim, and 5th Gear, all of which approach simulation from a different angle. Pretty exciting.
To help you plan for this season’s version, think of the simulator as a 6-player, 3D, match-level simulation that simulates matches between modeled bots that possess generic lunacy bot capabilities. Each simulated bot can/will be controlled by one user. Simple computer-player abilities will be available (to stand in for missing human users) too.
In addition to being fun, we hope that this year’s version helps teams prep for the pacing of the real matches, and helps driver’s practice their “Where do I go next, and when do I go there?” decision-making (obviously practicing these will be more important for inexperienced drivers than for returning drivers) (and just about everyone is inexperienced at driving on the Lunacy floor…).
Also, some regionals and off-season events might use 5th Gear to put on mini-competitions and shower the winners with glory, adulation and bodacious swag. (Don’t read too much into this… It’s not a cryptic hint that investing hour upon hour practicing with the simulation is a path to the Chairman’s Award - It is just an innocent heads-up that some regionals may have some fun mini-tournaments or similar activities.)