Commit Graph

75 Commits

Author SHA1 Message Date
Erwin Coumans
e98fca1e5e implement pybullet.getContactPointData(), two optional object unique ids as filter
returns a pylist of contact points. Each point has the following data:

	0     int m_contactFlags;//unused for now
         1     int m_bodyUniqueIdA;
         2     int m_bodyUniqueIdB;
         3     int m_linkIndexA;
         4     int m_linkIndexB;
         5-6-7     double m_positionOnAInWS[3];//contact point location on object A, in world space coordinates
         8-9-10     double m_positionOnBInWS[3];//contact point location on object A, in world space coordinates
         11-12-13     double m_contactNormalOnBInWS[3];//the separating contact normal, pointing from object B towards object A
         14     double m_contactDistance;//negative number is penetration, positive is distance.

         15    double m_normalForce;
2016-09-01 18:28:39 -07:00
erwincoumans
7790ee2f02 fix compile issue with pybullet.c on Visual Studio 2016-08-31 16:05:42 -07:00
yunfeibai
8eccac6fd8 Update CMakeLists to be the same as upstream. 2016-08-22 10:26:56 -07:00
YunfeiBai
94161246d9 Merge remote-tracking branch 'bp/master' 2016-08-19 12:02:48 -07:00
YunfeiBai
4611f5f097 Merge branch 'master' of https://github.com/YunfeiBai/bullet3 2016-08-19 12:01:09 -07:00
YunfeiBai
d26c424e11 modify cmake for pybullet 2016-08-19 12:00:55 -07:00
erwin coumans
5b0253ed47 Remove undesired assert, it makes pybullet mistakes fail in c++
Shared memory api/pybullet: by default, set joint motors in position PD mode with target 0, to maintain 0 joint angle.
pybullet: allow setJointControlMode(body, link, POSITION_CONTROL,targetPos etc.
2016-08-18 13:10:28 -07:00
Erwin Coumans
8f21e2bca9 fix compile issue 2016-08-17 20:01:45 -07:00
Erwin Coumans
17c16ccfa0 pybullet, deal with overflow of joints (maximum of 128 joints/links per multibody at the moment)
increase from 64 to 128 joints in shared memory API/pybullet
fix potential issue in tinyrenderer, related to missing segmentation mask buffer
report error if CMD_REQUEST_ACTUAL_STATE command on a multibody that exceed the number of links,
todo: stream data to allow arbitrary large number of links in shared memory API
2016-08-17 19:35:52 -07:00
erwin coumans
3bdcf23a05 Add sleep to avoid 100% busy CPU loop in PhysicsServerExample
Added btClock::usleep
Fix broken TinyRenderer example code.
2016-08-13 12:21:18 -07:00
Erwin Coumans
c75bebcafe revert accidently renaming of m_depthvalues4 2016-08-12 13:55:37 -07:00
Erwin Coumans
4abe083388 fix pybullet 2016-08-11 15:58:51 -07:00
erwin coumans
a9b1544a9f Add premake support to build pybullet, Windows and Linux tested, will enable Mac in next commit.
Expose inverse dynamics to Bullet shared memory API, through b3CalculateInverseDynamicsCommandInit and
b3GetStatusInverseDynamicsJointForces command/status. See PhysicsClientExeample or pybullet for usage.
Add option for Windows and Linux to set python_lib_dir and python_include_dir for premake and --enable_pybullet option
Expose inverse dynamics to pybullet: [force] = p.calculateInverseDynamics(objectIndex,[q],[qdot],[acc])
Thanks to Jeff Bingham for the suggestion.
2016-08-09 18:40:12 -07:00
Erwin Coumans
b880ddf76b add pybullet render API with yaw/pitch/roll option
add testrender.py file
allow option to enable OpenGL hardware renderer in multithreaded sim

b3RequestCameraImageSelectRenderer(commandHandle,ER_BULLET_HARDWARE_OPENGL);
2016-08-08 14:23:44 -07:00
Erwin Coumans
f5fca86d49 remove debug printf 2016-08-02 11:14:21 -07:00
Erwin Coumans
f304fd7611 add one more pybullet renderImage API and testrender.py example
tweak Bullet Inverse Dynamics, work-around compiler issue
2016-08-02 11:12:23 -07:00
Mat Kelcey
b4cfee8745 set dft for kd to be 1.0. note: this is only applicable to CONTROL_MODE_VELOCITY 2016-07-26 16:16:18 -07:00
Mat Kelcey
4b75c5d9d0 add another combo of args to allow kd to be configured in the CONTROL_MODE_VELOCITY case 2016-07-26 11:36:34 -07:00
Mat Kelcey
b221d2ad18 add targetPosition, targetValue, kp & kd to pybullet_setJointMotorControl 2016-07-26 11:09:12 -07:00
erwin coumans
c28cd03fbd OpenVR controller can pick/drag objects. Instructions, Windows only:
Compile using premake+visual studio, and compile App_SharedMemoryPhysics_VR
Compile pybullet using cmake using cmake -DBUILD_PYBULLET=OFF -DCMAKE_BUILD_TYPE=Release ..
Create a symbolic link from c:\python\dlls\pybullet.pyd to C:\develop\bullet3\cmp\lib\Release\pybullet.dll
App_SharedMemoryPhysics_VR
Run Python. Here are some Python lines to get going:
import pybullet as p
p.connect(p.SHARED_MEMORY)
p.loadURDF("cube.urdf")
p.setGravity(0,0,-10)
p.setRealTimeSimulation(1)

Allow real-time simulation in physics server, add pybullet command setRealTimeSimulation to control it
Mesh decimation (reduce number of triangles/vertices) using a Blender modifier for Kuka IIWA and Husky
Disabled the 'glFlush' commands in GLInstancingRenderer.
Add VR controller methods to examples\CommonInterfaces\CommonExampleInterface.h
Use the ANSI version in Windows file/string operations instead of unicode, hope this doesn't break builds.
2016-07-17 23:50:11 -07:00
Mat Kelcey
588bd007e7 bug fix for pybullet_applyExternalForce where linkId wasn't actually being used in b3ApplyExternalForce call 2016-07-13 21:20:41 -07:00
Mat Kelcey
048c01d7c4 Merge branch 'master' of git://github.com/bulletphysics/bullet3 into addFovToRenderImage 2016-07-12 13:52:25 -07:00
erwin coumans
02582e3a78 shrink down cube size of BasicDemo 10 times (it looked ginormous in VR) from 2x2x2 meter to 0.2
add test for VR HUD/sub-titles
fix issue in previous commit, partial string use %.8s not %8.s
use long long int in b3Clock
fix warning/error in pointer alignment in serialization
Fix pybullet Windows compilation.
(thanks to bkeys/https://github.com/bulletphysics/bullet3/pull/687)
2016-07-09 15:09:09 -07:00
Mat Kelcey
54979a0f89 pybullet renderimage with projection matrix calculated using field of view 2016-07-08 15:47:50 -07:00
Erwin Coumans
35b260b252 Merge remote-tracking branch 'bp/master' 2016-07-08 08:20:16 -07:00
erwin coumans
60d2b99151 Physics runs in a separate thread from rendering in PhysicsServerExample (preliminary)
Improve rendering performance. OpenVR experience is smooth now.
commit needs a bit more testing before pushing in main repo.
2016-07-07 19:24:44 -07:00
Jasmine Hsu
993bd52fe2 fix minor issues - arg parse size, spelling, duplicate function definition 2016-07-07 13:56:32 -07:00
Jasmine Hsu
43011bdb3b merge upstream/master to latest commit ed9be25 2016-06-27 13:53:43 -07:00
Jasmine Hsu
f6bead7152 edit method definitions (docstring) for calling renderImage() 2016-06-27 13:51:28 -07:00
Jasmine Hsu
e24ec9e8c0 nearVal and farVal as params 2016-06-27 13:18:12 -07:00
Jasmine Hsu
5d5e7df7c5 exposing near/far values as params; commented out debug printf which caused failed checks 2016-06-27 11:19:57 -07:00
erwincoumans
ed9be25570 Merge pull request #669 from hellojas/loadURDF
fix loading urdf at default position (0,0,0)
2016-06-26 19:12:20 -07:00
Erwin Coumans
013dbda023 implement a few more pybullet methods:
pybullet_applyExternalForce, pybullet_applyExternalTorque, pybullet_setTimeStep,
pybullet_resetBasePositionAndOrientation,
pybullet_getQuaternionFromEuler,
pybullet_getEulerFromQuaternion
2016-06-26 18:18:30 -07:00
Jasmine Hsu
d339cf5b74 ability to call renderImage with three vectors: camera position, target position, and up vector 2016-06-24 15:30:43 -07:00
Jasmine Hsu
aa91042ac8 merge bullet master 2016-06-24 15:20:46 -07:00
Erwin Coumans
c17c39c2c9 move PD control from PhysicsServerCommandProcessor into btMultiBodyJointMotor
improvements/changes in pybullet API
2016-06-24 11:06:56 -07:00
Erwin Coumans (Google)
6d1948e79e tweaks in pybullet and shared memory C-API:
allow to reset the state of a single joint
allow to set the target/mode for a single joint motor at a time
rename pybullet API: initializeJointPositions -> resetJointState
2016-06-24 07:31:17 -07:00
Jasmine Hsu
d2a2797201 accidently added pybullet.so 2016-06-23 14:06:14 -07:00
Jasmine Hsu
976e228be0 remove print debugger 2016-06-23 14:05:36 -07:00
Jasmine Hsu
a21889e225 remove print debugger 2016-06-23 14:01:57 -07:00
Jasmine Hsu
e0448c7613 fix loading urdf at default position (0,0,0) and adding b3 cmd to change orientation if args provided 2016-06-23 14:00:44 -07:00
Erwin Coumans
2cd0eba257 re-introduce old method in pybullet for temporary back-wards compatibility
b3JointControlCommandInit requires 3 args, but it was only 2,
use b3JointControlCommandInit2 for now.
2016-06-23 08:40:36 -07:00
Erwin Coumans
8b96e2de3c a few pybullet tweaks to set desired joint motor targets (pos/vel/torque) 2016-06-22 23:21:47 -07:00
Erwin Coumans
f5ffb11bc5 fix bus error on Raspberry Pi, unaligned float access when loading STL files
fix pybullet Python 3 issue (PyString_FromString -> PyBytes_FromString and PyInt_FromLong -> PyLong_FromLong)
2016-06-23 05:10:00 +00:00
erwincoumans
0b249361c2 fix a c99 issue in pybullet 2016-06-21 09:01:27 -07:00
erwincoumans
01cad7c2a5 fix return type in pybullet
.
2016-06-20 15:00:35 -07:00
erwincoumans
b58978184c fix C99 issue, use malloc, not variable sized array.
.
2016-06-20 14:58:56 -07:00
Erwin Coumans
a67df7fd03 fix cmake and premake build systems, after adding texture support in SDF,
in a nutshell, add the following two files:

examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp
examples/ThirdPartyLibs/stb_image/stb_image.cpp
2016-06-19 17:35:25 -07:00
Erwin Coumans
53a0772257 fix some issues related to controlling a robot/multibody beyond body index 0
(most testing happened with a single robot/multibody so far)
preliminary pybullet.setJointControl implementation
2016-06-16 18:46:34 -07:00
Jasmine Hsu
03fded3dc7 getJointPositions returns a list of all joint positions for a given bodyIndex 2016-06-15 14:21:04 -07:00