Commit Graph

8960 Commits

Author SHA1 Message Date
erwin coumans
e58e5bdf95 PyBullet:
expose pybullet.changeDynamics(sleepThreshold), default 0.05, for both useMaximalCoordinates=False and True
When the dot(vel,vel) < sleepThreshold for longer than 2 seconds (this timeout is hard coded) objects that have the ACTIVATION_STATE_ENABLE_SLEEPING enabled with be deactivated
Example:
p.changeDynamics(ob, -1, activationState=p.ACTIVATION_STATE_ENABLE_SLEEPING, sleepThreshold=0.05)
2021-04-20 11:29:27 -07:00
erwin coumans
fd154cee8f set default sleeping threshold for useMaximalCoordinate btRigidBody to be similar to btMultiBody (0.05) 2021-04-20 11:14:28 -07:00
erwin coumans
78f5b141f9 fix for 'useMaximalCoordinates' rigid body in PyBullet: activate a rigid body after picking 2021-04-20 10:24:09 -07:00
erwin coumans
84a63cf221 allow to use the useMultiBody argument for loadMJCF command
note that for dynamic and static objects (without joints) it is best to set useMultiBody=False
2021-04-19 20:37:26 -07:00
erwin coumans
910c20334f disable texture release, it causes crashes, need to figure out better solution 2021-04-15 20:26:01 -07:00
Erwin Coumans
5205dafcc2 add __init__.py 2021-04-05 19:51:38 -07:00
Erwin Coumans
29f388a5d8 add selected examples under pybullet_examples 2021-04-05 19:50:46 -07:00
Erwin Coumans
513e3a7db4 add more __init__.py files 2021-04-05 18:07:39 -07:00
Erwin Coumans
674c82db89 bump up pybullet version to 3.1.2
add missing __init__.py files
2021-04-05 17:58:25 -07:00
erwin coumans
8b8c1af6a4 Cleaned-up/fixed version of this Pull Request #3239, thanks to Wenlong Lu 2021-04-05 11:40:45 -07:00
erwin coumans
4d34ba7310 add updated Laikago envs_v2, with PMTG and MPC examples.
python -m pybullet_envs.minitaur.envs_v2.locomotion_gym_env_test
python -m pybullet_envs.minitaur.envs_v2.examples.laikago_mpc_wrapper_example
python -m pybullet_envs.minitaur.envs_v2.examples.laikago_static_gait_example
python -m pybullet_envs.minitaur.agents.baseline_controller.locomotion_controller_example
PMTG example, not well tuned:
python -m pybullet_envs.minitaur.envs_v2.examples.laikago_pmtg_example
2021-04-05 11:35:19 -07:00
erwin coumans
d1c4c41b9a add performCollisionDetection (stepSimulation also calls this, but does more, including solving constraints and integration) 2021-03-26 10:31:13 -07:00
erwin coumans
0196edd4d2 update single aabb, during resetJointState/resetBasePositionAndOrientation, to allow raycast/collision queries. 2021-03-26 09:11:59 -07:00
erwin coumans
546212b158 add mug obj 2021-03-22 16:53:17 -07:00
erwin coumans
6f7d458679 add missing line in previous commit 2021-03-16 18:17:23 -07:00
erwin coumans
5cf8ee3360 Allow to compile pybullet using btDiscreteDynamicsWorld (no multibodies and no deformables), this allows to create Jacobian and Mass matrix (and A=J*M-1*J_transpose) with MLCP solvers
Add examples/pybullet/gym/pybullet_utils/readwriteurdf.py, this allows to read a URDF and write the URDF with more reasonable inertia tensors (based on mass and collision volumes)
2021-03-15 22:44:55 -07:00
erwin coumans
0b8f95598d Merge remote-tracking branch 'bp/master' into master 2021-03-11 17:12:01 -08:00
erwincoumans
87e668f6b2
Merge pull request #3293 from glebm/heightfield-type
heightfield: Fix PHY_FLOAT data handling in double-precision mode
2021-03-11 17:10:38 -08:00
erwincoumans
2bd7fa7064
Merge pull request #3287 from glebm/heightfield-accel
heightfield: improve `processAllTriangles` performance
2021-03-11 17:10:20 -08:00
Erwin Coumans
5864901a2e bump up pybullet to 3.1.0, wheels are using numpy 1.19.5 (to be colab compatible) 2021-03-08 09:32:43 -08:00
erwincoumans
0c7ea68709
Merge pull request #3246 from Danfoa/master
Fix Stable-PD Control bug on First Order Taylor approximation of next `q` state
2021-03-07 08:19:37 -08:00
erwincoumans
0bf5f2cd84
Merge pull request #3301 from crewmatt/master
Update User Data imported from URDF to default to empty string when null
2021-03-07 08:14:30 -08:00
mbennice
296cd85f60 Fix tab/spaces 2021-03-05 09:54:53 -08:00
mbennice
237843b93a Default user data text to empty string when null. 2021-03-05 09:52:10 -08:00
erwincoumans
2465756313
Merge pull request #3297 from erwincoumans/master
bump up PyBullet to 3.09
2021-03-04 12:10:28 -08:00
Erwin Coumans
57c9e66ea9 bump up PyBullet to 3.09 2021-03-04 11:31:17 -08:00
erwincoumans
db5be234dd
Merge pull request #3296 from erwincoumans/master
add bullet_client.py options, fix memory leak in EGL/GUI mode with textures.
2021-03-04 11:22:53 -08:00
erwin coumans
5832166f53 Merge branch 'master' of github.com:erwincoumans/bullet3 into master 2021-03-04 10:31:16 -08:00
erwin coumans
201f3dd7d8 cmake: move stable pd files from BulletRoboticsGUI to BulletRobotics. 2021-03-04 09:55:35 -08:00
Erwin Coumans
b619763569 Merge remote-tracking branch 'bp/master' 2021-03-04 09:38:13 -08:00
erwin coumans
3963f077fc Fix memory leak in EGL / GUI mode, resetSimulation with textures in GUI mode.
Fixes Issue #3285
2021-03-04 09:13:22 -08:00
Gleb Mazovetskiy
89c76981fc heightfield: Better support for float/double data
Previously, the heightfield constructor always assumed `PHY_FLOAT` meant
`btScalar`, contrary to documentation and other usages of `PHY_FLOAT`.

Adds new constructors that distinguish between `float` and `double`.
The legacy constructor is still there for backwards compatibility.

This allows the client to use `float` or `double` regardless of
`BT_USE_DOUBLE_PRECISION`.
2021-03-03 14:25:55 +00:00
Gleb Mazovetskiy
40a9584ccb heightfield: Add a test for processAllTriangles up-axis filtering 2021-03-03 13:58:09 +00:00
Gleb Mazovetskiy
8f5a00dd1e heightfield: Add range constructor and overlaps 2021-03-03 00:07:51 +00:00
erwincoumans
7b84fabb1e
Merge pull request #3291 from vabr-g/efficient-find
Optimize calls to find*() for a single char.
2021-03-02 10:06:54 -08:00
Vaclav Brozek
364e98c92d Optimize calls to find*() for a single char.
The character literal overload is more efficient.
2021-03-02 18:59:31 +01:00
erwincoumans
e913a75f18
Merge pull request #3288 from vabr-g/fix-null-inertial-urdf
Fix a null dereference in UrdfParser
2021-03-02 08:07:14 -08:00
erwincoumans
e041514b03
Merge pull request #3289 from vabr-g/vabr-g-stack-overflow
Fix stack overflow in parsing URDF files in Bullet
2021-03-02 08:05:21 -08:00
vabr-g
390eeb111b
Fix stack overflow in parsing URDF files in Bullet
When reading response from the Bullet server after a "load URDF" command, the client code allocated and zeroed buffers for the data chunks with a "+1" to account for the terminating zero. This was when the buffer pointer was interpreted as a `char *`, so it meant "+ 1 byte".

When reading those buffers, however, the associated pointer was a `void *`, so reading `sizeof(void*)` (8 on my machine) bytes at a time. Therefore it was reading up to 7 bytes past the allocated (and zeroed) memory.

The change fixes that by changing the "+ 1" to "+ sizeof(void*)". At one place it also extends the zeroing to the final buffer position (missing "+ 1" in the original).
2021-03-02 11:55:19 +01:00
Erwin Coumans
adcaa75777 enable v-hacd in cmake for BulletRobotics and pybullet build (use cmake -DENABLE_VHACD=OFF .. to disable)
cmake: enable stable PD plugin (-DDSTATIC_LINK_SPD_PLUGIN)
btMultibody, make some args const in mulMatrix
2021-03-01 14:03:48 -08:00
vabr-g
e4963f73f2
Fix a null dereference in UrdfParser
When the parser sees no <inertial> tag inside a <deformable>, it logs an error but does not return false. So in the next step, a null pointer is dereferenced.

This can be tested with loading the following URDF:
```
<?xml version="1.0"?>
<robot name="rhythm_carrot_sticks">
  <deformable name="bag">
  </deformable>
</robot>
```
2021-03-01 21:21:11 +01:00
Gleb Mazovetskiy
bb838dbec0 heightfield up axis: Use Range
Reads a bit better than using individual min/max scalars.
2021-03-01 10:26:27 +00:00
Gleb Mazovetskiy
e7e28bebf8 heightfield processAllTriangles: Skip triangle processing if the triangle is out-of-AABB
Skips triangle processing if the triangle is out-of-AABB on the up axis.

This massively improves OpenMW performance on my test machine.

Co-authored-by: Andrew Shulaev <ash.drone@gmail.com>
2021-02-28 21:33:27 +00:00
Gleb Mazovetskiy
782f14caa1 heightfield processAllTriangles: Copy 1 less vertex
The 2 triangles of a heightfield quad share 2 vertices.

Co-authored-by: Andrew Shulaev <ash.drone@gmail.com>
2021-02-28 15:22:28 +00:00
Erwin Coumans
97add36b9f update bullet_client.py to accept options
p.connect(p.GUI, options="--background_color_red=1 --background_color_blue=1 --background_color_green=1")

If you use bullet_client.py, you can use:
p = bc.BulletClient(connection_mode=pybullet.GUI,options="--background_color_red=1 --background_color_blue=1 --background_color_green=1")
--mouse_move_multiplier=0.4
--mouse_wheel_multiplier=0.01
--mp4=moviename.mp4
2021-02-25 16:32:39 -08:00
erwincoumans
abea1a8484
Create LICENSE.txt 2021-02-08 08:06:16 -08:00
erwincoumans
af6aa5fb99
Create LICENSE.txt 2021-02-08 08:05:46 -08:00
erwincoumans
c3f137773b
Create LICENSE.txt 2021-02-08 08:05:22 -08:00
erwincoumans
ecbbf24d2a
Create LICENSE.txt 2021-02-08 08:04:10 -08:00
erwincoumans
1257ab5915
Create LICENSE.txt 2021-02-08 08:03:23 -08:00