Closed tsoud closed 2 years ago
Update: I tried this in a new environment with the latest version of PyBullet (3.2.1) and the issue persists.
useMaximalCoordinates=True isn't well supported for articulated bodies. It likely won't be anytime soon, too many other projects and priorities. Please use useMaximalCoordinates=False for articulated bodies.
system OS: Linux Mint 20.1 Python version: 3.8 pybullet version 3.17
Hello,
I came across this issue while working with my model and I haven't seen it mentioned here or on the PyBullet forums. I don't know if this is the intended behavior or an issue, but to me it seems like an issue.
If I load an object into the simulation (e.g. a simple cube for a manipulator to work with) with the option
useMaximalCoordinates=True
, then try to remove it later by callingpybullet.removeBody(body_id)
, the object is not removed and instead a link (often randomly) is removed from the robot. The following example reproduces the issue:As expected, the environment has 4 bodies (incl. ground):
Checking body info for each cube produces the following results. For the second cube, the body name is replaced with the base name and the base name is an empty string :
Removing the first cube (the one loaded without
useMaximalCoordinates=True
) works as expected:However, trying to remove the second cube gives the following result:
And the simulator believes the cube was removed:
The problem might be only visual because stepping the simulation shows that robot behavior does not seem to be affected (the arm operates as if the link is still there), but that is still a problem as debugging becomes difficult.
Please advise if there is a workaround or if this was addressed in a newer version of PyBullet. Thanks!