erwincoumans
67954a873e
Merge pull request #1917 from erwincoumans/master
...
reverse ER_SEGMENTATION_MASK to ER_NO_SEGMENTATION_MASK so segmentation
2018-10-04 18:41:16 -07:00
Erwin Coumans
24ca5afe95
reverse ER_SEGMENTATION_MASK to ER_NO_SEGMENTATION_MASK so segmentation
...
mask is rendered by default
2018-10-04 14:14:24 -07:00
Wenlong Lu
24f5b819cf
fix a memory leak
2018-10-02 10:58:23 -07:00
erwincoumans
8aff1fbd49
removed flags from loadURDF command. The flags are already available in m_data->m_flags in BulletUrdfImporter.cpp
2018-10-02 08:39:47 -07:00
bla
0f8b8388a6
eglPlugin, one more fix, remove graphics instances at resetAll
2018-10-02 08:13:51 -07:00
erwincoumans
da37f1d559
add glViewport after call to startRendering (some renderers call glViewport)
2018-10-02 07:49:13 -07:00
erwincoumans
c9bd997acf
Merge pull request #1910 from WenlongLu/create_status
...
Two minor updates for PhysicsServerCommandProcessor
2018-10-01 18:53:13 -07:00
bla
7cd962467e
fix EGL issue related to glViewport in startRender method
2018-10-01 18:51:02 -07:00
Wenlong Lu
085984f003
update complete status for removing collision shape
2018-10-01 17:54:23 -07:00
Wenlong Lu
167520a5e6
pass plane constant
2018-10-01 17:38:24 -07:00
Erwin Coumans
42ae4e81a8
apply clang-format (on Mac, slightly different than running it on Windows)
2018-09-30 11:43:57 -07:00
erwincoumans
5bcd43711a
PyBullet OpenGL/EGL hardware getCameraImage: use glViewport to reduce the glReadPixels calling cost dramatically for small images
...
PyBullet Allow OpenGL/EGL hardware to render segmentation mask. Use pybullet.ER_SEGMENTATION_MASK_OBJECT_AND_LINKINDEX or pybullet.ER_SEGMENTATION_MASK
PyBullet.removeBody fix indexing bug (use foundIndex, not i)
PyBullet bump up version to 2.2.3
2018-09-30 07:10:40 -07:00
erwincoumans
00ed0dce24
Merge pull request #1900 from crewmatt/master
...
Update URDF Importer to process Sensor elements.
2018-09-28 17:06:27 -07:00
mbennice
6655bd60c8
Update stb_image.h import
2018-09-27 14:09:00 -07:00
mbennice
7485999254
Clang Format Change
2018-09-27 10:00:39 -07:00
mbennice
30d4c4136a
Piping through the flag to parse sensors
2018-09-27 09:49:59 -07:00
Wenlong Lu
8cdb514ffb
missed one
2018-09-26 17:46:39 -07:00
Wenlong Lu
2681f5cd9f
add const qualifiers to all double* inputs in PhysicsClientC_API
2018-09-26 17:24:40 -07:00
mbennice
f79b04357f
Update URDF Importer to process sensor elements.
...
Update the URDF Importer to add sensors as 0 mass 0 inertia elements
attached by a fixed joint. This way their states can be read as links.
2018-09-26 16:35:22 -07:00
Wenlong Lu
3c0e57e025
add const qualifier to double [] inputs
2018-09-26 15:02:22 -07:00
erwincoumans
c1ba89a01c
Fix eglPlugin
2018-09-24 08:06:28 -07:00
Julian Viereck
219dfc757a
Adding support for lateral friction to getContactPoints()
2018-09-24 10:03:43 -04: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
erwincoumans
b73b05e9fb
add getClosestPoints.py example.
...
allow to perform a getClosestPoints query with a collisionShape and world transform (position, orientation) that isn't part of the world.
(use createCollisionShape to create it)
add optional removeCollisionShape, for collision shapes only used in a query (and not used to create a body)
2018-09-22 14:18:21 -07:00
erwincoumans
cdf8c908ad
add getClosestPoints.py example.
...
allow to perform a getClosestPoints query with a collisionShape and world transform (position, orientation) that isn't part of the world.
(use createCollisionShape to create it)
2018-09-22 13:17:09 -07:00
erwincoumans
64a7a3d82f
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-09-21 17:33:31 -07:00
erwincoumans
278454ae17
allow to disable self-collision for a link-pair
2018-09-21 17:33:13 -07:00
Erwin Coumans
350adb5c7c
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-09-21 09:56:25 -07:00
Erwin Coumans
47efe66017
disable eglPlugin from setup.py / pip pybullet on Windows and Mac (only enable on Linux)
2018-09-21 09:55:57 -07:00
erwincoumans
616192f80a
use grpc port -1 by default in PyBullet. add grpcClient.py and grpcServer.py
2018-09-20 09:07:47 -07:00
erwincoumans
0b08881ab8
wait until a frame is rendered, when using the COV_ENABLE_SINGLE_STEP_RENDERING command (Windows and Linux only)
2018-09-15 14:22:31 -07:00
erwincoumans
81f6a63490
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-09-14 17:17:20 -07:00
erwincoumans
e6d74580c1
add single step rendering feature:
...
while (1):
stepSimulation()
pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_SINGLE_STEP_RENDERING, 1)
disable single step using
pybullet.configureDebugVisualizer(pybullet.COV_ENABLE_SINGLE_STEP_RENDERING, 0)
2018-09-14 17:17:11 -07:00
Erwin Coumans
b0971b4beb
fix our internal build
2018-09-13 10:20:38 -07:00
erwincoumans
9553892770
PyBullet / BulletRobotics:
...
Implement collisionFilterPlugin, use setCollisionFilterPair to enable or disable collision detection between specific pairs of objects.
Also, expose setCollisionFilterGroupMask as PyBullet API and in urdf using the tag <collision group="1" mask="2"/>.
See examples/pybullet/examples/collisionFilter.py for an example.
PyBullet default: Lower the warmstarting factor, for maximal coordinates rigid bodies for more stable simulation.
Add btCollisionWorld::refreshBroadphaseProxy to easier recreate the broadphase proxy without adding/removing objects to the world.
2018-09-12 19:30:49 -07:00
erwincoumans
2a3a60ac64
Merge pull request #1874 from erwincoumans/master
...
more egl plugin fixes, create stb_image_write.cpp (instead of magic defines in various source files)
2018-09-11 14:14:40 -07:00
Tigran Gasparian
58699258dd
Change b3GetLinkState to use numLinks in status handle
...
Changes the b3GetLinkState function to use numLinks from the
SharedMemoryStatus returned from RequestActualState instead of the
cached number of link value returned by b3GetNumJoints.
The cached value can be outdated when a new body is added and
SyncBodyInfo isn't used, while using the value in the status is always
up-to-date.
2018-09-11 14:44:06 +02:00
erwincoumans
5b1588fc3f
fix createProtobufs.bat script
2018-09-10 23:32:51 -07:00
Erwin Coumans
9fa3e44539
fixes related to egl plugin
2018-09-10 23:31:54 -07:00
Erwin Coumans
3b0a44e1be
fix createProtobufs.sh script
2018-09-10 23:24:00 -07:00
erwincoumans
684a9f6a99
move stb_image/stb_image_write.cpp into a cpp file instead of random files with the magic 'STB_IMAGE_WRITE_IMPLEMENTATION' define
...
move setup.py back to eglRenderer extension, use pkgutil.get_loader('eglRenderer').get_filename()
disable dlmopen by default, unless B3_USE_DLMOPEN is defined.
2018-09-10 23:18:34 -07:00
Erwin Coumans
f26d4fdc4c
pybullet eglPlugin: fix Mac OSX build
2018-09-10 08:55:47 -07:00
bla
8f711462e0
fix setup.py to work better on Windows and Linux (with default eglPlugin static built-in,
...
just use pybullet.loadPlugin("eglRendererPlugin") before loading/creating any objects.
use end/startRendering (swap buffers) before the rendering in the eglPlugin
2018-09-09 22:58:08 -07:00
erwincoumans
9698c3d600
PyBullet setup.py: only enable BT_USE_EGL on Linux, but allow to run the eglPlugin on Windows and Mac as well (using their default opengl window).
...
postpone the 'loadPlugin' for static eglPlugin, so that the init and exit happen in the same thread.
When you don't call unloadPlugin, the program may crash when exiting in SHARED_MEMORY_SERVER mode.
2018-09-09 21:08:47 -07:00
erwincoumans
7369005402
pybullet, use eglPlugin statically instead of dynamic loading an Extension -DSTATIC_EGLRENDERER_PLUGIN
...
Fix compile errors of pybullet on Windows.
2018-09-09 15:23:26 -07:00
erwincoumans
adb5c049c7
Thanks to @dchichkov for some of the fixes in the eglRendererPlugin!
...
Rename tinyRenderer -> eglRenderer in the eglRendererPlugin.
Allow to run the eglRendererPlugin to run on Windows (not in EGL mode but Win32OpenGLWindow mode)
Here is a script I tested on Windows:
~~~~~~~~~~~~
mport pybullet as p
import time
p.connect(p.DIRECT)
plugin = p.loadPlugin("e:/develop/bullet3/bin/pybullet_eglRendererPlugin_vs2010_x64_debug.dll","_eglRendererPlugin")
print("plugin=",plugin)
p.setGravity(0,0,-10)
p.loadURDF("plane.urdf",[0,0,-1])
p.loadURDF("r2d2.urdf")
pixelWidth = 320
pixelHeight = 220
while (1):
p.stepSimulation()
viewMatrix = [1.0, 0.0, -0.0, 0.0, -0.0, 0.1736481785774231, -0.9848078489303589, 0.0, 0.0, 0.9848078489303589, 0.1736481785774231, 0.0, -0.0, -5.960464477539063e-08, -4.0, 1.0]
projectionMatrix = [1.0825318098068237, 0.0, 0.0, 0.0, 0.0, 1.732050895690918, 0.0, 0.0, 0.0, 0.0, -1.0002000331878662, -1.0, 0.0, 0.0, -0.020002000033855438, 0.0]
#img_arr = p.getCameraImage(pixelWidth, pixelHeight, viewMatrix,projectionMatrix, shadow=1,lightDirection=[1,1,1])#,renderer=pybullet.ER_BULLET_HARDWARE_OPENGL)
img_arr = p.getCameraImage(pixelWidth, pixelHeight, shadow=1,lightDirection=[1,1,1])#,renderer=pybullet.ER_BULLET_HARDWARE_OPENGL)
#print("img_arr=",img_arr)
time.sleep(1)
~~~~~~~~~~~~~
2018-09-09 13:37:49 -07:00
erwincoumans
dc7feb9027
Merge remote-tracking branch 'bp/master'
2018-09-09 10:48:58 -07:00
erwincoumans
233a7083d1
Merge pull request #1790 from BlGene/egl-plugin
...
OpenGL render plugin
2018-09-09 09:27:15 -07:00
erwincoumans
63f4a63e15
since parent collision is always disabled by default for self-collision, we add a new flag
...
URDF_USE_SELF_COLLISION_INCLUDE_PARENT, to force self-collision between direct parent/child (not recommended in general)
2018-09-08 14:46:43 -07:00
Erwin Coumans
7376c26e4b
remove gl libs from openvr
2018-09-07 16:06:42 -07:00
erwincoumans
5164f2f9a7
remove pre-build proto/grpc files (they differ for each platform and proto/grpc version)
2018-09-07 15:44:33 -07:00
erwincoumans
0efc67841d
allow pybullet to connect to GRPC server. (need to use flag --enable_grpc in premake build system)
...
add grpcPlugin, it can work in GUI, SHARED_MEMORY_SERVER, DIRECT and other modes.
example script to start server from pybullet:
import pybullet as p
p.connect(p.GUI)
#if statically linked plugin
id = p.loadPlugin("grpcPlugin")
#dynamics loading the plugin
#id = p.loadPlugin("E:/develop/bullet3/bin/pybullet_grpcPlugin_vs2010_x64_debug.dll", postFix="_grpcPlugin")
#start the GRPC server at hostname, port
if (id>=0):
p.executePluginCommand(id, "localhost:1234")
Only in DIRECT mode, since there is no 'ping' you need to call to handle RCPs:
numRPC = 10
while (1):
p.executePluginCommand(id, intArgs=[numRPC])
2018-09-05 17:58:14 -07:00
Erwin Coumans
31b06f508a
only add notifications if there is a plugin that needs them
...
call the 'reportNotifications' in GRPC server main
2018-09-04 19:24:31 -07:00
Erwin Coumans
18b782847d
make GRPC work on Linux,
2018-09-04 16:56:34 -07:00
Erwin Coumans
51f9a6fd0d
make grpc work on Mac OSX with premake
2018-09-04 14:49:12 -07:00
erwincoumans
710e660763
Merge pull request #1855 from erwincoumans/master
...
more work on grpc/proto/pybullet.proto
2018-09-04 12:11:03 -07:00
erwincoumans
c4842220a8
Merge pull request #1852 from RanTig/remove-visual-shape
...
Removes visual shape data when a body gets removed.
2018-09-04 09:42:48 -07:00
erwincoumans
9b66074949
add some missing GRPC files
2018-09-04 09:10:57 -07:00
erwincoumans
9e2f6c7935
more GRPC work
2018-09-03 23:13:15 -07:00
Tigran Gasparian
93145f3979
Adding space to make compiler happy.
2018-09-03 10:37:22 +02:00
erwincoumans
23e84ca9b6
more work on proto/pybullet.proto
2018-09-01 13:49:56 -07:00
Tigran Gasparian
9799f356de
.
2018-08-31 15:35:35 +02:00
Tigran Gasparian
f132b4d16b
Only make the change for Linux, since OSX doesn't have dlmopen()
2018-08-31 15:33:08 +02:00
Tigran Gasparian
c062bfc2d5
Removes visual shape data when a body gets removed.
...
Problem description:
When you add a body, remove it and then add a new
body, the body id may be reused by Bullet.
Because the visual shape data was not being removed when a body was
removed, requesting the visual shape data for a 'recycled' body id
results in both the visual shape data of the new body as well as the old
one.
Removing the visual shape data when the body gets removed fixes this.
Changes the btAlignedObjectArray for visual shapes to a hashmap, so
that removing is faster. Additionally, functions like getNumVisualShape
don't perform a linear search anymore.
2018-08-31 15:12:28 +02:00
Tigran Gasparian
6036c027bf
Uses dlmopen() instead of dlopen() in b3PluginManager.cpp. This allows plugins to be loaded in a separate namespace, avoiding symbol conflicts.
2018-08-31 10:53:46 +02:00
Erwin Coumans
40a15053bd
add createProtobufs.sh script for Mac/Linux (only tested on Mac so far)
2018-08-30 10:09:00 -07:00
Max Argus
c1d6c6b07d
clean test scripts
2018-08-30 13:24:25 +02:00
Max Argus
e15fb0866c
rendertest + parallel pip + no debug for plugin
2018-08-30 13:24:25 +02:00
Max Argus
35b30359e3
nearly working
2018-08-30 13:24:25 +02:00
Max Argus
5f71aa859f
wip
2018-08-30 13:24:25 +02:00
Max Argus
21462d1c02
update GLIR camera
2018-08-30 13:24:25 +02:00
Max Argus
05f82e8867
egl plugin working
2018-08-30 13:24:25 +02:00
Max Argus
f80f0c76a4
added egl plugin commit
2018-08-30 13:24:25 +02:00
erwincoumans
4f7dfc2069
Add preliminary GRPC server for PyBullet and BulletRobotics.
...
Will add GRPC client and PyBullet GRPC server plugin.
Will cover most/all SharedMemoryCommand/SharedMemoryStatus messages.
Run the server, then test using the pybullet_client.py
2018-08-29 21:12:13 -07:00
Erwin Coumans
72c48870b0
after picking in a multibody demo, allow sleeping for rigid bodies
2018-08-26 18:07:28 -07:00
Erwin Coumans
186ddb81d8
fix tab/space issue in Python file
...
fix determinism issue introduced in previous commit
2018-08-26 17:17:42 -07:00
Erwin Coumans
6ab6cf0bdb
test if different broadphase maintains determinism
2018-08-26 16:49:17 -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
erwincoumans
78946c8ca7
Merge pull request #1842 from crewmatt/crewmatt-ikoriginalpositions
...
Allow current positions for Calculate IK.
2018-08-23 23:07:48 -07:00
Erwin Coumans
61b7591b8e
expose choice of contraint solver in PyBullet, with switchConstraintSolver example
2018-08-23 23:04:17 -07:00
mbennice
780b280181
Allow current positions for Calculate IK.
...
Allows the user to specify the current positions of joints when
calculating Inverse Kinematics.
2018-08-23 13:19:15 -07:00
Erwin Coumans
15e831ab99
revert default linear slop, need to handle restitution separately
2018-08-09 16:49:25 -07:00
Erwin Coumans
56e7333941
bump up pybullet version
2018-08-04 09:58:15 -07:00
erwincoumans
961d8adad1
Merge pull request #1806 from erwincoumans/master
...
prepare build system(s) for collisionFilterPlugin
2018-08-03 17:43:13 -07:00
Tigran Gasparian
d93980f89f
Adds a simulation stepped notification
...
This notification is called when the simulation is stepped, regardless
of whether any objects have moved.
2018-08-01 17:49:58 +02:00
Erwin Coumans
2cab56d6ef
prepare build system(s) for collisionFilterPlugin
2018-07-27 15:48:24 +02:00
erwincoumans
8b27a7311c
Merge pull request #1801 from RanTig/TickPlugins
...
Notify plugins on certain events (e.g. body added).
2018-07-27 14:58:55 +02:00
Erwin Coumans
a696bd6a46
fix memory leak reported in Issue #1800
...
avoid access to array elements outside of range
2018-07-25 19:59:29 +02:00
Tigran Gasparian
35a55b2056
Changes tickPlugins to reportNotifications and only calls the processNotifications function on the plugins when there are actually notifications available. tickPlugins will to into a separate PR.
2018-07-25 14:47:34 +02:00
Tigran Gasparian
f745eafb36
Changes dynamic_cast<> to c-style cast.
2018-07-24 16:04:16 +02:00
Tigran Gasparian
c59afb88c4
Notify plugins on certain events (e.g. body added).
...
This also adds a periodic tick function to plugins, giving them periodically control over the simulation thread, even when the simulation is paused.
2018-07-24 14:12:16 +02:00
erwincoumans
defd961f60
Merge pull request #1798 from erwincoumans/master
...
Change constraint solver threshold-based termination condition on res…
2018-07-22 12:28:32 +02:00
Erwin Coumans
b5495e789d
Change constraint solver threshold-based termination condition on residual of velocity threshold, not on residual of impulse threshold.
...
This avoids issues with systems with large mass ratios.
Test: add this to BasicDemo/BasicExample.cpp in initPhysics
m_dynamicsWorld->getSolverInfo().m_numIterations = 1000;
m_dynamicsWorld->getSolverInfo().m_leastSquaresResidualThreshold = 1e-4;
2018-07-22 11:30:16 +02:00
erwincoumans
3d5c921495
Merge pull request #1782 from RanTig/userdata
...
Changes UserData to use global identifiers and makes linkIndex optional.
2018-07-09 11:36:51 +02:00
Erwin Coumans
f8cc33f3a3
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-07-08 11:24:37 +02:00
Erwin Coumans
127b82ec1b
expose texture unique id after loading URD file, so you can restore to the original texture after changing it to a custom texture. See also getTextureUid.py example.
2018-07-08 11:23:12 +02:00
Tigran Gasparian
49684144dc
Some minor formatting fixes
2018-07-05 16:01:03 +02:00
Tigran Gasparian
8a6db042de
Removes int initializer in SharedMemoryUserDataHashKey, changes '>>' into '> >' for nexted templates.
2018-07-04 14:25:48 +02:00
Tigran Gasparian
7c7e8af717
Increases the shared memory magic number.
2018-07-04 10:22:44 +02:00
Erwin Coumans
2ce1e65b53
PyBullet: tweak in TCP server for VR - ROS bridge
2018-07-03 16:30:54 -07:00
Tigran Gasparian
9c7aa3a863
Changes UserData to use global identifiers and makes linkIndex optional.
...
This removes the need to specify the body id/link index when retrieving a user data entry.
Additionally, user data can now optionally be set to visual shapes as well.
The following public pybullet APIs have changed (backwards incompatible)
addUserData and getUserDataId
Makes linkIndex parameter optional (default value is -1)
Adds optional visualShapeIndex parameter (default value is -1)
getUserData and removeUserData
Removes required parameters bodyUniqueId and linkIndex
getNumUserData
Removes required bodyUniqueId parameter
getUserDataInfo
Removes required linkIndex parameter
Changes returned tuple from (userDataId, key) to (userDataId, key, bodyUniqueId, linkIndex, visualShapeIndex)
2018-07-03 17:45:19 +02:00
erwincoumans
98fc4b1510
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-07-01 14:42:48 -07:00
erwincoumans
0d8564db22
PyBullet: added preliminary DART and MuJoCo backend files, MuJoCo can loadMJCF, stepSimulation and getBasePositionAndOrientation, DART is empty.
...
PyBullet: add 2d biped example.,
2018-07-01 14:42:32 -07:00
Erwin Coumans
bfc85ff1fd
PyBullet: TCP connection, optimized getVREvents to allow faster Windows -> Linux Vive tracking state communication.
2018-06-27 23:43:42 -07:00
Erwin Coumans
21b089b0d7
Merge remote-tracking branch 'bp/master'
2018-06-26 08:57:44 -07:00
YunfeiBai
812c229736
Remove the pdController when maxForce = 0
2018-06-24 17:06:16 -07:00
erwincoumans
49b0ec08e1
PyBullet: allow to replace existing debug lines in addUserDebugLine through the replaceItemUniqueId argument
...
See batchRayCast.py for example usage
2018-06-22 16:47:20 -07:00
Tigran Gasparian
618e3230a4
Fix: Use function context reference instead of value
2018-06-22 20:41:02 +02:00
Tigran Gasparian
b84eb8af74
Several fixes for the parallel raycasts
...
- Limits the maximum number of threads to 64, since btThreadSupportPosix
and btThreadsupportWin32 don't support more than 64 bits at this moment,
due to the use of UINT64 bitmasks. This could be fixed by using
std::bitset or some other alternative.
- Introduces a threadpool class, b3ThreadPool, which is a simple wrapper
around btThreadSupportInterface and uses this instead of the global task
scheduler for parallel raycasting. This is actually quite a bit faster
than the task scheduler (~10-15% in my tests for parallel raycasts),
since the advanced features (parallelFor) are not necessary for the
parallel raycasts.
- Puts 16*1024 of MAX_RAY_INTERSECTION_MAX_SIZE_STREAMING in
parentheses, since it otherwise causes problems with other operators
of equal precedence and introduces a smaller constant for Apple targets.
- Refactors the parallel raycasts code and adds some more profiling.
2018-06-19 18:41:42 +02:00
erwincoumans
42c9d9aa3c
lazy creation of batch scheduler, it causes issues with the physics.
2018-06-16 13:59:03 -07:00
erwincoumans
7924d51665
PyBullet: deal with backward compatibility of b3RaycastBatchAddRay:
...
use b3RaycastBatchAddRays API to enable MAX_RAY_INTERSECTION_BATCH_SIZE_STREAMING num rays.
Old API (b3RaycastBatchAddRay) sticks to 256 rays, MAX_RAY_INTERSECTION_BATCH_SIZE.
2018-06-16 12:28:21 -07:00
erwincoumans
04d03d10be
Fix memory leak due to batchRayCast never deleting the btTaskScheduler.
...
(and issue with TaskScheduler/btTaskScheduler.cpp, add JobQueue::exit, call it first, since it uses the m_threadSupport which was deleted before the destrucor was called.
Use a hashmap to store user timers, to avoid allocating many identical strings.
2018-06-16 09:37:53 -07:00
erwincoumans
cb1fce7899
revert exposing getSharedMemoryStreamBuffer / adding to command structure
...
use 16k rays by default
add uploadRaysToSharedMemory method
2018-06-16 08:14:00 -07:00
erwincoumans
23f9250e04
Merge remote-tracking branch 'bp/master'
2018-06-16 06:58:10 -07:00
erwincoumans
d660042d76
Merge pull request #1763 from YunfeiBai/master
...
Add the pdControlPlugin to the joint control C API, and add the PD co…
2018-06-16 06:57:50 -07:00
erwincoumans
f517b03534
Expose pushProfileTimer / pop ProfileTimer in PhysicsClient API to benchmark Python parts of PyBullet.
...
reduce 'm_cooldownTime' from 1000 microseconds to 100 microseconds (overhead in raycast is too large)
If needed, we can expose this cooldown time.
Replace malloc by btAlignedObjectArray (going through Bullet's memory allocator)
2018-06-16 06:19:49 -07:00
erwincoumans
bb8cbcdaae
Merge remote-tracking branch 'bp/master'
2018-06-16 06:06:18 -07:00
Erwin Coumans
fbbd675ed6
expose PyBullet API to wakeup/put objects to sleep, enable/disable deactivation
...
fix wakeup -> reset deactivation clock
2018-06-15 21:26:26 -07:00
YunfeiBai
1c0de3c4cb
Add the pdControlPlugin to the joint control C API, and add the PD control mode (also available in pybullet). Modify the pdControl pybullet example to use the PD control mode with setJointMotorControl API.
2018-06-15 17:59:26 -07:00
Tigran Gasparian
d244cf6061
Changes the default number of rays per thread from 32 to 16, when the user lets Bullet decide.
2018-06-15 17:13:10 +02:00
Tigran Gasparian
08409cae9f
Adds multithreading support for batch ray casts.
...
To enable the feature, enable the BULLET2_MULTITHREADING option.
Increases the number of rays that can go in a batch request by storing
them in the shared memory stream instead of the shared memory command.
Adds the API b3RaycastBatchSetNumThreads to specify the number of
threads to use for the raycast batch, also adds the argument numThreads
to the pybullet function rayTestBatch.
Rays are distributed among the threads in a greedy fashion there's a shared
queue of work, once a thread finishes its task, it picks the next
available ray from the task. This works better than pre-distributing the
rays among threads, since there's a large variance in computation time per ray.
Some controversial changes:
- Added a pointer to PhysicsClient to the SharedMemoryCommand struct, this
was necessary to keep the C-API the same for b3RaycastBatchAddRay, while
adding the ray to the shared memory stream instead of the command
struct. I think this may be useful to simplify other APIs as well, that
take both a client handle and a command handle.
- Moved #define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE to
SharedMemoryPublic. This was necessary for the definition of
MAX_RAY_INTERSECTION_BATCH_SIZE.
2018-06-15 16:47:04 +02:00
erwincoumans
25c5e87dc2
PyBullet.loadURDF, expose flags=URDF_INITIALIZE_SAT_FEATURES
2018-06-13 15:35:56 -07:00
Erwin Coumans
c27fb4003e
path -> const
2018-06-12 21:26:34 -07:00
erwincoumans
4f0959a136
Update b3RobotSimulatorClientAPI_NoDirect.h
2018-06-12 21:17:43 -07:00
erwincoumans
4d6741f5cd
PyBullet: expose STATE_LOGGING_ALL_COMMANDS and STATE_REPLAY_ALL_COMMANDS
...
See examples/pybullet/examples/commandLogAndPlayback.py for an example.
2018-06-12 16:56:45 -07:00
erwincoumans
97c6937388
Simplify GJK. Still needs double precision for large differences of feature scales.
...
Extract faces directly from btConvexHullComputer (in initializePolyhedralFeatures), instead of reconstructing them, thanks to Josh Klint in #1654
PyBullet: use initializePolyhedralFeatures for convex hulls and boxes (to allow SAT)
PyBullet: expose setPhysicsEngineParameter(enableSAT=0 or 1) to enable Separating Axis Test based collision detection for convex vs convex/box and convex versus concave triangles (in a triangle mesh).
2018-06-12 16:08:46 -07:00
erwincoumans
a342af0382
remove getLinkState from API, it automatically calculated forwardKinematics and propagates velocities, which is very expensive.
2018-06-11 23:49:34 -07:00
erwincoumans
3eebcd40ca
exposed a few more methods in the C++ b3RobotSimulatorClientAPI (_NoDirect base class)
2018-06-09 19:40:12 -07:00
erwincoumans
7ac3e263ab
add saveStateToMemory/restoreStateFromMemory/setAdditionalSearchPath/getAPIVersion to Bullet Robotics API.
2018-06-09 13:54:22 -07:00
Erwin Coumans
6ca3fe18f5
fix previous commit
2018-06-06 16:33:52 -07:00
Erwin Coumans
1bcb54dc29
remove some warnings
2018-06-06 16:10:20 -07:00
Erwin Coumans
dd444fc6c4
reshuffle args
2018-06-05 21:09:00 -07:00
erwincoumans
cb6d76d6b5
fix another parameter name in header, in enableJointForceTorqueSensor
2018-06-05 19:59:00 -07:00
erwincoumans
dff04c7f59
fix parameter name in header, computeForwardKinematics
2018-06-05 19:57:21 -07:00
erwincoumans
4083088a3a
people are actually using this internal API, add a new one and keep old one backward compatible
...
b3CreateInProcessPhysicsServerFromExistingExampleBrowserAndConnect3 is the new one,
b3CreateInProcessPhysicsServerFromExistingExampleBrowserAndConnect2 old
2018-06-05 19:44:33 -07:00
Erwin Coumans
ad35beb61f
fix typo
2018-06-05 16:25:43 -07:00
erwincoumans
b6f5cb4c34
enable pdControlPlugin by default (requires pdControlPlugin.cpp and b3RobotSimulatorClientAPI_NoDirect.cpp)
...
add pdControl.py example, make pdControlPlugin functional
reduce memory usage
fix examples/pybullet/gym/pybullet_data/random_urdfs/948/948.urdf, fixes issue #1704
2018-06-05 15:59:01 -07:00
erwincoumans
d7cbe8dd26
Merge remote-tracking branch 'bp/master'
2018-06-05 08:15:11 -07:00
Erwin Coumans
7bd84740d7
PyBullet / BulletRobotics: prepare for pdControlPlugin and collisionFilterPlugin
...
Split examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.* and move to examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.cpp and examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp
2018-06-05 11:41:41 +10:00
Erwin Coumans
e4cd88e24f
PyBullet: allow to choose the shared memory key when starting SHARED_MEMORY_SERVER
2018-06-05 11:36:54 +10:00
Tigran Gasparian
bb72a91080
Clears the user data cache when syncUserData is called.
...
Adds unit test for the UserData functons.
Changes the char pointer in btHashString to std::string. There were
problems where the object owning the string memory would deallocate the
string, making the btHashString object invalid.
2018-06-04 15:10:48 +02:00
erwincoumans
4997eb8da2
add new file related to PyBullet userData
2018-06-02 13:52:00 -07:00
erwincoumans
b6120e760a
PyBullet.addUserData / getUserData / removeUserData / getUserDataId / getNumUserData / getUserDataInfo
...
See examples/pybullet/examples/userData.py how to use it. TODO: add to PyBullet Quickstart Guide.
Thanks to Tigran Gasparian for the contribution!
2018-06-02 13:40:08 -07:00
erwincoumans
cb6b7a7c38
PyBullet: expose flags to createMultiBody
2018-06-02 11:37:14 -07:00
erwincoumans
68ea22bfd0
undo git merge conflict mess-up with IK
2018-06-01 22:50:06 -07:00
erwincoumans
92579f9196
Merge branch 'master' of https://github.com/erwincoumans/bullet3
...
# Conflicts:
# examples/SharedMemory/PhysicsServerCommandProcessor.cpp
2018-06-01 09:35:15 -07:00
erwincoumans
2d40a18315
picking shouldn't activate (wakeup) sleeping objects
2018-06-01 09:34:18 -07:00
erwincoumans
3463d0a879
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-05-31 16:06:33 -07:00
erwincoumans
edc70582dd
implement accurate inverse kinematics in C++. PyBullet.calculateInverseKinematics gets "maxNumIterations=20", "residualThreshold=1.04" to tune
...
allow to provide current joint positions in IK, overriding the body joint positions, also IK target will be in local coordinates.
expose b3ComputeDofCount in C-API
2018-05-31 16:06:15 -07:00
erwincoumans
150a0e050e
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-05-30 19:47:47 -07:00
Erwin Coumans
491ecf2a20
export object auto-deactivation (sleeping) to pybullet (needs some more testing/configuring)
2018-05-30 18:37:08 -07:00
Erwin Coumans
14c6dee6a3
const char* for path
2018-05-30 14:37:49 -07:00
erwincoumans
1dec33d44b
move default linearslop to 0
2018-05-30 12:31:29 -07:00
Erwin Coumans
8ace9251aa
pass by pointer instead of reference to satisy compiler
2018-05-23 14:22:22 +10:00
Erwin Coumans
77c332bd88
PyBullet: add option to cache graphics shapes for URDF files, handy for benchmarks with many duplicate robots
...
See https://github.com/erwincoumans/pybullet_robots ANYmal.py for an example.
PyBullet: Expose p.setPhysicsEngineParameter(solverResidualThreshold=1e-2) (b3PhysicsParamSetSolverResidualThreshold), increases solver performance a lot
PyBullet: Expose p.setPhysicsEngineParameter(contactSlop) Set it to zero, to avoid issues with restitution.
PyBullet: Expose isNumpyEnabled, return True is PyBullet was compiled with NUMPY support for 'getCameraImage'.
PyBullet: Expose p.ChangeDynamics(objectUid, linkIndex, contactProcessingThreshold), to avoid issues of speculative/predictive contacts with restitution.
See also http://twvideo01.ubm-us.net/o1/vault/gdc2012/slides/Programming%20Track/Vincent_ROBERT_Track_ADifferentApproach.pdf
2018-05-23 13:26:00 +10:00
Erwin Coumans
0b2c9ea645
PyBullet: avoid a crash in SHARED_MEMORY_SERVER
2018-05-20 12:20:06 +10:00
erwincoumans
8f4d1e722e
Merge pull request #1686 from yuchenericwu2/master
...
Expose CFM parameters
2018-05-16 16:18:45 -07:00
Yuchen Wu
f03ae5a857
Expose CFM parameters in PhysicsClient.
...
Add b3PhysicsParamSetDefaultGlobalCFM() and
b3PhysicsParamSetDefaultFrictionCFM().
2018-05-16 13:46:19 -07:00
erwincoumans
b432daed65
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-05-16 12:11:29 -07:00
erwincoumans
0ca2c5f925
use Bullet3Common/b3AlignedObjectArray.h instead of LinearMath version in SharedMemory/PhysicsClientSharedMemory
2018-05-16 12:10:34 -07:00
Erwin Coumans
28b86ba0a4
fix some tsan issues (thread sanitizer)
2018-05-16 08:32:21 -07:00
Erwin Coumans
d17d496f97
fix potential asan/tsan issue
2018-05-15 13:24:28 -07:00
erwincoumans
e5a9b42f9a
expose PyBullet.setPhysicsEngineParameter(jointFeedbackMode)
...
use p.JOINT_FEEDBACK_IN_JOINT_FRAME if you want the joint feedback expressed in joint frame (instead of link inertial frame)
use p.JOINT_FEEDBACK_IN_WORLD_SPACE if you want the joint feedback in world space coordinates, instead of local link/joint coordinates.
Example: p.setPhysicsEngineParameter(jointFeedbackMode=p.JOINT_FEEDBACK_IN_WORLD_SPACE+p.JOINT_FEEDBACK_IN_JOINT_FRAME)
2018-05-11 19:52:06 -07:00
erwincoumans
06a23ecd6d
PyBullet TinyRenderer, fix cylinder (don't add caps like a capsule), also convert colors stored in visual shapes, if needed.
2018-05-10 18:37:48 -07:00
Erwin Coumans
414b3ef9bb
PyBullet urdfEditor improvements: saveUrdf mesh scale, fix incorrect index, add getCameraImage in examples/combineUrdf.py
2018-05-09 10:28:12 -07:00
Erwin Coumans
0b5785421b
PyBullet: re-add API to header
2018-05-07 16:59:06 -07:00
Erwin Coumans
7bc85c7d43
PyBullet.SHARED_MEMORY_SERVER, use secondary key for server
2018-05-07 16:01:38 -07:00
Erwin Coumans
7383843b24
expose PyBullet.SHARED_MEMORY_SERVER
...
connect from 1 different PyBullet client using PyBullet.SHARED_MEMORY)
(don't use more than 1 other client to submit commands in parallel)
2018-05-07 15:57:36 -07:00
Erwin Coumans
84b20bda80
don't use the URDF inertia element, unless flag CUF_USE_URDF_INERTIA is set, not for the diagonal and also not for the inertial frame shift.
2018-05-03 14:24:16 -07:00
Erwin Coumans
4a8ad1a54e
fix posix memory release issues
...
fix compile problems on Mac OSX
reduce shared memory size on Mac (>512*1024 fails to allocate)
2018-05-02 15:39:16 -07:00
erwincoumans
1f6afcda30
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-05-02 14:32:59 -07:00
erwincoumans
3a5f778b70
expose lsMemory destroy function to release thread memory
2018-05-02 14:32:43 -07:00
erwincoumans
cee3ecde2b
Merge pull request #1664 from erwincoumans/master
...
PyBullet: fix some memory leaks
2018-05-02 13:54:07 -07:00
erwincoumans
d7e81590b5
fix a memory leak
2018-05-02 12:24:31 -07:00
Jan Matas
b1f85268f0
Check for null
2018-04-30 19:01:53 +01:00
Jan Matas
21418934e0
Reset sparsesdf to free memory.
2018-04-25 16:17:28 +01:00
erwincoumans
391b0e4061
Merge pull request #1588 from GaborPuhr/Fix-#1582
...
Fix for #1582
2018-04-12 13:32:51 -07:00
erwincoumans
25cb37a0d7
Merge remote-tracking branch 'bp/master'
2018-04-12 12:48:37 -07:00
Erwin Coumans
11008d8110
fixes, backwards compatibility
2018-04-12 09:28:30 -07:00
erwincoumans
b0d421fa11
Merge pull request #1632 from erwincoumans/master
...
upgrade from tinyxml to tinyxml2
2018-04-12 07:30:05 -07:00
erwincoumans
9c77e07494
upgrade from tinyxml to tinyxml2
2018-04-12 00:09:44 -07:00
erwincoumans
b53facfc25
Merge pull request #1629 from erwincoumans/master
...
Preparation to add signed distance field collision detection.
2018-04-12 00:02:25 -07:00
erwincoumans
ffc808784b
PyBullet: add planar reflection example,
...
See examples/pybullet/examples/addPlanarReflection.py
2018-04-11 01:03:36 -07:00
Erwin Coumans
0832d3fd22
disable velocity clamp (maxVelocity) in velocity control mode,
...
remove some warnings
2018-04-10 17:21:14 -07:00
erwincoumans
db4960b1ac
Merge pull request #1624 from ikalevatykh/master
...
Add VR/OpenVR support on Linux
2018-04-05 09:55:03 -07:00
Erwin Coumans
380e59be6a
explicit cast from double to float in TinyRendererVisualShapeConverter plugin
2018-04-04 16:34:28 -07:00
Igor Kalevatykh
7c163f2163
Add VR/OpenVR support on Linux
2018-04-05 00:14:08 +02:00
erwincoumans
ec68290497
PyBullet createVisualShape/createVisualShapeArray: postpone visual shape conversion until we know the link inertial transform
2018-03-28 19:08:18 -07:00
yunfeibai
6b97e1e604
Expose API to set projective texture instead of using global.
2018-03-20 21:28:47 -07:00
yunfeibai
37696dd87e
Add Bullet C API and pybullet API to set projective texture matrices.
2018-03-18 18:45:54 -07:00
yunfeibai
fd7aa8d0e1
Expose using projective texture as a flag in pybullet getCameraImage API.
2018-03-18 17:01:23 -07:00
jietan
f4ca3f5963
Fix a bug that createVisualShape(Array) does not have the correct color. Add urdfEditor.py to pybullet_utils. Remove all unnecessary changes of white spaces.
2018-03-14 21:14:44 -07:00
jietan
d91a58e050
Merge remote-tracking branch 'bp/master' into pullRequest
2018-03-14 20:19:31 -07:00
jietan
413be3547b
fix a bug that createVisualShape(Array) does not have the correct color. Add urdfEditor.py to pybullet_utils.
2018-03-12 21:06:19 -07:00
erwincoumans
b62501d04d
fix loadTexture for tinyrenderer
2018-03-12 19:40:13 -07:00
Erwin Coumans
69d343386d
PyBullet/C-API: implement createVisualShapeArray, with multiple visual shapes (require 1 texture max, since visual shapes are merged)
2018-03-09 18:02:06 -08:00
Erwin Coumans
159fef5818
PyBullet: explicit sync transform right before hardware OpenGL getCameraImage
2018-03-09 09:56:03 -08:00
Erwin Coumans
b578361acf
Use kF_UseGjkConvexCastRaytest by default for raycast in PyBullet (it is more robust/accurate, but a bit slower)
...
Use 10*EPSILON, as suggested in Gino's paper:
http://www.continuousphysics.com/ftp/pub/test/files/physics/papers/jgt04raycast.pdf
2018-03-07 14:51:51 -08:00
Erwin Coumans
e134dcdb0b
increase shared memory block size ( to reduce image copy steps)
...
reduce vertices in r2d2 finger stl files
bump up pybullet vesion
2018-03-07 09:47:28 -08:00
a
2348c6ba0a
Fix for #1582
2018-03-05 23:05:22 +01:00
erwincoumans
73a4334e30
explicitly remove textures during resetSimulation
...
move glViewport to Win32Window
2018-02-21 23:22:16 -08:00
Erwin Coumans
c2b59776ed
CMakeLists glew to glad
2018-02-20 21:09:31 -08:00
Erwin Coumans
b0984de046
preparation to replace glew by glad
2018-02-20 19:44:02 -08:00
erwincoumans
01f58f8f02
PyBullet: soft bodies are rendered, so we don't need to also render wireframes in regular mode.
...
Use glBufferSubData instead of glMapBuffer/glUnmapBuffer, much faster soft body vertex sync.
Don't use a separate btSoftBodyWorldInfo, use the existing one in btSoftMultiBodyDynamicsWorld.
2018-02-18 11:09:42 -08:00
erwincoumans
a6849de99c
Merge pull request #1555 from JanMatas/softBody-opengl-rendering
...
Implemented support for softbodies in OpenGL renderer
2018-02-18 10:48:46 -08:00
erwincoumans
ddf304ca78
PyBullet: expose internal edge utility, to adjust edge normals to prevent object penetrating along triangle edges of concave triangle meshes
...
(due to local convex-triangle collisions causing opposite contact normals, use the pre-computed edge normal)
PyBullet: expose experimental continuous collision detection for maximal coordinate rigid bodies, to prevent tunneling.
2018-02-16 19:44:33 -08:00
erwincoumans
d3fe21ef17
Add option GUI_MAIN_THREAD for running OpenGL in the main thread (Python thread). This already happens on Mac OSX by default.
...
Pass all argc/argc from options to InProcessPhysicsClientSharedMemoryMainThread
2018-02-14 16:49:44 -08:00
Jan Matas
817fb40fb5
Revert "Create a new pointer in btCollisionShape instead of just using userPtr."
...
This reverts commit d2d987a5ed
.
After discussion, we decided to use userPtr.
2018-02-12 11:26:39 +00:00
Erwin Coumans
c0781fa9f1
fix cmake build
2018-02-09 19:06:00 -08:00
Erwin Coumans
508550c5e9
fix premake build for linux, thanks to @consultit
...
See also issue #1538
2018-02-09 18:46:26 -08:00
Jan Matas
d2d987a5ed
Create a new pointer in btCollisionShape instead of just using userPtr.
2018-02-08 13:49:36 +00:00
Jan Matas
82214eb99f
Implemented support for softbodies in OpenGL renderer
2018-02-08 13:31:40 +00:00
erwincoumans
3fb26e4835
fix issue with plugin manager (store plugin uid instead of pointer)
2018-02-06 08:56:24 -08:00
erwincoumans
df0305462d
refactor b3RobotSimulatorClientAPI into a main part without GUI dependencies (no OpenGL, gwen, glew etc)
...
so that App_RobotSimulator_NoGUI can link against BulletRobotics and App_RobotSimulator links against BulletRobotics and some extra files.
2018-02-02 18:33:29 -08:00
Erwin Coumans
5776f61a73
fix issue that prevents p/invoke c# generation from PhysicsClientC_API.h
2018-01-29 19:16:01 -08:00
Erwin Coumans
bddbb3f9dd
TinyRenderer color pick: fix out-of-bounds issue
2018-01-25 16:02:47 -08:00
erwincoumans
a92423b6f7
minor clarification in UrdfRenderingInterface
2018-01-21 11:15:35 -08:00
erwincoumans
3073d60845
Update tinyRendererPlugin.cpp
2018-01-17 12:53:00 -08:00
erwincoumans
585f858842
PyBullet: bump up API version due to move of tinyrenderer into a plugin
2018-01-17 12:51:19 -08:00
erwincoumans
329a1f5a74
PyBullet: move TinyRenderer into a plugin, default statically loaded. You can also dynamically load a render plugin, as shown in renderPlugin.py example. premake has a way to compile the tinyRendererPlugin.
2018-01-17 12:48:48 -08:00
erwincoumans
df89ce6f92
small refactor of LinkVisualShapesConverter / TinyRendererVisualShapeConverter, it allows to use it in a Python module and in a PyBullet plugin.
2018-01-16 17:58:19 -08:00
erwincoumans
32d615565d
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2018-01-16 13:39:54 -08:00
erwincoumans
68c2253f82
reduce dependency: PhysicsServerCommandProcessor -> PhysicsCommandProcessorInterface
2018-01-16 13:39:37 -08:00
Erwin Coumans
af43e6465d
fix wrong enum type
2018-01-15 15:13:11 -08:00
erwincoumans
9ffb05eb3b
fix double->float issue by cast, fixes issue #1510
...
fix possible out-of-bounds access in btMultiBody
2018-01-15 11:59:00 -08:00
erwincoumans
9d405fde67
PyBullet: free cached textures
...
PyBullet: bool PhysicsServerCommandProcessor::pickBody, disable collision filtering to allow picking of all objects
2018-01-15 08:36:08 -08:00
erwincoumans
3c770e56fb
PyBullet/C-API: only free handle if we found it
2018-01-14 12:35:40 -08:00
erwincoumans
0919ce0f30
PyBullet: fix issue when picking an object while it is remove using PyBullet.removeBody
2018-01-14 11:01:57 -08:00
Erwin Coumans
79051b7611
allow to use colors from MJCF file as option (default to random Google colors), use p.loadMJCF(filename, flags=p.URDF_MJCF_COLORS_FROM_FILE
...
fix quadruped.py example.
add PyBullet.isConnected() API, more friendly than PyBullet.getConnectionInfo()["connected"]
2018-01-11 21:04:08 -08:00
erwincoumans
22b4809891
leave m_useGlobalVelocities to false, until enabled, for backward compatibility
...
use URDF_GLOBAL_VELOCITIES_MB flag in PyBullet loadURDF.
fix robot_bases.py due to new fields in getJointInfo.
backward compabitibility: BulletMJCFImporter, keep creating btMultiSphereShape for MJCF capsules with fromto, instead of shifted btCapsuleShapeZ, unless if CUF_USE_IMPLICIT_CYLINDER is used.
2018-01-10 11:16:50 -08:00
erwincoumans
c4b1b84687
Enable 'global absolute velocities' by default for btMultiBody. See 8.3.2B Proposed resolution Jakub Stepien PhD Thesis
...
https://drive.google.com/file/d/0Bz3vEa19XOYGNWdZWGpMdUdqVmZ5ZVBOaEh4ZnpNaUxxZFNV/view?usp=sharing
Fixes crashes due to rendering of softbody wireframe in the wrong thread (needs to be in 'debug' rendering section)
Use btCapsuleShapeZ instead of btMultiSphereShape when converting MJCF MuJoCo capsules using fromto
2018-01-09 22:47:56 -08:00
erwincoumans
15a429f1bf
premake build system fixes
2018-01-09 12:23:25 -08:00
erwincoumans
e138e85bca
allow to enable/disable implicit cylinder conversion through an API
...
p.loadURDF("r2d2.urdf", flags=p.URDF_USE_IMPLICIT_CYLINDER)
allow to enable/disable deterministicOverlappingPairs through an API
p.setPhysicsEngineParameter(deterministicOverlappingPairs = False)
2018-01-09 10:10:36 -08:00
YunfeiBai
de3b8bf3c9
Merge branch 'master' into master
2018-01-08 18:13:03 -08:00
Erwin Coumans
e97b751781
further work on urdfEditor.py, fix some serialization issues
2018-01-08 12:25:56 -08:00
yunfeibai
d3bc98e245
Add filename as an argument in the softbody loading function.
2018-01-07 19:56:46 -08:00
yunfeibai
d077bdec07
Change the API names for loading softbody.
2018-01-07 19:24:37 -08:00
yunfeibai
e3e9546960
Load the deformable object through obj file. Modify the demo for two way coupling between multibody and softbody.
2018-01-07 19:06:09 -08:00
Erwin Coumans
a85a4f387b
more work on UrdfEditor.py
2018-01-06 15:00:20 -08:00
Erwin Coumans
9523df2519
warning fix (param name different in header/cpp)
2018-01-04 15:48:59 -08:00
Erwin Coumans
c59a3763e5
tweak ImportMJCFSetup.cpp example MJCF humanoid a bit, clamp target positions to be within joint limits to avoid solver problems (conflicting constraints)
...
add humanoid_manual_control.py PyBullet example which is similar to ImportMJCFSetup.cpp
2018-01-04 13:14:11 -08:00
Erwin Coumans
36c258fd3d
fix PhysicsLoopBack
2018-01-03 21:38:09 -08:00
Erwin Coumans
79d78a325a
Start of a urdfEditor.py, limited support to extract a URDF from a PyBullet body.
...
Use btCylinderShapeZ for URDF cylinder, instead of converting it to a btConvexHullShape.
Implement PyBullet.getCollisionShapeData
Extend PyBullet.getDynamicsInfo / b3GetDynamicsInfo, remove flag (don't rely on API returning a fixed number of elements in a list!)
Extend PyBullet.getJointInfo: add parentIndex
2018-01-03 19:17:28 -08:00
Erwin Coumans
35b44f8a85
implement pybullet.saveState command, for in-memory storage of state.
...
bump up pybullet API version (SHARED_MEMORY_MAGIC_NUMBER) to 201801010
2017-12-31 15:37:16 -08:00
Erwin Coumans
9c55b61315
pybullet.createVisualShape: process sphere radius, box half extents, capsule+cylinder radius/length
...
fixes issue #1427 , https://github.com/bulletphysics/bullet3/issues/1427
2017-12-30 17:42:13 -08: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
Erwin Coumans
5517cbc4e0
add segmask_linkindex.py example using p.getCameraImage(320,200,flags=p.ER_SEGMENTATION_MASK_OBJECT_AND_LINKINDEX)
...
to extract object unique id and link index from segmentation mask in getCameraImage
2017-12-28 12:37:07 -08:00
Erwin Coumans
afd1066c50
pybullet.getCameraImage: preparation to expose link index in segmentation mask buffer
2017-12-28 10:18:35 -08:00
Erwin Coumans
97547eda0d
preliminary work towards saveState/restoreState and saveRestoreState.py example (not implemented yet)
...
allow multiple options in connect, for example: p.connect(p.GUI, options="--width=640, --height=480")
2017-12-28 10:05:51 -08:00
Erwin Coumans
799d030874
restore multibody world transform and joint angles/velocities from a .bullet file.
2017-12-22 14:45:36 -08:00