немного подкорректировал обзор и добавил описание файлов БД

This commit is contained in:
Ilya Uraev 2021-10-04 20:33:57 +04:00
parent 914e4b8c29
commit 91efd80903

View file

@ -34,7 +34,7 @@ title: 'Команда o2ac есть чему поучиться'
Загрузка данных для сборки производится за счёт [Python скрипта](https://github.com/o2ac/o2ac-ur/blob/main/catkin_ws/src/o2ac_assembly_database/src/o2ac_assembly_database/parts_reader.py) `parts_reader.py` который загружает объекты в сцену как объекты с коллизией из исходных `.yaml` файлов в папке `o2ac_assembly_database/config/name_of_config/`. Также в данной базе данных присуствует информация о позиционировании захватного устройства, при захвате детали. Все эти данные загружаются непосредственно на сервер ROS откуда они уже забираются определённой нодой. Такая архитектура свойственна для ROS1, для ROS2 подход координально отличается, потому что параметры загружаются в ноду непосредственно при её запуске.
Если предыдущий скрипт брал геометрию каждой детали и публиковал их в сцену MoveIt, то следующий [скрипт](https://github.com/o2ac/o2ac-ur/blob/main/catkin_ws/src/o2ac_assembly_database/src/o2ac_assembly_database/assembly_reader.py) `Assembly_reader.py` предназначен для обработки древовидной сборки и публикацию данной сборки в TF формате. То есть прямым образом заносит информацию на сервер какая деталь куда должна устанавливаться. Отдельно интересует данный фрагмент кода:
Если предыдущий скрипт брал геометрию каждой детали и публиковал их в сцену MoveIt, то следующий [скрипт](https://github.com/o2ac/o2ac-ur/blob/main/catkin_ws/src/o2ac_assembly_database/src/o2ac_assembly_database/assembly_reader.py) `Assembly_reader.py` делает всё тоже самое, но также ведёт обработку древовидной сборки и публикацию данной сборки в TF формате. То есть прямым образом заносит информацию на сервер какая деталь куда должна устанавливаться. Отдельно интересует данный фрагмент кода:
```python
def get_frame_mating(self, base_object, child_object):
@ -89,6 +89,16 @@ title: 'Команда o2ac есть чему поучиться'
То есть после загрузки данных о деталях как последовательность сборки, формирутеся древо преобразований TF, в котором содержится информация о том что где должно стоять. Также есть интересная [функция](https://github.com/o2ac/o2ac-ur/blob/main/catkin_ws/src/o2ac_assembly_database/src/o2ac_assembly_database/assembly_reader.py#L244-L290), которая непосредственно отвечает за добавление одной последовательности в другую
Следующий скрипт `visualise_metadata.py` предназначен лишь для визуализации объектов в сцене.
Следующий скрипт `visualise_metadata.py` предназначен лишь для отображения позиция захвата деталей в сцене.
Также в пакете присуствуют файлы для описания последовательности сборки:
* `name_of_parts.yaml` - содержит описание для подфреймов и захватных поз для деталей по именам. Все они загружаются на сервер, где к ним можно получить доступ через `/'assembly_name'/'object_name'/'grasp_name'`. Либо получить все фреймы для захвата детали через `'assembly_name'/'object_name'`
* `frame_to_mate.csv` - содержит описание стыковки деталей в сборке. Сопряжение определяется между подфреймами двух деталей.
* `parts_list.yaml` - содержит список деталей в сборке `id`,`name` и `cad` поле
### o2ac_dynamixel
В рамках проекта Робосборщик, данный пакет не представляет интереса из-за его специфичности. В общем этот пакет является драйвером для двигателя Dynamixel.
### o2ac_examples