Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  contact.stickImpulse always 0, Closed loop ObiRope Collision fails
#1
Hello, I am running a simulation with a closed loop ObiRope, that should simulate an elastic.
The objective is to grasp the elastic with a tool and hook it on some nails, to create different shapes. The nails are vertical and the elastic should be stretched to be hooked to nails at 10 cm of distance between each other.
I am encountering an issue with the collision, because i am able to grasp and release the object with no issues, and i am able to hook the elastic on one nail, but the when i stretch the elastic and i hook it on another nail, after the release the collision is broken, either for both nails or just for the second one and the elastic passes through them.
I initially thought of increasing the contact.stickImpulse to make the interface between nail and internal part of the elastic more "unbreakable" but it didn't work because of course I can't change that value.
I don't know if inserting some type of attachment can be helpful because i need the elastic to slide over the nail if the movement requires it.
Do you have any suggestion to address this problem?
Reply
#2
(12-09-2024, 08:32 AM)alicecatalano Wrote: Hello, I am running a simulation with a closed loop ObiRope, that should simulate an elastic.
The objective is to grasp the elastic with a tool and hook it on some nails, to create different shapes. The nails are vertical and the elastic should be stretched to be hooked to nails at 10 cm of distance between each other.
I am encountering an issue with the collision, because i am able to grasp and release the object with no issues, and i am able to hook the elastic on one nail, but the when i stretch the elastic and i hook it on another nail, after the release the collision is broken, either for both nails or just for the second one and the elastic passes through them.

I don't know if inserting some type of attachment can be helpful because i need the elastic to slide over the nail if the movement requires it.
Do you have any suggestion to address this problem?

Hi,

I'd start by checking a couple typical causes for collision issues:

- Rope is not stretched in a way that gaps open in between particles, as other objects will easily pass trough the gaps. If it's necessary to stretch it pass this point, using surface collisions might help.
- Solver substeps/iterations are sufficiently high for the simulation to come close to converging. If the solver stops the simulation before it's close to converging on a solution, constraints won't be met and the simulation won't behave as expected. The manual contains an in-depth explanation of this that might help: http://obi.virtualmethodstudio.com/manua...gence.html


(12-09-2024, 08:32 AM)alicecatalano Wrote: initially thought of increasing the contact.stickImpulse to make the interface between nail and internal part of the elastic more "unbreakable" but it didn't work because of course I can't change that value.


Even if you could modify the impulse before the simulation has taken place (which you currently can't, since contact callbacks report the solver's solution after it's been applied), modifying stickImpulse would make things worse as it pushes the particles towards the surface they're colliding against, so any trouble staying out of the surface would be exacerbated. What you'd want in this case is the exact opposite: modifying the normal impulse to keep particles out of the colliding surface.

kind regards,
Reply
#3
(12-09-2024, 08:46 AM)josemendez Wrote: Hi,

I'd start by checking a couple typical causes for collision issues:


- Rope is not stretched in a way that gaps open in between particles, as other objects will easily pass trough the gaps. If it's necessary to stretch it pass this point, using surface collisions might help.


- Solver substeps/iterations are sufficiently high for the simulation to come close to converging. If the solver stops the simulation before it's close to converging on a solution, constraints won't be met and the simulation won't behave as expected. The manual contains an in-depth explanation of this that might help: http://obi.virtualmethodstudio.com/manua...gence.html


Even if you could modify the impulse before the simulation has taken place (which you currently can't, since contact callbacks report the solver's solution after it's been applied), modifying stickImpulse would make things worse as it pushes the particles towards the surface they're colliding against, so any trouble staying out of the surface would be exacerbated. What you'd want in this case is the exact opposite: modifying the normal impulse to keep particles out of the colliding surface.

kind regards,

Thank you for the detailed answer
The rope is already using surface based collision
I tried to raise and lower various parameters, like the substeps, the iterations of the surface collision,the max depenetration margin.. but still it breaks when i stretch it, even more than before when i raised the substep parameter (now is 8 before it was 22)
Reply
#4
Hi, i am still trying to fix the upcited error. i will attach here a .zip containint a video of what is happening. Please help me understand what is going on. the errors you see in the console pane are related to a CollisionHanling code that i wanted to use to increase the number of particles in the collision area but that i am not using now


Attached Files
.zip   2024-09-18 10-55-04 (online-video-cutter.com) (1).zip (Size: 509.39 KB / Downloads: 2)
Reply
#5
(Yesterday, 10:04 AM)alicecatalano Wrote: Hi, i am still trying to fix the upcited error. i will attach here a .zip containint a video of what is happening. Please help me understand what is going on. the errors you see in the console pane are related to a CollisionHanling code that i wanted to use to increase the number of particles in the collision area but that i am not using now

Hi Alice,

To me the video just looks like simulation quality is extremely low?

How have you obtained the elastic behavior? Correct way is by increasing the rope's stretch compliance. Other ways to obtain elastic-looking behavior is by decreasing the solver's amount of constraint iterations, substeps, or relaxation factor, but for all of those the extra spurious elasticity comes from the simulation being lower quality, not from the material being actually more elastic.

I've quickly tried a similar setup and the rope stretches and wraps around pegs with no issues. All settings are set to default values (4 substeps, 1 distance constraint iteration) except stretch compliance, which is set to 0.001 N/m:



kind regards,
Reply