Commit Graph
100 Commits
Author SHA1 Message Date
erwincoumans b5e475aec3 enable planar reflection in MinitaurGymEnv
enable follow cam in other Gym locomotion environments
add testing assets for multi-material obj files -> sdf conversion.
Also use ER_NO_SEGMENTATION_MASK flag for TinyRenderer/EGL plugin renderer
2018-10-14 15:10:19 -07:00
erwincoumans c1e20c448f Implement InMemoryFile for memory caching for fileIO plugin.
Support SDF loading through fileIO plugin.
Replace strcspn by C code (not crossplatform)
Add flag for loadURDF to use color from MTL file (instead from URDF link material)
pybullet.URDF_USE_MATERIAL_COLORS_FROM_MTL and pybullet.URDF_USE_MATERIAL_TRANSPARANCY_FROM_MTL
2018-10-14 12:54:34 -07:00
erwincoumans 3309ce8f6a strip \r \n from line 2018-10-13 16:23:58 -07:00
erwincoumans ad10da57c5 more initial work on fileIOPlugin 2018-10-11 17:00:17 -07:00
erwincoumans a24c1436af state 2 of FileIO plugin: adding/removing FileIO types, search through all registered FileIO types.
(not enabled by default yet)
Example:
fileIO = p.loadPlugin("fileIOPlugin")
print("fileIO=",fileIO)
p.executePluginCommand(fileIO,"e:/develop/bullet3/data/plane.zip", [p.AddFileIOAction,p.ZipFileIO])
p.executePluginCommand(fileIO,"e:/develop/bullet3/data/test2.zip", [p.AddFileIOAction,p.ZipFileIO])
planeId = p.loadURDF("plane.urdf")
duckId = p.loadURDF("duck_vhacd.urdf",[0,0,1])
2018-10-11 14:39:31 -07:00
erwincoumans f792a5951a move zipfFileIO into own header
route loadTextureFile from fileIO plugin
fix B3_ENABLE_FILEIO_PLUGIN logic
2018-10-11 10:58:14 -07:00
erwincoumans bb305c6ebc allow to provide rayCastBatch in local 'from'/'to' with a parent/link index, b3RaycastBatchSetParentObject
If parentObjectUniqueId provided, convert local from/to into world space coordinates
AddUserDebugLins: don't block when replacing an item
Fix examples/pybullet/examples/inverse_kinematics.py
2018-10-10 23:31:50 -07:00
erwincoumans d6b50d3bcc Merge pull request #1927 from erwincoumans/master
backward compatibility fix
2018-10-09 21:45:48 -07:00
erwincoumans 03461a0d1f Merge pull request #1922 from erwincoumans/master
First pass of load files through an interface (to allow loading from …
2018-10-09 11:14:40 -07:00
erwincoumans dba239fe8d First pass of load files through an interface (to allow loading from memory, zip file etc). So instead of posix fopen/fread, using CommonFileIOInterface.
A fileIO plugin can override custom file IO operations. As a small test, load files from a zipfile in memory.
Default fileIO implementation is in examples/Utils/b3BulletDefaultFileIO.h
Affects URDF, SDF, MJCF, Wavefront OBJ, STL, DAE, images.
2018-10-08 21:27:08 -07:00
erwincoumans a1543714f1 Merge pull request #1919 from erwincoumans/master
btMultiBody: fix indexing issue causing wrong friction to be reported, remove obsolete BT_PYBULLET_GRPC and PYBULLET_EGL
2018-10-06 19:02:09 -07:00
erwincoumans 332cbfa609 fix typo in previous commit 2018-10-06 18:37:51 -07:00
erwincoumans c2486bb1a6 add contactFriction.py example 2018-10-06 15:27:56 -07:00
erwincoumans c0e38cd921 Merge pull request #1896 from jviereck/jviereck_add_lateral_contact_info
Adding support for lateral friction to getContactPoints()
2018-10-06 15:27:14 -07:00
erwincoumans 71d4a90c98 btMultiBody: fix indexing issue causing wrong friction to be reported (has no effect, since we don't use warmstarting for multibody) 2018-10-06 15:25:22 -07:00
erwincoumans 8765c0a027 Merge remote-tracking branch 'bp/master' 2018-10-06 13:18:22 -07:00
erwincoumans cb55094a11 Merge pull request #1918 from erwincoumans/master
fix depth image, setRGBA color and projective texture for eglPlugin, also  add getCameraImageTest.py to compare various render modes.
2018-10-05 21:36:40 -07:00
erwincoumans 9a7cc7bcd7 add getCameraImageTest.py to compare GUI (with OpenGL3 GLInstancingRenderer), TinyRenderer and DIRECT+eglPlugin (with OpenGL3 GLInstancingRenderer) 2018-10-05 19:31:03 -07:00
erwincoumans 2c13e70d1a make projective textures work in DIRECT+eglPlugin (see examples/pybullet/examples/projective_texture.py) 2018-10-05 19:24:44 -07:00
erwincoumans 111ffc784d Use 2560x2048 as default window/framebuffer size for eglPlugin. 2018-10-05 18:28:37 -07:00
erwincoumans 40d7e292f2 fix depth image for eglPlugin, also fix setRGBA color for eglPlugin. 2018-10-05 18:25:51 -07:00
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
erwincoumans 62016a785b Merge pull request #1915 from WenlongLu/create_status
Fix a memory leak when removing collision shape
2018-10-02 12:18:32 -07:00
erwincoumans db6f35b88a Merge pull request #1914 from erwincoumans/master
removed flags from loadURDF command. The flags are already available …
2018-10-02 08:42:09 -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
erwincoumans e668eee028 Merge pull request #1913 from erwincoumans/master
add glViewport after startRendering
2018-10-02 08:17:12 -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
erwincoumans a86db9c8c6 Merge pull request #1911 from erwincoumans/master
fix EGL issue related to glViewport in startRender method
2018-10-01 18:52:23 -07:00
erwincoumans 6b63e81829 Merge pull request #1907 from erwincoumans/master
scaling striding is 4 (scaling+object uid) instead of 3,
2018-09-30 21:18:07 -07:00
erwincoumans bfafd9b0ae Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-09-30 20:02:32 -07:00
erwincoumans 6d89413336 scaling striding is 4 (scaling+object uid) instead of 3, also for transparent objects 2018-09-30 20:02:12 -07:00
erwincoumans 0ffa9a97bd scaling striding is 4 (scaling+object uid) instead of 3, also for transparent objects 2018-09-30 19:52:19 -07:00
erwincoumans 95d5da1cd9 Merge pull request #1906 from erwincoumans/master
apply clang-format (on Mac, slightly different than running it on Win…
2018-09-30 11:44:45 -07:00
erwincoumans 85da5e922d Merge pull request #1905 from erwincoumans/master
PyBullet Allow OpenGL/EGL hardware to render segmentation mask. Much faster OpenGL/EGL rendering for small images, resize glViewport
2018-09-30 07:53:08 -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 254edb61cb Merge remote-tracking branch 'bp/master' 2018-09-29 10:35:01 -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
erwincoumans 39bca74041 Merge remote-tracking branch 'bp/master' 2018-09-28 10:14:45 -07:00
erwincoumans df78380718 Merge pull request #1899 from WenlongLu/master
Add const qualifiers to the double [] inputs in PhysicsClientC_API
2018-09-26 19:11:53 -07:00
erwincoumans 180a9f5103 Merge pull request #1897 from erwincoumans/master
Fix eglPlugin
2018-09-24 08:07:26 -07:00
erwincoumans c1ba89a01c Fix eglPlugin 2018-09-24 08:06:28 -07:00
erwincoumans cdd56e4641 Merge pull request #1895 from erwincoumans/master
Code-style consistency improvement: _clang-format applied
2018-09-23 19:22:09 -07: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 d54c8395ac Merge pull request #1882 from lucasw/patch-1
Spelling fix: on-way -> one-way
2018-09-22 14:59:48 -07:00
erwincoumans cff111ba04 Merge pull request #1894 from erwincoumans/master
allow to disable self-collision for a link-pair, only enable eglPlugin for Linux (disable eglPlugin for Win/Mac)
2018-09-22 14:59:08 -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
erwincoumans 8d8f96c850 Merge pull request #1886 from erwincoumans/master
pybullet, fix single step synchronous rendering, add missing files in pip version 2.1.8
2018-09-20 09:26:58 -07:00
erwincoumans 874bbc91a3 Merge remote-tracking branch 'bp/master' 2018-09-20 09:08:56 -07:00
erwincoumans 1ec616362c Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-09-20 09:08:46 -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 d315673d3a Merge pull request #1879 from erwincoumans/master
fix internal build / pybullet version bump
2018-09-14 18:54:41 -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
erwincoumans 826ca0892a Merge pull request #1877 from erwincoumans/master
bump up pybullet version to 2.1.5
2018-09-12 20:34:24 -07:00
erwincoumans bd4717e9cc Merge pull request #1876 from erwincoumans/master
use numpy to reshape image data to matplotlib compatible format
2018-09-12 20:25:53 -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 bf3399d0e3 Merge remote-tracking branch 'bp/master' 2018-09-12 09:18:25 -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
erwincoumans 87e8711b0a Merge pull request #1872 from RanTig/GetLinkStateFix
Change b3GetLinkState to use numLinks in status handle
2018-09-11 08:48:30 -07:00
erwincoumans 5b1588fc3f fix createProtobufs.bat script 2018-09-10 23:32:51 -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
erwincoumans ab84975ca9 Merge pull request #1870 from erwincoumans/master
pybullet eglPlugin: fix Mac OSX build
2018-09-10 12:23:36 -07:00
erwincoumans 1a047901ce Merge pull request #1869 from erwincoumans/master
fixes in eglRendererPlugin
2018-09-10 07:51:39 -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 2744e84592 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-09-09 15:25:27 -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 c4fe0f7357 disable enable_egl by default (?!?) 2018-09-09 14:39:56 -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 377a89c09c Merge pull request #1866 from jna29/bug-fix/robot-manipulators-errors
Fixed bugs mistaking forearm_roll_joint for upper_arm_roll_joint
2018-09-08 18:53:47 -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
erwincoumans cc91b4a7cf Merge pull request #1865 from erwincoumans/master
update quickstart guide, bump up pybullet version
2018-09-08 13:50:52 -07:00
erwincoumans 9085c18354 Merge pull request #1863 from erwincoumans/master
remove pre-build proto/grpc files (they differ for each platform and …
2018-09-07 16:17:06 -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 12409f1118 Merge pull request #1860 from erwincoumans/master
allow pybullet to connect to GRPC server. (need to use flag --enable_…
2018-09-05 21:20:21 -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
erwincoumans 437c0426c9 Merge pull request #1859 from erwincoumans/master
only add notifications if there is a plugin that needs them
2018-09-04 20:59:29 -07:00
erwincoumans c084763795 Merge pull request #1858 from erwincoumans/master
make GRPC work on Linux,
2018-09-04 17:49:49 -07:00
erwincoumans 2006f134b6 Merge pull request #1857 from erwincoumans/master
make grpc work on Mac OSX with premake
2018-09-04 17:03:27 -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 5b5e4f4d74 Merge pull request #1854 from RanTig/pybullet-plugincommand-fix
Small fix in executePluginCommand
2018-09-04 09:42:32 -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
erwincoumans 23e84ca9b6 more work on proto/pybullet.proto 2018-09-01 13:49:56 -07:00
erwincoumans 3285143232 Merge pull request #1851 from RanTig/use-dlmopen
Uses dlmopen() instead of dlopen() in b3PluginManager.cpp. This allow…
2018-08-31 14:13:13 -07:00
erwincoumans a9299fbd0c Merge pull request #1853 from erwincoumans/master
fix crash in btInternalEdgeUtility when a mesh is not the expected type
2018-08-31 14:12:43 -07:00
erwincoumans 4bf846822f Merge pull request #1850 from erwincoumans/master
Add preliminary GRPC server for PyBullet and BulletRobotics.
2018-08-30 19:40:13 -07:00
erwincoumans f10068b7c9 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-08-30 18:36:06 -07:00
erwincoumans ee9fca8c29 GJK fix for https://github.com/bulletphysics/bullet3/issues/1703
In a nutshell, we added a more reliable check, based on if the origin is in the GJK simplex, to determine if we are really intersecting and need to run EPA.
See also "Real-time Collision Detection with Implicit Objects" by Leif Olvang
Todo: integrate the simplex penetration check directly inside the Bullet btVoronoiSimplexSolver
and remove this temporary code from libCCD
Note, for large differences in shapes, use double precision build!
2018-08-30 18:35:51 -07: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
erwincoumans 4d00beefbb Merge pull request #1849 from madebr/fix_1827
Fix for bug #1827
2018-08-29 20:54:31 -07:00
erwincoumans 65175425b0 Merge pull request #1848 from erwincoumans/master
more fixes related to islands
2018-08-27 08:50:46 -07:00
Erwin Coumans 2668b89740 fix another island issue 2018-08-26 22:25:39 -07:00