Commit Graph

50 Commits

Author SHA1 Message Date
Xuchen Han
3dc8abcf36 only call buildIslands once for multibody in each timestep 2019-08-02 13:15:06 -07:00
Xuchen Han
f1e7ce9ce1 add multibody interpolation transform so that collision detection is consistent with rigidbody 2019-08-02 13:15:06 -07:00
Xuchen Han
233a381e7c add correct impulse matrix to multibody-deformable contact 2019-08-02 13:15:00 -07:00
Xuchen Han
77d670ae41 separate external force solve from constraint solve and eliminate damping in external force solve 2019-08-02 13:12:41 -07:00
erwincoumans
38f45d7137 Update btMultiBodyDynamicsWorld.cpp 2019-04-27 14:16:44 -07:00
erwincoumans
a929e8f2e5 Merge pull request #2203 from erwincoumans/master
implement stablePD control version of testLaikago,  fix getCameraImage in VR,  only report solver analytics if enabled using setPhysicsEngineParameter
2019-04-15 08:52:03 -07: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
Steven
bdf0553077 don't need to call the computeAccelerationsArticulatedBodyAlgorithmMultiDof() the second pass if the m_internalNeedsJointFeedback is false. 2019-04-09 20:13:54 +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
2668b89740 fix another island issue 2018-08-26 22:25:39 -07:00
Erwin Coumans
ff43cea263 Fix some deactivation issues with btMultiBodyDynamicsWorld, should also improve performance for PyBullet with larger worlds
(even when sleeping is disabled, islands are split)
2018-08-26 16:14:36 -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
988d78cb61 enable btMultiBodyGearConstraint positional error correction
fix multibody debug drawing of joint frames
2018-05-01 17:40:26 -07: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
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
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
433d11d8cf Add a btIDEbugDraw::clearLines, helps multi-threaded rendering of lines (while updating those lines in a dynamics world in a different thread)
Expose COV_ENABLE_VR_RENDER_CONTROLLERS, to enable/disable rendering of controllers (and some frames) in VR
Expose COV_ENABLE_RENDERING to enable/disable rendering.
Fix some multi-threading issues (potential crashes), related to debug drawing/rendering in one thread, while changing the dynamics world/removing/resetSimulation in a different thread.
2017-05-16 12:19:03 -07:00
Erwin Coumans
1f64a87abe Improve ChromeTraceUtil logging, allow filename to be specified.
Expose this ChromeTraceUtil  logging to C-API: start/statelogging and submitProfileTiming
pybullet.submitProfileTiming, and STATE_LOGGING_PROFILE_TIMINGS used in startStateLogging
added example for Python profileTiming.py and C++ b3RobotSimulatorClientAPI::submitProfileTiming
2017-05-04 17:51:40 -07:00
erwincoumans
e1cfe94ac9 no special case for <=1 minimumSolverBatchSize 2017-02-01 11:20:36 -08: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
Erwin Coumans
15cda75130 add <restitution> in <contact> settings of URDF/SDF
allow 'useMaximalCoordinates' and 'useFixedBase' in pybullet.loadURDF.
enable split impulse for btRigidBody, even in btMultiBodyDynamicsWorld.
allow initialization of velocity and apply force for btRigidBody in pybullet/shared memory API.
process contact parameters in URDF also for btRigidBody (friction, restitution etc)
add pybullet.setPhysicsEngineParameter with numSolverIterations, useSplitImpulse etc.
2016-11-30 22:24:20 -08:00
Erwin Coumans
e2bdd7dbb1 fix more memory leaks, ImportURDFExample is now leak-free
eliminate all run-time memory allocation (except for mouse-pick/ray-intersection) in ImportURDFExample
2016-07-16 17:40:44 -07: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
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
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
=
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
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
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
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
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
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
e5372f3712 first experiments with RK4 2014-01-09 00:56:46 +01:00
kubas
96ff69276f multidof4 patch 2014-01-09 00:26:24 +01: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
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