Commit Graph

3281 Commits

Author SHA1 Message Date
Erwin Coumans
d12d886e13 raycast filter masks can be negative, always apply the mask (-1 default). Thanks to Tingnan for reporting/reproduction case. 2020-08-03 11:00:14 -07:00
Erwin Coumans
51aed38377 fix import 2020-07-31 15:30:53 -07:00
Xuchen Han
fa0d452651 Initialize proper collision margin for deformable_ball.py 2020-07-28 21:00:27 -07:00
Erwin Coumans
1e8f39b492 improve premake4 build in case X11 headers are missing
improve video_sync_mp4.py example
allow to create a heightfield from file or programmatically in C++ robotics api. Example:

{
		b3RobotSimulatorCreateCollisionShapeArgs shapeArgs;
		shapeArgs.m_shapeType = GEOM_HEIGHTFIELD;
		bool useFile = true;
		if (useFile)
		{
			shapeArgs.m_fileName = "D:/dev/bullet3/data/heightmaps/gimp_overlay_out.png";
			shapeArgs.m_meshScale.setValue(.05, .05, 1);
		}
		else
		{
			shapeArgs.m_numHeightfieldColumns = 256;
			shapeArgs.m_numHeightfieldRows = 256;
			shapeArgs.m_meshScale.setValue(.05, .05, 1);
			shapeArgs.m_heightfieldData.resize(shapeArgs.m_numHeightfieldRows * shapeArgs.m_numHeightfieldColumns);
			double heightPerturbationRange = 0.05;
			for (int j = 0; j<int(shapeArgs.m_numHeightfieldColumns / 2); j++)
			{
				for (int i = 0; i < (int(shapeArgs.m_numHeightfieldRows / 2)); i++)
				{
					double height = ((double)rand() / (RAND_MAX)) * heightPerturbationRange;
					shapeArgs.m_heightfieldData[2 * i + 2 * j * shapeArgs.m_numHeightfieldRows] = height;
					shapeArgs.m_heightfieldData[2 * i + 1 + 2 * j * shapeArgs.m_numHeightfieldRows] = height;
					shapeArgs.m_heightfieldData[2 * i + (2 * j + 1) * shapeArgs.m_numHeightfieldRows] = height;
					shapeArgs.m_heightfieldData[2 * i + 1 + (2 * j + 1) * shapeArgs.m_numHeightfieldRows] = height;
				}
			}
		}
		int shape = sim->createCollisionShape(shapeArgs.m_shapeType, shapeArgs);
		b3RobotSimulatorCreateMultiBodyArgs bodyArgs;
		bodyArgs.m_baseCollisionShapeIndex = shape;
		int groundId = sim->createMultiBody(bodyArgs);
		int texId = sim->loadTexture(shapeArgs.m_fileName);
		b3RobotSimulatorChangeVisualShapeArgs args;
		args.m_objectUniqueId = groundId;
		args.m_linkIndex = -1;
		args.m_textureUniqueId = texId;
		sim->changeVisualShape(args);
	}
2020-07-24 18:09:13 -07:00
Erwin Coumans
1de2269b6e add removeState in C++ API, see also Issue https://github.com/bulletphysics/bullet3/issues/2935 2020-07-17 15:04:54 -07:00
Erwin Coumans
c9ca9cb6c6 disable Center of Mass tracking reward by default, since resulting policies don't work well.
See also https://github.com/bulletphysics/bullet3/issues/2928#issuecomment-658349531
2020-07-14 12:10:15 -07:00
Erwin Coumans
f22d88d6ff fix build 2020-07-13 14:45:23 -07:00
Erwin Coumans
fc024f00f9 Merge branch 'master' of github.com:erwincoumans/bullet3 2020-07-13 14:28:00 -07:00
Erwin Coumans
caa8b26ce5 Fixes in TinyAudio, play sound on collision impact, can be configured in URDF/SDF file.
Requires a modified setup.py (or use premake4 to compile)

Example script:
import pybullet as p
import time
p.connect(p.GUI)
plane = p.loadURDF("plane_with_collision_audio.urdf")
box = p.loadURDF("cube.urdf",[0,0,1])
p.setGravity(0,0,-10)
while (1):
  p.stepSimulation()
  time.sleep(1./240.)
2020-07-13 14:07:58 -07:00
erwincoumans
d19cd89b4a Merge pull request #2912 from ManifoldFR/deepmimic-gym-fixes
DeepMimic: add COM reward
2020-07-08 10:54:20 -07:00
ManifoldFR
1f6ae38040 DeepMimic: add retrained walk motion with COM 2020-07-08 17:03:46 +02:00
Erwin Coumans
d88d0e92ef also update m_jointLowerLimit/m_jointUpperLimit in multibody link. 2020-07-07 19:49:29 -07:00
Erwin Coumans
c517c434e6 pybullet allow to enable/change joint limits:
pybullet.changeDynamicsInfo(objectUniqueId, linkIndex, jointLowerLimit=..., jointUpperLimit=...) # jointLowerLimit <= jointUpperLimit

and joint limit max force:
pybullet.changeDynamicsInfo(objectUniqueId, linkIndex, jointLimitForce=...)

For example:
p.changeDynamics(sphereUid,linkIndex, jointLowerLimit=1, jointUpperLimit=3, jointLimitForce=10.5)

add b3ChangeDynamicsInfoSetJointLimit/b3ChangeDynamicsInfoSetJointLimitForce
add getConstraintType for btMultiBodyConstraint
2020-07-07 19:42:23 -07:00
ManifoldFR
5901caa207 Merge branch 'master' into deepmimic-gym-fixes 2020-07-08 00:51:26 +02:00
Erwin Coumans
9de78ab6b3 fix array size in inverse kinematics orientation command
bump up shared memory version, since this was a potentially incompatible change
2020-07-06 22:57:03 -07:00
ManifoldFR
a3810d15ef fix setting useComReward=false 2020-07-06 16:56:24 +02:00
ManifoldFR
2fe3fe945d DeepMimic: Make COM reward optional 2020-07-06 16:47:22 +02:00
ManifoldFR
53a3af8918 Merge branch 'master' into deepmimic-gym-fixes 2020-07-02 10:12:06 +02:00
ManifoldFR
b200bf59e0 DeepMimic: add COM reward 2020-07-01 19:15:21 +02:00
erwincoumans
63e1d7d840 Merge pull request #2888 from AiRuiChen/change-env-name
Ensure naming consistency in gym registry
2020-06-30 19:06:53 -07:00
Erwin Coumans
9a61abde37 Merge remote-tracking branch 'bp/master' 2020-06-30 16:41:23 -07:00
Erwin Coumans
4c63a5019e fix removeConstraint for deformables, thanks to Daniel Seita for reporting the issue. 2020-06-30 16:39:15 -07:00
ManifoldFR
0dadbd9849 Merge branch 'master' into deepmimic-gym-fixes 2020-06-30 10:59:20 +02:00
Eric Yihan Chen
0f05cdba18 Add missing names in pybullet_envs.getList() 2020-06-29 11:29:43 -07:00
erwincoumans
d8c7f97dbb Merge pull request #2872 from xhan0619/implicit-contact
Corotated Linear Elasticity
2020-06-29 10:05:14 -07:00
ManifoldFR
45b061c879 variable timestep for deepmimic env 2020-06-29 10:30:09 +02:00
ManifoldFR
d0838d3bcb variable timestep for deepmimic env 2020-06-29 10:26:08 +02:00
Eric Yihan Chen
6cdebabd2b rename bullet envs for consistency 2020-06-27 15:10:20 -07:00
Xuchen Han
c9a0ebb24e reduce the picking force in self-collision demo 2020-06-26 14:19:50 -07:00
Xuchen Han
70a0ef65d8 fix bug in deformable replulsion force and adjust parameter in deformable self collision 2020-06-26 14:19:44 -07:00
ManifoldFR
04350bc9ab add COM reward to DeepMimic 2020-06-25 15:59:13 +02:00
ManifoldFR
b925988821 DeepMimic Gym enhancements
* fix render() camera up axis
* make render() camera track character
* increase render resolution
* add option to restart mocap clip at t=0 at reset (default=random time)
* Gym env: option for "test mode" (episode starts at mocap clip start)
* Gym env: option to offset/rescale actions and obs (like original code)
2020-06-25 12:03:30 +02:00
Xuchen Han
bf8cf19665 support implicit integration in picking force 2020-06-24 17:48:43 -07:00
Erwin Coumans
b4624ad237 fix pybullet_utils import 2020-06-23 16:14:18 -07:00
Xuchen Han
e0b554787f Merge remote-tracking branch 'origin/master' into implicit-contact 2020-06-19 15:05:34 -07:00
Xuchen Han
b969f14d21 run clang format 2020-06-19 14:52:44 -07:00
Xuchen Han
43d256633e allow for larger range of stiffness values in implicit demos 2020-06-19 14:51:31 -07:00
Xuchen Han
3fd743a069 add a colliding demo to for easier implcit contact testing 2020-06-19 14:50:56 -07:00
erwincoumans
036e51c637 Merge pull request #2870 from erwincoumans/master
Fix applyExternalForce command for multibody links. Thanks to Avik fo…
2020-06-18 20:52:47 -07:00
Erwin Coumans
ebef331bbf Fix applyExternalForce command for multibody links. Thanks to Avik for the report. 2020-06-19 03:37:30 -07:00
erwincoumans
01bfdc643c Merge pull request #2858 from CGJiaxiLiu/fix_softbody
Fix potential undefined softbody member in PhysicsServerCommandProcessor
2020-06-18 20:45:59 -07:00
Xuchen Han
92f2f56b3d add mass damping into damping model 2020-06-18 16:43:53 -07:00
Xuchen Han
abaf278c2d add extreme deformation demo 2020-06-17 18:49:09 -07:00
Xuchen Han
f23e745666 clang format PhysicsServerCommandProcessor and BulletSoftBody 2020-06-17 17:20:39 -07:00
Erwin Coumans
4786ca1df2 Merge remote-tracking branch 'bp/master' 2020-06-16 16:20:17 -07:00
Xuchen Han
9cfe16abb4 add corotated linear elasticity 2020-06-16 15:57:58 -07:00
Erwin Coumans
a7b8b54c44 implement mouse picking for deformable objects in PyBullet (the one using p.resetSimulation(p.RESET_USE_DEFORMABLE_WORLD), not position based dynamics version) 2020-06-16 11:54:50 -07:00
Jiaxi
daaea3a4fb Fix potentially send data to invalid port 2020-06-14 21:57:43 -04:00
Jiaxi
f034e64cc6 Check for availability of soft body 2020-06-14 21:42:32 -04:00
Jiaxi
a848c1d6e9 Check for availability of soft body 2020-06-14 21:26:54 -04:00