Robots simulations

Please don't post Bullet support questions here, use the above forums instead.
Marmakoide
Posts: 1
Joined: Mon Sep 24, 2007 7:58 pm

Robots simulations

Post by Marmakoide »

Hi, a long post to explain clearly what is my problem...

I optimize controlers for robots with optimization algos, I use physics engine to simulate a given candidate controler. I have some pretty results with totally artificial robots. By artificial robots, I mean I didn't care too much about size, weights, torque, I just pick the value that didn't make the physic engine unstable. Needless to say that accuracy is more important than speed, for my task.

Now, I'am trying to do the same with more realistic robots :
* Realistic weights : the robots parts have weights ranging from 1g to 80g
* Realistic sizes : the parts have dimensions ranging from 5mm to 100mm
* Accurate collision volumes : the parts are union of boxes, 1 to 3 boxes per part, around 100 parts to make a full robot
* Realistic torque for the engines

Some stuffs about those robots and about me :
* The parts could be concave, U-shaped as instance
* All the joints are motorized hinges, 20 hinges is the usual number of hinges

And guess what, the physics engine became too much unstable (Parkinson-like hinges, Moon-like/sponge-like moves) to allow any optimizations, even a rought one. I made a little abstraction layer so I can quickly try to simulate my robots with whatever engine. So far, I worked with
* Newton Game Dynamics 1.53, accuracy setting
* ODE 0.8, double precision, dWorldStep for integration, no fast-math
* 0.01 sec step size for integration, collisions disabled between liked bodies

Questions :
* BulletDynamics could help for my problem ? (I read the manual and was frigthened by the recommandations about the scales and the weights ratios)
* Is there some a bit unknown physic engine that don't care so much about speed, but more about accuracy ?
* Same questions but about a do-your-physic-engine-yourself library (I'am a bersek-coder) ?
Antonio Martini
Posts: 126
Joined: Wed Jul 27, 2005 10:28 am
Location: SCEE London

Re: Robots simulations

Post by Antonio Martini »

Marmakoide wrote:Hi, a long post to explain clearly what is my problem...

I optimize controlers for robots with optimization algos, I use physics engine to simulate a given candidate controler. I have some pretty results with totally artificial robots. By artificial robots, I mean I didn't care too much about size, weights, torque, I just pick the value that didn't make the physic engine unstable. Needless to say that accuracy is more important than speed, for my task.

Now, I'am trying to do the same with more realistic robots :
* Realistic weights : the robots parts have weights ranging from 1g to 80g
* Realistic sizes : the parts have dimensions ranging from 5mm to 100mm
* Accurate collision volumes : the parts are union of boxes, 1 to 3 boxes per part, around 100 parts to make a full robot
* Realistic torque for the engines

Some stuffs about those robots and about me :
* The parts could be concave, U-shaped as instance
* All the joints are motorized hinges, 20 hinges is the usual number of hinges

And guess what, the physics engine became too much unstable (Parkinson-like hinges, Moon-like/sponge-like moves) to allow any optimizations, even a rought one. I made a little abstraction layer so I can quickly try to simulate my robots with whatever engine. So far, I worked with
* Newton Game Dynamics 1.53, accuracy setting
* ODE 0.8, double precision, dWorldStep for integration, no fast-math
* 0.01 sec step size for integration, collisions disabled between liked bodies

Questions :
* BulletDynamics could help for my problem ? (I read the manual and was frigthened by the recommandations about the scales and the weights ratios)
* Is there some a bit unknown physic engine that don't care so much about speed, but more about accuracy ?
* Same questions but about a do-your-physic-engine-yourself library (I'am a bersek-coder) ?
you may also be interested in having a look at:

http://darwin2k.sourceforge.net/
http://dynamechs.sourceforge.net/

cheers,
Antonio
ngbinh
Posts: 117
Joined: Fri Aug 12, 2005 3:47 pm
Location: Newyork, USA

Re: Robots simulations

Post by ngbinh »

Marmakoide wrote:Hi, a long post to explain clearly what is my problem...

I optimize controlers for robots with optimization algos, I use physics engine to simulate a given candidate controler. I have some pretty results with totally artificial robots. By artificial robots, I mean I didn't care too much about size, weights, torque, I just pick the value that didn't make the physic engine unstable. Needless to say that accuracy is more important than speed, for my task.

Now, I'am trying to do the same with more realistic robots :
* Realistic weights : the robots parts have weights ranging from 1g to 80g
* Realistic sizes : the parts have dimensions ranging from 5mm to 100mm
* Accurate collision volumes : the parts are union of boxes, 1 to 3 boxes per part, around 100 parts to make a full robot
* Realistic torque for the engines

Some stuffs about those robots and about me :
* The parts could be concave, U-shaped as instance
* All the joints are motorized hinges, 20 hinges is the usual number of hinges

And guess what, the physics engine became too much unstable (Parkinson-like hinges, Moon-like/sponge-like moves) to allow any optimizations, even a rought one. I made a little abstraction layer so I can quickly try to simulate my robots with whatever engine. So far, I worked with
* Newton Game Dynamics 1.53, accuracy setting
* ODE 0.8, double precision, dWorldStep for integration, no fast-math
* 0.01 sec step size for integration, collisions disabled between liked bodies

Questions :
* BulletDynamics could help for my problem ? (I read the manual and was frigthened by the recommandations about the scales and the weights ratios)
* Is there some a bit unknown physic engine that don't care so much about speed, but more about accuracy ?
* Same questions but about a do-your-physic-engine-yourself library (I'am a bersek-coder) ?
I'm working (on and off) on a more accurate physics model for Bullet. Right now, the dynamics + friction parts are finished. I need to work on the joints and then clean up the code a bit before releasing it. We've been using our methods to model many robots and it's quite stable and accurate.
Antonio Martini
Posts: 126
Joined: Wed Jul 27, 2005 10:28 am
Location: SCEE London

Re: Robots simulations

Post by Antonio Martini »

ngbinh wrote: I'm working (on and off) on a more accurate physics model for Bullet. Right now, the dynamics + friction parts are finished. I need to work on the joints and then clean up the code a bit before releasing it. We've been using our methods to model many robots and it's quite stable and accurate.
any links to papers related to what you are implementing so we can get a taste of it?

cheers,
Antonio
Dirk Gregorius
Posts: 861
Joined: Sun Jul 03, 2005 4:06 pm
Location: Kirkland, WA

Re: Robots simulations

Post by Dirk Gregorius »

IIRC it is the Stewart/Trinkle solver...
ngbinh
Posts: 117
Joined: Fri Aug 12, 2005 3:47 pm
Location: Newyork, USA

Re: Robots simulations

Post by ngbinh »

Dirk Gregorius wrote:IIRC it is the Stewart/Trinkle solver...
You are right.

Here is the talk I gave at ICCOPT 07 (a math conference http://iccopt-mopta.mcmaster.ca/ )

http://www.cs.rpi.edu/~nguyeb2/docs/ICCOPT_talk.zip

In there, I talked about our methods and how we come up with that. Stewart-Trinkle is a natural derivation when you apply time stepping method to "normal continuous model". It also has a bit of a new fully implicit method where everything is non-linear and collision detection and dynamics are "couple" together (no separation between collision detection and dynamics).

You can find more details on papers by David Stewart, Jeff Trinkle, Mihai Anitescu.
Dirk Gregorius
Posts: 861
Joined: Sun Jul 03, 2005 4:06 pm
Location: Kirkland, WA

Re: Robots simulations

Post by Dirk Gregorius »

Will you also contribute a direct LCP solver as well (I think I remember you talking about some modified Lemke) or will you use Bullets iterative solver?
ngbinh
Posts: 117
Joined: Fri Aug 12, 2005 3:47 pm
Location: Newyork, USA

Re: Robots simulations

Post by ngbinh »

Dirk Gregorius wrote:Will you also contribute a direct LCP solver as well (I think I remember you talking about some modified Lemke) or will you use Bullets iterative solver?
For now, it will be released with PATH. My main interest is (specialized ) solvers for LCP/NCP (arose from simulation). A specialized Lemke solver (with linear running time claim) will follow. For our system, iterative solvers have to run for thousands of iterations to stabilize so it's not a choice at least now.