Skip to content

Commit

Permalink
added online documentation (github.io, readthedocs), lots of fixes, L…
Browse files Browse the repository at this point in the history
…ie group methods extended, fixes for openAI interface, CoordinateSpringDamperExt, OpenVR, MacOS fixes, see Issues and Bugs in theDoc.pdf
  • Loading branch information
jgerstmayr committed Mar 8, 2023
1 parent b95a2c0 commit 6bbd553
Show file tree
Hide file tree
Showing 35 changed files with 259 additions and 121 deletions.
26 changes: 18 additions & 8 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
|Documentation GithubIO| |PyPI version exudyn| |PyPI pyversions| |PyPI download month|
|RTD documentation| |PyPI version exudyn| |PyPI pyversions| |PyPI download month| |Github release date|
|Github issues| |Github stars| |Github commits| |Github last commit|

.. |PyPI version exudyn| image:: https://badge.fury.io/py/exudyn.svg
:target: https://pypi.python.org/pypi/exudyn/
Expand All @@ -9,9 +10,22 @@
.. |PyPI download month| image:: https://img.shields.io/pypi/dm/exudyn.svg
:target: https://pypi.python.org/pypi/exudyn/

.. |RTD documentation| image:: https://readthedocs.org/projects/exudyn/badge/?version=latest
:target: https://exudyn.readthedocs.io/en/latest/?badge=latest

.. |Github issues| image:: https://img.shields.io/github/issues-raw/jgerstmayr/exudyn
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github stars| image:: https://img.shields.io/github/stars/jgerstmayr/exudyn?style=plastic
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github release date| image:: https://img.shields.io/github/release-date/jgerstmayr/exudyn?label=release
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github commits| image:: https://img.shields.io/github/commits-since/jgerstmayr/exudyn/v1.0.6
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Documentation GithubIO| image:: https://img.shields.io/website-up-down-green-red/https/jgerstmayr.github.io/EXUDYN.svg
.. |Github last commit| image:: https://img.shields.io/github/last-commit/jgerstmayr/exudyn
:target: https://jgerstmayr.github.io/EXUDYN/


Expand All @@ -23,12 +37,10 @@ Exudyn

**A flexible multibody dynamics systems simulation code with Python and C++**

Exudyn version = 1.5.118.dev1 (Fitzgerald)
Exudyn version = 1.6.0 (Gillespie)

+ **University of Innsbruck**, Department of Mechatronics, Innsbruck, Austria

Exudyn 1.5 is out! It includes now Python 3.7/8 - 3.10 wheels for MacOS (since 1.5.11.dev1 also showing tkinter dialogs!), linux and windows. See theDoc.pdf chapter **Issues and Bugs** for changes!

If you like using Exudyn, please add a *star* on github and follow us on
`Twitter @RExudyn <https://twitter.com/RExudyn>`_ !

Expand Down Expand Up @@ -59,9 +71,7 @@ If you like using Exudyn, please add a *star* on github and follow us on

A paper on Exudyn has been presented at the `6th Joint International Conference on Multibody System Dynamics <http://imsdacmd2020.iitd.ac.in>`_ and submitted to the proceedings: J. Gerstmayr, Exudyn - A C++ based Python package for flexible multibody systems, Proceedings of The 6th Joint International Conference on Multibody System Dynamics and the 10th Asian Conference on Multibody System Dynamics 2020, New Delhi, India, 2022. `PDF <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/publications/GerstmayrIMSD2022.pdf>`_

This README document is a small part of the complete documentation found as PDF document in docs/theDoc/theDoc.pdf.
It is auto-generated from .tex files (sorry for some conversion errors!).
Due to limitations for complex formulas and tables in .rst files, details of the reference manual and many other parts of the documentation are only available in theDoc.pdf, see the `github page of Exudyn <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_ !
Due to limitations for complex formulas and tables in .rst files, details of the reference manual and many other parts of the documentation are only available in theDoc.pdf, see the `github page of Exudyn <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_! There may also be some conversion errors in the auto-generated html pages.

For license, see LICENSE.txt in the root github folder on github!

Expand Down
14 changes: 13 additions & 1 deletion docs/RST/AdvancedTopics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ Camera following objects and interacting with model view
--------------------------------------------------------

For some models, it may be advantageous to track the translation and/or rotation of certain bodies, e.g., for cars, (wheeled) robots or bicycles.
Since Exudyn 1.4.18 you can attach view to a marker, using the visualization setting

.. code-block:: python
SC.visualizationSettings.interactive.trackMarker = nMarker
in which \ ``nMarker``\ represents the desired marker number to follow.
See also related options in \ ``SC.visualizationSettings.interactive``\ in Section :ref:`sec-vsettingsinteractive`\ .

The following paragraph represents a slower, slightly outdated approach, which may be interesting for advanced usage of object tracking.
To do so, the current render state (\ ``SC.GetRenderState()``\ , \ ``SC.SetRenderState(...)``\ ) can be obtained and modified, in order to always follow a certain position.
As this needs to be done during redraw of every frame, it is conveniently done in a graphicsUserFunction, e.g., within the ground body. This is shown in the following example, in which \ ``mbs.variables['nTrackNode']``\ is a node number to be tracked:

Expand All @@ -37,6 +48,7 @@ As this needs to be done during redraw of every frame, it is conveniently done i
#.... further code for simulation here
NOTE that this approach is slower and it may lead to a (usually silient) crash after closing the renderer, as the renderer thread is somehow coupled to Python which is prohibited from Python side.

.. _sec-overview-advanced-contact:

Expand Down Expand Up @@ -177,7 +189,7 @@ To show the interoperability with julia, test the following example (similar to
"""
We can access Python variables from julia via \ ``py"..."``\ to read out, e.g., \tetttmbs:
We can access Python variables from julia via \ ``py"..."``\ to read out, e.g., \ ``mbs``\ :

.. code-block::
Expand Down
29 changes: 22 additions & 7 deletions docs/RST/Exudyn.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
|PyPI version exudyn| |PyPI pyversions| |PyPI download month|
|RTD documentation| |PyPI version exudyn| |PyPI pyversions| |PyPI download month| |Github release date|
|Github issues| |Github stars| |Github commits| |Github last commit|

.. |PyPI version exudyn| image:: https://badge.fury.io/py/exudyn.svg
:target: https://pypi.python.org/pypi/exudyn/
Expand All @@ -9,6 +10,24 @@
.. |PyPI download month| image:: https://img.shields.io/pypi/dm/exudyn.svg
:target: https://pypi.python.org/pypi/exudyn/

.. |RTD documentation| image:: https://readthedocs.org/projects/exudyn/badge/?version=latest
:target: https://exudyn.readthedocs.io/en/latest/?badge=latest

.. |Github issues| image:: https://img.shields.io/github/issues-raw/jgerstmayr/exudyn
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github stars| image:: https://img.shields.io/github/stars/jgerstmayr/exudyn?style=plastic
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github release date| image:: https://img.shields.io/github/release-date/jgerstmayr/exudyn?label=release
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github commits| image:: https://img.shields.io/github/commits-since/jgerstmayr/exudyn/v1.0.6
:target: https://jgerstmayr.github.io/EXUDYN/

.. |Github last commit| image:: https://img.shields.io/github/last-commit/jgerstmayr/exudyn
:target: https://jgerstmayr.github.io/EXUDYN/



******
Expand All @@ -18,12 +37,10 @@ Exudyn

**A flexible multibody dynamics systems simulation code with Python and C++**

Exudyn version = 1.5.118.dev1 (Fitzgerald)
Exudyn version = 1.6.0 (Gillespie)

+ **University of Innsbruck**, Department of Mechatronics, Innsbruck, Austria

Exudyn 1.5 is out! It includes now Python 3.7/8 - 3.10 wheels for MacOS (since 1.5.11.dev1 also showing tkinter dialogs!), linux and windows. See theDoc.pdf chapter **Issues and Bugs** for changes!

If you like using Exudyn, please add a *star* on github and follow us on
`Twitter @RExudyn <https://twitter.com/RExudyn>`_ !

Expand Down Expand Up @@ -54,9 +71,7 @@ If you like using Exudyn, please add a *star* on github and follow us on

A paper on Exudyn has been presented at the `6th Joint International Conference on Multibody System Dynamics <http://imsdacmd2020.iitd.ac.in>`_ and submitted to the proceedings: J. Gerstmayr, Exudyn - A C++ based Python package for flexible multibody systems, Proceedings of The 6th Joint International Conference on Multibody System Dynamics and the 10th Asian Conference on Multibody System Dynamics 2020, New Delhi, India, 2022. `PDF <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/publications/GerstmayrIMSD2022.pdf>`_

This README document is a small part of the complete documentation found as PDF document in docs/theDoc/theDoc.pdf.
It is auto-generated from .tex files (sorry for some conversion errors!).
Due to limitations for complex formulas and tables in .rst files, details of the reference manual and many other parts of the documentation are only available in theDoc.pdf, see the `github page of Exudyn <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_ !
Due to limitations for complex formulas and tables in .rst files, details of the reference manual and many other parts of the documentation are only available in theDoc.pdf, see the `github page of Exudyn <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_! There may also be some conversion errors in the auto-generated html pages.

For license, see LICENSE.txt in the root github folder on github!

Expand Down
7 changes: 6 additions & 1 deletion docs/RST/InstallationAndGettingStarted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@ Installation and Getting Started

Exudyn is hosted on `GitHub <https://github.com>`_ :

+ web: `https://github.com/jgerstmayr/EXUDYN <https://github.com/jgerstmayr/EXUDYN>`_
+ `https://github.com/jgerstmayr/EXUDYN <https://github.com/jgerstmayr/EXUDYN>`_

Online documentation is available at:

+ `https://jgerstmayr.github.io/EXUDYN <https://jgerstmayr.github.io/EXUDYN>`_
+ `https://exudyn.readthedocs.io <https://exudyn.readthedocs.io>`_

For any comments, requests, issues, bug reports, send an email to:

Expand Down
2 changes: 2 additions & 0 deletions docs/RST/items/MarkerSuperElementRigid.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ The item \ **MarkerSuperElementRigid**\ with type = 'SuperElementRigid' has the
| a list of \ :math:`n_m`\ weighting factors per node to compute the final local position and orientation; these factors could be based on surface integrals of the constrained mesh faces
* | **useAlternativeApproach** [type = Bool, default = True]:
| this flag switches between two versions for the computation of the rotation and angular velocity of the marker; alternative approach uses skew symmetric matrix of reference position; follows the inertia concept
* | **rotationsExponentialMap** [type = Index, default = 2]:
| Experimental flag (2 is the correct value and will be used in future, removing this flag): This value switches different behavior for computation of rotations and angular velocities: 0 uses linearized rotations and angular velocities, 1 uses the exponential map for rotations but linear angular velocities, 2 uses the exponential map for rotations and the according tangent map for angular velocities
* | **visualization** [type = VMarkerSuperElementRigid]:
| parameters for visualization of item
Expand Down
2 changes: 1 addition & 1 deletion docs/RST/pythonUtilities/processing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ Function: ParameterVariation
Relevant Examples (Ex) and TestModels (TM) with weblink to github:

\ `dispyParameterVariationExample.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/dispyParameterVariationExample.py>`_\ (Ex), \ `dispyParameterVariationExampleAlt.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/dispyParameterVariationExampleAlt.py>`_\ (Ex), \ `parameterVariationExample.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/parameterVariationExample.py>`_\ (Ex), \ `geneticOptimizationTest.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/geneticOptimizationTest.py>`_\ (TM)
\ `dispyParameterVariationExample.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/dispyParameterVariationExample.py>`_\ (Ex), \ `parameterVariationExample.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/parameterVariationExample.py>`_\ (Ex), \ `geneticOptimizationTest.py <https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/geneticOptimizationTest.py>`_\ (TM)


----
Expand Down
16 changes: 8 additions & 8 deletions docs/theDoc/bibliographyDoc.bib
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
@manual{EXUDYNgit,
annote = {$\backslash$url{\{}https://github.com/jgerstmayr/EXUDYN{\}}},
@misc{EXUDYNgit,
author = {Gerstmayr, Johannes},
title = {{Exudyn github repository}}
howpublished = {\url{https://github.com/jgerstmayr/EXUDYN} (accessed on March 8, 2023)},
title = {{Exudyn github repository}},
year = {2023},
}

@article{Newmark1959,
Expand Down Expand Up @@ -586,7 +587,6 @@ @article{Holzinger2021
volume = {53},
number = {4},
year = {2021},
pages={(online)}
}

@article{ZwoelferGerstmayr2021,
Expand All @@ -610,19 +610,19 @@ @inproceedings{ManzlGerstmayr2021
@misc{2022_Gerstmayr_theDoc,
author = {Gerstmayr, Johannes},
title = {{Exudyn -- Flexible Multibody Dynamics Systems with Python and C++}},
year = {2022},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/jgerstmayr/EXUDYN} (accessed on April 29, 2022)},
howpublished = {\url{https://github.com/jgerstmayr/EXUDYN} (accessed on March 8, 2023)},
}


@misc{2022_ExudynYoutube,
author = {Gerstmayr, Johannes},
title = {{Exudyn -- Youtube channel}},
year = {2022},
year = {2023},
publisher = {Youtube},
howpublished = {\url{https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg_jtl6fx} (accessed on April 29, 2022)},
howpublished = {\url{https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg_jtl6fx} (accessed on March 8, 2023)},
}

@inproceedings{GerstmayrExudyn2022,
Expand Down
2 changes: 1 addition & 1 deletion docs/theDoc/buildDate.tex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
build date and time=2023-02-28 16:38
build date and time=2023-03-08 16:59
13 changes: 7 additions & 6 deletions docs/theDoc/gettingStarted.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
\onlyRST{
+ **University of Innsbruck**, Department of Mechatronics, Innsbruck, Austria

Exudyn 1.5 is out! It includes now Python 3.7/8 - 3.10 wheels for MacOS (since 1.5.11.dev1 also showing tkinter dialogs!), linux and windows. See theDoc.pdf chapter **Issues and Bugs** for changes!

If you like using Exudyn, please add a *star* on github and follow us on
`Twitter @RExudyn <https://twitter.com/RExudyn>`_ !

Expand Down Expand Up @@ -34,9 +32,7 @@

A paper on Exudyn has been presented at the `6th Joint International Conference on Multibody System Dynamics <http://imsdacmd2020.iitd.ac.in>`_ and submitted to the proceedings: J. Gerstmayr, Exudyn - A C++ based Python package for flexible multibody systems, Proceedings of The 6th Joint International Conference on Multibody System Dynamics and the 10th Asian Conference on Multibody System Dynamics 2020, New Delhi, India, 2022. `PDF <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/publications/GerstmayrIMSD2022.pdf>`_

This README document is a small part of the complete documentation found as PDF document in docs/theDoc/theDoc.pdf.
It is auto-generated from .tex files (sorry for some conversion errors!).
Due to limitations for complex formulas and tables in .rst files, details of the reference manual and many other parts of the documentation are only available in theDoc.pdf, see the `github page of Exudyn <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_ !
Due to limitations for complex formulas and tables in .rst files, details of the reference manual and many other parts of the documentation are only available in theDoc.pdf, see the `github page of Exudyn <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_! There may also be some conversion errors in the auto-generated html pages.

For license, see LICENSE.txt in the root github folder on github!

Expand Down Expand Up @@ -66,7 +62,12 @@
%
\noindent \codeName\ is hosted on \exuUrl{https://github.com}{GitHub} \cite{EXUDYNgit}:
\bi
\item web: \exuUrl{https://github.com/jgerstmayr/EXUDYN}{https://github.com/jgerstmayr/EXUDYN}
\item \exuUrl{https://github.com/jgerstmayr/EXUDYN}{https://github.com/jgerstmayr/EXUDYN}
\ei
\noindent Online documentation is available at:
\bi
\item \exuUrl{https://jgerstmayr.github.io/EXUDYN}{https://jgerstmayr.github.io/EXUDYN}
\item \exuUrl{https://exudyn.readthedocs.io}{https://exudyn.readthedocs.io}
\ei
%
For any comments, requests, issues, bug reports, send an email to:
Expand Down
11 changes: 10 additions & 1 deletion docs/theDoc/introduction.tex
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,14 @@
\mysubsubsectionlabel{Camera following objects and interacting with model view}{sec:overview:advanced:camerafollowing}
%
For some models, it may be advantageous to track the translation and/or rotation of certain bodies, e.g., for cars, (wheeled) robots or bicycles.
Since \codeName\ 1.4.18 you can attach view to a marker, using the visualization setting
\pythonstyle\begin{lstlisting}
SC.visualizationSettings.interactive.trackMarker = nMarker
\end{lstlisting}
in which \texttt{nMarker} represents the desired marker number to follow.
See also related options in \texttt{SC.visualizationSettings.interactive} in \refSection{sec:VSettingsInteractive}.

The following paragraph represents a slower, slightly outdated approach, which may be interesting for advanced usage of object tracking.
To do so, the current render state (\texttt{SC.GetRenderState()}, \texttt{SC.SetRenderState(...)}) can be obtained and modified, in order to always follow a certain position.
As this needs to be done during redraw of every frame, it is conveniently done in a graphicsUserFunction, e.g., within the ground body. This is shown in the following example, in which \texttt{mbs.variables['nTrackNode']} is a node number to be tracked:
%
Expand All @@ -849,6 +857,7 @@
VObjectGround(graphicsDataUserFunction=UFgraphics)))
#.... further code for simulation here
\end{lstlisting}
NOTE that this approach is slower and it may lead to a (usually silient) crash after closing the renderer, as the renderer thread is somehow coupled to Python which is prohibited from Python side.
%
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Expand Down Expand Up @@ -987,7 +996,7 @@
print('results can be found in local directory: solution/demo1.txt')
"""
\end{lstlisting}
We can access Python variables from julia via \texttt{py"..."} to read out, e.g., \tettt{mbs}:
We can access Python variables from julia via \texttt{py"..."} to read out, e.g., \texttt{mbs}:
\begin{lstlisting}
py"mbs".systemData.Info()
\end{lstlisting}
Expand Down
1 change: 1 addition & 0 deletions docs/theDoc/itemDefinition.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10696,6 +10696,7 @@
meshNodeNumbers & ArrayIndex & & [] & a list of $n_m$ mesh node numbers of superelement (=interface nodes) which are used to compute the body-fixed marker position and orientation; the related nodes must provide 3D position information, such as NodePoint, NodePoint2D, NodeRigidBody[..]; in order to retrieve the global node number, the generic body needs to convert local into global node numbers\\ \hline
weightingFactors & Vector & & [] & a list of $n_m$ weighting factors per node to compute the final local position and orientation; these factors could be based on surface integrals of the constrained mesh faces\\ \hline
useAlternativeApproach & Bool & & True & this flag switches between two versions for the computation of the rotation and angular velocity of the marker; alternative approach uses skew symmetric matrix of reference position; follows the inertia concept\\ \hline
rotationsExponentialMap & Index & & 2 & Experimental flag (2 is the correct value and will be used in future, removing this flag): This value switches different behavior for computation of rotations and angular velocities: 0 uses linearized rotations and angular velocities, 1 uses the exponential map for rotations but linear angular velocities, 2 uses the exponential map for rotations and the according tangent map for angular velocities\\ \hline
visualization & VMarkerSuperElementRigid & & & parameters for visualization of item\\ \hline
\end{longtable}
\end{center}
Expand Down
Loading

0 comments on commit 6bbd553

Please sign in to comment.