9 July 2020 at 13:47 #16845robBlocked
Hi, my end-goal is to simulate pneumatic artificial muscles, for example Series Pouch Motors. I’ve been experiencing issues with my own scenes and the various combinations of parameters so thought today I would go back to basics and try to understand the supplied examples with the SoftRobots plugin.
However I quickly managed to get a similar outcome: the objects appear to explode, and this is influenced by the value of “dt” in the GUI (or whether “Real Time” is selected).
The example I was trying is:
And run like this:
$ runSofa PressureVsVolumeGrowthControl.pyscn
With dt = 0.01 (the default) I can take 10 steps and simulation seems stable
With dt = 0.001 after 1 step I get an exploding bunny. Specifically the one using a PressureConstraint (left).
This image hopefully shows what happens.
All I have done is runSofa and clicked on the “Step” button once. I had expected this kind of behaviour to be less likely with smaller time-step (dt) values so I’m doubly confused.
Can anyone explain to me what is happening and why, so that I might be able to better understand the similar issues I’m seeing for my own models.
Rob9 July 2020 at 13:49 #16846robBlocked
The image doesn’t show in my browser for some reason, this is the link:21 July 2020 at 16:46 #16915HugoKeymaster
Sorry for keeping you waiting so long!
It’s strange indeed. It looks like the projection of the results from the constraint space to the DOFs space (where the time step intervene) has an issue. Since this is really specific code in SoftRobot, let me poke @olivier-goury. Maybe he will have a clue about it.
Thanks for reporting it and sorry for not being able to help more for now.
Hugo27 July 2020 at 11:11 #16960olivierBlocked
Hello @robclark ,
Sorry for the delay, I am back from vacation.
Thank you for your remark. Actually, the problem comes from the scene that has hard-coded values in it (making it unstable to a time step change) :
If you look in the code of the scene, an initial value of 5 for pressure is given. In the first step, the pressure jumps from 0 to that value, which is OK if the jump is not too big and over a large-enough timestep. When you reduce the timestep, this jump has to be integrated over a smaller time which can lead to unstability.
If you want to try, if you reduce the InitialValue to 1 in the textfile of the scene, and then change the timestep to 0.001, the scene is still stable.
Hope this is clear enough, and do not hesistate if you need more explanations,
- You must be logged in to reply to this topic.