Commit Graph

714 Commits

Author SHA1 Message Date
erwincoumans
a15eb3035e default gains 1 -> 0.1 2016-06-24 11:12:19 -07:00
Erwin Coumans
c17c39c2c9 move PD control from PhysicsServerCommandProcessor into btMultiBodyJointMotor
improvements/changes in pybullet API
2016-06-24 11:06:56 -07:00
Erwin Coumans
53a0772257 fix some issues related to controlling a robot/multibody beyond body index 0
(most testing happened with a single robot/multibody so far)
preliminary pybullet.setJointControl implementation
2016-06-16 18:46:34 -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
59b32b7af1 re-enable command log and playback in physics server
report applied motor torque in physics server
2016-04-08 18:17:17 -07:00
erwincoumans
fe92de3e50 add infrastructure float btMultiBodyLink m_jointDamping, m_jointFriction (actual damping/friction is in a separate commit)
add door.urdf for testing damping/friction
2016-03-17 14:54:46 -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
46ddfa39d7 remove unused function in btRigidBody (btSetCrossMatrixMinus)
thanks to Stefan for reporting.
2015-12-08 07:54:19 -08:00
Andrew Meadows
c0c1691c25 fix whitespace formatting in cmake files 2015-12-07 14:08:04 -08:00
Erwin Coumans
5da9e37a05 add BT_DECLARE_ALIGNED_ALLOCATOR() for btTypedConstraint 2015-11-26 12:43:10 -08:00
Erwin Coumans
f6a8079353 sync repo 2015-11-11 12:44:26 -08:00
erwincoumans
3b9b803683 b3CreateBoxCommandSetColorRGBA: allow to specify color when creating bodies through shared memory API
Parse and use colors from URDF file (single rgba color per link, not per visual)
Rename btMultiBody 'stepVelocities' to 'computeAccelerationsArticulatedBodyAlgorithmMultiDof'
btHashMap, add const Value* operator[]
remove a few more obsolete btMultiBody methods (on the non-multi-dof path)
fix spelling typo in fillConstraintJacobianMultiDof (fil -> fill)
Add mention to Jakub Stepien for his work on btMultiBody
2015-11-06 17:11:15 -08:00
erwincoumans
2920d7e61f Only support btMultiBody multi-dof version (remove non-multi-dof path)
Use ATTRIBUTE_ALIGNED16 for btMultiBody
Always disable parentCollision for btMultiBody::setupFixed
2015-11-05 21:17:46 -08:00
erwincoumans
cb13054f2e Merge pull request #465 from cameronwhite/conetwist-motor
Use the max motor impulse for cone twist constraints when the motor is enabled.
2015-09-10 18:08:19 -07:00
=
3d10338ed5 fix warnings (thanks to Aaron!) 2015-09-10 17:52:41 -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
=
eb6663ed4b further work on shared memory API
fix dependency of BulletDynamics to Bullet3Common (b3Printf)
2015-08-02 14:00:43 -07:00
Erwin Coumans
26531f3fbc fix some warnings, disable gimpact by default in world importer,
use DIRECTLY_UPDATE_VELOCITY_DURING_SOLVER_ITERATIONS by default for now,
until we find the issue with some failing test cases in btMultiBody
fix a crashing issue in MyMultiBodyCreator.cpp (uninitialized variable)
disable excessive debug printf in URDF2Bullet
2015-07-27 13:28:47 -07:00
Erwin Coumans
8e163c984d allow to control of powered joints after loading a URDF file, through shared memory
more refactor of shared memory joint control API
2015-07-20 23:35:29 -07:00
Erwin Coumans
7698d5f95c fix some out-of-date comments in btMultiBody, thanks to Thomas Buschmann
disable disactivation for btRigidBody in import urdf demo, increase strength of joint motor for btMultiBody
2015-07-15 17:39:43 -07:00
=
1b9eedd026 make btMultiBody destructor virtual (public github commit) 2015-07-12 14:56:47 -07:00
erwincoumans
6c9ce344ea fix shadowmap crash on some Intel GPUs, see https://github.com/bulletphysics/bullet3/issues/4
remove targetdir from all libraries in premake, so it is much easier to create a separate folder for all binary+lib
transmit the serialized btMultiBody data back from server to client, after the server loads a URDF file. This includes base+link+joint names
tweak the serialization routines, so it is easier to skip pointers and to serialize directly to a shared memory buffer
also tweak the serialization code to allow to process data without 'DNA' schema data (assuming file-DNA = memory DNA)
2015-07-10 22:20:06 -07:00
erwincoumans
f6f76901fd First draft of btMultiBody serialization, including optional names for base, link and joints (see ImportURDFDemo/ImportURDFSetup.cpp how this is done)
Bump up version number to 2.84 because of new serialization data.
2015-07-09 17:36:00 -07:00
=
3431773800 expose btMultiBodyConstraint applied impulse (force) on its degree of freedom(s),
only tested for btMultiBodyJointMotor for now.
See also MultiBody/MultiBodyConstraintFeedback example
2015-07-06 23:00:46 -07:00
=
33b0d429ba apply newForceTorque.diff patch: it will allow to report
joint reaction force/torque, while using impulse-based response
for btMultiBody
2015-07-06 16:40:09 -07:00
Erwin Coumans
bc8b95dd9d remove some warnings 2015-06-26 12:59:48 -07:00
erwin coumans
3b4ad1cd5a add the option to shift the applied force/torque for a multibody joint (mobilizer) to the joint frame origin 2015-06-25 15:09:35 -07:00
Erwin Coumans
d830681674 add option for rigid body/typed constraint to set target velocity
compare joint feedback between multi body and rigid body. initial results are promising (not exactly the same, but reasonably close)
2015-06-24 23:19:00 -07:00
erwin coumans
b14afba350 more work-in-progress on joint-torque sensor sample and server/client shared memory API 2015-06-22 15:30:57 -07:00
erwin coumans
6e9eb13235 implement joint reaction forces for mobilizer motor/limit, by passing the constraint forces as 'external forces' and going through the Articulated Body Algorithm
minor refactor for forwardKinematics, store the cached world transform in each btMultiBody::link
2015-06-19 15:51:24 -07:00
erwincoumans
89edc40d61 First step in btMultiBody joint force/torque feedback. There is still some work to be done for 'mobilizer limit/motor'.
See examples/MultiBody/TestJointTorqueSetup and examples/Constraints/TestHingeTorque for joint feedback.
2015-06-19 09:18:27 -07:00
=
41aa58560b add TestHingeTorque example using btRigidBody and btHingeConstraint, setup is similar to TestJointTorque using btMultiBody and a revolute joint. 2015-06-15 23:12:29 -07:00
Erwin Coumans
02fbcd2a05 reorder initializer 2015-06-11 11:48:43 -07:00
Erwin Coumans
1a4ce475f7 fix an issue with btMultiBodyConstraint, automatically 'finalizeMultiDof' to pre-allocate jacobian data
enable joint limit for slider/prismatic joint in btMultiBody version of URDF loader
2015-06-05 11:46:53 -07: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
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
erwin coumans
05bf86d95f added LICENSE.txt and AUTHORS.txt file
add MultiBody Custom Creation example, to show how to import data from a URDF file and fill up your own data structures.
add btMultiBody::setBaseWorldTransform method
todo: fix cmake build, this patch is premake only
2015-04-23 15:41:17 -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
a883cead46 maintain backward compatibility using BT_ENABLE_GYROPSCOPIC_FORCE = BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_BODY 2015-03-30 11:58:57 -07: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
2ddd8f78c2 add option to create mp4 videos from App_AllBullet2Demos, using the
--mp4=video.mp4 note that you have to re-convert for Quicktime
ffmpeg  -f mp4 -vcodec h264 -i test.mp4 -pix_fmt yuv420p test2.mp4
add the option to display text in 3d, used in Coriolis demo
2015-03-25 14:04:26 -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
erwin coumans
5d40d90bd0 add btMultiBodyConstraint::finalizeMultiDof API: if you add multi-body constraints to a multi-dof btMultiBody, before it has been finalized using the btMultiBody::finalizeMultiDof call,
then you have to manually call the btMultiBodyConstraint::finalizeMultiDof for all multi-dof multi body constraints.
2015-03-03 13:24:06 -08:00
Erwin Coumans
193e680790 _N -> n, _C -> c, _L ->l, some collision with a standard C++ header? 2015-02-20 13:51:24 -08:00
Erwin Coumans
4e02f6673b fix a bug related to gyroscopic forces in btMultiBody 2015-02-13 18:27:01 -08:00
=
27aa959059 fix some btMultiBody URDF conversion issues in ImportURDFSetup
remove various vertex format structures and use GLInstanceVertex from #include "OpenGLWindow/GLInstanceGraphicsShape.h"
btMultiBody::setupPrismatic takes an additional argument to allow a shift of inertia tensor, relative to the joint frame (link frame at q=0)
2015-02-12 09:11:55 -08:00
erwincoumans
76b80ca71b Merge pull request #309 from erwincoumans/master
minor fixes (GL2, preSwapFileNameOut), improved URDF/btMultiBody (work in progress), basic debug drawing for btMultiBody
2015-01-27 13:33:37 -08:00
erwincoumans
bd16df8dd6 add basic debug drawing interface for btMultiBodyPoint2Point constraint
add basic debug drawing drawText3D in SimpleOpenGL3App
remove a few warnings
add drawTexturedRect3D to GLPrimitiveRenderer to support debug drawing
2015-01-27 10:45:56 -08:00
erwincoumans
a159fbac69 Improved URDF support for btMultiBody and separate graphics/collision/inertial frames and shapes
Fix WinXP GetTickCount64 with a typedef
Expose debug drawing mode/flags in UI (hot keys A,D,L,W for now, buttons later)
GLInstancingRenderer: tweak near/far planes to allow closer approach of camera
btDiscreteDynamicsWorld: enable debug drawing for btGeneric6DofSpring2Constraint
btMultiBodyDynamicsWorld: enable basic debug drawing for btMultiBody
btMultibody: allow center-of-mass shift for prismatic and fixed constraint
2015-01-22 17:56:24 -08:00
Rhody Lugo
2118ade465 Stop adding motion in the kinematic character controller if the walk direction is near zero 2014-12-12 10:31:23 -04:30
erwin coumans
cf2b4e03b5 fix a problem in the btMultiBodyConstraint related to self-collision, see also
https://github.com/bulletphysics/bullet3/issues/290
2014-12-09 16:57:21 -08:00
erwin coumans
1baf2e5cc6 add support to btHingeConstraint to set/get ERP, example use:
hinge->setParam(BT_CONSTRAINT_ERP,0.5);
btScalar erp = hinge->getParam(BT_CONSTRAINT_ERP);
Also, preliminary support for status bar messages in demo framework.
2014-10-17 13:05:53 -07:00
erwincoumans
89aeae9102 Add serialization support for btGeneric6DofSpring2Constraint
Attempt to re-order serialization data so it can be serialized in-memory (for deep copy)
2014-09-16 09:22:35 -07:00
Erwin Coumans
a26f9c1871 premake: use *.cpp insteadl of **.cpp 2014-09-05 11:22:25 -07:00
erwin coumans
bc5e2b3d50 fix compile issue 2014-08-28 18:47:22 -07:00
erwin coumans
89addd438e add 'fixed' joint for btMultiBody
improve btMultiBody version of URDF reader (still work-in-progress)
enabled planar joint for btMultiBody (untested)
enable loading from relative path for .stl meshes
2014-08-28 18:42:08 -07:00
Erwin Coumans
6cbf89905f move the clearForceAndTorque to after the stepVelocities,
see also https://github.com/bulletphysics/bullet3/pull/221
todo: create test
2014-08-25 08:48:45 -07:00
Erwin Coumans
95f207e786 fix another warning 2014-08-22 11:51:22 -07:00
Erwin Coumans
af5883c6e8 remove a lot of warnings (more todo in demos and serialization code) 2014-08-22 10:29:05 -07:00
Erwin Coumans
d4e4fdc2c5 fix Linux and Cmake build 2014-08-20 16:48:46 -07:00
Erwin Coumans
7b28e86c7b add improved btGeneric6DofSpring2Constraint, thanks to Puhr Gabor and Tamas Umenhoffer!
improved the new demo testbed (work-in-progress)
add basic Lua demo, import URDF test, STL import, obj import
2014-08-20 16:28:16 -07:00
Erwin Coumans
1d00d91707 add btHingeAccumulatedAngleConstraint derived from btHingeConstraint,
that exposes a new method getAccumulatedHingeAngle
See also https://github.com/bulletphysics/bullet3/issues/42
2014-07-30 16:13:34 -07:00
=
cac50c1a8e remove a few warnings, fix GLInstancingRenderer::drawLines 2014-07-29 11:08:09 -07:00
Erwin Coumans
791b5149f6 prepare to re-enable Gwen user interface (OpenGL_DebugFont) for OpenGL2.x
prepare to add improved btGeneric6DofSpringConstraint
2014-06-30 12:09:59 -07:00
erwincoumans
2601932249 fix issue related to addConstraint/removeConstraint, introduced by filtering collision between two particular bodies
https://github.com/bulletphysics/bullet3/issues/173
2014-05-17 14:24:22 -07:00
Erwin Coumans
08369dbd0a fix uninitialized data in btMultiBodyPoint2Point, thanks to Valgrind
valgrind --track-origins=yes  --log-file="dump_valgrind.txt" ./App_AllBullet2Demos_codeblocks_x64_debug
2014-05-16 11:56:43 -07:00
Erwin Coumans
efd3157d1f only compile Bullet 3 if desired (with CMake)
remove empty namespace
2014-05-07 10:19:27 -07:00
Erwin Coumans
e279aed08f re-enable the fix for broken friction in Clang (got accidently undone in a recent commit)
fix OSX build
2014-05-03 10:11:49 -07:00
erwincoumans
0e1a77047c fix Linux build 2014-05-03 02:50:09 -07:00
Erwin Coumans
66ab2a2022 fix OSX build 2014-05-03 08:48:46 -07:00
erwincoumans
0b6d1af1d4 Only enable SSE4 for Visual Studio 2012 or later (_MSC_FULL_VER >= 170050727), it breaks the build for Visual Studio 2010
Add additional constructor for btMultiBodyJointMotor
2014-05-01 22:23:37 -07:00
Erwin Coumans
0e1b90d708 Added SSE4/FMA optimized constraint row solver implementation for btSequentialImpulseConstraintSolver,
thanks to Vladimir Bondarev (https://github.com/VladimirBondarev/bullet3/tree/c25d)
2014-05-01 17:13:50 -07:00
Erwin Coumans
7151865c16 Introduce kF_UseGjkConvexCastRaytest, and make kF_UseSubSimplexConvexCastRaytest the default for btCollisionWorld::rayTest See https://github.com/bulletphysics/bullet3/issues/34
Add btCollisionObject::setIgnoreCollisionCheck to disable collisions between specific instances, without having a btTypedConstraint. See https://github.com/bulletphysics/bullet3/issues/165

Make btMultiBody and btMultiBodyJointMotor backwards compatible with Bullet 2.82 API (single-DOF API)
2014-05-01 13:51:56 -07:00
Erwin Coumans
907ac49892 work-around what appears to be a bug in Clang 3.4. Todo: create a small repro case for Clang/LLVM or see if they already fixed it. 2014-04-29 11:44:52 -07:00
Erwin Coumans
35c916f487 add CMake support for AppAllBullet2Demos demo. See also https://github.com/bulletphysics/bullet3/issues/43 2014-03-24 13:18:24 -07:00
Erwin Coumans
cfb06f9cd3 make GLUT optional in cmake
fix for btMultiBody to avoid extreme energy gain
2014-03-17 23:58:03 -07:00
erwin coumans
d485f2b272 btMultiBodyConstraintSolver writes back the applied impulse for contact points
(added some debugging output for this in the demos, commented-out by default)
2014-02-24 16:55:54 -08:00
erwin coumans
dfa738c13a Properly propagate the applied impulse for the MLCP solvers, so it will be available for contact and non-contact constraints.
Use real-time clock in AllBullet2Demos, rather than hard-coded 1./60.
2014-02-24 13:24:49 -08:00
erwincoumans
122ceacb6d move OpenCL initialization for the unit tests in a shared header file, and support some basic command-line arguments
--cl_device=1 --cl_platform=1 --allow_opencl_cpu
add chaindemo, test for mass ratios
restore sleeping/activation mode in featherstone demo
Use _VARIADIC_MAX=10 to avoid Google Test issues with Visual Studio 2012, thanks to Mobeen for the report
Enable verbose printf for unit tests
2014-02-11 10:33:00 -08:00
erwincoumans
51036713f0 Initialize 64bit user pointer, thanks to AndresTraks
See https://github.com/erwincoumans/bullet3/issues/33
2014-01-29 05:47:45 -08:00
Erwin Coumans
7e4b1c1c8a add MultiDofDemo (Featherstone 3DOF spherical joint)
minor prettify of BasicDemo,RagdollDemo.
require 'multiDof' argument in btMultiBody.h (not default=false)
2014-01-10 16:34:39 -08:00
kubas
876293ac95 minor: replaced convenience lambda functions 2014-01-09 01:15:51 +01:00
kubas
aa87e47d2d preparing for stabilization investigation: useRK4 is now a btMultiBody flag (not world's), reenabled global velocities (as a flag-controlled option), made the test application easier to handle for multiple multibodiez and added a max coordinate multibody (created from btMultiBody) 2014-01-09 01:14:48 +01:00
kubas
2cbcd86de9 fixed a btMultiBody ctor bug 2014-01-09 01:13:22 +01:00
kubas
cbf2d915d1 fixed the multibody jitter issue + several friction-related fixes 2014-01-09 01:12:02 +01:00
kubas
736ba01423 minor clean-up 2014-01-09 01:10:45 +01:00
kubas
ef6abf6490 unified btMultiBodyConstrained::fillMultiBodyConstraint..(...) mtds + cleaned some of the earlier dirty changes (6DoF grabbing constraint stuff mainly) 2014-01-09 01:09:44 +01:00
kubas
0ba7d69f86 fixed a jacobian sizing bug (m_jacSizeBoth) 2014-01-09 01:07:53 +01:00
kubas
eb66b22034 dirty commit: starting to unify btMultiBoydConstraint::fillMultiBodyConstraint..(..) 2014-01-09 01:06:58 +01:00
kubas
87a98939eb tighter packing in btMultiBodySolverConstraint 2014-01-09 01:04:39 +01:00
kubas
81447aa7c5 dirty commit: experimenting with the 6DoF grabbing/p2p constraint 2014-01-09 01:03:20 +01:00
kubas
c0530d31ec minor naming chamge 2014-01-09 01:02:11 +01:00
kubas
66fdc1704b RK4 for floating systems too 2014-01-09 01:01:03 +01:00
kubas
c5594a5826 a bit of rk4 clean-up 2014-01-09 00:59:48 +01:00
kubas
4eac9a11f3 made the multiDof-singleDof disctinction a bit cleaner 2014-01-09 00:58:31 +01:00
kubas
e5372f3712 first experiments with RK4 2014-01-09 00:56:46 +01:00
kubas
cb556f9525 dirty changes - stabilization hacks 2014-01-09 00:51:42 +01:00
kubas
96ff69276f multidof4 patch 2014-01-09 00:26:24 +01:00
erwin coumans
69e5454d18 Add the old Bullet 2.x obsolete demos, and CMake buildsystem files, and gradually move them to newer Bullet 3.x structure
Use statically linked freeglut, instead of dynamic glut for the obsolete Bullet 2.x demos
Add the 'reset' method to b3GpuDynamicsWorld, and use it in the BasicGpuDemo (pretty slow in debug mode, use release mode)
Don't crash in btCollisionWorld, if there is no collision dispatcher
2013-12-19 12:40:59 -08:00
erwincoumans
fca6d11381 created new Bullet 2 CPU BasicDemo, using the OpenGL 3 rendering. I will add picking soon. Hold ctrl/alt + mouse to move/zoom camera
remove reference to btGImpact (it is removed now)
2013-12-06 17:48:58 -08:00
Erwin Coumans
f06312c632 remove most clutter (todo) 2013-12-06 15:29:13 -07:00
erwin.coumans@gmail.com
d48e2c717c fix rotation correction in btFixedConstraint, see Issue 769 2013-12-04 19:06:28 +00:00
erwin.coumans@gmail.com
439ab03940 fix Mac OSX build (there is no such member called e.m128_f32[0] 2013-11-03 19:55:08 +00:00
erwin.coumans@gmail.com
218d4d1394 use a separate default cfm for the MLCP solver, it is a very sensitive value for Dantzig (and Lemke) 2013-10-31 16:52:32 +00:00
erwin.coumans@gmail.com
644d01d231 added the btNNCGConstraintSolver, based on the paper "Nonsmooth Nonlinear Conjugate Gradient Method for interactive
contact force problems". The solver needs a lot of iterations, before the quality goes up (~ 1000)
Thanks to Gabor PUHR for the contribution!
Improved the btLemkeSolver.
Remove the sparse optimizations from the btMatrixX.h, replace it with explicit call to rowComputeNonZeroElements (only used in the btSolveProjectedGaussSeidel), it was likely slowing things down, without being useful.
Re-enable SIMD in the solver (was accidently disabled in Bullet 2.82 release)
2013-10-31 06:17:08 +00:00
erwin.coumans@gmail.com
6ca948e22f make Lemke work with lower/upper bounds, using the BLCP to LCP conversion (using a dog-slow matrix inversion etc)
for this conversion, see also https://github.com/erwincoumans/num4lcp/blob/master/matlab/test_lcp_bounds.m and
appendix A1 in http://www.cs.duke.edu/~parr/nips10.pdf, thanks to Kenny Erleben and Evan Drumwright for the tips!
(friction is not coupled to normal forces yet)
2013-10-30 00:02:13 +00:00
erwin.coumans
1a2c3c0ee9 Added a Lemke MLCP solver, extracted from the MBSim project, and re-licensed under the zlib license
with permission of the original author. 
The Lemke implementation is not fully working yet:
1) we need to convert the lo-high LCP problem into a problem without the lo/high
2) we need to sort out the remaining instabilities, and report a failure if the max loopcount is reached etc.
We replaced the fmatvec library with our own LinearMath/btMatrixX.h, and STL std::vector with btAlignedObjectArray

Removed some warnings/potential issues: use fuzzyZero instead of isZero, and some warnings, 
related to this issue 756
2013-10-26 18:45:25 +00:00
erwin.coumans@gmail.com
19f999ac08 fix double precision, and remove alloca
increase mass of the load, to show benefits of direct MLCP solver
move damping back to original location
2013-10-24 18:31:27 +00:00
erwin.coumans@gmail.com
f5320e4106 add "latency motion state interpolation", using previous frame/current, instead of current->next
See Demos/ForkLiftDemo for example (F7 to toggle, use single-frame stepping, press 'i' and 's' to see the effect)
2013-10-24 00:13:43 +00:00
erwin.coumans@gmail.com
a1c962192c Allow the ForkLiftDemo to toggle between MLCP and SI solver, using F6 key.
Apply patch for CMake config, see Issue 754 (Issue 753)
Fix a few issue with the MLCP solver: allow split impulse, and fix offset in friction dependencies
2013-10-23 23:35:13 +00:00
erwin.coumans
0024c87316 move the m_maxAppliedImpulse into base class, and use it for motor strength/point to point constraint strength 2013-10-22 21:49:52 +00:00
erwin.coumans
f22ceecb82 Fix Featherstone btMultiBodyPoint2Point constraint and picking: don't assume body 0 is the fixed body! 2013-10-22 21:06:47 +00:00
erwin.coumans@gmail.com
cf7f5436e4 apply CMake patch in Issue 748
thanks to Julien Schueller for the contribution!
2013-10-22 18:34:17 +00:00
erwin.coumans@gmail.com
23f612bbb5 fix Linux build
by default, only enable 64bit build when using ./premake4_linux64 and only 32bit build when using ./premake4_linux
remove some warning
2013-10-22 18:10:45 +00:00
erwin.coumans@gmail.com
a21480c8ca Attempt to fix "Regression in friction and damping behaviour" , see issue 752
Thanks to Sergej Reich for the report and narrowing down the breaking revision!
2013-10-22 09:26:08 +00:00
erwin.coumans@gmail.com
5e372d6ac5 fix compile errors 2013-10-21 23:33:01 +00:00
erwin.coumans@gmail.com
379f0079e0 Added Dantzig MLCP solver option from Open Dynamics Engine (trying to avoid naming/linking conflicts in case ODE and Bullet is used together)
If an MLCP solver fails, use PGS/SI fallback, add a boolean return value for 'solve' method
2013-10-21 23:27:09 +00:00
erwin.coumans@gmail.com
1ca0493dc4 Build full A matrix and b vector for a MLCP solver interface, to explore Lemke, Dantzig, Newton and other MLCP solvers. The A matrix contains sparsity information.
Added a PGS solver that uses the sparsity of the A matrix, just for testing (the equivalent sequential impulse solver is much faster, not having to allocate the big matrices)
2013-10-20 17:38:14 +00:00
erwin.coumans@gmail.com
d4640227ce add option to disable btMultiBody self-collision (for the entire hierarchy) or to disable parent-child collision for jointed links. 2013-10-08 00:50:40 +00:00
erwin.coumans@gmail.com
34d975143e expose maximum applied impulse for btMultiBody, introduced to reduce/avoid 'exploding' simulations
use btScalar instead of float, to enable double precision build, fix for Issue 744
2013-10-06 17:13:08 +00:00
erwin.coumans@gmail.com
488dd44835 Added btMultiBodyPoint2Point, it can be used between btMultiBody vs btMultiBody or btMultiBody vs btRigidBody
Allow picking of btMultiBody, using a btMultiBodyPoint2Point constraint, with limited strength to avoid adding too much energy to the system (= blowup)
Add btMultiBodyJointMotor, it can be used in combination with joint limit (just add the joint limit after the motor, to avoid jitter)
2013-10-05 01:46:32 +00:00
erwin.coumans@gmail.com
2fb686b937 change btMultiBody to allow removal/changing of links
(still not easy to modify the link structure of a btMultiBody -> You have to manually re-link parents, copying links around etc)
2013-10-03 05:13:41 +00:00
erwin.coumans@gmail.com
88b8ae552b add a btFixedConstraint with toggle between btGeneric6DofConsraint and btFixedConstraint in VoronoiFractureDemo 2013-10-02 21:50:50 +00:00
erwin.coumans
75f17509cc Add a virtual createConstraintRows method, to easier experiment with different kinds of btMultiBodyConstraint 2013-10-02 21:38:40 +00:00
erwin.coumans
c2bece5280 Enable btMultiBodyJointLimitConstraint, seems to be working for the prismatic joint
Fix case sensitive issue, thanks to Martin Felis
Fix crash/bug in btMultiBodyConstraint computation
2013-10-02 20:14:48 +00:00
erwin.coumans
36cfbd47a6 preparation for joint limit constraint for Featherstone btMultiBody 2013-10-02 06:25:20 +00:00
erwin.coumans
d8b6a02a7a Fix some crashes in FeatherstoneMultiBodyDemo, when using a fixed base
Create two btMultiBody, one fixed and one free base
Preparation towards btMultiBodyConstraint
2013-10-02 03:07:52 +00:00
erwin.coumans
f02dd51597 Added a first version of a Featherstone multi body implementation.
The original version was written by Stephen Thompson.
I replaced Eigen math by Bullet LinearMath, and added a dedicated 6x6 matrix solver. 
Also I integrated support for collisions/contact constraints between btMultiBody and btRigidBody, and de-activation support.
See Demos/FeatherstoneMultiBodyDemo/Win32FeatherstoneMultiBodyDemo.cpp for example usage.
There is currently only support for contact constraints for btMultiBody. 
Next on the list will be adding support for joint limit constraint for btMultiBody. 
The implementation is still experimental/untested, the quality will improve in upcoming Bullet releases.
2013-10-01 22:50:31 +00:00
erwin.coumans
7292867d25 applied character controller patch, not tested (allow community to develop btKinematicCharacterController.cpp) 2013-10-01 17:35:45 +00:00
erwin.coumans
126fd06ac6 remove the 'isActive' test when merging simulation islands for constraints and speculative contacts, it is wrong
This fixes issue 709
2013-09-16 17:25:05 +00:00
erwin.coumans
c28652de37 add serialization for btGearConstraint
support 'linearFactor' and 'angularFactor' for btRigidBody world importer
2013-09-14 17:51:09 +00:00
erwin.coumans
6fd4738a9e use the old data structures for single precision serialization, to make it backwards compatible
So files created by the new double precision serialization of Bullet 2.82 cannot be read by old Bullet versions,
but double precision serialized file generated by older Bullet versions can be read by Bullet 2.82 or newer.
2013-09-14 16:49:31 +00:00
erwin.coumans
e22a11c021 update serialization structures 2013-09-14 06:22:22 +00:00
erwin.coumans
1aac33f6b6 refactor constraint serialization, so that double precision is maintained,
changes are backwards compatible (btBulletWorldImporter can load old .bullet files)
but not forwards compatible (constraints in new .bullet files are ignored/unrecognized by old Bullet SDK)
This commit is for Issue 734. Some more work needs to be done for btGImpactMeshShapeDoubleData and thus btStridingMeshInterfaceDoubleData and btMeshPartDoubleData
2013-09-14 06:08:50 +00:00
erwin.coumans
e94a2137b0 minor update manual
fix vehicle demo (heightfield is broken, when using very large scaling factor)
add btConeShape serialization, see Issue 725
add btGearConstraint get/set, see Issue 685 and Issue 671
2013-09-13 16:34:39 +00:00
erwin.coumans
c160bfe74c applied Character controller patch #20 from Issue 198
See https://code.google.com/p/bullet/issues/detail?id=198
2013-09-10 20:40:42 +00:00
erwin.coumans
197e17780a replace 'float' by 'double' in btHingeConstraintDoubleData. See Issue 734 2013-09-03 16:46:18 +00:00
erwincoumans
7f29aebaa4 fix broken force feedback in constraint solver, thanks to John Hsu for the report 2013-08-21 23:00:17 +00:00
erwin.coumans@gmail.com
4ed87140fc add an update revision, to make it easier to sync with Bullet 3.x
add set/getUserindex in addition to set/getUserPointer
2013-06-19 01:00:42 +00:00