SYOMRO is a software package for SYmbolic MOdeling of RObots.
This software package is developed as part of the OpenSYMORO project by the robotics team at IRCCyN under the supervision of Wisama Khalil.
For details on the algorithms used, please see the paper published in the AIM 2014 conference.
Note that I have made some modifications based on the great work by vijaravind, galou and cmigliorini.
- python (== 3.8.13)
- sympy (== 1.11rc1)
- numpy (== 1.23.2)
- wxPython (== 4.0.7)
- PyOpenGL (== 3.1.6)
pip uninstall symoro -y
git clone https://github.com/xu-yang16/symoro-python3.git
cd symoro-python3
python setup.py develop
python bin/symoro-bin.py
- A simple introduction in Chinese
- The paper SYMORO+: A SYSTEM FOR THE SYMBOLIC MODELLING OF ROBOTS
- The book Modeling Identification and Control of Robots
- A few notes by me:
-
Attention: the box
MX
,MY
andMZ
should be something like$m_1c_{1x}, m_1c_{1y}$ and$m_1c_{1z}$ instead of the postion of CoM. -
Kinematic - Jacobian matrix: the generated file includes the Jacobian matrix
$J$ and the position vector connecting the origin of frame i to that of frame j$L$ . -
Dynamic - Inverse Dynamic Model: the generate file is in the following form
$$\Gamma = A{\left\lbrack \matrix{\ddot q_{active} \cr \ddot q_{passive}} \right\rbrack}+H.$$ where$H$ is the vector of the centrifugal, Coriolis and gravity torques. (Note that the matrix$A$ and$H$ can be respectively generated byInertia matrix
andCentrifugal, Coriolis and gravity torques
). -
Dynamic - Direct dynamic model: the generated file is in the following form based on the recursive Newton-Euler equations:
$$\ddot q=A^{-1}[\Gamma - H(q, \dot q)].$$ -
Identification - base inertia paramters: generate a table of the minimum set of the dynamic inertia parameters. Note that the base paramters should also include the joint friction parameters
$Fs$ and$Fv$ . -
Identification - Dynamic Identification model: I usually run
base inertia paramters
to generate a new model with the base paramters (the file ended with_base
). Then, load the new model and runDynamic Identification model
to generate the coefficient matrix$D(q,\dot q, \ddot q)$ , where$\Gamma=D(q, \dot q, \ddot q)K$ and$K$ is the base parameter vector. Note that the elements of$D$ begin their name with$DG$ , for example,$DG2F2s = sign(dq2), DG2F2v = dq2$ .
-
Attention: the box
See LICENCE.
See Contributors.