Commit Graph

558 Commits

Author SHA1 Message Date
erwincoumans
225db2e385 Merge remote-tracking branch 'bp/master' 2019-01-23 08:55:38 -08:00
erwincoumans
ae8e83988b Add preliminary PhysX 4.0 backend for PyBullet
Add inverse dynamics / mass matrix code from DeepMimic, thanks to Xue Bin (Jason) Peng
Add example how to use stable PD control for humanoid with spherical joints (see humanoidMotionCapture.py)
Fix related to TinyRenderer object transforms not updating when using collision filtering
2019-01-22 21:08:37 -08:00
Fredrik Svantesson
192b92a6dd Add space to prevent macro from specifying literal 2019-01-18 22:58:09 +01:00
erwincoumans
3729b733de Merge pull request #1941 from ShFil119/impr/remove_register
Remove unneeded keyword `register`
2019-01-04 07:58:16 -08:00
erwincoumans
875a5f6b0e append m_, fixes Issue 402 2018-12-22 11:07:08 -08:00
erwincoumans
9e99f5cdbc Expose PyBullet.calculateVelocityQuaternion, getAxisAngleFromQuaternion, getQuaternionFromAxisAngle, getDifferenceQuaternion
Add preparation for DeepMimic humanoid environment, replicating parts of https://github.com/xbpeng/DeepMimic
Loading humanoid.urdf and applying motion action: examples/pybullet/gym/pybullet_envs/mimic/humanoid.py
Loading MotionCapture data: examples/pybullet/gym/pybullet_envs/mimic/motion_capture_data.py
Little test: examples/pybullet/gym/pybullet_envs/mimic/humanoid_test.py
2018-11-16 17:29:03 -08:00
Erwin Coumans
ac18c95ea1 fix some race conditions 2018-11-05 10:04:19 -08:00
erwincoumans
750133694c Disable btQuickprof.h profiling by default. We use custom profiling functions, see b3ChromeUtilsStartTimings. 2018-11-01 08:19:50 -07:00
Erwin Coumans
a48b6b9ca0 fix some thread sanitizer (read/write integer, should be a harmless warning) 2018-10-31 17:00:34 -07:00
Filip Gawin
4aab16d943 Remove unneeded keyword register
Why is it unneeded?

C++11 has deprecated it,
c++17 removed.

So, how about older (c++98)?

According to Herb Sutter, it is as meaningful
as whitespace.

http://www.drdobbs.com/keywords-that-arent-or-comments-by-anoth/
184403859
2018-10-16 21:28:42 +02:00
erwincoumans
ab8f16961e Code-style consistency improvement:
Apply clang-format-all.sh using the _clang-format file through all the cpp/.h files.
make sure not to apply it to certain serialization structures, since some parser expects the * as part of the name, instead of type.
This commit contains no other changes aside from adding and applying clang-format-all.sh
2018-09-23 14:17:31 -07:00
erwincoumans
4d00beefbb Merge pull request #1849 from madebr/fix_1827
Fix for bug #1827
2018-08-29 20:54:31 -07:00
Robert Haschke
beb3dd6196 reduce diff 2018-08-24 00:34:16 +02:00
Robert Haschke
5088f71e7f preserve constness to avoid compiler warnings 2018-08-24 00:29:54 +02:00
Colin Basnett
5bdfba1ea6 Fix for bug #1827 2018-08-14 19:36:42 +02:00
Erwin Coumans
2000ba9058 handle singularity (gimbal lock) in quaternion -> euler conversion,
from e7e0972a46/urdf_model/include/urdf_model/pose.h (L103)
2018-07-30 17:30:19 +02:00
Erwin Coumans
5dd7a62397 Disable CProfileManager by default.
Use btSetCustomEnterProfileZoneFunc(CProfileManager::Start_Profile) and
btSetCustomLeaveProfileZoneFunc(CProfileManager::Stop_Profile) to get old behavior.
2018-07-30 12:07:32 +02:00
Erwin Coumans
2cab56d6ef prepare build system(s) for collisionFilterPlugin 2018-07-27 15:48:24 +02:00
Erwin Coumans
6549b0a586 re-enable optional tracking of memory allocations (disabled by default) 2018-06-26 09:19:10 -07:00
Jeffrey Bingham
f2afb4af35 remove some debug globals from third_party/bullet
There are some debug global variables that prevent using bullet safely on multi-threaded environments (tsan failures).

PATCH from marioprats@
2018-06-23 22:01:41 -07:00
Tigran Gasparian
b84eb8af74 Several fixes for the parallel raycasts
- Limits the maximum number of threads to 64, since btThreadSupportPosix
and btThreadsupportWin32 don't support more than 64 bits at this moment,
due to the use of UINT64 bitmasks. This could be fixed by using
std::bitset or some other alternative.
- Introduces a threadpool class, b3ThreadPool, which is a simple wrapper
around btThreadSupportInterface and uses this instead of the global task
scheduler for parallel raycasting. This is actually quite a bit faster
than the task scheduler (~10-15% in my tests for parallel raycasts),
since the advanced features (parallelFor) are not necessary for the
parallel raycasts.
- Puts 16*1024 of MAX_RAY_INTERSECTION_MAX_SIZE_STREAMING in
parentheses, since it otherwise causes problems with other operators
of equal precedence and introduces a smaller constant for Apple targets.
- Refactors the parallel raycasts code and adds some more profiling.
2018-06-19 18:41:42 +02:00
erwincoumans
04d03d10be Fix memory leak due to batchRayCast never deleting the btTaskScheduler.
(and issue with TaskScheduler/btTaskScheduler.cpp, add JobQueue::exit, call it first, since it uses the m_threadSupport which was deleted before the destrucor was called.
Use a hashmap to store user timers, to avoid allocating many identical strings.
2018-06-16 09:37:53 -07:00
erwincoumans
f517b03534 Expose pushProfileTimer / pop ProfileTimer in PhysicsClient API to benchmark Python parts of PyBullet.
reduce 'm_cooldownTime' from 1000 microseconds to 100 microseconds (overhead in raycast is too large)
If needed, we can expose this cooldown time.
Replace malloc by btAlignedObjectArray (going through Bullet's memory allocator)
2018-06-16 06:19:49 -07:00
erwincoumans
fa648a028e fix a few problems introduced in #1730
https://github.com/bulletphysics/bullet3/pull/1730
2018-06-05 09:16:00 -07:00
Tigran Gasparian
bb72a91080 Clears the user data cache when syncUserData is called.
Adds unit test for the UserData functons.
Changes the char pointer in btHashString to std::string. There were
problems where the object owning the string memory would deallocate the
string, making the btHashString object invalid.
2018-06-04 15:10:48 +02:00
erwincoumans
b6120e760a PyBullet.addUserData / getUserData / removeUserData / getUserDataId / getNumUserData / getUserDataInfo
See examples/pybullet/examples/userData.py how to use it. TODO: add to PyBullet Quickstart Guide.
Thanks to Tigran Gasparian for the contribution!
2018-06-02 13:40:08 -07:00
erwincoumans
83a34d8ae2 Merge pull request #1663 from vsaulue/fix-doxygen
Fix some Doxygen comments in btMatrix3x3.
2018-05-16 17:02:23 -07:00
erwincoumans
0e2d0fda1a Revert back to using the Jacobi method to diagonalize a symmetric matrix. 2018-05-03 06:03:52 -07:00
Vincent Saulue-Laborde
0a2f3057d7 Fix some Doxygen comments in btMatrix3x3. 2018-05-02 20:10:53 +02:00
Lunkhound
bdc3c2bafb task scheduler: add multiple job queues to improve performance when there are many threads 2018-03-17 22:59:29 -07:00
Lunkhound
04e0d57dc1 add premake option 'enable-multithreading' 2018-03-16 23:42:43 -07:00
Lunkhound
eec478709a parallel solver: small tweaks and fixes 2018-03-06 02:43:59 -08:00
Lunkhound
b8720f2161 parallel solver: various changes
- threading: adding btSequentialImpulseConstraintSolverMt
 - task scheduler: added parallelSum so that parallel solver can compute residuals
 - CommonRigidBodyMTBase: add slider for solver least squares residual and allow multithreading without needing OpenMP, TBB, or PPL
 - taskScheduler: don't wait for workers to sleep/signal at the end of each parallel block
 - parallel solver: convertContacts split into an allocContactConstraints and setupContactConstraints stage, the latter of which is done in parallel
 - parallel solver: rolling friction is now interleaved along with normal friction
 - parallel solver: batchified split impulse solving + some cleanup
 - parallel solver: sorting batches from largest to smallest
 - parallel solver: added parallel batch creation
 - parallel solver: added warmstartingWriteBackContacts func + other cleanup
 - task scheduler: truncate low bits to preserve determinism with parallelSum
 - parallel solver: reducing dynamic mem allocs and trying to parallelize more of the batch setup
 - parallel solver: parallelize updating constraint batch ids for merging
 - parallel solver: adding debug visualization
 - task scheduler: make TBB task scheduler parallelSum deterministic
 - parallel solver: split batch gen code into separate file; allow selection of batch gen method
 - task scheduler: add sleepWorkerThreadsHint() at end of simulation
 - parallel solver: added grain size per phase
 - task Scheduler: fix for strange threading issue; also no need for main thread to wait for workers to sleep
 - base constraint solver: break out joint setup into separate function for profiling/overriding
 - parallel solver: allow different batching method for contacts vs joints
 - base constraint solver: add convertJoint and convertBodies to make it possible to parallelize joint and body conversion
 - parallel solver: convert joints and bodies in parallel now
 - parallel solver: speed up batch creation with run-length encoding
 - parallel solver: batch gen: run-length expansion in parallel; collect constraint info in parallel
 - parallel solver: adding spatial grid batching method
 - parallel solver: enhancements to spatial grid batching
 - sequential solver: moving code for writing back into functions that derived classes can call
 - parallel solver: do write back of bodies and joints in parallel
 - parallel solver: removed all batching methods except for spatial grid (others were ineffective)
 - parallel solver: added 2D or 3D grid batching options; and a bit of cleanup
 - move btDefaultTaskScheduler into LinearMath project
2018-02-26 22:47:33 -08:00
Erwin Coumans
508550c5e9 fix premake build for linux, thanks to @consultit
See also issue #1538
2018-02-09 18:46:26 -08:00
Alexis Breust
c1b5024aea Removed warnings of unused variable in btThreads header 2018-01-25 16:37:30 +01:00
erwincoumans
c4b1b84687 Enable 'global absolute velocities' by default for btMultiBody. See 8.3.2B Proposed resolution Jakub Stepien PhD Thesis
https://drive.google.com/file/d/0Bz3vEa19XOYGNWdZWGpMdUdqVmZ5ZVBOaEh4ZnpNaUxxZFNV/view?usp=sharing
Fixes crashes due to rendering of softbody wireframe in the wrong thread (needs to be in 'debug' rendering section)
Use btCapsuleShapeZ instead of btMultiSphereShape when converting MJCF MuJoCo capsules using fromto
2018-01-09 22:47:56 -08:00
Erwin Coumans
e97b751781 further work on urdfEditor.py, fix some serialization issues 2018-01-08 12:25:56 -08:00
Erwin Coumans
f104765c47 added some template to restore (syncMultiBody, syncContactManifolds) for single float and double precision, in 'pybullet.restoreState' 2017-12-31 11:19:29 -08:00
Erwin Coumans
0326fa93a8 made some progress in saving and restoring the state during the simulation, with identical results.
Option to de/serialize btPersistentContactManifolds and fix lossy conversion during btMultiBody de/serialization of base world transform
(serialize the quaternion, not the converted 3x3 matrix)
There are still several caches not taken into account, and btMultiBody links/constraints are not deserialized yet etc.
See examples\pybullet\examples\saveRestoreState.py for an example.
2017-12-30 14:19:13 -08:00
erwincoumans
29aa9cb789 Bullet bump up to version 2.88
add preliminary support to import btMultiBody from a .bullet file (will help save/restore state)
fix some Windows char/widechar issues
2017-11-22 18:12:02 -08:00
kwasimensah
2f58cf0d00 Fix MACROS for when BT_THREADSAFE is defined 2017-11-12 00:48:59 -05:00
kwasimensah
8aefa7e8d0 Updating Macros
Don't take away ability to do profiling on MacOS
2017-11-03 11:59:12 -04:00
kwasimensah
e03383e612 Update support for buggy android NDK
Expand logic for when __thread is supported to work around https://github.com/android-ndk/ndk/issues/8
2017-11-02 15:35:59 -04:00
Giuseppe Barbieri
b81252fbc4 Update btVector3.h 2017-10-08 10:49:20 +02:00
Giuseppe Barbieri
8755f51bec Typo 2017-10-07 16:58:38 +02:00
Luke
1360641ad9 Fix a shadow warning by renaming a parameter in btInfMaskConverter 2017-09-29 15:44:14 -05:00
Erwin Coumans
06b695e051 remove some warning ,see also Pull Request #302
bump up pybullet version
2017-09-14 08:08:24 -07:00
erwincoumans
6f51d81cbb Revert "Export targets in CMake and add include directories to target properties" 2017-09-10 21:20:54 -07:00
Markus Rickert
fbffb246fe Export targets in CMake and add include directories to target properties 2017-09-10 23:43:50 +02:00
Sam Hocevar
d8b5ebd818 Make btHashString const-correct by changing a target pointer type. 2017-09-01 20:02:58 +02:00