Commit Graph

761 Commits

Author SHA1 Message Date
Lunkhound
ded33f3e7e parallel solver: remove bad assert 2018-05-06 23:39:01 -07:00
Teemu Patana
cfa3a6d2aa Fixed a collision check bug with CCD 2018-05-02 20:22:12 +03:00
Erwin Coumans
988d78cb61 enable btMultiBodyGearConstraint positional error correction
fix multibody debug drawing of joint frames
2018-05-01 17:40:26 -07:00
erwincoumans
391b0e4061 Merge pull request #1588 from GaborPuhr/Fix-#1582
Fix for #1582
2018-04-12 13:32:51 -07:00
Ju-Hyung Lee
00affd62ac Fix to support different kind of wheel axis 2018-04-04 12:31:52 +09:00
Erwin Coumans
6856334d48 fixes: make argument names in header and cpp the same 2018-03-27 16:54:41 -07:00
erwincoumans
fafa939d33 Merge pull request #1579 from lunkhound/parallel-solver-wip3
Multithreaded constraint solver
2018-03-26 17:11:05 -07:00
Lunkhound
e526e48df8 parallel solver: slightly overallocate to reduce how often allocation is needed 2018-03-13 04:19:02 -07:00
Lunkhound
eec478709a parallel solver: small tweaks and fixes 2018-03-06 02:43:59 -08:00
Lunkhound
45fd4acf6e dynamicsWorldMt: make island mgr aware of whether a parallel solver is present and make handoff from parallel solver to solver-pool more explicit 2018-03-05 20:05:38 -08:00
a
86ca7dc2d1 Fix for #1567 2018-03-05 23:25:25 +01:00
a
2348c6ba0a Fix for #1582 2018-03-05 23:05:22 +01:00
Lunkhound
06690e542b fix compile error for GCC 2018-02-27 00:30:45 -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
CuriousRubick
ecfdd07f19 early break if single object sleeping 2018-01-26 10:31:00 -06:00
erwincoumans
9ffb05eb3b fix double->float issue by cast, fixes issue #1510
fix possible out-of-bounds access in btMultiBody
2018-01-15 11:59:00 -08:00
erwincoumans
22b4809891 leave m_useGlobalVelocities to false, until enabled, for backward compatibility
use URDF_GLOBAL_VELOCITIES_MB flag in PyBullet loadURDF.
fix robot_bases.py due to new fields in getJointInfo.
backward compabitibility: BulletMJCFImporter, keep creating btMultiSphereShape for MJCF capsules with fromto, instead of shifted btCapsuleShapeZ, unless if CUF_USE_IMPLICIT_CYLINDER is used.
2018-01-10 11:16:50 -08: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
c59a3763e5 tweak ImportMJCFSetup.cpp example MJCF humanoid a bit, clamp target positions to be within joint limits to avoid solver problems (conflicting constraints)
add humanoid_manual_control.py PyBullet example which is similar to ImportMJCFSetup.cpp
2018-01-04 13:14:11 -08:00
Erwin Coumans
4084c1cc71 also add serializeContactManifolds to btSoftMultiBodyDynamicsWorld.cpp and btDiscreteDynamicsWorld. 2017-12-30 14:20:20 -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
5ab6a0ad43 Fix issue with cone friction, we had to accumulate squared residual, not just residual.
This fixes issue 1473, thanks to Avik De for reporting the issue.
2017-12-14 10:51:43 -08:00
Erwin Coumans
8c0913d96b Merge remote-tracking branch 'bp/master' 2017-12-01 10:25:43 -08:00
Erwin Coumans
c556ad651d expose pybullet 'enableConeFriction' to switch between pyramid and cone friction model. 2017-12-01 10:07:07 -08:00
Erwin Coumans
e1df1534f3 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-11-30 13:11:39 -08:00
erwincoumans
aa82003174 Update btMultiBodyConstraintSolver.h 2017-11-29 10:53:29 -08:00
erwincoumans
8ff75e11cd fixes related to torsional friction, due to recent cone friction update. 2017-11-28 20:09:56 -08:00
Erwin Coumans
b031ba0333 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-11-28 11:52:07 -08:00
erwincoumans
e6e3da11e5 Implement true implicit friction cone, instead of friction pyramid, for btMultiBody vs btMultiBody and btMultiBody vs btRigidBody
See data/sphere_small_zeroinertia.urdf for an example.
2017-11-23 17:38:23 -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
Erwin Coumans
13f0c1ad8b Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-11-10 16:36:22 -08:00
erwincoumans
d6b3f735b6 fix a bug related to joint reaction forces (clearMultiBodyConstraintForces was clearing forces after they were computed in some cases) 2017-11-09 10:46:13 -08:00
Erwin Coumans
378020f864 divide by numWheelsOnGround, see hiker/https://github.com/bulletphysics/bullet3/issues/1400 2017-11-07 19:41:14 -08:00
Erwin Coumans
344005a8f0 catch invalid mass/inertia instead of division by zero/nan. also, avoid indexing <0 2017-11-07 19:25:14 -08:00
Erwin Coumans
32312e60a8 Merge remote-tracking branch 'bp/master' 2017-10-29 12:28:00 -07:00
d3x0r
88b49947b5 Composite of fixed code for mingw64(on windows) and general fixes for msvc.
1) (win32window) don't convert char to wide, use char direct to window.
2) (CMakeLists) Don't link one library as static CPPLIB and no others (mismatched allocations)
3) (macros) Fix Gwen macros for mingw64 on windows build.  (changes are by compiler(msc_ver) not platform)
4) (FileUtils) sprintf_s reference by platform, not compiler (mingw64 support)
5) (b3OpenCLUtils) fix bad define name _MSVC_VER->_MSC_VER
6) (compoundCollision) remove unused variables, simplify operation.
7) (impulseconstraint) remove duplicated code block
2017-10-28 14:42:38 -07:00
Erwin Coumans
a5a73ba0d8 fix for issue 1400
use default output name for VHACD test binary
2017-10-26 08:11:58 -07:00
erwincoumans
931cee06fc Merge pull request #1388 from ShFil119/master
Fix jump(without argument)
2017-10-24 00:31:13 +00:00
erwincoumans
a50a20ab9f Merge pull request #1383 from AndreaCatania/master
Customize restitution and friction
2017-10-23 21:00:18 +00:00
Erwin Coumans
c480fab9a0 make btMultiBodyFixedConstraint.cpp linear/angular constraint frame consistent 2017-10-18 19:47:32 -07:00
Filip Gawin
250c7d4407 Fix jump(without argument)
Actually jump require btVector3,
unfortunately default argument isn't using
constructor with initialization.

http://bulletphysics.org/Bullet/BulletFull/classbtVector3.html#a82b4c5da54ecd4c91bd9b056dea0d288
2017-10-18 10:31:45 +02:00
AndreaCatania
45558fc25a Implemented callbacks to customize combining algorithm of Friction, Restitution, etc.. 2017-10-15 11:42:02 +02:00
Erwin Coumans
c21e7a8a8e fix potentially uninitialized data warning 2017-10-14 10:16:33 -07:00
erwincoumans
8a265b8af2 expose gear erp/relative position target to C-API/pybullet
finish much better C++ vrSyncPlugin, running in-the-loop with the physics at high frequency, see also vr_kuka_setup_vrSyncPlugin.py
2017-09-26 19:54:36 -07:00
erwincoumans
312e35964f make some code const correct. 2017-09-22 07:53:21 -07:00
erwincoumans
eb97e06280 fix minitaur.urdf: move lower-leg inertia to center, add missing collision for one of the motors, add contact parameters for friction_anchor, spinning friction, compliance (stiffness/damping)
fix in indexing for maximal coordinates (unused by default, still experimental, requires many iterations for Minitaur due to extreme mass-ratio, hence use of reduces/generalized coordinates)
modify quadruped.py to test maximal coordinates
wrap angular servo (positional) target within [-PI,PI] in btGeneric6DofSpring2Constraint
add 'j' key to show body frames in wireframe/debug mode
2017-09-02 01:05:42 -07:00
Lunkhound
b7f35000aa NNCG solver: apply rolling friction consistently regardless of the solver flags 2017-07-02 21:12:25 -07:00
erwincoumans
b4f21e77af Merge pull request #1206 from erwincoumans/master
Allow to create concave collision meshes. Transparency (only OpenGL 3.x renderer, not tinyrenderer/gl2)
2017-06-24 20:07:17 -07:00