Commit Graph

757 Commits

Author SHA1 Message Date
Erwin Coumans
2e7c0cef38 pybullet/C-API: fix width/height when getCameraImage has a fallback from OpenGL hardware
to TinyRenderer
2017-09-14 15:39:22 -07:00
Erwin Coumans
c220513757 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-09-13 13:31:56 -07:00
Erwin Coumans
340a8f4704 add sigaction handler to Example Browser, to always shutdown shared memory
make GUI_SERVER more reliable
next attempt to connect to SHARED_MEMORY in Gym envs, if available, before DIRECT/GUI
allow software rendering fallback, even if ER_BULLET_HARDWARE_OPENGL is chosen in getCameraImage
2017-09-13 13:30:16 -07:00
Erwin Coumans
97a62b33c0 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-09-13 12:07:59 -07:00
Erwin Coumans
2eaac410b5 remove memory of loadTexture. 2017-09-13 12:07:19 -07:00
Erwin Coumans
c250a5f0b9 re-enable shared memory connection for pybullet Gym envs (with fallback to GUI or DIRECT)
suppress shared memory connection warnings
add fallback from ER_BULLET_HARDWARE_OPENGL to TinyRenderer if not available
2017-09-13 09:56:39 -07:00
erwincoumans
cc9995d44b fix uninitialized camera position in 'VR' / 'camera rendering' mode (causing broken specular reflections in VR)
use debug visualizer camera viewmatrix/projection matrix if not provided, in ER_BULLET_HARDWARE_OPENGL mode.
fix broken changeRGBAColor implementation, thanks to Laura for the report!
2017-09-12 22:14:00 -07:00
erwincoumans
9d804cfb97 avoid crash if swRenderInstances are not available 2017-09-12 17:27:18 -07:00
Erwin Coumans
416c29daf7 fix with shared memory connection while disabling rendering 2017-09-11 09:30:39 -07:00
Erwin Coumans
ec18adbf0a fix MJCF visual shape capsule conversion code (fromto case) 2017-09-10 07:48:43 -07:00
Erwin Coumans
cbe0d0aff2 pybullet fix: accidently enable self-collision 2017-09-07 14:27:00 -07:00
Erwin Coumans
9ecd345783 backwards compatibility... 2017-09-07 11:40:11 -07:00
Erwin Coumans
7878f7ace9 Add Extras/BulletRobotics, will be installed as 'Extra Libs' using CMake
Reduce size of command-logfile (used in PhysicsServer (Logging) and PhysicsServer (Log Replay))
Make Bullet3Common and BulletInverseDynamics part of core Bullet libraries (not optional)
2017-09-06 13:18:39 -07:00
Erwin Coumans
3f21e528f0 revert name 'v' -> 'u' (backward compatibility) and 'u' -> 't'
make vr_kuka_setup.py load faster, by disabling rendering during loading
allow to setRealTimeSimulation(0) in VR
2017-09-02 11:35:54 -07:00
erwincoumans
eb97e06280 fix minitaur.urdf: move lower-leg inertia to center, add missing collision for one of the motors, add contact parameters for friction_anchor, spinning friction, compliance (stiffness/damping)
fix in indexing for maximal coordinates (unused by default, still experimental, requires many iterations for Minitaur due to extreme mass-ratio, hence use of reduces/generalized coordinates)
modify quadruped.py to test maximal coordinates
wrap angular servo (positional) target within [-PI,PI] in btGeneric6DofSpring2Constraint
add 'j' key to show body frames in wireframe/debug mode
2017-09-02 01:05:42 -07:00
erwincoumans
ee30479a28 add option to log joint torques (due to user applied torques and/or motor torques)
See quadruped.py for an example:
p.startStateLogging(p.STATE_LOGGING_GENERIC_ROBOT, "genericlogdata.bin", maxLogDof = 16, logFlags = p.STATE_LOG_JOINT_TORQUES)
Thanks to JulianYG, in pull request https://github.com/bulletphysics/bullet3/pull/1273
2017-08-30 19:41:15 -07:00
erwincoumans
8dfa76e924 implement pybullet.createUserConstraint for maximalCoordinates (fixed, p2p, gear)
maximalCoordinates, make sure parent is bodyA, child is BodyB
2017-08-30 09:54:38 -07:00
erwincoumans
1f7db4519e enable motor control for maximal coordinates robots (btRigidBody, btTypedConstraint) for force, velocity, position control. 2017-08-29 19:14:27 -07:00
Erwin Coumans
1569f3845c more fixes in pybullet_gym envs/data.
implement pybullet.setAdditionalSearchPath
2017-08-27 19:34:00 -07:00
Erwin Coumans
5c5993edcb fix potential memory leaks for concave triangle meshes (<concave=true> or createCollisionShape with flags=1) 2017-08-24 09:16:11 -07:00
Erwin Coumans
b80a387a1e upgrade to latest OpenVR 1.0.9 (https://github.com/ValveSoftware/openvr)
enable experimental Mac OSX OpenVR, tested using Apple External Graphics Development Kit.
2017-08-19 09:48:32 -07:00
Erwin Coumans
a66576f034 revert API to be backward compatible, add b3CreateInProcessPhysicsServerAndConnectSharedMemory
same for BulletURDFImporter constructor
2017-08-16 12:33:25 -07:00
erwincoumans
2e0a987750 pybullet only allow one GUI/GUI_SERVER instance.
Fix LINK_FRAME/WORLD_FRAME coordinate issue in pybullet applyExternalForce
2017-08-15 14:15:30 -07:00
Erwin Coumans
60b60ef9fd add pybullet.connect(pybullet.GUI_SERVER) option. This allows shared memory connections, acting as a physics server. You can connect using SHARED_MEMORY to this GUI_SERVER. 2017-08-14 17:02:20 -07:00
Erwin Coumans
aafaa7e33e Expose optional "globalScaling" factor to pybullet.loadURDF and pybullet.loadSDF. This will scale the visual, collision shapes and transform locations.
Fix two_cubes.sdf (was lacking collision shape for second cube)
2017-08-14 14:59:41 -07:00
erwincoumans
457312f94f fix leak in loadSDF in case of visuals with duplicate/identical names that have a material.
fix GUI performance issue on Mac OSX
fix issue introduced in previous commit (in btConvexHullComputer.cpp)
2017-08-11 17:14:52 -07:00
Erwin Coumans
0df8887990 improve pybullet performance of loadURDF/SDF/MJCF and 'createCollisionShape'/'createMultiBody' for GUI/VR/SHARED_MEMORY,
use p.configureDebugVisualizer(p.COV_ENABLE_RENDERING,0) before loading and
p.configureDebugVisualizer(p.COV_ENABLE_RENDERING,1) afterwards
2017-07-14 23:12:16 +01:00
Erwin Coumans
88897cc744 implement pybullet.changeTexture. For now, the width/height has to match the target texture unique id, otherwise crashes may happen (a check for width/height match will be added)
See also examples\pybullet\examples\changeTexture.py
2017-06-30 19:11:43 -07:00
Erwin Coumans
dd3d55610b fixes in pybullet.loadTexture, changeVisualShape replacing texture.
(also works for OpenGL3 renderer now)
2017-06-30 13:35:07 -07:00
Erwin Coumans
dcaaed9238 also generate TinyRendererVisualShapeConverter for programmatically generated collision shapes
use similar random colors for TinyRenderer (if rgba colors are not specified)
2017-06-29 22:06:27 -07:00
Erwin Coumans
65e22ba3e9 allow auxilary link to be used for gear btMultiBodyGearConstraint. 2017-06-23 20:24:04 -07:00
Erwin Coumans
8e9f5ef3f3 fix compile issue 2017-06-23 16:22:38 -07:00
Erwin Coumans
2ab56b4d62 Allow to create concave collision meshes. Note that this is only supported for static (mass 0) multibodies. 2017-06-23 14:43:28 -07:00
Erwin Coumans
97f6a161f1 fix stb_image.h include path to be consistent. 2017-06-22 08:09:33 -07:00
Erwin Coumans
71170d6384 reduce stack usage (cause some crashes in low-stack tests)
fix crashing bug in changeVisualShape
add differential gear version of racecar (only 2 back wheels are powered)
2017-06-20 20:22:14 -07:00
Erwin Coumans
61f27a5c72 also add baseInertialFramePositionObj and baseInertialFrameOrientationObj to pybullet.createMultiBody
updated createMultiBodyLinks.py example.
2017-06-19 17:13:20 -07:00
Erwin Coumans
7441515c0e Preliminary version of pybullet.createMultiBody including links connected to parent by a joint.
See createMultiBodyLinks.py example.
2017-06-19 13:15:05 -07:00
Erwin Coumans
f3c11b6f31 add capsule, cylinder, plane, mesh support for pybullet.createCollisionShape
preparation to add links to pybullet.createMultiBody
2017-06-19 10:14:26 -07:00
Erwin Coumans
2e6f8c271e allow to disable/enable default keyboard shortcuts ('w', 'd' 's' etc) and default mouse picking
pybullet.getMouseEvents / b3RequestMouseEventsCommandInit
2017-06-17 13:29:14 -07:00
Erwin Coumans
3a826a5997 getCameraImage: use debug visualizer camera viewmatrix/projection matrix if possible (only if view/proj matrix is not provided) 2017-06-17 11:21:10 -07:00
Erwin Coumans
23b155a2b4 add getAABB.py example.
fix getAABB / b3RequestCollisionInfoCommandInit to use less stack memory
2017-06-16 18:10:10 -07:00
Erwin Coumans
bb8cfe3c9a pybullet.getAABB and getAPIVersion
fix btMultiBody::getLinkCollider
bump up Bullet C-API version
2017-06-15 19:46:27 -07:00
erwincoumans
3921ea88fa Merge pull request #1177 from YunfeiBai/master
Bug fix. Only return friction coefficient when there is a valid link …
2017-06-14 08:11:57 -07:00
Erwin Coumans
ee8fd56c5e prepare to train racecar using ZED camera pixels (CNN+DQN) 2017-06-13 16:04:50 -07:00
Erwin Coumans
0958e8f473 only show debug camera RGB pixels by default 2017-06-13 14:07:58 -07:00
Erwin Coumans
c84416d932 add debug view for getCameraImage (RGB, depth, segmentation mask) 2017-06-13 10:53:24 -07:00
Erwin Coumans
4a7469a1ba fix uninitialized-variable issues (were unused initialized, but triggers some memory checking tools) 2017-06-09 21:19:02 -07:00
yunfeibai
037043467a Bug fix. Only return friction coefficient when there is a valid link collider. 2017-06-08 18:59:11 -07:00
Erwin Coumans
c1e32e6428 fix potential memory leaks 2017-06-07 19:00:44 -07:00
Erwin Coumans
46f2f3db4e implement 'mimic' joint constraint or 'gear' constraint for btMultiBody, add example in pybullet/examples/mimicJointConstraint.py 2017-06-07 16:22:02 -07:00
Erwin Coumans
60e3887456 enable btGearConstraint, expose 'changeDynamics' for gearRatio, only works for maximalCoordinates rigid bodies.
See examples\pybullet\examples\mimicJointConstraint.py
2017-06-07 13:44:34 -07:00
Erwin Coumans
d08f3e5f91 expose pybullet non-contact erp, friction erp and frictionAnchor, b3PhysicsParamSetDefaultNonContactERP / b3PhysicsParamSetDefaultFrictionERP / b3ChangeDynamicsInfoSetFrictionAnchor 2017-06-07 09:37:28 -07:00
Erwin Coumans
0c3a3cc466 pybullet.changeDynamicsInfo/b3ChangeDynamicsInfoSetContactStiffnessAndDamping expose contactStiffness/contactDamping 2017-06-07 08:37:42 -07:00
Erwin Coumans
adb938f30f reduce memory usage 2017-06-05 08:01:11 -07:00
Erwin Coumans
a7aed37632 work on pybullet/C-API createMultiBody (still preliminary, only sphere/box collision shapes, no links/hierarchies yet, soon)
pybullet/C-API, expose linear/angular damping
fix some warnings (param name needs to be same in .h and .cpp)
fix potential startup threading issue (args were deleted in main thread while still possibly use in child thread)
fix for spinning/rolling friction in case of mixing maximal and reduced coordinate btMultiBody+btRigidBody
2017-06-04 22:04:16 -07:00
Erwin Coumans
b23cb1dd2c pybullet.createCollisionShape, createVisualShape, createMultiBody, programmatic creation using ProgrammaticUrdfInterface
(still preliminary, not ready for commit yet, see examples\pybullet\examples\createSphereMultiBodies.py)
2017-06-03 10:57:56 -07:00
yunfeibai
bfcbb339cf Merge remote-tracking branch 'upstream/master' 2017-06-02 18:26:04 -07:00
yunfeibai
0a29c8d9af Get debug visualizer camera yaw, pitch, dist, and target. 2017-06-02 18:24:51 -07:00
yunfeibai
e2a9fc33dc Remove debug code. 2017-06-02 17:40:50 -07:00
yunfeibai
3506603d60 Test conversion from view matrix to yaw pitch roll. 2017-06-02 16:56:05 -07:00
yunfeibai
f350a506a6 Enable rgba color update for TinyRender. 2017-06-01 23:32:26 -07:00
yunfeibai
e97bb9d494 Add utility function to convert view matrix to camera yaw pitch roll. 2017-06-01 21:44:02 -07:00
erwincoumans
3987bdd333 remove pose frame from SDF,
allow plane collision shape in SDF
load the Roboschool stadium.sdf in humanoid_knee_position_control.py
2017-06-01 20:13:39 -07:00
Erwin Coumans
030d723db6 fix some warnings 2017-06-01 16:48:07 -07:00
yunfeibai
e6d1a8cf97 Swap yaw and pitch in camera computation. Add functions to convert view matrix to camera position, and camera position to camera yaw pitch roll. 2017-06-01 15:30:37 -07:00
Erwin Coumans
aa40b8487f bump up SHARED_MEMORY_MAGIC_NUMBER versioning tag, remove humanoid_running_3.py
bump up pybullet version to 1.1.0
2017-06-01 13:33:53 -07:00
Erwin Coumans
87293e835c implement specular, URDF non-standard specular part (see sphere2.urdf) and SDF specular support.
pybullet.changeVisualShape(obUid,linkIndex,specularColor=[R,G,B]) and Bullet C-API b3UpdateVisualShapeSpecularColor
Bug fixes in b3ResourcePath::findResourcePath resolution.
add stadium.sdf and roboschool/models_outdoor/stadium assets https://github.com/openai/roboschool/tree/master/roboschool/models_outdoor/stadium
minor fixes to obj2sdf
2017-06-01 12:32:44 -07:00
erwincoumans
83f910711a Prepare/allow for non-Bullet2-based physics command processor in pybullet/Bullet-C-API
!!! Make sure to add examples/SharedMemory/PhysicsServerExampleBullet2.cpp to your build system, if needed
Bump up pybullet to version 1.0.9
2017-05-30 19:54:55 -07:00
erwincoumans
4e03c36fa6 add pybullet.multiplyTransforms and pybullet.invertTransform
use btAssert instead of assert (glGetError is really slow)
shift default light-position a little bit, to make faces different color
2017-05-29 21:55:58 -07:00
erwincoumans
5436b8f048 print better error warning, in case the physics client/server version mismatch.
fix in b3HashString
remove many unused dependencies from kuka_grasp_block_playback.py (time,math, datetime ,numpy,pylab ,sys, os, fnmatch,argparse were not used!)
move block_grasp_log.bin from Bullet3/data to Bullet3/examples/pybullet/examples/data folder.
PhysicsServerCommandProcessor, derive from CommandProcessorInterface to prepare for different back-end implementation
2017-05-28 17:05:18 -07:00
Erwin Coumans
b645963879 expose pybullet changeDynamics(spinningFriction=..., rollingFriction=..., restitution=...)
Bullet C-API b3ChangeDynamicsInfoSetSpinningFriction/RollingFriction/Resitution
b3PhysicsParamSetRestitutionVelocityThreshold, / pybullet.setPhysicsEngineParameter restitutionVelocityThreshold:
if the velocity is below this threshhold, the restitution is zero (this prevents energy buildup at near-resting state)
pybullet restitution.py example.
2017-05-26 18:14:38 -07:00
Erwin Coumans
e023c012b4 TinyRendererVisualShapeConverter set near/far for its own camera. 2017-05-25 13:39:36 -07:00
Erwin Coumans
f090752cbb bump up VISUAL_SHAPE_MAX_PATH_LEN from 128 to 1024, some google3 directories are loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong :-) 2017-05-25 10:56:01 -07:00
Erwin Coumans
5e2599863d trackObject -> parentObject
trackLinkIndex -> parentLinkIndex
add example debugDrawItems.py
2017-05-24 09:06:15 -07:00
Erwin Coumans
9f7d7fecd5 more rendering fixes 2017-05-23 23:34:55 -07:00
Erwin Coumans
db008ab3c2 Improve debug text/line rendering, can be use to draw frames and text in local coordinate of an object / link.
example:
kuka = p.loadURDF("kuka_iiwa/model.urdf")
p.getNumJoints(kuka)
pybullet.addUserDebugLine([0,0,0],[0,0,0.1],[0,0,1],trackObjectUniqueId=2,trackLinkIndex=6)
pybullet.addUserDebugText("tip", [0,0,0.1],textColorRGB=[1,0,0],trackObjectUniqueId=2,trackLinkIndex=6)
Also allow to render text using a given orientation (instead of pointing to the camera), example:
pybullet.addUserDebugText("tip", [0,0,0.1],textColorRGB=[1,0,0],textOrientation=[0,0,0,1], trackObjectUniqueId=2,trackLinkIndex=6)
Add drawTexturedTriangleMesh, for drawing 3d text.
Expose readSingleInstanceTransformToCPU, to extract position/orientation from graphics index.
updateTexture: allow to not flip texels around up axis
2017-05-23 22:05:26 -07:00
erwincoumans
148716d0ff Merge pull request #1135 from erwincoumans/master
disable Grasp Soft Body/SoftBody coupling demo unless USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD is defined, fixed related hang in experimental 'loadBunny' command
2017-05-21 11:00:43 -07:00
Erwin Coumans
b19c209dbc The softbody/bunny test is very experimental and shouldn't be enabled in the example browser, unless USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD is defined. I fixed a few bugs that cause the hang. 2017-05-21 06:50:53 -07:00
Andrew Hundt
e719da3497 btsoftbody fix #1106, compiler error in App_PhysicsServer_SharedMemory
BulletSoftBody was not linking to App_PhysicsServer_SharedMemory when USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD was enabled.
2017-05-20 21:14:00 -04:00
Erwin Coumans
16a8dceb73 fix warning 2017-05-18 08:31:40 -07:00
Erwin Coumans
19295f2859 enable file caching, currently only for Wavefront .obj files. You can disable file caching using
pybullet.setPhysicsEngineParameter(enableFileCaching=0)
Allow VR camera tracking only using position tracking, no orientation tracking (use
pybullet.setVRCamera([posX,posY,posZ],trackObjectFlag=0 or pybullet.VR_CAMERA_TRACK_OBJECT_ORIENTATION)
2017-05-17 19:29:12 -07:00
Erwin Coumans
9c4a5f9336 update VR camera even if setRealTimeSimulation(0)
also update w component in setVRCameraState orientation
2017-05-17 16:29:30 -07:00
Erwin Coumans
ea10c6d335 fix issue when re-connecting to physics server, after removeBody. 2017-05-16 17:19:45 -07: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
4dea68e43e allow to enable/disable VR picking and VR teleport. Disabling VR picking will also disable the rendering of the VR controller frames. 2017-05-15 11:39:39 -07:00
Erwin Coumans
23b8579247 avoid some 'invisible' warning/error (C++/C mix) 2017-05-14 12:00:28 -07:00
Erwin Coumans
987b9541a5 clear unused visual shape data (was de-allocated at the end, not during each 'resetSimulation') 2017-05-14 11:09:32 -07:00
Erwin Coumans
ef7a7f9004 Potential fix for Linux slow performance (usleep(0) takes a lot of time)
Remove b3RobotSimAPI, use RobotSimulator/b3RobotSimulatorClientAPI.h instead
2017-05-13 13:37:49 -07:00
Erwin Coumans
0944790577 migrating from b3RobotSimAPI to b3RobotSimulatorClientAPI (step by step)
allow to run the client/server code in the example browser without this b3RobotSimAPI hack.
2017-05-13 11:15:20 -07:00
Erwin Coumans
f80838e989 expose the changeVisualShape RGBA color for TinyRenderer, OpenGL3 renderer. 2017-05-13 09:18:36 -07:00
Erwin Coumans
e2d596f4d0 remove visual shape from CPU/TinyRenderer with removeBody
(thanks to Jeff Bingham for reporting the bug!)
2017-05-12 20:24:10 -07:00
Oleg Klimov
d755513146 Rewrite collision filtering code 2017-05-11 12:59:11 +03:00
Erwin Coumans
53a82819a0 expose b3LoadMJCFCommandSetFlags / pybullet.pybullet_loadMJCF(fileName,flags=pybullet.URDF_USE_SELF_COLLISION_EXCLUDE_ALL_PARENTS) 2017-05-10 15:01:25 -07:00
yunfeibai
a587d4fec4 Use "change" instead of "reset" for changing dynamics info. 2017-05-09 10:44:33 -07:00
yunfeibai
98654a0cb4 Change dynamic to dynamics in dynamics info. 2017-05-09 10:31:28 -07:00
yunfeibai
5fe4c6bb5b Add API to get dynamic info. 2017-05-07 22:21:38 -07:00
yunfeibai
e363e12ea4 Add default specular when there is not specular map. Add example for adjusting specular coefficient. 2017-05-07 21:09:08 -07:00
Oleg Klimov
1524004aa8 MJCF: support for "axisangle", small code improvements 2017-05-06 14:49:43 +03:00
Erwin Coumans
cb1f5c74ea add missing files to projects 2017-05-04 18:04:32 -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
Erwin Coumans
a8bf53b494 fix error, m_userConstraintUIDGenerator should be m_data->m_userConstraintUIDGenerator 2017-05-04 13:52:02 -07:00
Erwin Coumans
7bf125e460 reset the m_userConstraintUIDGenerator to 1 after 'resetSimulation' 2017-05-04 13:28:09 -07:00
Erwin Coumans
61999ef789 b3ResizablePool: only remove a handle, if it is currently in-use
also remove user constraints, if removing a body
2017-05-04 13:14:24 -07:00
Erwin Coumans
fac3d6e3ca fix some compile errors after merge 2017-05-04 11:08:59 -07:00
Erwin Coumans
a7d08ca9d7 Merge remote-tracking branch 'bp/master' 2017-05-04 10:51:42 -07:00
erwincoumans
87a24dba84 Merge pull request #1091 from YunfeiBai/master
Add APIs to reset object mass, lateral friction coefficient, and to get user constraint id.
2017-05-04 17:47:33 +00:00
Erwin Coumans
4602fbba34 add missing openvr files to CMakeLists.txt, rename 64bit openvr_api.dll to openvr64pi.dll to avoid name conflicts when using 32 AND 64 bit versions of this dll. 2017-05-04 08:37:46 -07:00
Erwin Coumans
a86f584824 more work towards removeBody for C-API/pybullet, work-in-progress. 2017-05-03 21:53:29 -07:00
yunfeibai
939d6ead32 Add API to reset lateral friction coefficient. 2017-05-03 21:47:53 -07:00
yunfeibai
1841a41f2a Add pybullet example for resetting dynamics. 2017-05-03 21:30:42 -07:00
yunfeibai
c7e9a31898 Add API to get user constraint id. 2017-05-03 18:25:25 -07:00
Erwin Coumans
152e3da3e4 Implementation of virtual void CommonRenderInterface::removeGraphicsInstance(int instanceUid)
for GLInstancingRenderer (OpenGL3+) and SimpleOpenGL2Renderer (OpenGL2)
Refactored the add/remove object pool in Bullet3Common/b3ResizablePool.h
Added CommonRigidBodyBase::deleteRigidBody, also removing its graphics instance.
2017-05-03 17:05:05 -07:00
Erwin Coumans
6f7601966d fix issue ,don't iterate over [0..numBodyHandles], would fail once we allow 'removeBody'... 2017-05-03 11:23:01 -07:00
Erwin Coumans
2c8f65a2d0 move body handles in its own template class, for re-use. 2017-05-03 10:49:04 -07:00
Erwin Coumans
1bb133a01f update to OpenVR 1.07 from https://github.com/ValveSoftware/openvr 2017-05-03 08:40:29 -07:00
Erwin Coumans
9fef6c1d66 Add C++ version VRGloveSimulatorMain example, using the serial library.
First run the App_PhysicsServer_SharedMemory_VR_vs2010.exe to run the VR server,
then run App_VRGloveHandSimulator. You likely need to tune the minV/maxV for each finger (check values using Arduino IDE Serial Monitor)
2017-05-01 22:35:33 -07:00
yunfeibai
4da2c076a7 Add API to reset mass. 2017-05-01 22:18:54 -07:00
Erwin Coumans
af6bf8ddc8 plumb URDF/SDF audio_source into PhysicsServerCommandProcessor, allow to play sounds on collision !
See also https://youtu.be/eppOjTfx5Jg for a first test, and this modified URDF how to add sounds:
https://github.com/bulletphysics/bullet3/blob/master/data/plane_with_collision_audio.urdf
Add the --audio flag to enable sound in pybullet/Bullet-C-API
2017-05-01 11:14:09 -07:00
Erwin Coumans
2a2c18e959 add more tinyaudio preparation, some test wav files, play sound on collision events. Will expose this in the C-API to pick wav files and collision threshold levels etc. Use the premake --audio flag to try it out. The TinyAudio example in the ExampleBrowser works on Mac, Linux and Windows, you can play notes by pressing keys. 2017-04-29 10:32:30 -07:00
Erwin Coumans
e8c1602232 add vrhand for vive tracker
tweak 'saveWorld' feature a bit (mjcf, gui fallback if shared memory server is not available)
2017-04-21 10:28:20 -07:00
erwincoumans
5b789ed67b reduce max ray hits to 256 2017-04-19 12:06:26 -07:00
yunfeibai
a7068bb57a Modify the link index when computing Jacobian. Add a test for end effector orientation IK. Inverse dynamics Jacobian uses zero-based indexing of bodies, not starting from -1 for base. 2017-04-17 16:54:45 -07:00
erwincoumans
ee753eef6f Merge pull request #1073 from devnexen/build_fix_bsd
build fix for BSD systems
2017-04-17 18:19:10 +00:00
Erwin Coumans
ad2099e107 address 2 issues pointed out by PVS-Studio:
https://github.com/bulletphysics/bullet3/issues/1074
2017-04-17 10:01:44 -07:00
David Carlier
756568ad9c build fix for BSD systems 2017-04-16 17:53:44 +01:00
Erwin Coumans
5158c1ae98 add python dumpLog.py utility to view log files created using 'startStateLogging'
don't enable <CTRL> for hotkeys yet
add some more profile markers
log objectId and linkIndex as signed int ('i') and not unsigned int 'I'
fix issue in startStateLogging: number of parameters was wrong
2017-04-12 15:02:47 -07:00
Erwin Coumans
80e87d5ccb re-create debug drawer after 'resetSimulation', also avoid memory leak after doing so.
this fixes wireframe.
Also use <CTRL>+hotkey, to avoid conflicts with user-specified keyboard functions.
2017-04-11 16:03:07 -07:00
Erwin Coumans
bdf366b045 implement pybullet.getDebugVisualizerCamera, width, height, providing viewmatrix, projection matrix 2017-04-10 11:03:41 -07:00
Erwin Coumans
82b6bc8770 apply the deviceTypeFilter also to VR state logging. 2017-04-08 11:48:12 -07:00
erwincoumans
2e47310e76 fix enum (has to be power of 2, to allow combination of devices)
add vrtracker.py
2017-04-08 10:37:32 -07:00
Erwin Coumans
440d445a02 also report VR events for HMD and generic tracked devices. Also expose those VR events to pybullet: expose a deviceTypeFilter, that defaults to VR_DEVICE_CONTROLLER 2017-04-07 22:53:36 -07:00
Erwin Coumans
82b576a390 fixed a bug that prevented kitchens/1.sdf to render properly (local scaling was double applied)
disable some left-over clipping that was moved to another part of the code
2017-04-06 21:13:23 -07:00
Erwin Coumans
deb95c758b TinyRenderer: implement triangle clipping against near-plane
TinyRenderer: implement texture UV-repeat by default (instead of clamp(0,1))
2017-04-06 14:31:34 -07:00
erwincoumans
2e13531493 Merge pull request #1061 from erwincoumans/master
Implement rayTestBatch. At the moment, it is still testing individual…
2017-04-06 04:56:49 +00:00
Erwin Coumans
6cbb00fd6b Implement rayTestBatch. At the moment, it is still testing individual rays on the physics server. We can enable multi-threaded version later. At least the python + shared-memory IPC overhead will be much lower. 2017-04-05 15:21:26 -07:00
erwincoumans
ac91896025 Merge pull request #1054 from erwincoumans/master
pybullet setup.py / pip support for Windows, Linux and Mac! just run 'pip install pybullet' and wait until all compiled (like numpy, it is mainly source, except for a few wheels Mac 2.7 and Win32 3.5). Expose URDF_USE_SELF_COLLISION flag.
2017-04-04 23:36:32 +00:00
Erwin Coumans
b095e1d917 expose pybullet.URDF_USE_SELF_COLLISION flag, experimental (likely doesn't work well for many URDF files) 2017-04-04 12:47:34 -07:00
yunfeibai
b168f53ed9 Rename body index to body unique id. 2017-04-04 10:38:25 -07:00
yunfeibai
1e91e78469 Add pybullet API for logging contacts. 2017-04-02 16:03:20 -07:00
yunfeibai
0d83667817 Add C API to log contact points. 2017-04-02 15:45:48 -07:00
yunfeibai
7c7d831767 Add contact point logger. 2017-04-02 15:09:40 -07:00
Erwin Coumans
9d05b46de2 expose width/height as ExampleBrowser options.
suppress lack of 'site' support message in MJCF importer
suppress lack of 'plane' visual support in urdf/sdf import
getBodyName default to "" to avoid breaking cloudsim
expose bodyName when requesting body info (sdf/mjcf import)
pass optional "options" string to pybullet.connect method. this can be used for --opengl2 flag in GUI mode (or other flags)
2017-03-30 11:01:33 -07:00
erwincoumans
dae13eee7f Merge pull request #1048 from erwincoumans/master
expose linkIndexA/B as filter option in pybullet.getContactPoints
2017-03-29 18:19:23 -07:00
Erwin Coumans
711431db5c first draft of VR controller state logging 2017-03-29 16:29:34 -07:00
yunfeibai
f062847038 Replace spaces with tabs. 2017-03-29 15:37:33 -07:00
yunfeibai
66a8685816 Merge remote-tracking branch 'upstream/master' 2017-03-29 15:06:15 -07:00
yunfeibai
64573c38e4 Remove getBodyName API. 2017-03-29 15:03:29 -07:00
yunfeibai
de3f91b64e Get body name from getBodyInfo. 2017-03-29 14:56:05 -07:00
erwincoumans
0750d502a8 Merge pull request #1041 from olegklimov/master
Random improvements (MJCF, error messages, gravity)
2017-03-29 09:12:48 -07:00
Erwin Coumans
fd2c0f58bc Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-03-27 17:25:40 -07:00
Oleg Klimov
77608154a3 MJCF: fix capsule length when given in size="", fix slider joint limits 2017-03-27 22:54:20 +03:00
Oleg Klimov
3048326add C API: fix b3SetContactFilterLink() when using b3RequestContactPoint() 2017-03-27 22:54:20 +03:00
Oleg Klimov
634f4cfdbc MJCF: support for angle units in <compile angle="...">, kill two stdout messages 2017-03-27 22:54:20 +03:00
Erwin Coumans
38ad1bfb89 revert to m_jointFriction (from m_jointFriction1) 2017-03-27 10:16:55 -07:00
Erwin Coumans
4911916937 Expose 'flags' option for loadURDF, to allow customization of the URDF loading process while maintaining backward compatibility.
For example: URDF_USE_INERTIA_FROM_FILE flag. By default, URDF2Bullet will re-compute the inertia tensor based on mass and volume, because most URDF files have bogus Inertia values.
2017-03-27 08:30:20 -07:00
Erwin Coumans
7503418c72 Split Bullet/src/LinearMath/btSerializer.cpp into btSerializer64.cpp to make it easier to rebuild serialization structure.
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
2017-03-26 13:06:46 -07:00
Erwin Coumans
21d1827c9f revert previous cmake copy->symlink (doesn't work on Windows)
fix timing issues at small timestep, disable default linear damping for btMultiBody
2017-03-23 17:30:59 -07:00
yunfeibai
0a552c3ba1 Merge remote-tracking branch 'upstream/master' 2017-03-23 13:55:44 -07:00
yunfeibai
d717b1db84 Add the API to get the body name and pybullet example call. 2017-03-23 13:54:44 -07:00
Erwin Coumans
0a654c2d58 expose optional targetVelocity to pybullet.resetJointState
add C-API: b3CreatePoseCommandSetJointVelocities and b3CreatePoseCommandSetJointVelocity
2017-03-23 10:29:16 -07:00
yunfeibai
50f0cfca9e Add body name when loading urdf. 2017-03-23 10:16:39 -07:00
erwincoumans
a30b887595 Merge pull request #1025 from olegklimov/master
URDF loader improvement 2
2017-03-21 17:12:22 -07:00
Oleg Klimov
80a0b51a1d MJCF: fix cylinders in MJCF, also (possibly) fixes capsules in tiny renderer 2017-03-22 00:36:28 +03:00
Erwin Coumans
0b017b0f53 fix issue with btMultiBody friction in combination with soft contacts (friction should not re-use normal contact cfm/erp)
implement friction anchors, position friction correction, disabled by default. Use colObj->setCollisionFlag(flag | CF_HAS_FRICTION_ANCHOR); See test/RobotClientAPI/SlopeFrictionMain.cpp. In URDF or SDF, add <friction_anchor/> in <contact> section of <link> to enable.
PhysicsServer: properly restore old activation state after releasing picked object
btMultiBodyConstraintSolver: disable flip/flop of contact/friction constraint solving by default (it breaks some internal flaky unit tests)
2017-03-20 10:58:07 -07:00
Oleg Klimov
41df15a464 MJCF: fix B3_PI, fix colors, fix capsule without 'fromto' 2017-03-19 00:19:04 +03:00
Oleg Klimov
e8da7bb6f8 URDF loader: fix MuJoCo xml load, also closes #993 2017-03-17 02:11:47 +03:00
Erwin Coumans
32b9eacb34 fix compile issue 2017-03-16 13:26:44 -07:00
Erwin Coumans
59d16b2c42 expose video capture as logging command in b3RobotSimulatorClientAPI (C++) and pybullet (use STATE_LOGGING_VIDEO_MP4) 2017-03-16 09:13:33 -07:00
erwincoumans
c1c89e6fad Merge pull request #1000 from olegklimov/master
URDF loader improvement 1
2017-03-13 19:16:45 -07:00
Oleg Klimov
fa60cc5f56 URDF loader: fix SDF branch, warn about unsupported geometry 2017-03-14 02:32:02 +03:00
Oleg Klimov
82495f3c84 URDF loader: reuse the same resources finder routine for TinyRendererVisualShapeConverter 2017-03-10 18:17:38 +03:00
yunfeibai
3ad49ae5eb Set logging unique id at initialization. This fixed a bug that the second log couldn't be stopped properly. 2017-03-07 11:52:26 -08:00
erwincoumans
00361afea5 allow user to specify the maximum number of dofs to log in GenericRobotStateLogger (default = 12)
add minitaur quadruped playback of minitaur log files (real robot and simulated create the same log files)
add improved minitaur.urdf file, see https://youtu.be/lv7lybtOzeo for a preview.
2017-03-05 21:49:20 -08:00
erwincoumans
a7ad6c2860 Merge remote-tracking branch 'bp/master' 2017-03-04 15:31:02 -08:00
erwincoumans
c7579d7b82 fix quadruped, allow user to pick the maximum number of dofs to log 2017-03-04 15:30:57 -08:00
yunfeibai
6e3cd26f11 Log time stamp and step count. 2017-03-04 13:19:43 -08:00
erwincoumans
44b140dd38 disable the gMaxNumCmdPer1ms experiment by default (-1)
fix minitaur_evaluate.py script, quadruped.py
2017-03-04 12:59:21 -08:00
Erwin Coumans
7cb5898db6 fix body name in GUI more
expose getBodyInfo to b3RobotSimulatorClientAPI
2017-03-03 11:33:20 -08:00
Erwin Coumans
34fc2fb589 create premake/cmake file for Bullet/Extras/obj2sdf
add missing 1.sdf for Bullet/data/kitchens/1.sdf
add support for getting keyboard events (pybullet.getKeyboardEvents and b3RobotSimulatorClientAPI::getKeyboardEvents)
2017-03-02 12:33:22 -08:00
erwincoumans
255b21a776 Merge pull request #979 from erwincoumans/master
fix lack of collision scaling in pybullet URDF/SDF files (only graphi…
2017-03-02 08:18:11 -08:00
yunfeibai
a33dcdb63d Modify logging and playback to handle fixed joint. 2017-03-01 23:37:01 -08:00
Erwin Coumans
6a40c1cca7 pybullet expose resetDebugVisualizerCamera
example: pybullet.resetDebugVisualizerCamera(cameraDistance=3,cameraYaw=30,cameraPitch=52,cameraTargetPosition=[0,0,0])
2017-03-01 15:04:07 -08:00
Erwin Coumans
2f3ba49357 expose some sleep timeout pybullet.setPhysicsEngineParameter(maxNumCmdPer1ms=100) or b3PhysicsParamSetMaxNumCommandsPer1ms,
if more commands than those are processed per millisecond, a 1ms sleep will follow, to avoid other threads being stalled.
2017-03-01 13:48:57 -08:00
erwincoumans
77538b04c2 Update PhysicsServerCommandProcessor.cpp 2017-02-24 16:01:18 -08:00
erwincoumans
929eb49029 Merge pull request #974 from erwincoumans/master
expose timeout in pybullet/shared memory API
2017-02-24 15:50:26 -08:00
Erwin Coumans
a4f1e34899 expose timeout in pybullet/shared memory API
add RobotSimulator, a C++ API similar to pybullet. (work-in-progress, only part of API implemeted)
2017-02-24 15:34:11 -08:00
erwincoumans
f15722ffb1 Merge pull request #973 from erwincoumans/master
allow to compile/run 64bit version of VR, co-exist of 64bit and 32bit openvr_api.dll
2017-02-22 17:38:27 -08:00
Erwin Coumans
0b27edf172 allow to compile/run 64bit version of VR lib, workaround for issue that both 32bit and 64bit version is called openvr_api.dll
Now 64bit version is called openvr64pi.dll (patched the 64bit binary library openvr_api.lib)
See also https://github.com/ValveSoftware/openvr/issues/412
2017-02-22 15:50:09 -08:00
yunfeibai
86f0067266 A bug fix for logging the orientation of the base of the object. 2017-02-22 13:30:28 -08:00
Erwin Coumans
bd30ba30ce Replace large timeout (1024*1024*1024) using real-time clock timeout (10 seconds default)
Change SHARED_MEMORY_MAGIC_NUMBER to make sure server/client are using the same version (shared memory)
add --realtimesimulation to physics server (GUI, VR)
remove --G Xcode from build_cmake_pybullet_double.sh
2017-02-22 09:33:30 -08:00
Erwin Coumans
926c83f2ab Merge remote-tracking branch 'bp/master' 2017-02-21 17:38:42 -08:00
Erwin Coumans
3988d363b3 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2017-02-21 17:38:32 -08:00
Erwin Coumans
37890e5a4d allow to enable/disable GUI, shadows, wireframe of OpenGL Visualizer from API
(pybullet.configureDebugVisualizer)
2017-02-21 17:36:54 -08:00
erwincoumans
61f05c7330 Update PhysicsServerCommandProcessor.cpp 2017-02-21 13:28:43 -08:00
Erwin Coumans
1cd65a324c update pybullet quickstart guide 2017-02-21 10:23:18 -08:00
erwincoumans
07bd911c36 Merge pull request #966 from erwincoumans/master
add tiny clsocket cross-platform TCP  library, update pybullet PDF doc
2017-02-20 21:17:22 -08:00
Erwin Coumans
28146e816f export TCP connection mode to pybullet
made TCP disconnection detection more reliable
2017-02-20 20:34:05 -08:00
Erwin Coumans
942015df9d use TCP in main thread, accumulate bytes until size matches. 2017-02-20 18:54:12 -08:00
Erwin Coumans
3d73a9d788 shmem preliminary TCP implementation (not working yet) 2017-02-20 16:46:25 -08:00
Erwin Coumans
bfcdb8c408 add App_PhysicsServerTCP and App_PhysicsServerSharedMemoryBridgeTCP
(can be easier tunneled over SSH)
2017-02-20 14:43:01 -08:00