From 0c708cd51fb8f3a3439370707cb260cbede03ee7 Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Wed, 18 Oct 2023 15:12:34 +0300 Subject: [PATCH] try another --- docs/README.md | 110 ++++++++++++++++++++++++++++ docs/source/conf.py | 2 +- docs/source/index.rst | 2 +- docs/source/project_description.rst | 4 +- docs/source/readme.rst | 7 -- 5 files changed, 114 insertions(+), 11 deletions(-) create mode 100644 docs/README.md delete mode 100644 docs/source/readme.rst diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..10df7ab8 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,110 @@ +

+ +

+ +[![SAI](https://github.com/ITMO-NSS-team/open-source-ops/blob/master/badges/SAI_badge_flat.svg)](https://sai.itmo.ru/) +[![ITMO](https://github.com/ITMO-NSS-team/open-source-ops/blob/master/badges/ITMO_badge_flat_rus.svg)](https://en.itmo.ru/en/) + +[![Documentation Status](https://readthedocs.org/projects/rostok/badge/?version=latest)](https://rostok.readthedocs.io/en/latest/?badge=latest) +[![license](https://img.shields.io/github/license/aimclub/rostok)](https://github.com/aimclub/rostok/blob/master/LICENSE) +[![Eng](https://img.shields.io/badge/lang-ru-yellow.svg)](/README.md) +[![Mirror](https://camo.githubusercontent.com/9bd7b8c5b418f1364e72110a83629772729b29e8f3393b6c86bff237a6b784f6/68747470733a2f2f62616467656e2e6e65742f62616467652f6769746c61622f6d6972726f722f6f72616e67653f69636f6e3d6769746c6162)](https://gitlab.actcognitive.org/itmo-sai-code/rostok/) + +# Rostok + +Rostok is an open source Python framework for generative design of linkage mechanisms for robotic purposes. It provides a framework to describe mechanisms as a graph, set an environment, perform simulation of generated mechanisms, get a reward as a quantitative value of the generated design, and search for the best possible design. + +A user can utilize the entire framework as a pipeline to generate a set of suboptimal designs, or utilize the modules and submodules as independent parts. The framework allows to implement custom generative rules, modify search and optimization algorithms. + +Currently the framework allows to perform co-design of open chain linkage mechanisms. Co-design consists in simultaneously searching for the mechanical structure and the trajectories of the robot to get the best possible performance. + +

+ +

+ +## Project desription + +There are four main blocks: + +* Graph Grammar -- is needed for creation, modification, and extraction of the data from the graphs that contain the entire information of generated mechanisms +* Virtual Experiment -- is the simulation needed for quantitative analysis of the behavior and performance of generated mechanisms specified by grammar graphs +* Trajectory Optimization -- finds suboptimal joint trajectories needed to efficiently perform the desired motion +* Search Algorithm -- looks for optimal graph to represent mechanism topology + +![project_general](/docs/images/general_scheme.jpg) +![project_algorithm](/docs/images/Algorithm_shceme.jpg) + +More detailed description of the [algorithms and methods](https://rostok.readthedocs.io/en/latest/advanced_usage/algorithm.html). + +## Prerequisites + +* Anaconda3 +* Usage of the Docker reqires installation of Х-server for Windows + +## Installation in development mode + +To modify the modules of the Rostok framework a user should install it in development mode: + +* Create the environment using `conda env create -f environment.yml` +* Activate the environment `rostok` +* Install the package in development mode `pip3 install -e .` + +### Known issues + +At some PC's one can see a problem with the tcl module `version conflict for package "Tcl": have 8.6.12, need exactly 8.6.10`, try to install tk 8.6.10 using `conda install tk=8.6.10` + +After the installation of the package one can get an error `Original error was: DLL load failed while importing _multiarray_umath: The specified module could not be found`, try to reinstall numpy in the rostok environment + +## Documentation + +The description of the project and tutorials are available [at project website](https://rostok.readthedocs.io/en/latest/?badge=latest). + +## Examples + +An example of configuration and usage of the generative pipeline is in `rostok\app` directory. +Examples of usage of independent modules is in `rostok\examples` directory. + +## Acknowledgments + +### Affiliation + +The framework was developed in [ITMO University](https://en.itmo.ru/). + +### Supported by + +The study is supported by the [Research Center Strong Artificial Intelligence in Industry]() +of [ITMO University](https://en.itmo.ru/) as part of the plan of the center's program: Development and testing of an experimental prototype of a library of strong AI algorithms in terms of generative and interactive design of planar mechanisms of anthropomorphic gripping devices and robotic hands + +### Developers + +* Ivan Borisov - researcher +* Kirill Zharkov - team leader +* Yefim Osipov - developer +* Dmitriy Ivolga - developer +* Kirill Nasonov - developer +* Mikhail Chaikovskii - developer +* Sergey Kolyubin - chief scientist + + +## Contacts + +* Ivan Borisov borisovii@itmo.ru for scientific aspects of the project +* Kirill Zharkov kdzharkov@itmo.ru for technical questions of the project +* Sergey Kolyubin s.kolyubin@itmo.ru for collaboration aspects + +## Citation + +GOST: + +* I. I. Borisov, E. E. Khomutov, D. V. Ivolga, N. A. Molchanov, I. A. Maksimov and S. A. Kolyubin, "Reconfigurable Underactuated Adaptive Gripper Designed by Morphological Computation," 2022 International Conference on Robotics and Automation (ICRA), 2022, pp. 1130-1136, doi: 10.1109/ICRA46639.2022.9811738. + +Bibtex: + +* @inproceedings{borisov2022reconfigurable, + title={Reconfigurable underactuated adaptive gripper designed by morphological computation}, + author={Borisov, Ivan I and Khomutov, Evgenii E and Ivolga, Dmitriy V and Molchanov, Nikita A and Maksimov, Ivan A and Kolyubin, Sergey A}, + booktitle={2022 International Conference on Robotics and Automation (ICRA)}, + pages={1130--1136}, + year={2022}, + organization={IEEE} +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 30161e81..37c3e912 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -51,4 +51,4 @@ html_theme = 'alabaster' html_static_path = ['_static'] -html_logo = 'images/logo_rostok.jpg' \ No newline at end of file +html_logo = '../images/logo_rostok.jpg' \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index ede6a318..e10b4c50 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -12,7 +12,7 @@ Rostok is an open source library which provides the framework for generative co- The main feature of our framework is the ability to search for only physically possible designs. It is achieved by using the graph representation of the mechanisms and the constructing rules that gradually transform graph from base state to the final state staying within predetermined boundaries. Our library is a framework where user can specify building blocks and rules of graph generation for solving the co-design problems. For now, we implemented search for grasping mechanism with open kinematic chain, but we plan to apply the idea of generative design to other problems in future. -.. image:: images/brick_anim.* +.. image:: ../images/brick_anim.* Content ======= diff --git a/docs/source/project_description.rst b/docs/source/project_description.rst index 091f7348..688fe34d 100644 --- a/docs/source/project_description.rst +++ b/docs/source/project_description.rst @@ -18,7 +18,7 @@ There are four main blocks: * Trajectory Optimization -- finds suboptimal joint trajectories needed to efficiently perform the desired motion * Search Algorithm -- looks for optimal graph to represent mechanism topology -.. image:: images/Algorithm_shceme.jpg -.. image:: images/general_scheme.jpg +.. image:: ../images/Algorithm_shceme.jpg +.. image:: ../images/general_scheme.jpg More detailed description of the :ref:`algorithm`. diff --git a/docs/source/readme.rst b/docs/source/readme.rst deleted file mode 100644 index 0a4a5d1f..00000000 --- a/docs/source/readme.rst +++ /dev/null @@ -1,7 +0,0 @@ -======= -Read Me -======= - - -.. mdinclude:: ../README_en.md - :literal: \ No newline at end of file