Commit Graph

2199 Commits

Author SHA1 Message Date
Erwin Coumans
f20b7bb07c tweak pole IK demo 2018-09-25 06:22:06 +00:00
erwincoumans
c1ba89a01c Fix eglPlugin 2018-09-24 08:06:28 -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
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
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
Erwin Coumans
0de99f224a fix compilation on ARM (Ubuntu 18.04, NVIDIA Xavier) 2018-09-19 16:18:06 -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
Erwin Coumans
d909448ee3 bump up pybullet version again 2018-09-12 21:03:07 -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
Erwin Coumans
1efee29c27 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-09-12 08:20:03 -07:00
Erwin Coumans
c83fa30daa use numpy to reshape image data to matplotlib compatible format
fixes issue #1871
2018-09-12 08:19:30 -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
Erwin Coumans
23ecbab7b3 fix setup.py and pybullet to work better with eglPlugin on Linux 2018-09-11 13:24:35 -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
6992195ba8 add pybullet example for eglRendererPlugin, will use EGL in a plugin on Linux, Win32OpenGLWindow in a plugin on Windows 2018-09-09 23:03:07 -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
Joshua Aduol
cc4c02edc7 Fixed bugs mistaking forearm_roll_joint for upper_arm_roll_joint 2018-09-09 00:17:06 +01: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
a670041793 Small fix in executePluginCommand, now you can pass int arguments while keeping floats null without errors. 2018-09-03 10:41:38 +02:00
Tigran Gasparian
93145f3979 Adding space to make compiler happy. 2018-09-03 10:37:22 +02:00