Skip to content

Commit

Permalink
try another
Browse files Browse the repository at this point in the history
  • Loading branch information
Huowl committed Oct 18, 2023
1 parent 76969d7 commit 0c708cd
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 11 deletions.
110 changes: 110 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<p align="center">
<img src="/docs/images/logo_rostok_long.png" width="600">
</p>

[![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.

<p align="center">
<img src="/docs/images/brick_anim.gif" width="700">
</p>

## 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 <https://sourceforge.net/projects/vcxsrv/>

## 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](<https://sai.itmo.ru/>)
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 [email protected] for scientific aspects of the project
* Kirill Zharkov [email protected] for technical questions of the project
* Sergey Kolyubin [email protected] 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}
}
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@

html_theme = 'alabaster'
html_static_path = ['_static']
html_logo = 'images/logo_rostok.jpg'
html_logo = '../images/logo_rostok.jpg'
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
=======
Expand Down
4 changes: 2 additions & 2 deletions docs/source/project_description.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
7 changes: 0 additions & 7 deletions docs/source/readme.rst

This file was deleted.

0 comments on commit 0c708cd

Please sign in to comment.