Testing AI Methods With FlightGear
mikejuk writes "The open source flight simulator Flight Gear is great fun but it can also be used for serious research. Suppose you want to develop a drone that can roam the seas and spot debris so that ships can be directed to it and pick it up. It's a good idea, but how do you test your methods? The obvious way is to take to the sea and fly a drone over real debris and see what happens. It uses a lot of fuel and generates a lot of sea sickness. Why not just fly a simulated drone over a simulated sea and save the sea sickness? This is what Curtis Olson, project manager at FlightGear and he explains how to get OpenCV to use the simulator as if it was a camera."
But can it simulate taco delivery drones?
My sig can beat up your sig.
If it's a drone, how is there sea sickness?
I'm out of my mind right now, but feel free to leave a message.....
Overboard shipping containers. Search-and-rescue (aka find the bodies). Security (if it can spot debris, it can spot actual ships). Oil slicks, possibly.
Also, if there's something *continually* spitting out debris or something similar, tracking it down to stop it would be important.
...
Also, if there's something *continually* spitting out debris or something similar, tracking it down to stop it would be important.
That "something" is called man.
Be seeing you...
pitchingchris: exactly. No simulation is perfect, but is the simulation useful? If the simulation allows you to develop and test the bulk of your code in a comfortable environment, it may just be useful. No one wants to be in the hot seat chasing down a segfault while the ship is costing $20k per day just to idle and drift, and then you have a crew of 20-30 folks sitting around twiddling their thumbs waiting for your code to compile -- you are supposed to be flying and working. The other question to ask is how well do the simulation results translate to the real world. Here is where savvy engineering enters the picture. A savvy engineer will use the simulation as a *tool*. They will know and understand what aspects apply to the real world and what aspects don't. They will probably have already done some validation testing to help them determine how well the simulation does match up with the real world -- which parts they can trust and which parts they should ignore. You obviously wouldn't want to optimize your computer vision algorithm for FlightGear computer generated imagery, but you can see your algorithm running, you can test things like saving and loading video, communication with other hardware and software components, user interfaces -- there is a ton of stuff that you can do when you have a plausible simulation on your desk that you really don't want to be wasting your time doing at sea when you are borderline seasick and everything is 10x more difficult.
Ultimately the point of robotics and AI is to accomplish some useful real world task. The question to ask is what is the best, fastest, most economical way to build a system? A UAV mishap could set a small program back by months and 10's of thousands or 100's of thousands of $$$ (or a whole lot more if you look at the flag ship military drones.) The point of the original flightgear.org article is to show an example of how it is possible to construct a simulated environment and then leverage that to accelerate the development of a complicated and tricky collection of software.
James wears a hat, Jeremy plays "a nice game of chess", and the Stig flies a drone! *cue intro music*
"There is nothing new under the sun." :-)
However, within the context of FlightGear, the ability to draw realistic seascapes with waves, swells, sunglint, seafoam, ship wakes, etc. is relatively new. This graphical capability is what enables this particular use of FlightGear -- aiding the development and testing of AI/Computer Vision software for the ultimate purpose of automatically locating ocean debris.
Paparazzi is good stuff, their hardware/software seems to often do well at UAV competitions. :-)