Flying a drone through a static forrest in no-wind (no moving branches, etc.) seems like a reasonable sim2real environment, in part because... well... video games have had forrests and trees don't tend to move very fast unless there's wind.
But sim2real for self driving cars is a lot harder given the huge diversity in streets and freak events that happen (people, bicycles, shopping carts, piano-delivery-trucks)
- Twitter: @iamtrask
I'm pretty confident the drone linked in this article doesn't have high reliability. I'd be shocked if they managed to get >70% critical without significant real-world iteration.
In short the "trick" is that they generated a plan offline and then learned to approximate it to avoid having to re-generate it for every flight, which is very time-consuming and wouldn't allow fast flight.
It's clever and as the authors are quoted to say in the article, it doesn't rely on a very precise simulation, since the neural net doesn't have to be trained in a simulator and a classical planner doesn't need very granular detail (it's just slow). On the other hand, it's difficult to know how well it works in practice because "flying through a forest" is not really an objective measure, insofar as there is no ISO standard for what "forest" means. Sparse forest? Dense forest? Conifers? Other...? The news item above says that the approach was tested on "previously unseen" environments, but that, too, is a very fuzzy expression. So while this is very impressive news (without having read the original work) keep an open mind about whether this will really work in arbitrary environments in the real world.
Here's some work my lab did on sim2real for a roughly human-scale bipedal robot (Cassie): https://www.youtube.com/watch?v=MPhEmC6b6XU
We were able to train the robot to climb stairs completely by feel/proprioception without any sort of vision. We trained it in simulation, and then transferred it to the real world without issue.
A core issue seems to be that the better the simulation, the harder it is to generate (compute wise) but simple tweaks to the generative process also go a long way.
I took one of Andrew Ng's deep learning courses a few years ago and remember him saying that this approach typically doesn't work. It sounds like that's no longer the case which is really cool because it's relatively cheap/easy to generate simulated data.
Is this a more common approach these days? Are there any other interesting examples to point to?