Commit Graph

70 Commits

Author SHA1 Message Date
Erwin Coumans
c521d816c6 add user debug line/text features in pybullet + shared memory API:
addUserDebugLine,
addUserDebugText
removeUserDebugItem
removeAllUserDebugItems
2016-11-14 07:39:34 -08:00
erwin coumans
7577c6d893 add pybullet loadBullet, saveBullet (work-in-progress) and placeholder for loadMJCF. 2016-11-11 18:07:42 -08:00
erwincoumans
9b5aa9a723 pybullet getOverlappingObjects added: report all object unique ids within a world space bounding box (aabb) 2016-11-10 11:22:22 -08:00
erwincoumans
0d47d61007 pybullet getClosestPoints 2016-11-09 21:01:04 -08:00
Erwin Coumans
cf21da4c9d fix a few issues in UDP networking 2016-11-04 17:44:16 -07:00
erwincoumans
ff2738db26 Merge remote-tracking branch 'bp/master' 2016-11-04 13:16:55 -07:00
erwincoumans
e35129ceaf Merge branch 'master' of https://github.com/erwincoumans/bullet3 2016-11-04 13:16:30 -07:00
erwincoumans
9708392322 work-in-progress
add UDP network connection for physics client <-> server.
also set spinning friction in rolling friction demo (otherwise objects may keep on spinning forever)
2016-11-04 13:15:10 -07:00
yunfeibai
3c37db0804 Add API to set bunny properties. Add example to show coupling between softbody and multibody. 2016-11-01 16:45:10 -07:00
erwincoumans
f01389ded2 Merge pull request #842 from erwincoumans/master
added b3PhysicsParamSetInternalSimFlags command, and pybullet setInte…
2016-10-23 08:26:52 -07:00
erwincoumans
c2ca88bf44 added b3PhysicsParamSetInternalSimFlags command, and pybullet setInternalSimFlags API.
//Use at own risk: magic things may or my not happen when calling this API.

This allows to enable/disable robot assets (samurai world, gripper, KUKA robot etc) in Physics Server (and App_PhysicsServerVR etc)
1 = create robot assets
2 = create experimental box-vr-gui

Add optional command-line parameter for App_PhysicsServerVR, --norobotassets, to start with an empty world, no assets in VR (no gripper, no kuka)
2016-10-23 07:14:50 -07:00
yunfeibai
3d79961725 Add API to change texture with object id and link index. 2016-10-21 11:55:27 -07:00
yunfeibai
4911b14271 Add loading texture API. 2016-10-20 23:40:30 -07:00
erwin coumans
f97cb7002d first version of 'getVisualShapeData' to get visual shape information to allow external renderer with pybullet and shared memory robotics API
b3InitRequestVisualShapeInformation/b3GetVisualShapeInformation in shared memory API
2016-10-18 22:05:28 -07:00
yunfeibai
7e8d8b0488 Expose rest pose for null space task to API. 2016-09-30 01:03:40 -07:00
yunfeibai
fd3cb061cb Expose IK with null space task to shared memory API and RobotSimAPI. 2016-09-30 00:05:00 -07:00
erwin coumans
310a330572 fix InverseKinematics+API for a case without tree (custom build Jacobian) 2016-09-22 13:27:09 -07:00
yunfeibai
bf16c87987 Add orientation constraint to IK. 2016-09-19 17:04:05 -07:00
Erwin Coumans
5e09b17baf experimental Inverse Kinematics for KUKA iiwa exposed in
shared memory api and pybullet. Will be extended for arbitrary bodies
and with target orientation (besides target position)
2016-09-13 23:37:46 +01:00
yunfeibai
c952c50ad9 Merge remote-tracking branch 'upstream/master' 2016-09-11 04:11:51 -07:00
erwin coumans
32eccdff61 Create project file for BussIK inverse kinematics library (premake, cmake)
URDF/SDF: add a flag to force concave mesh collisiofor static objects. <collision concave="yes" name="pod_collision">
VR: support teleporting using buttong, allow multiple controllers to be used, fast wireframe rendering,
Turn off warnings about deprecated C routine in btScalar.h/b3Scalar.h
Add a dummy return to stop a warning
Expose defaultContactERP in shared memory api/pybullet.
First start to expose IK in shared memory api/pybullet (not working yet)
2016-09-08 15:15:58 -07:00
yunfeibai
f635c64205 Expose Jacobian computation to RobotSimAPI. 2016-09-07 17:37:38 -07:00
yunfeibai
c198029cb9 Expose body Jacobian in shared memory API. 2016-09-07 16:00:38 -07:00
erwincoumans
85fd7f560c add first draft of contact point query in shared memory API
b3SharedMemoryCommandHandle b3InitRequestContactPointInformation(b3PhysicsClientHandle physClient);
void b3SetContactFilterBodyA(b3SharedMemoryCommandHandle commandHandle, int bodyUniqueIdA);
void b3SetContactFilterBodyB(b3SharedMemoryCommandHandle commandHandle, int bodyUniqueIdB);
void b3GetContactPointInformation(b3PhysicsClientHandle physClient, struct b3ContactInformation* contactPointData);
Implemented for PhysicsClientSharedMemory, not for PhysicsDirect yet.
Add btCollisionObject::setUserIndex2
2016-09-01 13:30:07 -07:00
yunfeibai
5b9b5178f9 Expose slider constraint in RobotSimAPI. 2016-08-26 10:35:10 -07:00
yunfeibai
d46710e447 Expose fixed constraint in RobotSimAPI. 2016-08-22 18:14:29 -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
yunfeibai
591f922d97 Support loading Urdf as btRigidBody with RobotSimAPI. Loading Sdf as btRigidBody is work in progress. 2016-08-16 17:56:30 -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
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
erwin coumans
4a705d1e03 Add kiva_shelf to prepare for picking/grasping task
Fix uninitialized variable jointDamping/jointFriction in SDF importer
Add SDF <pose> parsing in visual, inertial, collision elements.
Slight improvement in TinyRender loading performance of largish meshes (30k vertices)
Reduce #define MAX_SDF_BODIES to 500, due to some issue in client code, todo: figure out what the issue is.
b3RobotSimAPI support SDF file loading
Tiny improvement in OpenGL hardware renderer lighting, to distinguish faces without textures
2016-07-14 00:05:57 -07:00
Erwin Coumans
10cc6f14cb add option to use hardware OpenGL renderer for synthetic camera 2016-07-12 18:16:13 -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
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
Erwin Coumans
456c844a6b work-in-progress send object/joint information after loading SDF file 2016-06-14 18:41:19 -07:00
erwincoumans
6523df336e Fix pybullet Windows build errors: C99 requires variables to be defined at the start of the function.
Improve CMake Windows support to build PyBullet (BUILD_PYBULLET)
Implement b3LoadSdfCommandInit in shared memory API
Implement pybullet SDF loading binding, in loadSDF API
TODO for SDF support is provide way to query object/link/joint information.
2016-06-13 10:11:28 -07:00
Erwin Coumans
d2e50d045b fix issues related to camera width/height
add width,height as arguments to pybullet.renderImage(x,y,[viewMat4x4],[projMat4x4])
2016-06-07 16:11:58 -07:00
erwin coumans
4b2c0f6d89 make one of the cubes in two_cubes.sdf static (immovable) using the <static> tag in SDF
add an example using 'direct'
fix the send-desired-state commands, to add flags for arguments set, using default values.
Start exposing SDF loading in shared memory api, not fully implemented yet.
2016-06-03 19:03:56 -07:00
erwin coumans
ef85a71d4b more work on synthetic camera 2016-06-01 11:04:10 -07:00
erwin coumans
14aa666c6f preparation to receive camera image data from physics server
increase shadowmap world size default to 50 units (meter), 10 units (meter) was too small for most examples.
2016-05-31 10:23:04 -07:00
Erwin Coumans
ab4299f517 expose the local inertial frame for each link in the shared memory API
struct b3LinkState
{
    double m_worldPosition[3];//this is the inertial frame
    double m_worldOrientation[4];

    double m_localInertialPosition[3];//this is the local frame from inertial to link frame
    double m_localInertialOrientation[4];
};

  const btTransform link_frame_world =
               inertial_frame_world * m_local_inertial_frame->inverse();
2016-04-29 14:46:25 -07:00
Erwin Coumans
f99d1c45aa expose multibody link world transform in the shared memory API 2016-04-23 17:29:46 -07:00
Erwin Coumans
59b32b7af1 re-enable command log and playback in physics server
report applied motor torque in physics server
2016-04-08 18:17:17 -07:00
Erwin Coumans
7e4dfb7207 remove SimpleOpenGL3 demo, it breaks some builds
reset callback to 0 after exiting a demo to avoid issues
2016-03-17 16:11:53 -07:00
erwincoumans
03bf78ef49 add physics server loopback (both client and server in the same process, using shared memory)
add physics server direct (client and server in the same process, directly processing commands without shared memory transport mechanism)
2015-11-22 20:50:32 -08:00
erwincoumans
3b9b803683 b3CreateBoxCommandSetColorRGBA: allow to specify color when creating bodies through shared memory API
Parse and use colors from URDF file (single rgba color per link, not per visual)
Rename btMultiBody 'stepVelocities' to 'computeAccelerationsArticulatedBodyAlgorithmMultiDof'
btHashMap, add const Value* operator[]
remove a few more obsolete btMultiBody methods (on the non-multi-dof path)
fix spelling typo in fillConstraintJacobianMultiDof (fil -> fill)
Add mention to Jakub Stepien for his work on btMultiBody
2015-11-06 17:11:15 -08:00
erwin coumans
c68c215ead add rudimentary command logging for shared memory physics server 2015-10-30 10:30:48 -07:00
erwin coumans
2d5d89d999 Allow to request the state of a rigid body (position, orientation, lin/ang velocity) through shared memory API
PhysicsClientC_API: b3RequestActualStateCommandInit requires a body unique Id as second argument
2015-10-27 15:46:13 -07:00
erwin coumans
9cc2b1ec12 Physics SharedMemory:
Add flags BOX_SHAPE_HAS_MASS and  BOX_SHAPE_HAS_COLLISION_SHAPE_TYPE to CMD_CREATE_RIGID_BODY
(which maps to CMD_CREATE_BOX_COLLISION_SHAPE for backward compatibility for now)
Need to add way to receive world transform
2015-10-27 14:55:46 -07:00
Erwin Coumans
21b7a47129 although still not implemented, IMU enum had wrong value, thanks JF 2015-10-17 20:12:50 -07:00