1
$\begingroup$

I am looking to train a bipedal robot using unity as a scape with a genetic algorithm. I will import the CAD into unity so the hardware is exact. My questions:

  1. Is Unity physics accurate enough to train a neural network that will perform in the real world?

  2. Should I optimize the network using reinforcement learning in the real world (after trained in scape)?

  3. I am looking to use air muscles for my build. If the physics aren’t exactly right in unity (elasticity, max length, torque) will the bot still perform in the real world?

  4. Are there any other programs that would be better than unity to train a robot inside a scape?

  5. Any other approaches or new ideas on how to train the bot more efficiently would be greatly appreciated.

$\endgroup$
1
$\begingroup$
  1. Not really. Unity physics is just an approximation of an approximation. It has to look more or less real but at the same time the performances are very important, so it has not the realistic level you would hope to "bring things to the real world". There are some physics engine you can install that usually work a bit better. Still, don't expect "real-world level".

  2. Based on 1, yes. If, once you got it to the real world you still give it the chance to optimize, it can only make things better.

  3. This is difficult to say. You should try to use the best possible approximation in Unity, maybe testing multiple scenarios and seeing that they perform more or less in the same way. Then train. Then bring this "approximated model" to the real world and let it train more to adjust to the real physics.

  4. I don't know this. Unity seems the most versatile around (together with other game engines). This versatility is its strength and weakness, as it cannot focus on solving perfectly a single problem. It rather has to aim at generalizing as much as possible. There might be "more specialized" programs around, but I doubt.

  5. Just try different algorithms/methods. Usually with complex problems neuroevolutionary techniques perform better, but the amount of code is hugely higher.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks so much. $\endgroup$ – iamPres Dec 20 '19 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.