Commit Graph

942 Commits

Author SHA1 Message Date
Saran Tunyasuvunakool daa2ac7f8b Rename nstack to narena, change it and pstack to count bytes.
PiperOrigin-RevId: 561066311
Change-Id: I4d0e645e6c254dd906bfc42159e0e99149a7c6c8
2023-08-29 10:13:33 -07:00
Saran Tunyasuvunakool b979a26b10 Rename mj_stackAlloc to mj_stackAllocNum.
PiperOrigin-RevId: 561040193
Change-Id: I49ea21ffb5b596471d2aacefb1961c11c5c905d0
2023-08-29 08:43:03 -07:00
Kyle Bayes ea5e00cad8 Move mju_combineSparseCount into engine_util_sparse.
PiperOrigin-RevId: 561025741
Change-Id: I0bdc48554928fc4545a38a8cea3bdeb593bd7ecd
2023-08-29 07:40:53 -07:00
Yuval Tassa df1b3515c7 Add mjData.nl: number of active limit constraints.
PiperOrigin-RevId: 561012367
Change-Id: I9a01fec55502f8a90d7435972e477455ae29df15
2023-08-29 06:32:18 -07:00
Kyle Bayes 389736f5a1 Add Base64, defined by RFC 4648, encoding and decoding to MuJoCo engine.
PiperOrigin-RevId: 561008882
Change-Id: I494eb163bc82e8a5c9ad2116ef119072b08a9f48
2023-08-29 06:14:02 -07:00
Kyle Bayes 50e968a6e2 Add particle.xml to benchmark tests.
PiperOrigin-RevId: 561003057
Change-Id: I73094a135ae006eeb041fe55ebf3e998ebe6b3ab
2023-08-29 05:52:57 -07:00
Yuval Tassa 5f3e22a45f Refactor a loop in engine_solver.c
PiperOrigin-RevId: 560997065
Change-Id: I26540e4f750eb18d9497bf35396adbb15cc3a122
2023-08-29 05:17:14 -07:00
Yuval Tassa 55173e58f9 Save <compiler {boundmass/boundinertia}> if nonzero.
Fixes #928

PiperOrigin-RevId: 560967976
Change-Id: Idc8c043278362d8925ce41061c65f3e678ad50ce
2023-08-29 02:41:22 -07:00
Yuval Tassa 8ba3291365 Fix typo.
PiperOrigin-RevId: 560750842
Change-Id: I11064d43ab43ff0de96997a859bf32d4b0833e05
2023-08-28 10:29:48 -07:00
Yuval Tassa 5fe4850643 Improve mj_jac documentation. Fixes #994
PiperOrigin-RevId: 560748977
Change-Id: Ic776d6450175a6620eb32ab8631dcca68c3088df
2023-08-28 10:23:45 -07:00
Yuval Tassa d1d79f396e Mention Windows build issue regarding missing C header file.
Fixes #862

PiperOrigin-RevId: 560712857
Change-Id: I530f102b645d7d7b8dd168349162a2d38f3ad9be
2023-08-28 08:04:50 -07:00
Yuval Tassa f44c657544 Restore acceleration after mj_inverse with invdiscrete flag.
PiperOrigin-RevId: 560647025
Change-Id: If51f721426be7ecf2b7aa53048ad8c897b51e76e
2023-08-28 02:17:20 -07:00
Tom Erez 819b5cb982 Add invdiscrete flag to enable discrete-time inverse dynamics with mj_inverse.
PiperOrigin-RevId: 560161140
Change-Id: If3e30be5e9af4982571dd310172f2fc0d8d1c551
2023-08-25 12:08:37 -07:00
Yuval Tassa 4db3377467 Don't use mj_stackAlloc for int allocations.
PiperOrigin-RevId: 559846094
Change-Id: I43eeec0b1970b2c6047be4e7c3548a4ce9aa6f5f
2023-08-24 13:09:51 -07:00
Google DeepMind 5c9b222566 Fix typo.
PiperOrigin-RevId: 559799961
Change-Id: Ic80a27160cbc2a28f59e91958fd3a2de40f539e2
2023-08-24 10:41:02 -07:00
Alessio Quaglino b0077e4052 Use geom margin in the midphase.
At the leaves of the midphase trees in `mj_collideTree`, a bounding sphere test is performed. The margin was incorrectly set to zero instead of reading it from `geom_margin`.

PiperOrigin-RevId: 559782262
Change-Id: Icfceb8445bbf6977582e0061566d7bd4def2f0ae
2023-08-24 09:45:10 -07:00
Yuval Tassa 9255cc58a9 Update style guide.
PiperOrigin-RevId: 559743120
Change-Id: I6073911526bef9a9cc72d95122c4e8b9993b22ba
2023-08-24 07:10:27 -07:00
Yuval Tassa 1dad5993f0 Refactor constraint island representation.
Required for constraint solver islanding.

Replace linked lists with `island_{dof,efc}_{num,adr,ind}`, corresponding to the standard `{rownnz,rowadr,colind}` sparse matrix representation. By effectively defining two sparse matrix structures of dimensions `nisland x nv` and `nisland x nefc`, respectively, this representation is more conducive to reuse of existing sparse matrix utility functions, while being cache-friendlier by making sequential indices adjacent in memory.

PiperOrigin-RevId: 559704957
Change-Id: I919362cbef0d5fe5acc4aa2bb4ffb17eee8223a2
2023-08-24 03:48:57 -07:00
Nimrod Gileadi b92a9d599c Fix type errors in mujoco Python library.
PiperOrigin-RevId: 559473920
Change-Id: I45056b4a86a062f223d39c60fbc849ef69a5866b
2023-08-23 10:38:50 -07:00
Saran Tunyasuvunakool a2de04f5be Sanitize function parameter names that are Python keywords.
PiperOrigin-RevId: 559436458
Change-Id: I56b8a595885f3f3d3ecb7a00db5f1bd70e5f95d9
2023-08-23 08:34:41 -07:00
Saran Tunyasuvunakool 1f5a9e8c70 Reinstate max_align_t alignment in mj_stackAllocByte.
PiperOrigin-RevId: 559433104
Change-Id: I891a6a0562cab1c3af0e3dc395304207ca3a3190
2023-08-23 08:22:31 -07:00
Yuval Tassa b7cf479abe Add flag for disabling implicit integration of joint damping in the Euler integrator.
PiperOrigin-RevId: 559398414
Change-Id: I43b23c5e75a2830a64b1898daeaa16f19e011718
2023-08-23 05:51:37 -07:00
Yuval Tassa 5f2a2a325c Fix typo.
PiperOrigin-RevId: 559393250
Change-Id: Ibe257d7db371868d87fbea56111972d3f96f7147
2023-08-23 05:20:50 -07:00
Yuval Tassa e4c3e1468b Fix typo
PiperOrigin-RevId: 559383537
Change-Id: I9510970c26b94b8e8bb90423d6164fc82b9bd016
2023-08-23 04:25:22 -07:00
Yuval Tassa 90f58ebe5d Rename mj_stackAllocBytes to mj_stackAllocByte
PiperOrigin-RevId: 559071711
Change-Id: I19072e07ac86ee0486703aa48b0dceb297f5f893
2023-08-22 04:43:53 -07:00
Nimrod Gileadi dae74030fe Handle initial_capacity = 0 in mju_arrayListCreate.
Add const to ArrayList function arguments where appropriate.

PiperOrigin-RevId: 559064386
Change-Id: I8763974a60a05f34dadd56e953cefa40fe78df42
2023-08-22 04:04:02 -07:00
Matthew Bennice 1d36b57d83 Switch from max_align_t to mjtNum until we sort out the git builds
PiperOrigin-RevId: 558982369
Change-Id: I24d9fd6400dae5e1bc1753ee74484da635ea8ecd
2023-08-21 21:30:49 -07:00
Matthew Bennice c2e586f303 add c stddef to engineio
PiperOrigin-RevId: 558949604
Change-Id: Ibe7fbb1a7fb3fcc9258bff3aae260a805eb853dd
2023-08-21 17:51:08 -07:00
Matthew Bennice 4b983e8439 Add an ArrayList container type.
PiperOrigin-RevId: 558887266
Change-Id: I201978bfa5e6cfa2f4e495feaecf61374baf7b7b
2023-08-21 13:38:45 -07:00
Matthew Bennice 59138af10b Refactor stack allocations to have a clean byte allocation interface.
PiperOrigin-RevId: 558881470
Change-Id: I08c45cb5fa25a1a9c39560e598e805cfa5141c3e
2023-08-21 13:18:29 -07:00
Yuval Tassa 22fd0586b1 Move core_constraint arena allocations to local function.
PiperOrigin-RevId: 558823297
Change-Id: I4a564f0d05c17634e70fbff16e8bdca2e7d7fb63
2023-08-21 10:07:10 -07:00
Alessio Quaglino 8e54516071 Fix broken links in changelog.
PiperOrigin-RevId: 558767417
Change-Id: Ifa2a9fd3f146a0660658099eb9417f866af07cae
2023-08-21 06:13:17 -07:00
Alessio Quaglino 8421544add Added elasticity and sensor subfolders in model/plugin.
PiperOrigin-RevId: 558751363
Change-Id: I15acefc88e5fead1069b58ffb722ea4dc5d53c9b
2023-08-21 04:48:45 -07:00
Joss Moore ef699d4b6d Allow mocap bodies to be loaded by the Unity plugin.
PiperOrigin-RevId: 558735711
Change-Id: Ibc9a81cbf8ec4b979d5b325c822c1bffc1408509
2023-08-21 03:28:45 -07:00
Kyle Bayes ed4bb2aab5 Change _Alignof to alignof in functions.cc
PiperOrigin-RevId: 558388811
Change-Id: I40f394d6dd05215a7499ede5903841a07cd1c9f0
2023-08-19 05:11:40 -07:00
Saran Tunyasuvunakool 488041d362 Add a private function for resizing contact and efc-sized arrays in Python.
This function is currently used for internal experimentation.

PiperOrigin-RevId: 558238153
Change-Id: I32eec8f13ac2d995e90c5421f2a157412e2148f2
2023-08-18 13:53:04 -07:00
Alessio Quaglino b5f9628dd7 Reduce mjMAXCONPAIR to 50.
Use only the first `mjMAXCONPAIR` contacts in SDF-mesh collisions after sorting them using the penetration depth.

PiperOrigin-RevId: 558176217
Change-Id: Ia1ee12bd5ceb81e4c52f143831ad00426e8cf174
2023-08-18 10:02:44 -07:00
Kyle Bayes ba12a1354b Optimize and refactor combineSparse and combineSparseCount.
PiperOrigin-RevId: 558126391
Change-Id: Iead14c31136e789560f3c8124b84bd4e383158f4
2023-08-18 06:14:09 -07:00
Yuval Tassa b1ecc943bb Fix multiple bugs related to mjvSceneState.
PiperOrigin-RevId: 557864131
Change-Id: I47d9692930c54b1304a5cc161f99bbd81d992a7c
2023-08-17 10:25:39 -07:00
Yuval Tassa cf310079e2 Don't allow quat="0 0 0 0" in XML.
PiperOrigin-RevId: 557535436
Change-Id: Ie71246da5fff67a7cc37cb1801dd88d4a79b5766
2023-08-16 10:47:23 -07:00
Alessio Quaglino 15d74ba939 Add missing include to sdf.cc.
PiperOrigin-RevId: 557529739
Change-Id: Iff85d95b35977f7c329baf9a938f4580efd4b606
2023-08-16 10:30:09 -07:00
Alessio Quaglino fdb041580c Add Signed Distance Field to collision geometries.
PiperOrigin-RevId: 557507088
Change-Id: I358a642407aee1ba8dfc9d405eb9a4f609435fe9
2023-08-16 09:15:23 -07:00
Yuval Tassa 6245edae28 Improve island discovery performance
PiperOrigin-RevId: 557444755
Change-Id: I22a2093b563e8e144de9534917955ac403fa5599
2023-08-16 04:55:42 -07:00
Yuval Tassa ac3ac0d28f Fix timing plots issue in simulate.
Before this change timing plots would report zeros if the render thread was faster than the physics thread, making them unreadable when slowdown was used.

PiperOrigin-RevId: 557432042
Change-Id: Ie9a18fb84cab788d11dfbede4e3052f24441b4c4
2023-08-16 04:03:50 -07:00
Kyle Bayes 8ea690ed70 Remove unused parameters from mju_sqrMatTDSparseInit.
PiperOrigin-RevId: 557114227
Change-Id: Ia7d3fedfba612a68ff01d68f1b9dadb45bd76e85
2023-08-15 06:30:19 -07:00
Yuval Tassa 3f6c694e75 Fix typo in changelog
PiperOrigin-RevId: 557071510
Change-Id: I96eaf5d0eba91c6f2c85797b186af3bdb7ed3a7a
2023-08-15 02:48:31 -07:00
Yuval Tassa 3e034e38b2 Add constraint island discovery
PiperOrigin-RevId: 557067599
Change-Id: Ic41e1d0efef02b7a79142518afe49cf9d4e74725
2023-08-15 02:30:05 -07:00
Yuval Tassa e4dddea42a Make switch statements over enums in engine source use a typed expression to support compiler checking of full coverage.
PiperOrigin-RevId: 556854229
Change-Id: I36a5d146d776e10b946e2f9b51ace4ef3866471b
2023-08-14 11:17:47 -07:00
Copybara-Service 13490962a8 Merge pull request #1015 from aikkala:update-readme-myoconverter
PiperOrigin-RevId: 556826813
Change-Id: I8f2abff550c2a5ce74db38cb7eb521f9711158a6
2023-08-14 09:59:50 -07:00
Kyle Bayes f34cb22bd3 Reuse sparse Dof-Dof matrix to make compressed sparse M in mj_addM.
PiperOrigin-RevId: 556823353
Change-Id: I650ac83767d60c69859aae6e38aa331f43814378
2023-08-14 09:49:34 -07:00