Skip to content

SYmbolic MOdeling of RObots software. This is an open-source version of SYMORO software written in Python.

License

Notifications You must be signed in to change notification settings

xu-yang16/symoro-python3

 
 

Repository files navigation

SYMORO

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.

screentshot

Requirements (tested with Win10 and anaconda successfully)

  • python (== 3.8.13)
  • sympy (== 1.11rc1)
  • numpy (== 1.23.2)
  • wxPython (== 4.0.7)
  • PyOpenGL (== 3.1.6)

Setup

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

Getting Started

  • 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 and MZ 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 by Inertia matrix and Centrifugal, 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 run Dynamic 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$.

Licence

See LICENCE.

Contributors

See Contributors.

About

SYmbolic MOdeling of RObots software. This is an open-source version of SYMORO software written in Python.

Resources

License

Stars

Watchers

Forks

Languages

  • Python 99.9%
  • Shell 0.1%