On some systems, such as Android, threads are not provided via
`-lpthread`.
CMake comes with a built-in module for finding the correct threads
library.
Use it to fix the linking issue on Android and possibly other systems.
- 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
* master: (35 commits)
add __init__.py file in agents folder
bump up pybullet version, instruction to visualize agents ppo:
add TensorFlow Agents PPO training script for various pybullet environments:
bump up pybullet version
add minitaur environment randomizer, enable it by default this improves PPO training ( more stable)
fix compile issue on MSVC
expose gear erp/relative position target to C-API/pybullet finish much better C++ vrSyncPlugin, running in-the-loop with the physics at high frequency, see also vr_kuka_setup_vrSyncPlugin.py
return -1 for debugDrawItems in DIRECT mode, instead of failing the API
bump up shared memory version number add option to recompute forward kinematics, to be consistent with link velocities in pybullet.getLinkState (..., computeForwardKinematics=0/1), thanks to Jeff Bingham for bringing up this inconsistency
add experimental vrSyncPlugin, that syncs the position/orientation of a vr controller to a gripper (through a constraint) This is in C++ and the sync runs at the simulation speed (240 Hz), so there is less lag than in Python. Modify the pybullet/examples/vr_kuka_setup.py at the end to do this:
fix a bug in a changeVisualShape/texture selection, out-of-bounds check was using the wrong array. May fix some internal texture mug bug.
fix a compile error on Windows (variables need to be declared together at the start of a block in C)
fix compile warnings
Update b3PluginManager.cpp
tweak pybullet examples a bit (mac OSX OpenGL runs in mainloop, with python interpreter, so it needs some 'ping' command bump up pybullet to version 1.4.6
[sharedmemory] Fill-out calculateJacobian command.
add some missing files for premake, thanks to Jeff Bingham for the report
add a few more contributors (the list is far from complete though)
manually apply pull request 457 PR #457 Thanks to aaronmjacobs!
Update pybullet.c
...
# Conflicts:
# CMakeLists.txt
Reduce size of command-logfile (used in PhysicsServer (Logging) and PhysicsServer (Log Replay))
Make Bullet3Common and BulletInverseDynamics part of core Bullet libraries (not optional)
Usage:
Also updated pypi to latest, see https://pypi.python.org/pypi?:action=display&name=pybullet&version=0.1.7
Here are a few options for Mac OSX + Anaconda:
1) In the root of the Bullet Physics SDK source tree, run
CFLAGS="-DB3_NO_PYTHON_FRAMEWORK" python setup.py install
2) cmake, add the flag -DBUILD_PYBULLET_MAC_USE_PYTHON_FRAMEWORK=OFF
3) Globally, just use pip or pip3:
CFLAGS="-DB3_NO_PYTHON_FRAMEWORK" pip install pybullet
Option (3) may have an out-of-date pybullet/bullet version.
Add several MSVC optimization flags to cmake.
Bump up VERSION because serialization format changed
Expose btScalar& jointMaxForce, btScalar& jointMaxVelocity to 'getJointInfo2' API, add backwards compatibility to examples\Importers\ImportURDFDemo\URDFImporterInterface::getJointInfo.
pybullet: expose 4 more fields to getJointInfo: jointLowerLimit/jointUpperLimit/jointMaxForce/jointMaxVelocity
fix performance issue in CMD_ACTUAL_STATE_UPDATE_COMPLETED