Commit Graph

335 Commits

Author SHA1 Message Date
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
nicolaichuk
5527e36139 Merge remote-tracking branch 'remotes/bulletphysics/master'
# Conflicts:
#	src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.h
2017-03-23 14:28:49 +03:00
nicolaichuk
74b1044a05 move constructor for abstract class in protected 2017-03-23 14:14:14 +03:00
Erwin Coumans
0b017b0f53 fix issue with btMultiBody friction in combination with soft contacts (friction should not re-use normal contact cfm/erp)
implement friction anchors, position friction correction, disabled by default. Use colObj->setCollisionFlag(flag | CF_HAS_FRICTION_ANCHOR); See test/RobotClientAPI/SlopeFrictionMain.cpp. In URDF or SDF, add <friction_anchor/> in <contact> section of <link> to enable.
PhysicsServer: properly restore old activation state after releasing picked object
btMultiBodyConstraintSolver: disable flip/flop of contact/friction constraint solving by default (it breaks some internal flaky unit tests)
2017-03-20 10:58:07 -07:00
Szabolcs Dombi
953bc0d3e7 float to btScalar 2017-03-13 18:22:36 +01:00
Erwin Coumans
c0c4c8ba3f fix many warnings
remove btMultiSapBroadphase.*
make collisionFilterGroup/collisionFilterMark int (instead of short int)
2017-01-15 22:26:11 -08:00
Lunkhound
6d2c7b9aba constraint solver: fix bug in getOrInitSolverBody (threadsafe case only) for kinematic objects 2016-12-19 21:31:38 -08:00
Erwin Coumans
379a852f93 fix compile issues 2016-12-16 18:43:21 -08:00
Erwin Coumans
8ff1e55166 disable VERBOSE_RESIDUAL_PRINTF 2016-12-16 18:12:33 -08:00
Erwin Coumans
dcd02a1e15 add option to terminate PGS constraint solvers based on a least square residual threshold
(for example solverInfo().m_leastSquaresResidualThreshold = 1e-7 and use large m_numSolverIterations
disable sphere-sphere contact cache, it is buggy (some contact point stay in the cache, when sphere penetrates more than total margins)
tweak some gpu demo settings
2016-12-16 18:09:52 -08:00
Lunkhound
2f4ec4f8c9 collisionObject: renamed uniqueId to worldArrayIndex; removed linear search in removeCollisionObject 2016-11-12 12:41:55 -08:00
Lunkhound
1c3686ca51 MultiThreaded Demo:
- fixing various race conditions throughout (usage of static vars, etc)
 - addition of a few lightweight mutexes (which are compiled out by default)
 - slight code rearrangement in discreteDynamicsWorld to facilitate multithreading
 - PoolAllocator::allocate() can now be called when pool is full without
     crashing (null pointer returned)
 - PoolAllocator allocate and freeMemory, are OPTIONALLY threadsafe
     (default is un-threadsafe)
 - CollisionDispatcher no longer checks if the pool allocator is full
     before calling allocate(), instead it just calls allocate() and
     checks if the return is null -- this avoids a race condition
 - SequentialImpulseConstraintSolver OPTIONALLY uses different logic in
     getOrInitSolverBody() to avoid a race condition with kinematic bodies
 - addition of 2 classes which together allow simulation islands to be run
   in parallel:
    - btSimulationIslandManagerMt
    - btDiscreteDynamicsWorldMt
 - MultiThreadedDemo example in the example browser demonstrating use of
   OpenMP, Microsoft PPL, and Intel TBB
 - use multithreading for other demos
 - benchmark demo: add parallel raycasting
2016-10-30 12:47:27 -07:00
Erwin Coumans
96c1ee4256 revert default contact 'erp' (error-reduction-parameter) from 0.8 to 0.2
as it used to be.
2016-09-26 07:55:30 -07:00
Erwin Coumans
567b003654 separate spinning and rolling friction coefficients, exposed in URDF as spinning_friction / m_rolling_friction
improvements in VR demo, add grasper etc.
2016-09-16 00:57:00 +01:00
Erwin Coumans
ecd814c9c5 export contact friction/damping through URDF and API
convert from contact friction/damping to cfm/erp
btCollisionObject::setContactFrictionAndDamping
2016-09-02 16:40:56 -07:00
Erwin Coumans
e98fca1e5e implement pybullet.getContactPointData(), two optional object unique ids as filter
returns a pylist of contact points. Each point has the following data:

	0     int m_contactFlags;//unused for now
         1     int m_bodyUniqueIdA;
         2     int m_bodyUniqueIdB;
         3     int m_linkIndexA;
         4     int m_linkIndexB;
         5-6-7     double m_positionOnAInWS[3];//contact point location on object A, in world space coordinates
         8-9-10     double m_positionOnBInWS[3];//contact point location on object A, in world space coordinates
         11-12-13     double m_contactNormalOnBInWS[3];//the separating contact normal, pointing from object B towards object A
         14     double m_contactDistance;//negative number is penetration, positive is distance.

         15    double m_normalForce;
2016-09-01 18:28:39 -07:00
yunfeibai
9c4cfde3d6 Fixed constraint for btMultiBody and btRigidBody. 2016-08-15 13:19:00 -07:00
Erwin Coumans
149129826a remove unused findex from btTypedConstraint.h 2016-06-13 18:33:18 -07:00
Erwin Coumans
098e0158ea fix compile issue(s) in BT_USE_DOUBLE_PRECISION mode 2016-05-26 18:21:57 -07:00
erwin coumans
6c9bfce975 Support btMultiBody soft contact using ERP and CFM. Also support custom relaxation parameter to allow successive over relaxation.
Added demos for rigid and multi body soft (compliant) contact.
Will also add simplified Hertz compliant contact, by dynamically modifying the ERP/CFM to mimic a non-linear spring.
Note that btManifoldPoint is growing too big, we need to implement proper contact constraints derived from btTypedConstraint.
2016-02-22 18:40:00 -08:00
erwin coumans
645a88176d Enable softness for btRigidBody contacts. This is implemented by some value (CFM, constraint force mixing) to the main diagonal of A.
CFM for contacts use world CFM value by default, and can override with custom CFM value using the
BT_CONTACT_FLAG_HAS_CONTACT_CFM stored in m_contactPointFlags.
Boolean m_lateralFrictionInitialized is replaced 'BT_CONTACT_FLAG_LATERAL_FRICTION_INITIALIZED' flag stored in int m_contactPointFlags in btManifoldPoint.
Enable successive over-relaxation parameter (SOR) for contacts. btMLCPSolver uses global CFM.
In one of the next commits, contact softness will be enabled btMultiBody contacts.
Also need to review use of CFM in btMLCPSolvers (only world CFM is used at the moment)
2016-01-22 17:43:36 -08:00
Erwin Coumans
5da9e37a05 add BT_DECLARE_ALIGNED_ALLOCATOR() for btTypedConstraint 2015-11-26 12:43:10 -08:00
erwincoumans
5ded2d3ee4 Merge pull request #398 from MakoEnergy/master
Constraint Accessibility.
2015-10-27 12:01:11 -07:00
Cameron White
86880a2795 Only use the max motor impulse if it is positive (it defaults to -1). 2015-08-27 16:03:02 -04:00
Cameron White
29b251e81b Use the max motor impulse if the motor is enabled. 2015-08-04 10:54:34 -04:00
MakoEnergy
b94533d059 Added a method to retrieve the parameter flags to the btSliderConstraint. 2015-05-29 00:15:12 -05:00
MakoEnergy
2f96d050ee Added a method to retrieve the parameter flags to the btPoint2PointConstraint. 2015-05-27 21:00:30 -05:00
MakoEnergy
e48e14889c Created a few getters and setters for the btHingeConstraint. 2015-05-27 16:00:30 -05:00
MakoEnergy
ec84ce3304 Added 4 fetch methods to the 6DoF spring constraint. 2015-05-22 16:26:18 -05:00
Gabor Puhr
98e1334a64 Auto limitation of spring stiffness and damping in btGeneric6DofSpring2Constraint is now optional.
Fix: spring stiffness limitation used the mass incorrectly in btGeneric6DofSpring2Constraint.
2015-05-22 12:58:28 +02:00
MakoEnergy
26c533f02c Added 3 fetch methods and made other methods Const. 2015-05-17 16:48:53 -05:00
MakoEnergy
3bf26c8bbe Final set of fetch methods, for secondary data for the limits. 2015-05-15 16:12:31 -05:00
MakoEnergy
c30a3baad0 Added a method to retrieve the parameter flags to the btConeTwistConstraint. 2015-05-09 04:32:20 -05:00
MakoEnergy
150d0dfc02 Fixed a couple errors with my last commit.
Fixed an error where I placed the wrong brackets and fixed a styling error where I had capitalized the first letter of a function name.
2015-05-08 00:22:09 -05:00
MakoEnergy
b53106319f Created a bunch of "get" methods for the btConeTwistConstraint. 2015-05-07 23:41:19 -05:00
Erwin Coumans
59b511a14e add .bullet extension in File/Open on Mac
add importer support for FIXED_CONSTRAINT_TYPE, to be replaced by btGeneric6DofSpring2Constraint
btFixedConstraint now derives from btGeneric6DofSpring2Constraint
2015-05-03 09:23:35 -07:00
erwin coumans
a165ff54c9 fix maxLinMotorForce/maxAngMotorForce in btSliderConstraint
Thanks to Stephen Peters, see also https://github.com/bulletphysics/bullet3/pull/328
2015-04-29 11:05:00 -07:00
Erwin Coumans (Google)
84f2d5b9a0 Merge remote-tracking branch 'bp/master' 2015-04-28 20:57:41 -07:00
erwin coumans
f4b0cc85cd add Vehicles/Hinge2Vehicle demo, based on the ForkLift demo, using btHinge2Constraint with rigid body wheels
change btHinge2Constraint to derive from new btGeneric6DofSpring2Constraint
2015-04-28 18:12:49 -07:00
erwincoumans
e884511924 Merge pull request #353 from cameronwhite/fix-conetwist-nans
Fix a potential division by zero for cone twist constraints.
2015-04-22 11:44:29 -07:00
erwincoumans
794c8ec064 add BspDemo.bsp data file
add sphere2.urdf
move btSpatialAlgebra into LinearMath
remove some warnings, introduce BT_ZERO, BT_ONE, BT_HALF as defines for 0.f/0., 1.f/1., 0.5f/0.5 respectively
2015-04-16 10:17:35 -07:00
Cameron White
445dc667b3 Avoid a potential division by zero. 2015-04-06 16:56:13 -04:00
erwin coumans
cba140431e prepare to add ForkLiftDemo in App_AllBullet2Demos
rename Ewert/Catto to World/Body for implicit coriolis forces
2015-03-27 11:59:22 -07:00
Erwin Coumans
9931dd9684 remove Cooper implicit (it was just for comparison, it is buggy)
add btMatrix3x3::solve33, thanks to Erin Catto, and added safety against division by zero
2015-03-25 19:33:02 -07:00
Erwin Coumans
0a04a745dd added Erin Catto's 'local' implicit coriolis/gyroscopic force, next to 'Ewert', Cooper, explicit and none
Configured the gyroscopic demo to show the Dzhanibekov effect
see also https://www.youtube.com/watch?v=L2o9eBl_Gzw
2015-03-24 23:16:45 -07:00
erwin coumans
1e13454511 Added experimental implicit gyroscopic force implementation, one by Michael Ewert, and another by Cooper (from OpenDE)
Will also add Erin Catto's local implicit version from the GDC 2015 tutorial
Added demo for btGeneric6DofSpring2Constraint, thanks to Gabor Puhr
Add gfxBridge.autogenerateGraphicsObjects method for Bullet 2 demos in new framework (need to implement all Bullet 2 collision shape types...)
Use 1,1,1 for local scaling in btStaticPlaneShape
2015-03-24 15:55:05 -07:00
Erwin Coumans
20a270bc94 more URDF2Bullet refactor to make URDF import a little bit more re-usable 2015-03-20 13:07:25 -07:00