You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We could take the same approach here. Ignition Physics could offer a Feature that allows registering a callback, and each physics engine may choose to provide that API. I don't know if DART offers such a function or if we'd need to add that functionality upstream. My understanding is that Bullet offers a callback API, but I did a quick search and couldn't find it, maybe @Lobotuerk knows what it is?
Alternatives considered
Instead of a callback, maybe providing a function that returns only the links that moved could also do the trick, but it may perform worse depending on how that structure is populated and passed around.
The text was updated successfully, but these errors were encountered:
Since implementing callback functionality is more of an involved task and may not work for DART, I have proposed a temporary workaround in the meantime: gazebosim/gz-sim#669
A downstream application using Ignition Physics, such as Ignition Gazebo, likely wants to know at every iteration what links have moved after a step.
Currently, Gazebo goes over all links and gets their latest poses with FrameDataRelativeToWorld, because it doesn't have a way of knowing which ones changed.
Desired behavior
We should offer a mechanism by which Gazebo could know what moved and wouldn't need to iterate over all links at every step.
Implementation suggestion
The way Gazebo classic achieves this with the ODE engine is by registering a callback that ODE calls for each link that has moved. As a comparison, Gazebo classic doesn't have an equivalent mechanism for DART, and iterates over all links instead, which makes using DART slower than ODE.
We could take the same approach here. Ignition Physics could offer a Feature that allows registering a callback, and each physics engine may choose to provide that API. I don't know if DART offers such a function or if we'd need to add that functionality upstream. My understanding is that Bullet offers a callback API, but I did a quick search and couldn't find it, maybe @Lobotuerk knows what it is?
Alternatives considered
Instead of a callback, maybe providing a function that returns only the links that moved could also do the trick, but it may perform worse depending on how that structure is populated and passed around.
The text was updated successfully, but these errors were encountered: