Commit Graph

282 Commits

Author SHA1 Message Date
erwincoumans
cec8da3d85 Implement first draft of pybullet.createVisualShape and add createVisualShape.py example
add normals to duck.obj for nicer appearance
fix plane100.urdf (so collision shape matches visual shape size)
2017-10-07 18:50:23 -07:00
Jie
a1e260f9f1 add tingnan's new minitaur urdf for derpy. 2017-10-06 13:14:23 -07:00
Jie Tan
d0a14743c1 add the urdf from system id from tingnan 2017-10-02 15:58:26 -07:00
erwincoumans
dd2c7af2b2 Update pybullet autogenerated C# bindings, with very basic example script that runs inside Unity 3D 2017-09-29 07:47:31 -07:00
erwincoumans
8a265b8af2 expose gear erp/relative position target to C-API/pybullet
finish much better C++ vrSyncPlugin, running in-the-loop with the physics at high frequency, see also vr_kuka_setup_vrSyncPlugin.py
2017-09-26 19:54:36 -07:00
Erwin Coumans
ae8f12e8ba more fixes for retina + glfw + opengl2 fallback 2017-09-20 13:09:18 -07:00
Erwin Coumans
fb05763093 support retina / scale factor between pixel size and screen coordinate size 2017-09-20 10:07:18 -07:00
Erwin Coumans
c30e9aea92 revert minitaur.urdf to previous (backward compatibility) and add _v1 for better version. 2017-09-07 11:23:41 -07:00
erwincoumans
eb97e06280 fix minitaur.urdf: move lower-leg inertia to center, add missing collision for one of the motors, add contact parameters for friction_anchor, spinning friction, compliance (stiffness/damping)
fix in indexing for maximal coordinates (unused by default, still experimental, requires many iterations for Minitaur due to extreme mass-ratio, hence use of reduces/generalized coordinates)
modify quadruped.py to test maximal coordinates
wrap angular servo (positional) target within [-PI,PI] in btGeneric6DofSpring2Constraint
add 'j' key to show body frames in wireframe/debug mode
2017-09-02 01:05:42 -07:00
Erwin Coumans
1569f3845c more fixes in pybullet_gym envs/data.
implement pybullet.setAdditionalSearchPath
2017-08-27 19:34:00 -07:00
Erwin Coumans
f19f28b5ed more fixes in pybullet/resources, moved enjoy/train/test in 'examples' folder. 2017-08-22 10:07:47 -07:00
erwincoumans
c0984b80e5 Merge pull request #1231 from benelot/bullet-gym
Add nearly all gym environments using pybullet together with the…
2017-08-18 13:29:43 -07:00
Benelot
aed57d130e Update mjcf files!
----------------------------------
Git did not realize I changed those.
2017-08-17 00:04:21 +02:00
Erwin Coumans
aafaa7e33e Expose optional "globalScaling" factor to pybullet.loadURDF and pybullet.loadSDF. This will scale the visual, collision shapes and transform locations.
Fix two_cubes.sdf (was lacking collision shape for second cube)
2017-08-14 14:59:41 -07:00
Erwin Coumans
d28dd2f80a add 'createObstacleCourse.py' example, helps reproducing
Parkour paper: https://arxiv.org/abs/1707.02286
2017-07-29 13:18:49 +02:00
Erwin Coumans
b63023c692 add transparent plane 2017-07-01 11:47:57 -07:00
Erwin Coumans
9cf747b35b a few compile/warning fixes 2017-07-01 10:01:55 -07:00
Erwin Coumans
88897cc744 implement pybullet.changeTexture. For now, the width/height has to match the target texture unique id, otherwise crashes may happen (a check for width/height match will be added)
See also examples\pybullet\examples\changeTexture.py
2017-06-30 19:11:43 -07:00
Erwin Coumans
bf800e30d5 Added manually converted widowx.urdf from https://github.com/RobotnikAutomation/widowx_arm
Added simple pybullet file in Bullet/examples/pybullet/examples/widows.py (preliminary, both URDF and py file needs more work to be useful)
https://github.com/RobotnikAutomation/widowx_arm/blob/master/widowx_arm_description/package.xml
See also http://www.trossenrobotics.com/widowxrobotarm
2017-06-29 17:54:04 -07:00
erwincoumans
d5fe67cf57 Add pybullet transparent.py example, transparency with global per-object sort in GLInstancingRenderer 2017-06-24 19:38:31 -07:00
Erwin Coumans
65e22ba3e9 allow auxilary link to be used for gear btMultiBodyGearConstraint. 2017-06-23 20:24:04 -07:00
Erwin Coumans
71170d6384 reduce stack usage (cause some crashes in low-stack tests)
fix crashing bug in changeVisualShape
add differential gear version of racecar (only 2 back wheels are powered)
2017-06-20 20:22:14 -07:00
erwincoumans
c903bd8a49 tune kuka grasp gym env (make it a bit too easy) 2017-06-15 11:18:08 -07:00
erwincoumans
d2888f0884 add nicer meshes to kuka_with_gripper.sdf and add kuka_with_gripper2.sdf that can rotate without messing up IK
fix tray/tray_textured4.obj and tray/tray.urdf
fix kuka_with_cube.py
allow both IK /end-effector control and joint-space control in kuka environment, use 1./240. sec. step and 150 solver iter
bump up pybullet to 1.1.7
2017-06-14 19:34:33 -07:00
Erwin Coumans
a0ded43a69 use cnn_to_mlp to allow training of racecar using (extremely simplified) ZED camera pixel data using OpenAI baselines.
add a red sphere to make training a bit easier for now.
2017-06-13 18:33:32 -07:00
erwincoumans
b2a46a7edd mimicJointConstraint.py creates actual differential drive
See https://www.youtube.com/watch?v=pK3PTPlRTGA  :-)
2017-06-09 10:15:05 -07:00
Erwin Coumans
b325844b9a add missing 'wheel.urdf" and very simple procedural terrain generation (sine wave) 2017-06-08 14:28:33 -07:00
erwincoumans
7e12034097 improve racecar visuals a little bit with a texture on the wheels 2017-06-06 09:45:06 -07:00
erwincoumans
ae00c24a5c add MIT racecar URDF, meshes and racecar.py quick test 2017-06-06 09:23:40 -07:00
yunfeibai
bfcbb339cf Merge remote-tracking branch 'upstream/master' 2017-06-02 18:26:04 -07:00
erwincoumans
3987bdd333 remove pose frame from SDF,
allow plane collision shape in SDF
load the Roboschool stadium.sdf in humanoid_knee_position_control.py
2017-06-01 20:13:39 -07:00
yunfeibai
e6d1a8cf97 Swap yaw and pitch in camera computation. Add functions to convert view matrix to camera position, and camera position to camera yaw pitch roll. 2017-06-01 15:30:37 -07:00
Erwin Coumans
87293e835c implement specular, URDF non-standard specular part (see sphere2.urdf) and SDF specular support.
pybullet.changeVisualShape(obUid,linkIndex,specularColor=[R,G,B]) and Bullet C-API b3UpdateVisualShapeSpecularColor
Bug fixes in b3ResourcePath::findResourcePath resolution.
add stadium.sdf and roboschool/models_outdoor/stadium assets https://github.com/openai/roboschool/tree/master/roboschool/models_outdoor/stadium
minor fixes to obj2sdf
2017-06-01 12:32:44 -07:00
Erwin Coumans
439e8c84cf add new .obj files for kuka_iiwa/model.urdf 2017-05-31 21:43:09 -07:00
Erwin Coumans
3157093125 Implemented specular reflective lighting for OpenGL 3.x, everything looks shiny (will add APIs to make it less shiny ;-)
Remove roof from kitchens/1.sdf, otherwise shadows and shinyness won't work (light is outside the room, bouncing against roof-top)
Make kuka_iiwa/model.urdf more smooth, use .obj for per-vertex normals (using Blender, import STL, export OBJ, enable triangles, normals and Z-UP, Y forward)
2017-05-31 20:32:45 -07:00
erwincoumans
5436b8f048 print better error warning, in case the physics client/server version mismatch.
fix in b3HashString
remove many unused dependencies from kuka_grasp_block_playback.py (time,math, datetime ,numpy,pylab ,sys, os, fnmatch,argparse were not used!)
move block_grasp_log.bin from Bullet3/data to Bullet3/examples/pybullet/examples/data folder.
PhysicsServerCommandProcessor, derive from CommandProcessorInterface to prepare for different back-end implementation
2017-05-28 17:05:18 -07:00
Erwin Coumans
b645963879 expose pybullet changeDynamics(spinningFriction=..., rollingFriction=..., restitution=...)
Bullet C-API b3ChangeDynamicsInfoSetSpinningFriction/RollingFriction/Resitution
b3PhysicsParamSetRestitutionVelocityThreshold, / pybullet.setPhysicsEngineParameter restitutionVelocityThreshold:
if the velocity is below this threshhold, the restitution is zero (this prevents energy buildup at near-resting state)
pybullet restitution.py example.
2017-05-26 18:14:38 -07:00
Erwin Coumans
9f7d7fecd5 more rendering fixes 2017-05-23 23:34:55 -07:00
yunfeibai
d383799d97 Merge remote-tracking branch 'upstream/master' 2017-05-22 22:23:55 -07:00
yunfeibai
3eb974f66f Add kuka grasping block playback. 2017-05-22 22:23:01 -07:00
Erwin Coumans
fd40ba424b test for knee joint limits under position control 2017-05-21 11:00:15 -07:00
Erwin Coumans
79e2c10506 add second humanoid_running_3.py example with 3 humanoids, for testing. Created a humanoid_symmetric_no_ground.xml and ground.xml:
if the ground is duplicated, simulation is unstable (too many contacts in the same area?)
2017-05-12 17:17:27 -07:00
yunfeibai
cfb8316297 Add an example to decode the packed button events from vr log. 2017-05-10 15:07:49 -07:00
Erwin Coumans
385156cbc5 add simple humanoid_benchmark.py and mjcf file 2017-05-05 17:24:35 -07:00
Erwin Coumans
61999ef789 b3ResizablePool: only remove a handle, if it is currently in-use
also remove user constraints, if removing a body
2017-05-04 13:14:24 -07:00
Erwin Coumans
eb7cf38293 Add option to --useKitchen=1 to VRGloveSimulatorMain 2017-05-02 22:33:42 -07:00
Erwin Coumans
07992fe61d Improve MJCF import, to allow reading of friction parameters, including spinning and rolling friction, with some rudimentary 'default class' support.
Tweak VRGloveSimulatorMain to work better with MPL/mpl2.xml hand.
2017-05-02 18:05:36 -07:00
Erwin Coumans
af6bf8ddc8 plumb URDF/SDF audio_source into PhysicsServerCommandProcessor, allow to play sounds on collision !
See also https://youtu.be/eppOjTfx5Jg for a first test, and this modified URDF how to add sounds:
https://github.com/bulletphysics/bullet3/blob/master/data/plane_with_collision_audio.urdf
Add the --audio flag to enable sound in pybullet/Bullet-C-API
2017-05-01 11:14:09 -07:00
Erwin Coumans
2a2c18e959 add more tinyaudio preparation, some test wav files, play sound on collision events. Will expose this in the C-API to pick wav files and collision threshold levels etc. Use the premake --audio flag to try it out. The TinyAudio example in the ExampleBrowser works on Mac, Linux and Windows, you can play notes by pressing keys. 2017-04-29 10:32:30 -07:00
Erwin Coumans
dfc1800065 remove the goto's from the source code (came from http://github.com/thestk/stk toolkit)
add test wav file
2017-04-27 08:39:57 -07:00
erwincoumans
0f2771b1d1 Merge pull request #1059 from jietan/pullRequest
make the URDF and the minitaur.py consistent with the real robot
2017-04-06 04:57:26 +00:00
Erwin Coumans
e32debdca4 improvements in MJCF importer: fix capsule shape inertia (for fromto definition)
add cylinder support
don't crash when no "quat" is provided
inertia fix in btMinkowskiSumShape (based on AABB)
2017-04-05 12:22:38 -07:00
Jie Tan
1cd513024a make the URDF and the minitaur.py consistent with the real robot 2017-04-05 11:54:54 -07:00
yunfeibai
66a8685816 Merge remote-tracking branch 'upstream/master' 2017-03-29 15:06:15 -07:00
Erwin Coumans
544f289b24 better pr2_gripper collision model 2017-03-23 15:31:17 -07:00
yunfeibai
d717b1db84 Add the API to get the body name and pybullet example call. 2017-03-23 13:54:44 -07:00
Erwin Coumans
f498670798 :%s/STL/stl/g for Bullet/data/MPL/MPL.xml 2017-03-21 18:10:50 -07:00
erwincoumans
a30b887595 Merge pull request #1025 from olegklimov/master
URDF loader improvement 2
2017-03-21 17:12:22 -07:00
erwincoumans
cb08d077f0 Merge pull request #1030 from erwincoumans/master
friction anchors, arm64 premake
2017-03-20 11:48:44 -07:00
Erwin Coumans
0b017b0f53 fix issue with btMultiBody friction in combination with soft contacts (friction should not re-use normal contact cfm/erp)
implement friction anchors, position friction correction, disabled by default. Use colObj->setCollisionFlag(flag | CF_HAS_FRICTION_ANCHOR); See test/RobotClientAPI/SlopeFrictionMain.cpp. In URDF or SDF, add <friction_anchor/> in <contact> section of <link> to enable.
PhysicsServer: properly restore old activation state after releasing picked object
btMultiBodyConstraintSolver: disable flip/flop of contact/friction constraint solving by default (it breaks some internal flaky unit tests)
2017-03-20 10:58:07 -07:00
yunfeibai
753f1d3d2f Add lateral and spinning friction coefficients to gripper sdf model. 2017-03-20 10:16:15 -07:00
Oleg Klimov
fa7397cc92 Rename *.STL to *.stl for case-sensitive filesystems 2017-03-17 02:11:47 +03:00
Erwin Coumans
4db6fa9e29 update minitaur.py to use minitaur.urdf (instead of quadruped.urdf), also sort the legs in the same order as real hardware
added test urdf files for minitaur with all fixed joints, or fixed knees.
added some stiffness/damping to minitaur legs (testing)
tiny_obj_loader, don't crash on invalid texture coordinates
btMultiBodyConstraintSolver: sweep back and forward to reduce asymmetry
2017-03-15 15:38:50 -07:00
Erwin Coumans
a613911c84 Merge remote-tracking branch 'bp/master' 2017-03-15 11:05:16 -07:00
erwincoumans
f67299de8e Merge pull request #1020 from jietan/pullRequest
add cartpole urdf
2017-03-14 17:06:10 -07:00
Erwin Coumans
6e2850e08a fix names (case) for Linux for MPL/hand 2017-03-14 17:03:11 -07:00
Jie Tan
f90986d6f0 add cartpole urdf 2017-03-14 15:04:43 -07:00
Mohi
43b0a8b6fb Fixing a bug on Visualizer Camera and a few more
- resetDebugVisualizerCamera now accepts negative values for pitch and
yaw angles

- Defining kitchen model to be concave, so as to be able to put floating
objects inside

- Fixed an indention error in testrender_np.py
2017-03-13 10:41:54 -07:00
Erwin Coumans
af295b6eed optimize hand (hand.py, vrhand.py) MPL.xml STL meshes for better collision detection performance (using Blender decimation tool) 2017-03-07 19:07:45 -08:00
erwincoumans
00361afea5 allow user to specify the maximum number of dofs to log in GenericRobotStateLogger (default = 12)
add minitaur quadruped playback of minitaur log files (real robot and simulated create the same log files)
add improved minitaur.urdf file, see https://youtu.be/lv7lybtOzeo for a preview.
2017-03-05 21:49:20 -08:00
Erwin Coumans
34fc2fb589 create premake/cmake file for Bullet/Extras/obj2sdf
add missing 1.sdf for Bullet/data/kitchens/1.sdf
add support for getting keyboard events (pybullet.getKeyboardEvents and b3RobotSimulatorClientAPI::getKeyboardEvents)
2017-03-02 12:33:22 -08:00
Erwin Coumans
2eb019cdc3 Created Wavefront obj to sdf converter, to make it easier to import complex obj models with many materials. See kitchen for example.
Fix in tinyobj, make sure material is initialized
Add fatihrmutfak kitchen model, for Virtual Reality and some research
2017-03-01 10:06:10 -08:00
Jie Tan
83e5e816f5 Merge remote-tracking branch 'bp/master' into pullRequest 2017-02-16 15:13:12 -08:00
Erwin Coumans
65deeee64b add optimized tray/traybox.urdf 2017-02-16 14:29:51 -08:00
Erwin Coumans
63486a712c VR video recording, use command-line --mp4=videoname.mp4
tune gripper grasp example with tefal pan, 800Newton force.
URDF importer: if using single transform 1 child shape, don't use compound shape.
if renderGUI is false, don't intercept mouse clicks
add manyspheres.py example (performance is pretty bad, will look into it)
[pybullet] expose contactBreakingThreshold
2017-02-16 14:19:09 -08:00
Erwin Coumans
08b83c3cd8 Merge remote-tracking branch 'bp/master' 2017-02-16 13:41:12 -08:00
Jie Tan
4df8b27626 make the motorId corresponds to that of the real minitaur. change the mass of the quadruped.urdf, change the friction of plane.urdf. 2017-02-08 17:26:36 -08:00
Erwin Coumans
d0fa10db63 add spinning_friction to sphere2_rolling_friction.urd 2017-01-31 12:01:10 -08:00
erwincoumans
7e59cecd13 removed some link from MJCF hand, the parser doesn't handle that root link properly (yet) 2017-01-26 17:52:12 -08:00
Erwin Coumans
76dcf3a751 remove the contype=0 in inverted_pendulum.xml, so we can 'mouse-pick' the pendulum.
[mjcf importer] add rudimentary support for inertial frame computation, for 'fromto' capsules.
2017-01-24 21:10:21 -08:00
Erwin Coumans
d465e1eea5 add capsule support in urdf parser (non-standard extension), capsule.urdf
fix btCapsuleShape (X,Y,Z) margin issue
fix uninitialized variables in TinyRenderer: m_hasLightDistance, m_hasLightAmbientCoeff, m_hasLightDiffuseCoeff, m_hasLightSpecularCoeff
pybullet/shared memory API 'getClosestPoints' / b3InitClosestDistanceQuery, only report contacts equal/smaller distance than given
2017-01-23 16:45:18 -08:00
Erwin Coumans
64957ece9f add hand.py/hand.ino used to create this VR glove, using MuJoCo Haptix MPL hand (Apache 2 license)
https://www.youtube.com/watch?v=VMJyZtHQL50
added b3InitSyncBodyInfoCommand, to retrieve body info, when connecting to a server with existing bodies
pybullet will call this b3InitSyncBodyInfoCommand automatically after connecting
Avoid overriding the py.setVRCameraState setting in VR
2017-01-20 18:13:24 -08:00
Erwin Coumans
52761f5578 [pybullet] implement addUserDebugParameter / readUserDebugParameter
fix inertial frame for door.urdf
allow picking of links of multi-bodies with a fixed base
2017-01-17 15:42:32 -08:00
Erwin Coumans
c0c4c8ba3f fix many warnings
remove btMultiSapBroadphase.*
make collisionFilterGroup/collisionFilterMark int (instead of short int)
2017-01-15 22:26:11 -08:00
Erwin Coumans
310fabcd7e Further improvements in Bullet MuJoCo MJCF import:
[MJCF import] improved humanoid.xml, inverted_pendulum.xml import (automatically add dummy-links to connect multiple joints between bodies)
[MJCF import] fix bug in quaternion conversion (w,x,y,z) -> (x,y,z,w)
2017-01-15 11:22:24 -08:00
Erwin Coumans
fdd517e00f First step towards a MuJoCo MJCF importer for Bullet. It can load the humanoid.xml, ant.xml and some other OpenAI GYM asset files. Not all fields are converted, so it is work-in-progress. This is useful for Reinforcement Learning experiments, and would also help integration with DeepMind Lab. 2016-12-30 18:32:57 -08:00
Erwin Coumans
17570c4700 tweak color of quadruped robot URDF, tweak quadruped.py script to make it more compatible with VR demo
allow VR physics server to run with or without 'realTimeSimulation'
2016-12-11 09:28:36 -08:00
erwincoumans
61cfa18923 save default VR camera tuning, requires MIDI controller
tweak some values in VR demo
2016-12-02 17:44:00 -08:00
Erwin Coumans
898517b1e3 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2016-11-29 19:14:20 -08:00
Erwin Coumans
746c4d0d2a add a tray, similar to those ones:
https://research.googleblog.com/2016/03/deep-learning-for-robots-learning-from.html

tune the VR demo a bit, to make it more user friendly.
2016-11-29 17:08:47 -08:00
yunfeibai
0bc4e0a4c3 Render multiple objects with shadow. 2016-11-27 16:53:15 -08:00
yunfeibai
583dc1cac7 Add torus. 2016-11-27 15:34:01 -08:00
erwincoumans
8c69fa13ca add pybullet getCameraImage, replacing renderImage, cleaner API:
always pass in width, hight and viewMatrix, projectionMatrix, optionally lightDir
added helper methods computeViewMatrix, computeViewMatrixFromYawPitchRoll, computeProjectionMatrix, computeProjectionMatrixFOV
see Bullet/examples/pybullet/testrender.py + testrender_np.py for example use
add missing base_link.stl for husky.urdf
2016-11-17 15:15:52 -08:00
Erwin Coumans
ee7a5a470f tweak quadruped script to make a few more moves 2016-11-16 21:36:51 -08:00
erwincoumans
2329c00faa Add RtMidi for midi control, use the --midi option in premake, and see
update to OpenVR sdk 1.03 from https://github.com/ValveSoftware/openvr
add camPosX/Y/Z and camRotZ to adjust relative camera/world transform for VR (so you can align virtual table with real table etc)
tweak quadruped.py to move a bit
add mouse picking to physics server
2016-11-16 16:12:59 -08:00
erwin coumans
d0cbfc5905 add humanoid/nao.urdf (BSD license) 2016-11-14 14:09:57 -08:00
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
erwincoumans
9bad64fed9 allow obsolete OpenGL2 drawer to render with z-up axis. 2016-11-12 11:59:40 -08:00
erwincoumans
0d47d61007 pybullet getClosestPoints 2016-11-09 21:01:04 -08:00
erwincoumans
502f4b7d40 update .bullet file 2016-11-05 11:32:31 -07:00