Commit Graph

381 Commits

Author SHA1 Message Date
Andrea Catania
960cadd919 Fix initialization order
This commit is necessary in order to fix the error that we get in godot with the flag: "-Werror=reorder"
2019-06-03 12:54:19 +02:00
Erwin Coumans
f838e22bd9 fix some warnings 2019-05-31 19:00:38 -07:00
Rémi Verschelde
d85b800702 Convert DOS (CRLF) source files to Unix (LF) line endings
Excluded `examples/pybullet/gym/pybullet_data/` which has many (3000+)
CRLF data files (obj, mtl, urdf), and `docs/pybullet_quickstart_guide`
which has generated .js and .htm files with CRLF line endings too.
2019-05-22 10:01:32 +02:00
erwincoumans
e97a7d77af only report solver analytics if enabled using setPhysicsEngineParameter(reportSolverAnalytics=1) 2019-04-14 18:20:20 -07:00
erwincoumans
5ff52e47d9 report constraint solver analytics data, currently for each island the number of solver iterations used and remaining residual error. 2019-04-11 22:19:02 -07:00
Erwin Coumans
150a6a0880 Qualify calls to certain functions from the cmath library. 2019-03-14 16:57:50 -07:00
erwincoumans
36a9dcf368 remove src/BulletDynamics/Featherstone/btMultiBodyBlockConstraintSolver.cpp and examples/ConstraintSolvers/* code
revert changes to btMultiBodyConstraintSolver/btSequentialImpulseConstraintSolver related to btMultiBodyBlockConstraintSolver
2019-02-27 17:10:17 -08:00
erwincoumans
d7e087de16 prepare small experiment with block solver 2019-02-26 23:27:05 -08:00
erwincoumans
c44471c38c preparation for block solver btRigidBody. 2019-02-26 20:24:15 -08:00
erwincoumans
126b676220 Merge pull request #2034 from erwincoumans/master
Cleaning up the issue tracked with old/out-of-date/issues that haven't been addressed for too long.
2018-12-31 12:42:41 -08:00
Erwin Coumans
6661b1ac71 internalApplyImpulse already applies the getLinearFactor, fixes Issue 71 2018-12-22 16:53:52 -08:00
erwincoumans
8bc1c8e01b Merge pull request #2030 from erwincoumans/master
some fixes in inverse dynamics, PyBullet example comparing explicit pd, stable pd control, position control (constraint)
2018-12-22 16:17:26 -08:00
erwincoumans
63ac2182ae fix degerenate case in btHingeConstraint, see Issue 2031
https://github.com/bulletphysics/bullet3/issues/2031
2018-12-22 11:19:15 -08:00
a
9160d0aee1 Tangential velocity is now added to the linear velocity when the current velocity is calculated for the calculation of the damping force in btGeneric6DofSpring2Constraint.
Better mass estimation while calculating spring forces in btGeneric6DofSpring2Constraint.
BT_6DOF_FLAGS_USE_INFINITE_ERROR flag has been removed as it's no longer needed.
2018-12-01 12:19:18 +01:00
Erwin Coumans
2d07fc1f64 ClangTidy
clang-diagnostic-shift-sign-overflow
signed shift result (0x80000000) sets the sign bit of the shift expression's type ('int') and becomes negative
2018-11-28 15:40:20 -08:00
Erwin Coumans
fbfa13894b Merge remote-tracking branch 'bp/master' 2018-11-25 12:58:22 -08:00
stolk
cec71341ad Optionally enable infinite constraint error. 2018-11-24 12:56:23 -08:00
erwincoumans
ca36a82c62 add deepmimic args file (for testing)
implement deepmimic reward function (only joint angles/velocities for now)
fix an out-of-date comment, related to contactPoint.m_lateralFrictionInitialized in btSequentialImpulseConstraintSolver.cpp
2018-11-23 18:32:23 -08:00
stolk
5dfcbe9a33 Fix issue #2000 of oscillating constraints. 2018-11-20 10:46:27 -08:00
Erwin Coumans
882252f8c0 move global from btMultiBody into dynamicsWorld.getSolverInfo 2018-11-05 10:50:03 -08: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
Erwin Coumans
61b7591b8e expose choice of contraint solver in PyBullet, with switchConstraintSolver example 2018-08-23 23:04:17 -07:00
Erwin Coumans
f0c8bbf1a1 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-07-24 15:21:12 +02:00
Erwin Coumans
f91e5c573c use the maximum square residual instead of sum 2018-07-24 15:20:34 +02:00
Erwin Coumans
7a27cb1739 body1 -> bodyA and body2 -> bodyB 2018-07-22 13:03:53 +02:00
Erwin Coumans
b5495e789d Change constraint solver threshold-based termination condition on residual of velocity threshold, not on residual of impulse threshold.
This avoids issues with systems with large mass ratios.

Test: add this to BasicDemo/BasicExample.cpp in initPhysics

	m_dynamicsWorld->getSolverInfo().m_numIterations = 1000;
	m_dynamicsWorld->getSolverInfo().m_leastSquaresResidualThreshold = 1e-4;
2018-07-22 11:30:16 +02:00
erwincoumans
cb1fce7899 revert exposing getSharedMemoryStreamBuffer / adding to command structure
use 16k rays by default
add uploadRaysToSharedMemory method
2018-06-16 08:14:00 -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
Lunkhound
4254837170 solvers: remove erroneous 'break' statement that can occur with incorrectly flagged objects; also added asserts to warn when incorrectly flagged objects are detected 2018-05-12 19:54:39 -07:00
Lunkhound
8d5cd1c324 constraint solvers: fix crash for collision-bodies with incorrect flags 2018-05-11 17:47:08 -07:00
Lunkhound
ded33f3e7e parallel solver: remove bad assert 2018-05-06 23:39:01 -07:00
erwincoumans
391b0e4061 Merge pull request #1588 from GaborPuhr/Fix-#1582
Fix for #1582
2018-04-12 13:32:51 -07: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
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
erwincoumans
8ff75e11cd fixes related to torsional friction, due to recent cone friction update. 2017-11-28 20:09:56 -08: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
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
Lunkhound
e9ec5044d1 SequentialImpulseConstraintSolver: fix bugs with SOLVER_SIMD flag 2017-06-10 04:33:40 -07:00
Erwin Coumans
b645963879 expose pybullet changeDynamics(spinningFriction=..., rollingFriction=..., restitution=...)
Bullet C-API b3ChangeDynamicsInfoSetSpinningFriction/RollingFriction/Resitution
b3PhysicsParamSetRestitutionVelocityThreshold, / pybullet.setPhysicsEngineParameter restitutionVelocityThreshold:
if the velocity is below this threshhold, the restitution is zero (this prevents energy buildup at near-resting state)
pybullet restitution.py example.
2017-05-26 18:14:38 -07:00
Andrew Meadows
81758bf1b3 'powered' is bool not int 2017-05-12 15:47:03 -07:00
Andrew Meadows
4a1c682c3c fix typo: Velosity-->Velocity 2017-05-12 15:46:01 -07:00
Erwin Coumans
fc6fb7b14c initialize values (padding etc) help asan/msan tests 2017-05-09 18:00:28 -07:00
Gregery Barton
72b0b76b64 getSolveSwingLimit() returns wrong value
Should return m_solveSwingLimit instead of m_solveTwistLimit
2017-05-06 11:45:26 +10:00