Commit Graph
552 Commits
Author SHA1 Message Date
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
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 https://github.com/ros/urdfdom_headers/blob/e7e0972a4617b8a5df7a274ea3ba3b92e3895a35/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
erwincoumans 457312f94f fix leak in loadSDF in case of visuals with duplicate/identical names that have a material.
fix GUI performance issue on Mac OSX
fix issue introduced in previous commit (in btConvexHullComputer.cpp)
2017-08-11 17:14:52 -07:00
Erwin Coumans c67a70cb09 compile fixes 2017-07-29 13:40:03 +02:00
Erwin Coumans dd3d55610b fixes in pybullet.loadTexture, changeVisualShape replacing texture.
(also works for OpenGL3 renderer now)
2017-06-30 13:35:07 -07:00
erwincoumans 7b56db9f97 fix compile issue/warning 2017-06-06 06:59:41 -07:00
Lunkhound 0fc3ce69e9 fix thread index going out of range bug 2017-06-03 18:03:59 -07:00
Lunkhound 34e2c1b784 add profiling info 2017-05-29 23:53:35 -07:00