Search found 4173 matches

by Erwin Coumans
Thu May 02, 2019 4:28 pm
Forum: General Bullet Physics Support and Feedback
Topic: Stabilize "dantzing" on nearby contacts using custom combiner callback.
Replies: 4
Views: 160

Re: Stabilize "dantzing" on nearby contacts using custom combiner callback.

For robotics purposes we developed the btMultiBody and PyBullet and its C and C++ robotics API . You may want to try btMultiBody instead of btRigidBody, and PyBullet/C++ robotics API has most of the settings more suitable for such tasks. So I suggest to create a quick prototype in PyBullet and then ...
by Erwin Coumans
Fri Apr 12, 2019 1:38 am
Forum: General Bullet Physics Support and Feedback
Topic: Load File from URDF and convert to Rigidbody (RobotSimulator)
Replies: 2
Views: 292

Re: Load File from URDF and convert to Rigidbody (RobotSimulator)

There is a better way to limit motion for reduced coordinate (btMultiBody): instead of using a free base, use a fixed base and add additional degrees of freedom to enable motion along the axis you want. See the biped2d example how this is done: https://github.com/bulletphysics/bullet3/blob/master/ex...
by Erwin Coumans
Fri Apr 12, 2019 1:33 am
Forum: PyBullet Support and Feedback
Topic: Manipulating Kuka-robot joint using Torque-control
Replies: 2
Views: 442

Re: Manipulating Kuka-robot joint using Torque-control

You need to first unlock/disable the default velocity/position motor: pybullet.setJointMotorControl2(objUid, linkIndex, p.VELOCITY_CONTROL, force=0) Otherwise, your force/torque has to exceed the default motor. Instead of using 0, you can also use a very small force limit, to mimic joint friction. I...
by Erwin Coumans
Tue Apr 09, 2019 6:13 am
Forum: General Bullet Physics Support and Feedback
Topic: why call the computeAccelerationsArticulatedBodyAlgorithmMultiDoft twice?
Replies: 2
Views: 173

Re: why call the computeAccelerationsArticulatedBodyAlgorithmMultiDoft twice?

Good point, the second pass is used for joint feedback (using results from the constraint solver).

We can add a check for 'body->internalNeedsJointFeedback()' around line 720 of btMultiBodyDynamicsWorld. Mind sending a patch to github?
by Erwin Coumans
Thu Mar 21, 2019 9:36 pm
Forum: PyBullet Support and Feedback
Topic: Spherical Joints
Replies: 10
Views: 1148

Re: Spherical Joints

Actually my implementation of DeepMimic in PyBullet is working fine. We ignore the inertia data from URDF and recompute it based on collision shapes, and that data is identical from the original DM. We can re-use the original policy with stable PD control, so all is fine. You can use 1200Hz, but by ...
by Erwin Coumans
Wed Mar 20, 2019 1:56 pm
Forum: General Bullet Physics Support and Feedback
Topic: 2 Dynamic objects Oscillating
Replies: 2
Views: 313

Re: 2 Dynamic objects Oscillating

You should always use the very latest Bullet version from github. Aside from that, you can 1) use btBoxShape 2) use a smaller time step or increase the number of substeps 3) use more solver iterations or use a direct solver (Dantzig) 4) avoid large mass ratio If you have issues, always create a smal...
by Erwin Coumans
Fri Mar 15, 2019 4:18 am
Forum: General Bullet Physics Support and Feedback
Topic: MultiBody and RigidBody: architectural design of an application
Replies: 4
Views: 418

Re: MultiBody and RigidBody: architectural design of an application

You can attach btMultiBody and btMultiBody/btRigidBody using constraints. I would recommend checking out PyBullet to create a prototype, it uses btMultiBody by default under the hood. When using 'useMaximalCoordinates=True' it uses btRigidBody.
by Erwin Coumans
Sun Mar 10, 2019 12:19 am
Forum: PyBullet Support and Feedback
Topic: Spherical Joints
Replies: 10
Views: 1148

Re: Spherical Joints

You didn't disable the motors, as is done in humanoidMotioncapture.py, add this block: #disable motors for j in range (p.getNumJoints(model)): ji = p.getJointInfo(model,j) targetPosition=[0] jointType = ji[2] if (jointType == p.JOINT_SPHERICAL): targetPosition=[0,0,0,1] p.setJointMotorControlMultiDo...
by Erwin Coumans
Sat Mar 09, 2019 1:26 am
Forum: PyBullet Support and Feedback
Topic: Spherical Joints
Replies: 10
Views: 1148

Re: Spherical Joints

The humanoidMotionCapture.py example shows how to use spherical drives. Also one of the humanoids in that example use resetJointStateMultiDof to set its state. Both modes works just fine with me. Please check it.
by Erwin Coumans
Sat Mar 09, 2019 1:24 am
Forum: PyBullet Support and Feedback
Topic: Position control for robot base?
Replies: 13
Views: 1853

Re: Position control for robot base?

You can attach the base to the (fixed) world frame with a couple of degrees of freedom. Then you can apply setJointMotorContro2 in POSITION_CONTROL mode, or VELOCITY_CONTROL mode to those degrees of freedom to move the base.
by Erwin Coumans
Sat Mar 09, 2019 1:21 am
Forum: PyBullet Support and Feedback
Topic: Simulating indirect drives
Replies: 1
Views: 246

Re: Simulating indirect drives

We currently don't have an API to exceed the maximum RPM of 100, but we probably should add it.

There is an old issue here, I should implement it:
https://github.com/bulletphysics/bullet3/issues/1890
by Erwin Coumans
Sat Mar 09, 2019 1:18 am
Forum: PyBullet Support and Feedback
Topic: Moving from Bullet 2 to Pybullet
Replies: 5
Views: 855

Re: Moving from Bullet 2 to Pybullet

>> The visualization will be done using a 3D engine. >> - Motion states. Is your 3d engine also Python or C++? How do you want to synchronize the graphics transforms? Through C++ / shared memory, or using Python? If it happens in Python, we could add a method that receives only the updated objects. ...
by Erwin Coumans
Sat Mar 09, 2019 1:13 am
Forum: PyBullet Support and Feedback
Topic: PyBullet and ROS?
Replies: 1
Views: 353

Re: PyBullet and ROS?

It should be reasonably easy to write a bridge between ROS and PyBullet, for example in Python. PyBullet can already load URDF and SDF files and you can get all information and control through Python. Python can communicate to a PyBullet simulator and share ROS topics. There is no out-of-the box sol...
by Erwin Coumans
Thu Mar 07, 2019 4:15 am
Forum: General Bullet Physics Support and Feedback
Topic: Friction problem - Sphere isnt rolling on a straight line.
Replies: 8
Views: 2295

Re: Friction problem - Sphere isnt rolling on a straight line.

@Steven: Rolling friction works fine now, as long as you use btMultiBody, since we clamp against an implicit cone now, not against a pyramid. The fix is here: https://github.com/bulletphysics/bullet3/blob/master/src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp#L116 The fix hasn't been...
by Erwin Coumans
Mon Mar 04, 2019 1:15 am
Forum: General Bullet Physics Support and Feedback
Topic: Friction problem - Sphere isnt rolling on a straight line.
Replies: 8
Views: 2295

Re: Friction problem - Sphere isnt rolling on a straight line.

OK, I got around implementing cone friction for rolling friction, so the two rolling friction directions are coupled and clamped against the friction cone together (instead of each rolling friction direction clamped against a friction pyramid).

https://github.com/bulletphysics/bullet3/pull/2138