Commit Graph

273 Commits

Author SHA1 Message Date
erwin coumans
6c9bfce975 Support btMultiBody soft contact using ERP and CFM. Also support custom relaxation parameter to allow successive over relaxation.
Added demos for rigid and multi body soft (compliant) contact.
Will also add simplified Hertz compliant contact, by dynamically modifying the ERP/CFM to mimic a non-linear spring.
Note that btManifoldPoint is growing too big, we need to implement proper contact constraints derived from btTypedConstraint.
2016-02-22 18:40:00 -08:00
Erwin Coumans
a3154f7a56 use b3ConnectSharedMemory in PhysicsClient example, instead of b3ConnectPhysicsLoopback 2016-01-27 13:36:33 -08:00
Erwin Coumans
6bc3f94f52 add a Pendulum example that is also used as unit test.
Gold data is created by numerically solving a second-order non-linear differential equation.
(see examples/MultiBody/pendulum_gold.h)
2016-01-06 18:08:49 -08:00
Erwin Coumans
52f074bcb2 Merge remote-tracking branch 'bp/master'
Conflicts:
	examples/ExampleBrowser/CMakeLists.txt
	examples/OpenGLWindow/CMakeLists.txt
2015-12-07 16:42:45 -08:00
Erwin Coumans
13f314f401 allow CMake to build on Linux without X11/OpenGL system headers (use local one) 2015-12-07 16:38:43 -08:00
erwincoumans
ab283251d3 Merge pull request #546 from erwincoumans/master
typo fixes in InverseDynamicsExample
2015-12-07 15:07:24 -08:00
Andrew Meadows
c0c1691c25 fix whitespace formatting in cmake files 2015-12-07 14:08:04 -08:00
Erwin Coumans
acbf60ddfd typo fixes in InverseDynamicsExample 2015-12-05 09:02:02 -08:00
erwincoumans
aaf4e1acfa Merge pull request #491 from nicokruithof/master
Fixed missing include directories
2015-12-04 21:49:47 -08:00
Erwin Coumans
b22e968cdd re-enable inverse dynamics/computed torque, instead of PD control in InverseDynamicsExample 2015-12-02 23:16:41 -08:00
Erwin Coumans
3dfebe0c45 show inverse dynamics demo to use floating base 2015-12-02 09:33:12 -08:00
Erwin Coumans
4c88681479 joint trajectory curves use different colors for each DOF
use fewer notch counts in slider GUI
2015-11-26 10:45:51 -08:00
Erwin Coumans
5f97a56f93 portability issues fixed 2015-11-24 11:40:33 -08:00
Erwin Coumans
460998c472 fix example issues 2015-11-24 11:34:17 -08:00
Erwin Coumans
03cc4f0554 add InverseDynamics example for example browser
add CMake support for BulletInverseDynamics and BulletInverseDynamicsUtils
2015-11-24 11:12:02 -08:00
Erwin Coumans
b4701613c8 consistent *API.* in examples/SharedMemory 2015-11-23 08:00:42 -08:00
erwincoumans
bd4c4eb3c5 rename API->Api 2015-11-22 21:32:20 -08:00
erwincoumans
5589fb03af Merge branch 'master' of https://github.com/erwincoumans/bullet3 2015-11-22 20:50:41 -08: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
Erwin Coumans
7d9365319c add InverseDynamics test/lib to premake 2015-11-17 08:26:27 -08:00
erwincoumans
ad29d27700 add initial inverse dynamics example skeleton, with urdf and programmatically created btMultiBody.
disabled in Bullet/examples/ExampleBrowser/ExampleEntries.cpp
2015-11-13 10:37:43 -08:00
Erwin Coumans
f6a8079353 sync repo 2015-11-11 12:44:26 -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
erwincoumans
8160354d02 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2015-11-05 21:18:10 -08:00
erwincoumans
2920d7e61f Only support btMultiBody multi-dof version (remove non-multi-dof path)
Use ATTRIBUTE_ALIGNED16 for btMultiBody
Always disable parentCollision for btMultiBody::setupFixed
2015-11-05 21:17:46 -08:00
Erwin Coumans
7ef06d532e remove debug test 2015-11-05 17:35:05 -08:00
Erwin Coumans
2317307a22 Add b3GetStatusActualState() to C_API.
Change pick-and-move C_API to use handlers
2015-11-04 16:08:28 -08:00
erwincoumans
d6464ce40d add 'replay' command log feature: no mouse interaction during replay, and use a fixed number of sim steps in stepSimulation.
workaround for reversed separating normal in gjk/epa when using very small shapes, detect case and revert normal.
use smaller world size (10 units versus 100) for higher resolution shadow map
use a hard-coded rolling friction of 0.2 for objects in physics server (will make this configurable)
fix loading of command log files, when platform features are different (64bit/32bit)
2015-11-01 12:48:15 -08:00
Erwin Coumans
6e042b1901 re-enable wireframe in PhysicsClient
inintialize variables in constructor of PhysicsClient
2015-10-30 13:24:02 -07:00
erwin coumans
c68c215ead add rudimentary command logging for shared memory physics server 2015-10-30 10:30:48 -07:00
erwin coumans
819c4f1951 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2015-10-29 11:26:01 -07:00
erwin coumans
f7bbbd88e6 preparation for CommandLogging for PhysicsServer. 2015-10-29 11:25:50 -07:00
erwin coumans
9442791cf1 Fix PhysicsServer connection issue, in cases where shared memory was not properly shut down. 2015-10-29 11:18:26 -07:00
erwincoumans
650189d50b Allow both remote debug drawer and local debug drawer for PhysicsServer (shared memory etc) 2015-10-29 08:28:49 -07:00
Erwin Coumans
8a956318e5 fix case sensitive issue 2015-10-28 16:02:55 -07:00
Erwin Coumans
6a6c0297fe Merge branch 'master' of https://github.com/erwincoumans/bullet3 2015-10-28 13:44:30 -07:00
erwin coumans
dc81e31e74 upload work-in-progress Collision example using C-API. 2015-10-28 11:48:36 -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
erwincoumans
57f50f1778 Create a PhysicsLoopBack that includes both PhysicsClient and PhysicsServer over shared memory.
Add a test for PhysicsLoopBack.
2015-10-26 17:56:21 -07:00
erwincoumans
e779bb247b Merge branch 'master' of https://github.com/erwincoumans/bullet3 2015-10-26 16:16:08 -07:00
Erwin Coumans
163b797d8b Update to ZLib license for GWEN files.
Note that our copy of GWEN is modified and GWEN is not under active development anymore.
We plan to integrate and modify GWEN further into the Bullet Example Browser or rewrite the GUI and drop GWEN

fix cube.obj and cube.mtl to enable textures
2015-10-25 11:30:34 -07:00
erwincoumans
d6916107dc Merge branch 'master' of https://github.com/erwincoumans/bullet3 2015-10-24 14:01:01 -07:00
erwincoumans
52edac4ef2 example Collision: catch case where no collision world is created 2015-10-24 14:00:53 -07:00
Erwin Coumans
ec1947bbbd add SIM_PARAM_UPDATE_DELTA_TIME flag to fix setting the time step
in shared memory API
2015-10-24 13:50:11 -07:00
Erwin Coumans
818037c011 Fix issue related to CMD_RESET_SIMULATION 2015-10-24 13:49:25 -07:00
Erwin Coumans
f28150c368 catch setting of invalid joint angles in PhysicsClientC_Api
use the proper m_bodyUniqueIndex (todo: fix this field, move to shared command data)
2015-10-24 13:48:53 -07:00
erwincoumans
7f35aa9f43 Merge pull request #500 from erwincoumans/master
fix for Mac OSX El Captain 10.11, OpenGL Window was blue, until first…
2015-10-22 11:11:08 -07:00
Erwin Coumans
25fb92c4c9 fix for Mac OSX El Captain 10.11, OpenGL Window was blue, until first resize.
fixes Issue 498
2015-10-21 21:30:44 -07:00
erwincoumans
c737a35693 Merge pull request #497 from erwincoumans/master
Add plane shape and profile timing support in examples/Collide
2015-10-21 10:42:04 -07:00
erwin coumans
3d9218e07d Add plane shape and profile timing support in examples/Collide
Use View/Profiler in example browser, in optimized build/Release mode
and look for plCollideWorld
2015-10-20 18:30:43 -07:00
Takuya NAKAOKA
3a11fff3ad Fix slow simulation in PhysicsServerExample
Removed maxSteps to regain simulation speed
2015-10-20 14:51:40 +09:00
Erwin Coumans
abcaa19bc8 make the compiler happy with Collision example 2015-10-19 18:21:45 -07:00
erwin coumans
5a21424662 update to examples/Collision and RealTimeBullet3Collision 2015-10-18 23:43:37 -07:00
erwin coumans
7ac497d6f2 WIP example for real-time collision detection features of Bullet 2015-10-18 14:01:25 -07:00
Erwin Coumans
21b7a47129 although still not implemented, IMU enum had wrong value, thanks JF 2015-10-17 20:12:50 -07:00
Erwin Coumans
3d3830962a add a few collision examples to test a C API with various back-ends 2015-10-17 13:44:00 -07:00
=
bc09125095 fix include guard, thanks Aaron!
fix uninitialized body index in PhysicsServer
2015-10-16 08:18:26 -07:00
Nico Kruithof
bcefdba59b Fixed missing include directories 2015-10-15 20:23:12 +02:00
=
4df58c35c7 use const in PhysicsClientC_Api, thanks to Roland
fix some warnings for Clang, thanks to Aaron
2015-10-15 08:15:22 -07:00
erwincoumans
cf79928d84 Merge pull request #489 from erwincoumans/master
Implement CMD_INIT_POSE to set base position, base orientation and jo…
2015-10-13 22:51:06 -07:00
erwin coumans
a0e507280c Implement CMD_INIT_POSE to set base position, base orientation and joint position (angle).
See PhysicsClientExample for example use of CMD_INIT_POSE.
Change: CMD_INIT_POSE uses m_initPoseArgs and not m_sendDesiredStateCommandArgument
2015-10-13 22:23:28 -07:00
erwincoumans
5b558a1f94 Merge pull request #488 from erwincoumans/master
initial support for multiple robots in shared memory API
2015-10-13 16:08:30 -07:00
erwin coumans
4a29986662 initial support for multiple robots in shared memory API 2015-10-13 11:32:25 -07:00
erwincoumans
d1d279d086 Merge pull request #464 from benelot/master
Fix the Bullet Raycast sample. Closes #450.
2015-10-09 10:16:07 -07:00
=
8d26ff356d allow links without collision shapes in btMultiBody URDF importer 2015-09-25 17:00:44 -07:00
=
5e4badc099 make PhysicsClient an interface class, and move shared memory implementation
of physics client into PhysicsClientSharedMemory class/file.
This will allow implementation of UDP and other transport protocols to a physics server.
2015-09-24 22:50:34 -07:00
=
e05825f639 improvements to the shared memory physics API:
support picking in C API etc.
2015-09-24 22:42:22 -07:00
=
23bdd0ed36 more work on physics client c-api over shared memory 2015-09-17 09:37:44 -07:00
=
003a42478b another step closer to useable shared memory C API
(force/torque sensor needs new API)
in a nutshell, users of shared memory physics API should not
directly poke into shared memory, not fill 'SharedMemorCommand'
nor read SharedMemoryStatus directly. The C-API declares 'handles' for those,
to avoid it from happening.
2015-09-16 23:09:10 -07:00
=
3d10338ed5 fix warnings (thanks to Aaron!) 2015-09-10 17:52:41 -07:00
=
2257ec05ad don't compensate for COLLADA up axis in collision element for now
(todo: let user override COLLADA up axis, some URDF files are inconsistent)
2015-09-10 17:36:19 -07:00
=
d72cda101c fixes in shared memory client/server: check for valid pointers 2015-09-09 15:14:47 -07:00
erwincoumans
e4b5f4730d Merge pull request #473 from takuyanakaoka/detach-shared-mem
Detach posix shared memory correctly
2015-09-09 15:13:27 -07:00
Takuya NAKAOKA
4cbd86a058 Detach posix shared memory correctly
* shmget() fails after shmctl() is called with IPC_RMID. This patch
removes shmget() in releaseSharedMemory so that a client can detach
a shared memory correctly after a server removed it.
* A server should also detach a shared memory.
2015-09-09 12:35:26 +09:00
=
5be9119455 run the PhysicsServerExample 'stepSimulation' smoother
fix a warning in ThirdParty/stb_image
fix an single/double precision issue in btPolyhedralContactClipping.cpp
2015-09-08 13:39:09 -07:00
erwin coumans
2909b5fae3 add picking to shared memory physics server 2015-09-04 11:28:08 -07:00
erwin coumans
f75df90d82 Allow batches of debug lines. The PhysicsClientExample rendering is still slow (one line at a time, instead of batches)
Prepare for IMU sensor in Shared Memory Server
2015-09-03 14:18:22 -07:00
=
5a0ca58436 fix force/torque feedback 2015-08-31 12:36:08 -07:00
Erwin Coumans (Google)
98c93a7330 fix inline, __inline for _WIN32 2015-08-27 18:13:54 -07:00
Erwin Coumans (Google)
3d130d9d66 reset simulation in test/SharedMemory/test for proper cleanup,
and it can restart without shutting down/restarting physics server
w
2015-08-27 17:51:31 -07:00
Erwin Coumans
2e7949bb3e fix some warnings 2015-08-26 15:26:53 -07:00
Benjamin Ellenberger
e39bf6c4cd Fix the Bullet Raycast sample. Closes #450. 2015-08-25 15:56:46 +02:00
erwin coumans
faab737738 add a robot joint sensor example, reading joint reaction forces/torques using the shared memory API 2015-08-24 15:26:29 -07:00
erwin coumans
46f161ec02 fix WIN32 build for b3Win32ThreadSupport 2015-08-24 10:12:13 -07:00
Erwin Coumans
9ec08592b6 fix a copy/paste typo, thanks Roland! 2015-08-21 18:18:12 -07:00
Erwin Coumans
74fda9ff85 simple multi threading test 2015-08-21 15:18:18 -07:00
Erwin Coumans
362887987c add example/MultiThreading functions 2015-08-21 11:09:53 -07:00
=
bbc450a3de position/velocity control through constraint for shared memory server 2015-08-20 14:57:14 -07:00
=
63873e2926 fix issue, cannot assume 16-byte alignment in shared memory,
causing crashes when SIMD btVector3 is stored on Mac OSX.
2015-08-20 08:09:22 -07:00
erwincoumans
081a40d254 initial implementation to send debug lines from physics server to client,
need to add streaming because memory is too small to store all lines
initial test of PD control in physics server, need to switch to PD control for motor constraint, instead of using external forces.
2015-08-19 22:51:16 -07:00
Erwin Coumans
d08a7af7e2 fix compile issue in double precision build 2015-08-10 14:49:52 -07:00
Erwin Coumans
f89d587a02 update tutorial for SIGGRAPH course
allow multiple graphing windows at the same time
2015-08-10 14:30:00 -07:00
Erwin Coumans
edaa92c286 fix retina API 2015-08-07 16:21:33 -07:00
Erwin Coumans
3c0e67298a add command-line option --disable_retina for Mac
improve TimeSeries and Dof6ConstaintTutorial
2015-08-07 16:05:03 -07:00
erwincoumans
de4dcdbb18 more tutorial work
add fixed_timestep command-line parameter, 0 means disabled (variable timestep)
2015-08-07 14:18:57 -07:00
erwincoumans
89c2a729ce Improved simple TimeSeriesCanvas
Fixes in RobotControlExample
Disable gravity by default in PhysicsServer
2015-08-07 13:17:33 -07:00
Erwin Coumans
03d991c92b add command-line argument for example browser and shared memory app, --shared_memory_key=<int>
fix some shared memory issues, client uses attach/detach, server uses create/remove shared memory
implement CMD_RESET_SIMULATION
2015-08-07 00:13:26 -07:00
=
f750275cf9 fix _WIN32 build (there is no <err.h>) 2015-08-06 12:07:08 -07:00
=
46fae61c69 fixes in shared memory:
only allow server to create and initialize shared memory,
client will report failure
intercept signals to cleanup shared memory in standalone app, thanks to
Roland Philippsen.
2015-08-06 11:59:31 -07:00