Split examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.* and move to examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.cpp and examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp
- 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
add UDP network connection for physics client <-> server.
also set spinning friction in rolling friction demo (otherwise objects may keep on spinning forever)
- 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
-------------------------------------
This commit implements speeding up and slowing down examples. The
example can be influenced by the parameters. A separate example will be
added to show off the capabilities of the TimeWarpBase for other
examples.
The walkers work quite well, a successful evolution was run over night
and reached a walker distance of 7.2m.
URDF/SDF: add a flag to force concave mesh collisiofor static objects. <collision concave="yes" name="pod_collision">
VR: support teleporting using buttong, allow multiple controllers to be used, fast wireframe rendering,
Turn off warnings about deprecated C routine in btScalar.h/b3Scalar.h
Add a dummy return to stop a warning
Expose defaultContactERP in shared memory api/pybullet.
First start to expose IK in shared memory api/pybullet (not working yet)
Uses Kuka IIWA model description and 4 methods:
Selectively Damped Least Squares,Damped Least Squares,
Jacobi Transpose, Jacobi Pseudo Inverse
Tweak some PD values in Inverse Dynamics example and Robot example.
See bullet3/examples/Importers/ImportURDFDemo/DefaultVisualShapeConverter.h
Give the kuka_iiwa/model.urdf some blue color, not just orange, to mimick the original a bit better
Preparation for the CMD_CAMERA_IMAGE_COMPLETED command, to expose a virtual camera to the robotics API