Commit Graph

76 Commits

Author SHA1 Message Date
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
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
=
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
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
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
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
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
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
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
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
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
=
cac50c1a8e remove a few warnings, fix GLInstancingRenderer::drawLines 2014-07-29 11:08:09 -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
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
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
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
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
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