Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

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."

They are implying that you are controlling the drone from a boat on the sea. Thus you would get sea-sick.

Interesting, but that would be a bad assumption considering the ability of many drones to be controlled at great distance (from land) for many hours. And, even if they were controlled from sea, why would you want to skip part of that, making your simulation unrealistic?

You would still have to "seed" the search area with identifiable items so that your test is proper, and clear the search area for the "no results" outcome, rather than simply relying on whatever is drifting around when you got there.

There are really really expensive drones that can fly for days on end, but the folks that typically are interested in environmental issues and searching for marine debris (even NOAA.gov) have trouble affording to buy them. From a practical and economic standpoint it makes much more sense to focus on smaller, less expensive drones that operate near the ship (and there for would be launched from the ship and recovered back to the ship.) Also consider a ship that travels at most about 10 kts. If you fly mor

A) do you own a reaper? (a global hawk would be ok too) B) do you own a flir? C) if the answer to both A+B is yes! then do you mind dunking your whole setup in salt water and flying it 1000 miles from the nearest point of land? D) do you enjoy staring at a flir image for hours on end trying to pick out something that isn't endless water? If you answered yes, yes, yes, and yes to all of the above, then please call me.:-)

Let me get this right. They're using a simulated drone flying in simulated air over a simulated ocean to develop algorithms to look for simulated debris? I can see this work within the limits of the software models, but I don't think the real world cares about those limits.

I hate to break it to you, but to get a commercial pilot's license, you need quite a bit of time flying a plane before you can even apply. That isn't even sufficient to fly passengers, that's the minimum to accept money for flying. So we're talking skywriters and folks who fly those signs around beaches. Then, to get an ATP license, you need a commercial pilot's license and at least 1500 hours of fly time. So, while commercial airplane pilots train on simulators, their first real flight was years before

Modelling something that originated inside a sim is the kind of thing a sim ought to be good at. That's an entirely different problem to perceiving something that exists in the real world outside the sim.

The world does not care about those limits, but at least you can test against trivial cases. You may need to tweak it in the field to fit the "real world" limits, but using the simulator should get you closer to a working model. Otherwise you are wasting money on fuel, possible crashes, and data processing. There's many steps that need to be tested before hitting the real world tests to make a complete system capable.

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.

I find this article very satisfying because every time I see a story about robotics research where the main objective doesn't seem to be building robots but developing algorithms, I wonder why they wasted time and money building robots. Like, for instance, that research that made rounds in popular science articles a couple of years ago about robots that evolved the ability to lie. [botjunkie.com] Why bother building and programming little robots to physically carry out the task of gathering "food", when the whole thing obviously could have been simulated?

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 accel

Because a simulation is only as good as the person who made it. You never know whether your simulated robots are actually doing something new/useful/whatever, or just exploiting some flaw in your simulation.

Simulations are great for quick development, but at some point you need to move into the real world.

Simulations are great for quick development, but at some point you need to move into the real world.

Absolutely.
The ideal situation would be to develop with simulated and real world testing together, comparing and validating your simulated results against your real world results. The original article isn't advocating for 100% in-a-vacuum simulation-based development, but rather trying to show how much you can do with carefully applied simulation -- using a cool, real-world project as an example.
For what it's worth, this is just one small slice of a much larger marine debris effort that involves modeli

Yes, this project seems like a great use of an off the shelf simulation. I was replying to the GP who wrote:

"Why bother building and programming little robots to physically carry out the task of gathering "food", when the whole thing obviously could have been simulated?"

Checking something with pure simulation is a great way of checking that your assumptions are indeed correct given... your assumptions. As you point out, if you take the opportunity to test (and improve) your simulation against the real wor

That might be true in some circumstances. For example, if the goal of the research is to create new algorithms for self-driving or piloting, then at some point, you definitely want to actually build the car or the plane and let the software drive/fly it around. It would be impossible to incorporate every situation that a robot like that might encounter in the "real world" into a simulation. On the other hand, if you are interested in robots that scoot around on a smooth 2D surface and the only part of th

"On the other hand, if you are interested in robots that scoot around on a smooth 2D surface and the only part of their behavior that interests you is how their communications with one another evolve, it's much more difficult to understand what you gain by actually building them."

How did you model their communications? Did you adequately model their movement? Do the assumptions you made modelling their movement affect the behaviour you're interested in? What else have you assumed without realizing it?

If you're only interested in how simulated robots behave, then go ahead and simulate them.

Yes, that's my point. I'm glad that you agree.

I guess you were never in grad school.

Actually, it's because I have been that I've seen many, many instances of, "Look at the eyecatching but basically unnecessary and useless thing we did just because it looks cool!" Presentation and salesmanship is an important part of doing successful (funded) research.

Flightgear has been used for ages for testing drone software.For example, the Paparazzi [paparazzi.enac.fr] drone project has interfaces for flightgear to allow you to simulate a drone flying.

I used just such a setup for testing out the software and seeing how it works before I actually get round to building a drone. I know some people use it for development as well, so unless I'm missing something, this isn't really new?

"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.:-)

And yeah I am very impressed with Paparazzi, I am actually surprised it doesn't get as much mention as other (arduino-based) drone systems. I was looking at developing a simple loitering drone with cameras, at the request of some companies and individuals who are interested in securing their compounds a bit better (getting a "birds-eye" view), and Paparazzi seems to be a good match for it. Now I just have to get off my arse and develop the

Well, you know the drill... How long before someone like the HSD goes out and tries to ban simulation software that has 'performance' beyond a certain level.

Much as they did with encryption decades ago, classifying them as munitions and legally limiting access to 'high quality encryption'. My old copy of windows 1.0 still has the export restriction sticker, due to encryption.

Off-topic shout out, sorry. I got my first job as a "real" Unix sysadmin in 1992 or so, when Curt left GE Medical Systems to go work on FGFS and other projects. Really cool to see it's going well and he's getting some top recognition. Good on ya, Curt! (I worked for Paul O. at your old desk after you left, we've talked a few times).

Simulation is useful because the "Great Pacific Garbage patch" is about 1000 nm miles from the nearest point of land (draw a line straight north from HI and straight west from LA/San Fran and you'll be right about in the middle of it.) But you can't just pick a nice afternoon and run out there for a quick test flight.:-)

Does ANY drone have a range of 2000nm? I doubt it, which makes it all a bit implausible anyway. I suppose you could make a little drone aircraft carrier (heck make that automated also)... Of course then you would have to make autonomous destroyers and subs to defend it...:) Of course you would need some autonomous satellites to control the whole thing... SkyNet wasn't built in a day!

This really just sounds like cheapo software testing, where they simulate the environment rather than using real testing... O