Commit Graph

133 Commits

Author SHA1 Message Date
Kyle Bayes 50bebcb4ee Precount number of non-zeros for constraint Jacobian sparse matrix.
PiperOrigin-RevId: 512947632
Change-Id: I9605e81b4e51fbc90854c13153e4fee38ad48fb9
2023-02-28 08:57:56 -08:00
Kyle Bayes 90b5dd14ca Fix issue where mj_addConstraint was writing values into efc_J_rowadr and efc_J_rownnz that are not needed.
PiperOrigin-RevId: 512919818
Change-Id: I8ee7443a2bf2265934899673f8943a83cdd4ef69
2023-02-28 06:47:56 -08:00
Alessio Quaglino 7e5419f806 Remove trailing spaces in printArray, printArrayInt, printVector, and printSparse.
PiperOrigin-RevId: 512596881
Change-Id: Icfa955628b9a2955df73093b6c8df7751260adfb
2023-02-27 05:06:33 -08:00
Yuval Tassa 7e7cb177a4 Cosmetic changes.
PiperOrigin-RevId: 511008317
Change-Id: Id8d7cd4f4e22e0658857d16b47d51053f1477bb9
2023-02-20 09:23:32 -08:00
Yuval Tassa 7542c90cd2 Improved behaviour of mouse-spring interactions.
Also:

- Renamed recently introduced `mjvPerturb` member `reflocalpos` -> `refselpos` and corrected docstring.
- Added `mjvPerturb.localmass`: body spatial inertia at selection point.
- Removed `const` qualifier to `mjData` argument of `mjv_initPerturb()`, to facilitate spatial inertia computation.
- Improved `mj_Object{Velocity, Acceleration}` docstrings, clarifying that rotational velocities precede linear velocities.
- Removed redundant const qualifiers from non pointer arguments to `mju_dot` and `mju_writeNumBytes`.

PiperOrigin-RevId: 511002168
Change-Id: I27400f497947f330072d4abb7c9bf7e71e6c5d49
2023-02-20 08:40:33 -08:00
Alessio Quaglino 9756ed0d80 Read normals and textures from OBJ, do not duplicate vertices.
PiperOrigin-RevId: 510461549
Change-Id: I19245d691e722a8371e61153383f275f599353d6
2023-02-17 10:15:25 -08:00
Yuval Tassa 2607e67f8d Add contact labels showing which geom pairs are in contact.
PiperOrigin-RevId: 510422404
Change-Id: Ia73570098752e7c7175e4b5a5f2a0f8b08a6c006
2023-02-17 07:03:19 -08:00
Saran Tunyasuvunakool ace5b74f83 Rename inteval attribute in mjLROpt to interval.
PiperOrigin-RevId: 509275105
Change-Id: I0ffb9cf485a504843ed255f0b4f24e9285a1c273
2023-02-13 10:54:25 -08:00
Saran Tunyasuvunakool 5e989d18c3 Enable compiler errors for implicit switch case fallthroughs.
Also unify warning options across Clang and GCC and fix minor issues that was surfaced by this.

PiperOrigin-RevId: 508619655
Change-Id: I59b777bf2dfea4422485670e2427c7d3f5cf6405
2023-02-10 03:49:00 -08:00
Nimrod Gileadi 48e95817e4 Don't compute sensors in mjd_transitionFD, if not requested.
PiperOrigin-RevId: 507878658
Change-Id: I97ece521fd177d97fa5758dda1eb012ba26bcabe
2023-02-07 14:02:45 -08:00
Alessio Quaglino dd632b7ccc Bump MuJoCo version to 2.3.2.
PiperOrigin-RevId: 507720557
Change-Id: I7a5b577094ac1a7f468a84c484f62f61dc6b409f
2023-02-07 02:35:17 -08:00
Copybara-Service 6b80b010af Merge pull request #705 from hartikainen:bug/mj_deleteFileVFS-infinite-loop
PiperOrigin-RevId: 507544780
Change-Id: Ie5819d4cc567dce44ceb59624a889a06ecdd7c1b
2023-02-06 12:01:11 -08:00
Saran Tunyasuvunakool 9a7f4a768a Remove control plugin API.
This is a rollback of f937ffd93326b2964e33689b0dc6024124776a9e.

PiperOrigin-RevId: 507456400
Change-Id: I2026510e6065eb440c0c899fcc5a2cc8ff5afd49
2023-02-06 05:52:17 -08:00
Nimrod Gileadi dc3a900809 Apply body pair filtering at broadphase.
mj_contactFilter removed geom pairs where their bodies share the same weldid, but this check can be applied at broadphase instead of at geom-geom level.

PiperOrigin-RevId: 507435848
Change-Id: Ia37c741071dc5e1c26686dd319f42c9bd334d305
2023-02-06 03:46:20 -08:00
Yuval Tassa 79fffdc0ae Draw body label at the body frame rather than inertial frame, unless inertia is being visualised.
PiperOrigin-RevId: 507424290
Change-Id: I72ca68e2e47f76c0f70959a1a2c8b5f4b6b6b290
2023-02-06 02:38:51 -08:00
Kyle Bayes ffe27d9680 Extract AVX code from sparse utils.
PiperOrigin-RevId: 506851218
Change-Id: I23cc3ffb26face97fc2380bc9cb702cc41b8b29d
2023-02-03 02:42:39 -08:00
Yuval Tassa a7888d473c mju_transposeSparse: extract local integer, remove extra blank line.
PiperOrigin-RevId: 506243573
Change-Id: Ia573c9289ef1deb1cc7b5477d441752370caa470
2023-02-01 01:27:46 -08:00
Yuval Tassa 7feecf6e94 Improve behaviour of set-pose mouse interactions with free and mocap bodies.
PiperOrigin-RevId: 506051745
Change-Id: If666757deb743f7bf3af4113d10976c3294e0879
2023-01-31 10:57:19 -08:00
Kyle Bayes c741dfce7d Implement a more performant mju_transposeSparse that doesn't require dense memory allocation.
PiperOrigin-RevId: 505044194
Change-Id: Ibe0e39e3ad711b2b5bdad45180ca4f83b5c8fc82
2023-01-27 00:20:01 -08:00
Kristian Hartikainen d35670932f Fix for-loop syntax to match style convention 2023-01-25 19:11:13 +00:00
Kristian Hartikainen 436fc6e77c Fix infinite loop in mj_deleteFileVFS 2023-01-21 17:26:01 +00:00
Yuval Tassa 06557c1489 Set time correctly in mjd_transitionFD, to support time-dependent user code.
PiperOrigin-RevId: 502380864
Change-Id: Ief36135a900c091d95e4450992c7c73e86de267c
2023-01-16 07:52:17 -08:00
Yuval Tassa 6e02c19ebb Print contacting geom names, if non-empty, in mj_printData output.
PiperOrigin-RevId: 502340142
Change-Id: I6359a1ea8fb515e13cb434e31d9592b9d6ce9181
2023-01-16 03:08:33 -08:00
Yuval Tassa 5b942329d2 Fix various typos.
PiperOrigin-RevId: 500951615
Change-Id: I3c61ef4328d77457d12091bbf75514872b53c2d0
2023-01-10 03:59:27 -08:00
Yuval Tassa f19d5d2f28 Fix typo in mujoco.h
PiperOrigin-RevId: 500675056
Change-Id: Ie4958609563b2826cc4965b42ad4d22248c733ef
2023-01-09 04:04:25 -08:00
Kyle Bayes 048bd43724 Fix various typos.
PiperOrigin-RevId: 499888205
Change-Id: I38ccf9edb2a745fe8087f14b67ecccca872f7743
2023-01-05 08:29:49 -08:00
Nimrod Gileadi f85f3fba2f Avoid duplicate contact points in compound bodies.
Sometimes broadphase returns the same body pair multiple times. In those cases, avoid creating every contact twice.

PiperOrigin-RevId: 499869235
Change-Id: I58606168b0723d40b4fdd43b1fafad79bf35d76d
2023-01-05 07:28:05 -08:00
Kyle Bayes 0c463366a0 Reduce internal names hash map from factor of 1 to 0.5.
PiperOrigin-RevId: 499762072
Change-Id: Id4ea606b5c534c55665485c9f71412523164d2ed
2023-01-05 01:29:14 -08:00
Kyle Bayes f1007df013 Implement hash map for mj_name2id using djb2 and linear probing.
PiperOrigin-RevId: 499485127
Change-Id: I5aed6549db18b92d7c8a3b7590e50a00ce13a439
2023-01-04 07:57:55 -08:00
Kyle Bayes 5261cceb30 Fix typo in engine_io.c.
PiperOrigin-RevId: 499422793
Change-Id: Ic3a0d6dcc9119041267555efd6a8addb944d6639
2023-01-04 01:35:28 -08:00
Tom Erez 45184bfa55 Fix Typo.
PiperOrigin-RevId: 499185052
Change-Id: I159271a229c90f38836d607511459edbe1d501bb
2023-01-03 04:49:48 -08:00
Yuval Tassa 30b4309af9 Rename mjpPlugin.capabilities -> mjpPlugin.capabilityflags
PiperOrigin-RevId: 495080532
Change-Id: I81743472b816a331890a7cb05bfb7a89ebf07ff9
2022-12-13 11:33:27 -08:00
Saran Tunyasuvunakool 5c021d042b Modify signature of plugin reset callback.
The `reset` function is called inside `mj_resetData`, before any physics forwarding call has been made. It is therefore an error to read anything from mjData at this stage.

The only valid operation on mjData during `reset` is for a plugin to write into its own state variable slots and data struct. We modify the function signature to only provide access to these.

PiperOrigin-RevId: 495032492
Change-Id: Ic6d2967d2571a9083cbca1ba239ca70a8a51f474
2022-12-13 08:41:35 -08:00
Nimrod Gileadi 7076da6909 Correctly validate the size of user sensors in mj_validateReference.
PiperOrigin-RevId: 494877162
Change-Id: I0a070d7813efea6216d15270f62b6009c55e1a54
2022-12-12 17:49:06 -08:00
Saran Tunyasuvunakool 946c12faae Add missing semicolons after mjFREESTACK.
The code is already well-formed since the macro itself contains a semicolon, however this is stylistically inconsistent with the rest of the codebase. The missing semicolon is also problematic for automated code transformations.

PiperOrigin-RevId: 494734527
Change-Id: I9aef5844c8c3cce6eefea8f8bf13a4ab3dd79878
2022-12-12 08:22:37 -08:00
Saran Tunyasuvunakool e9869d3bf3 Add a missing TM_END call when mj_fwdConstraint returns early.
PiperOrigin-RevId: 494375187
Change-Id: I013b6cdac06350a6c563fb686df9104dfb7258dd
2022-12-10 04:13:58 -08:00
Alessio Quaglino 2d304d65e5 Use memcmp for mju_compare if no AVX. 15% faster on Humanoid.
PiperOrigin-RevId: 493324356
Change-Id: I5f71dc1a8ae40c18864ea80f00a5f86ff952f72c
2022-12-06 09:14:33 -08:00
Saran Tunyasuvunakool e4f1d584ad Add control plugin API.
PiperOrigin-RevId: 493311715
Change-Id: Iccd99fb26004f39832818e378f01f9149a0e3e3b
2022-12-06 08:23:49 -08:00
Kyle Bayes 73fb61e3e2 Bump version number to 2.3.1.
PiperOrigin-RevId: 493076656
Change-Id: I48c7a45b503c4a7363ea1455a4a3788262d007f7
2022-12-05 12:13:55 -08:00
Alessio Quaglino 0d52feaa94 Add updateScene callback for plugins.
PiperOrigin-RevId: 492497689
Change-Id: I4a15cc5fa39dc7c9b85d132727f82033d4aec2c8
2022-12-02 10:11:32 -08:00
Alessio Quaglino 89185b4af2 Using full path when adding a file to VFS. Fixes #616.
PiperOrigin-RevId: 492204185
Change-Id: If2b2230c095fe0bb776fcc3ffda48f13d0be5cb2
2022-12-01 08:34:20 -08:00
Saran Tunyasuvunakool df25d7d602 Raise an informative error when running on macOS under Rosetta 2.
Current users only get a cryptic "Illegal instruction" crash.

Context: https://github.com/deepmind/mujoco/issues/611
PiperOrigin-RevId: 491705647
Change-Id: I1285897a36e858300ee3d125957e90754be9a7f7
2022-11-29 12:19:06 -08:00
Yuval Tassa 165e72f798 Apply force perturbations at selection point rather than body center-of-mass.
PiperOrigin-RevId: 489996756
Change-Id: I87870a0c1d173449f15a7249f2459a6b726ff417
2022-11-21 09:13:16 -08:00
Yuval Tassa 45b3af78a0 Fix typos.
PiperOrigin-RevId: 489681378
Change-Id: I867ef743e27aedfb4b732671246c8e8e880943f0
2022-11-19 07:02:10 -08:00
Saran Tunyasuvunakool 9ecade0707 Move plugin loading and scanning logic from Simulate to MuJoCo library.
PiperOrigin-RevId: 489020177
Change-Id: I1c29d931b47d5252e57e1d797cc7c17645859ffc
2022-11-16 13:15:51 -08:00
Alessio Quaglino 7b0fbc63f8 Speed improvement with no AVX. 40% on Linux Intel Xeon and 60% on ARM Mac.
PiperOrigin-RevId: 488360660
Change-Id: I423269cd362fdcc2434393b691638ac6ed778ef2
2022-11-14 07:31:32 -08:00
Alessio Quaglino 9fc9823a8c Speed improvements in mj_solveLD (14% on Intel Skylake Xeon 36 cores).
PiperOrigin-RevId: 486960670
Change-Id: I8fce96427158ec36069dea893500059e93bd40db
2022-11-08 08:38:45 -08:00
Alessio Quaglino fd4d47e4a5 Format memory warning in human-friendly way.
PiperOrigin-RevId: 486610408
Change-Id: I6beecb12059e69f4407e921d20efc54ce6b3f491
2022-11-07 02:56:07 -08:00
Yuval Tassa 36b30e4500 Allow more than 1 activation state per actuator, but only for dyntype user.
Fixes #305.

PiperOrigin-RevId: 486597273
Change-Id: I3eb806f60949e68ebe6cbe35a6e66218a167ed45
2022-11-07 01:43:02 -08:00
Yuval Tassa c83be2bc05 Add mju_clip, mju_fill, mju_eye and mju_symmetrize to python bindings.
- Also change signatures of `mju_fill` and `mju_symmetrize` to conform to standard.

PiperOrigin-RevId: 485613824
Change-Id: I8dd618bac92ef40aa6c76380fa73302e81968687
2022-11-02 09:22:28 -07:00