Merge branch 'master' into 'dosc-programming'

# Conflicts:
#   sidebars.js
This commit is contained in:
Igor Brylyov 2021-10-07 14:42:17 +00:00
commit 94cbe96e9a
10 changed files with 178 additions and 94 deletions

32
docs/motivation.md Normal file
View file

@ -0,0 +1,32 @@
---
id: motivation
title: Мотивация
---
![Глянцевая робофабрика](Images/robofactory_art.jpg)
Идея создания роботов, которые воспроизводят сами себя, занимает умы человечества с середины 20 века. Джон фон Нейман - отец-основатель информатики, был одним из первых, кто озадачился этим вопросом по серьёзному. Тем не менее, за прошедшие десятилетия, тема так и не вышла за рамки академических кругов. Все известные широкой публике [проекты](https://doi.org/10.1146/annurev-control-071819-010010) собирающих самих себя машин не нашли своего применения ни в промышленности, ни в повседневной жизни.
Вполне возможно, что это происходит по той причине, что самовоспроизводство не рассматривается с практической точки зрения - как технология, способная привнести ощутимый вклад улучшение качества жизни людей и общества. Эксперименты исследовательских ВУЗов лишь подкрепляют эту точку зрения.
В тоже время, коммерческие компании также не готовы прибегать к технологиями самовоспроизводства. Робототехнические комплексы не проектируются для автономной эксплуатации, а чрезмерная автоматизация несёт дополнительные риски. Развитие коллаборативных технологий ещё дальше смещает внимание компаний от такой постановки задачи.
То есть с одной стороны мы видим исключительно академические эксперименты, лишённые какой-либо прикладной ценности. С другой стороны мы наблюдаем за тем, как ведущие мировые компании избегают полностью автоматизировать производство.
В рамках проекта ___Robossembler___ мы постараемся разрешить это противоречие и использовать технологии самовоспроизводства для достижения практической пользы. На наш взгляд технологии самовоспроизводства действительно важны - они способны, например, обеспечить зачастую критически важную масштабируемость производственной системы (резко нарастить производство какого-то жизненно-важного для общества ресурса - например, респираторов).
## Предпосылки
Современные производственные системы (заводы, фабрики) представляют собой сложные программно-аппаратные комплексы, состоящие из большого количества компонентов с разной степенью взаимозависимости, которые разрабатываются, изготавливаются и поставляются разными компаниями. Глубокое разделение труда с одной стороны повышает качество, но с другой - затрудняет возможности интеграции компонентов в полностью автоматизированные надсистемы.
В свою очередь, задача разработки автономных (_light's out_) или самовоспроизводящихся (_self-replication_) технических систем требует тесной интеграции данных жизненного цикла в рамках общего для всех его подсистем требования «безлюдности». Данное требование также налагает ряд существенных ограничений на дизайн всех компонентов системы и делает почти невозможным разработку и внедрение в рамках _отдельно взятой компании_. Даже наиболее автоматизированные отрасли промышленности (например, автомобильная) не могут уйти от ручного труда; в особенности на сборочных операциях.
Однако полностью автоматизированное производство обладает и рядом преимуществ, потому как позволяет достичь высокого синергетического эффекта за счёт отказа от
* человеко-машинных интерфейсов и требований к эстетичности (в том числе специальная маркировка);
* условий эксплуатации, адаптированных под человека (воздух, влажность, освещение, температура);
* соблюдения стандартов безопасности, взаимозаменяемости в рамках существующей номенклатуры компонентов, ремонтопригодности.
То есть разработка подобного рода систем требует пересмотра многих компонентов технических систем и принципов производственного процесса, который в настоящее время ориентирован под сборку, наладку и эксплуатацию человеком.
Однако то, что невозможно для отдельно взятой компании, может быть возможным для международного движения open source. Открытость процесса разработки и документации посодействует непрерывной интеграции данных жизненного цикла подсистем, разрабатываемых отдельными командами, что затруднительно в условиях закрытых инжиниринговых фирм.
Также, современный уровень вычислительных систем на текущем этапе их развития делает возможным создание цифровых двойников (_digital twin_) производств, поведение которых в рамках симуляции может быть приближено к реальным физическим объектам. В перспективе станет возможным не дожидаться опытного производства, чтобы проверить какую-то гипотезу, а ограничиться физическим и имитационным моделированием. Разработчики не будут скованы ограничениями существующей компонентной базы и обусловленной этим инерцией мышления. Допустимо придумать всё с нуля — с учётом требования полной автоматизированности.

View file

@ -1,57 +1,37 @@
---
title: О проекте Robossembler
title: Рамки проекта
slug: /
---
![Глянцевая робофабрика](Images/robofactory_art.jpg)
Идея создания роботов, которые воспроизводят сами себя, занимает умы человечества с середины 20 века. Джон фон Нейман - отец-основатель информатики, был одним из первых, кто озадачился этим вопросом по серьёзному. Тем не менее, за прошедшие десятилетия, тема так и не вышла за рамки академических кругов. Все известные широкой публике [проекты](https://doi.org/10.1146/annurev-control-071819-010010) собирающих самих себя машин не нашли своего применения ни в промышленности, ни в повседневной жизни.
Цель проекта - создание ___симуляции___ автономной производственной линии, где роботы-манипуляторы собирают свои копии, осуществляют их наладку и ввод в эксплуатацию, чем достигается частичное самовоспроизводство. Проектирование _изначально автономной_ производственной системы позволит использовать материалы, технологии и условия эксплуатации, недопустимые для классических промышленных систем.
Вполне возможно, что это происходит по той причине, что самовоспроизводство не рассматривается с практической точки зрения - как технология, способная привнести ощутимый вклад улучшение качества жизни людей и общества. Эксперименты исследовательских ВУЗов лишь подкрепляют эту точку зрения.
## Компоненты системы и их репозитории
В тоже время, коммерческие компании также не готовы прибегать к технологиями самовоспроизводства. Робототехнические комплексы не проектируются для автономной эксплуатации, а чрезмерная автоматизация несёт дополнительные риски. Развитие коллаборативных технологий ещё дальше смещает внимание компаний от такой постановки задачи.
### Робот-манипулятор с 6-ю степенями свободы
Роботы-манипуляторы Robossembler со сменными инструментами покрывают большой класс производственных задач. Они проектируются для автономной сборки и эксплуатации, поэтому к ним не предъявляются характерные для коллаборативных роботов требования безопасности, эстетичности и быстродействия.
То есть с одной стороны мы видим исключительно академические эксперименты, лишённые какой-либо прикладной ценности. С другой стороны мы наблюдаем за тем, как ведущие мировые компании избегают полностью автоматизировать производство.
В проекте разрабатываются два варианта исполнения манипулятора:
- [Манипулятор](https://gitlab.com/robosphere/roboarm) для изготовления с помощью литья в [прессформе](https://gitlab.com/robosphere/cnc/roboarm-link-mold). Звено данного манипулятора состоит из двух оригинальных [сервоприводов](https://gitlab.com/robosphere/servo) и производится методом заливки компаундом, перестановкой оснастки на позицию будущего звена и дальнейшей закладкой приводов и кабелей. Данное технологические решение позволяет избавиться от крепёжных, кабельных и ременных соединений, а также необходимости отдельно производить корпус. Материал компаунда подбирается таким образом, чтобы обеспечить оптимальный теплоотвод, дешевизну, удобную утилизацию и повторную переработку компонентов манипулятора. Типы компаунда могут варьироваться в зависимости от нагрузок на конкретные разновидности звеньев.
- [Манипулятор](https://gitlab.com/robosphere/roboarm-diy-version) для изготовления с помощью 3D-печати. Используются серийно изготавливаемые приводы GM6208 с оригинальным редуктором.
В рамках проекта ___Robossembler___ мы постараемся разрешить это противоречие и использовать технологии самовоспроизводства для достижения практической пользы. На наш взгляд технологии самовоспроизводства действительно важны - они способны, например, обеспечить зачастую критически важную масштабируемость производственной системы (резко нарастить производство какого-то жизненно-важного для общества ресурса - например, респираторов).
## Предпосылки
Современные производственные системы (заводы, фабрики) представляют собой сложные программно-аппаратные комплексы, состоящие из большого количества компонентов с разной степенью взаимозависимости, которые разрабатываются, изготавливаются и поставляются разными компаниями. Глубокое разделение труда с одной стороны повышает качество, но с другой - затрудняет возможности интеграции компонентов в полностью автоматизированные надсистемы.
В свою очередь, задача разработки автономных (_light's out_) или самовоспроизводящихся (_self-replication_) технических систем требует тесной интеграции данных жизненного цикла в рамках общего для всех его подсистем требования «безлюдности». Данное требование также налагает ряд существенных ограничений на дизайн всех компонентов системы и делает почти невозможным разработку и внедрение в рамках _отдельно взятой компании_. Даже наиболее автоматизированные отрасли промышленности (например, автомобильная) не могут уйти от ручного труда; в особенности на сборочных операциях.
Однако полностью автоматизированное производство обладает и рядом преимуществ, потому как позволяет достичь высокого синергетического эффекта за счёт отказа от
* человеко-машинных интерфейсов и требований к эстетичности (в том числе специальная маркировка);
* условий эксплуатации, адаптированных под человека (воздух, влажность, освещение, температура);
* соблюдения стандартов безопасности, взаимозаменяемости в рамках существующей номенклатуры компонентов, ремонтопригодности.
То есть разработка подобного рода систем требует пересмотра многих компонентов технических систем и принципов производственного процесса, который в настоящее время ориентирован под сборку, наладку и эксплуатацию человеком.
Однако то, что невозможно для отдельно взятой компании, может быть возможным для международного движения open source. Открытость процесса разработки и документации посодействует непрерывной интеграции данных жизненного цикла подсистем, разрабатываемых отдельными командами, что затруднительно в условиях закрытых инжиниринговых фирм.
Также, современный уровень вычислительных систем на текущем этапе их развития делает возможным создание цифровых двойников (_digital twin_) производств, поведение которых в рамках симуляции может быть приближено к реальным физическим объектам. В перспективе станет возможным не дожидаться опытного производства, чтобы проверить какую-то гипотезу, а ограничиться физическим и имитационным моделированием. Разработчики не будут скованы ограничениями существующей компонентной базы и обусловленной этим инерцией мышления. Допустимо придумать всё с нуля — с учётом требования полной автоматизированности.
## Рамки проекта
Мы начнём с конца, а именно с процесса сборки, с автоматизацией которого есть проблемы даже у самых технологичных производителей.
Мы создадим _цифровую модель_ производственной линии, где роботы-манипуляторы собирают свои копии и сразу же вводят их в работу, чем и достигается частичное самовоспроизводство. Манипуляторы покрывают довольно большой класс производственных задач при наличии разнообразного сменного инструмента, их сборка до сих пор слабо автоматизирована даже у ведущих производителей. Мы покажем каким образом требование "безлюдности" позволит это осуществить.
Наш подход отличается от подходов современных производителей манипуляторов тем, что мы будем создавать _изначально автономную систему_, где не предполагается присутствие человека. Мы будем использовать материалы, технологии и условия эксплуатации, которые могут быть недопустимы для неавтономных промышленных систем. После ввода в эксплуатацию производственная линия будет самостоятельно собирать изделия, осуществлять их наладку и ввод в эксплуатацию. Таким образом, при наличии достаточного количества поступающих на вход линии комплектующих, линия будет непрерывно наращивать свой производственный потенциал.
Звенья манипулятора будут обладать следующими свойствами:
1. Конструкция обеспечивает максимальное использование пространства вокруг робота, что хорошо для автономных систем, оперирующих в небольшом объёме, и для совместной сборки несколькими роботами;
2. Кабельные и ременные соединения сложны в монтаже, поэтому конструкция манипулятора не будет их предусматривать; вместо этого мы будем стремиться к созданию кабелей-стержней, вмонтированных в роторы моторов;
3. Не учитываются требования безопасности и эстетичности (которые соблюдаются для коллаборативных роботов).
Роботы-манипуляторы будут оснащаться рабочими столами - местами, где будет осуществляться сборка. Столы будут обеспечивать:
1. Легкое подключение к нему оснований манипуляторов с помощью специальных надёжных электрических разъемов, которые предстоит разработать;
### Рабочий стол
Роботы-манипуляторы оснащаются [рабочими столами](https://gitlab.com/robosphere/cnc/roboarm-workspace) - местами, где будет осуществляться сборка и другие технологические операции. Рабочий стол имеет форму пчелиной соты и содержит в себе вычислительный узел для управления рабочим местом.
Столы будут обеспечивать:
1. Легкое подключение к ним манипуляторов с помощью специальных надёжных электрических разъемов;
2. Электропитание и управление - рабочий стол будет включать в себя систему управления для всех подключаемых к нему манипуляторов;
3. Столы будут подключаться друг к другу, образуя связанную локальной сетью большую производственную линию, где будет возможна организация конвейеров.
3. Подключение к себе других рабочих столов для создания связанной локальной сети и производственной линии.
Простота реализации сборки будет достигнута благодаря формовке корпусов с помощью компаунда. Мы избавимся от крепежа и необходимости производить отдельно корпус. Материал компаунда можно подобрать таким образом, чтобы обеспечить оптимальный теплоотвод, дешевизну (без оглядки на безопасность для человека), удобную утилизацию и повторную переработку компонентов манипулятора. Например, вспененный полимер на основе кремнезёма(не нефтепродукт). Его легко растворять, склеивать - неисправные манипуляторы будут погружаться в растворитель и разбираться на комплектующие без ущерба для них самих.
## Совершенствование методов разработки
### Приспособления манипулятора
Все приспособления монтируются к манипулятору через [стыковочный интерфейс](https://gitlab.com/robosphere/arm-tools/connection-tool). Для смены и хранения двух и более приспособлений используется [Библиотека приспособлений](https://gitlab.com/robosphere/arm-tools/tools-library), к которой в дальнейшем будут присоединяться узлы подачи материалов.
Разработка самовоспроизводящейся системы, в силу её сложности, потребует вовлечения большого количества людей, новых инженерных решений и интенсивного процесса управления данными жизненного цикла(PLM). Указанная выше модель частично самовоспроизводящейся фабрики может послужить полигоном для отработки открытых децентрализованных методов проектирования и в перспективе обеспечить достаточное для реализации грандиозных проектов масштабирование. Разработка отдельных узлов может вестись отдельными независимыми командами, а интеграция данных жизненного цикла разработки этих узлов может осуществляться через публичную распределённую базу данных. Для взаимодействия разработчиков и существующих в реальности капиталоёмких кибер-физических систем с целью изготовления прототипов или проведения испытаний может использоваться платформа Robonomics, в которой будут публиковаться заказы на изготовление/испытание деталей/сборок/изделий и с помощью сети маяков подбираться наиболее выгодные предложения по воплощению. Это позволит опробовать механизм коммуникации между отдельными парачейнами в рамках экосистемы Polkadot, где парачейн Robonomics выступит шлюзом между идеальным миром моделей разработчиков и реальным миром кибер-физических систем. Постепенно взаимодействие этих миров поспособствует выстроить оптимальную траекторию от имеющихся возможностей к идеальному желаемому результату.
Полный перечень приспособлений
- [Механический захват](https://gitlab.com/robosphere/arm-tools/grip-tool)
- [3D-печать](https://gitlab.com/robosphere/arm-tools/3d-print-tool)
- [Подача компаунда](https://gitlab.com/robosphere/arm-tools/extrude-melt-tool)
- [Пайка](https://gitlab.com/robosphere/arm-tools/soldering-tool) с [картриджем](https://gitlab.com/robosphere/arm-tools/solder-cartridge)
- [Сварка](https://gitlab.com/robosphere/arm-tools/welding-tool)
- [Фрезерная и пост-обработка](https://gitlab.com/robosphere/arm-tools/post-processing-tool)
- [Сканирование и съёмка](https://gitlab.com/robosphere/arm-tools/scan-tool)
Рабочий стол и подключённые к нему манипуляторы с приспособлениями формируют Автоматизированное рабочее место (АРМ), которое может быть объединено с другими рабочими местами, формируя сложные производственные комплексы. Конфигурация конкретного АРМ формируется исходя из требований к производственному процессу.

View file

@ -5,60 +5,38 @@ title: 'Технологическая инструкция по сборке'
## Компоненты системы
### Автоматическое рабочее место (АРМ)
Главная рабочая единица: рабочий стол + 2 и более роботов манипуляторов, может иметь адаптер станков. Может быть объединена с другими комплексами рабочего места.
### Адаптер станков
Выносной интерфейс, соединяющий АРМ с ЧПУ станками, имеет так же адаптер для робота манипулятора для обслуживания ЧПУ станка.
### Робот манипулятор 5-7 DoF (в базовом варианте 7)
Самостоятельная рабочая единица, может работать как над персональным заданием, так и в составе АРМ, в том числе посредством Адаптера станков при ЧПУ станке.
### Робот манипулятор
Сейчас существуют два варианта исполнения манипулятора:
- [Манипулятор для изготовления с помощью литья в прессформе](https://gitlab.com/robosphere/roboarm). 6DoF. Звено манипулятора состоит из двух оригинальных [сервоприводов](https://gitlab.com/robosphere/servo); производятся методом заливки корпуса, его застыванием, перестановкой оснастки на позицию будущего звена и дальнейшей закладкой приводов и кабелей. Главный конструктор [StasjokSS](https://gitlab.com/StasjokSS).
- [Манипулятор для изготовления с помощью 3D-печати](https://gitlab.com/robosphere/roboarm-diy-version). 6DoF. Главный конструктор [AlexxTop](https://gitlab.com/AlexxTop).
### Рабочий стол
Ключевой элемент АРМ и его основная управляющая единица, ЭВМ, имеет форму пчелиной соты и 6 пилонов по граням, сложный в полноцикловом режиме воспроизводства
### Сверхманевренное шасси
Могут быть различных конструкций, и применяться как в составе тележки, так индивидуально для синхронного перемещения 1, или нескольких АРМ в сборе.
### Управляющие программы (УП)
### Станки с числовым программным управлением
### Аккумуляторная батарея
Ключевой элемент АРМ и его основная управляющая единица. Содержит в себе вычислительный узел. Имеет форму пчелиной соты и 6 пилонов по граням.
- [Рабочий стол для манипуляторов и транспортных модулей](https://gitlab.com/robosphere/cnc/roboarm-workspace).
### Приспособления манипулятора
Все приспособления монтируются к манипулятору через [стыковочный интерфейс](https://gitlab.com/robosphere/arm-tools/connection-tool). Модуль стыковки имеет выводы для управления инструментом по CAN/RS485 шине и выводы питания инструмента на торце. В середине торца, по оси мотора имеется подвижный (втягиваемый) штырь для фиксации инструментов на Роботе-манипуляторе и специальный рельеф для центровки инструмента при фиксации.
- [Модуль механического захвата](https://gitlab.com/robosphere/arm-tools/grip-tool), 2 прорезиненных пальца, с полукруглым охватом посередине и определёнными выступами - замками на концах.
- Захват Механический должен расходиться в стороны не менее чем на 80мм
- Усилие смыкания не должно быть меньше 2Кгс
- Форма губ должна содержать:
1. треугольную продольную канавку для удержания кабелей толщиной более 1,2мм
2. низких(менее1мм) конических зубца со стальным наконечником и цилиндрическим основанием для надёжного удерживания приводов за спец. места и арматурных (строповочных) петель для удержания оснасток и оснований
3. Основная плоскость захвата механического должна быть покрыта фрикционным тонким покрытием, допускающим упругую деформацию не более 0,5мм
Для хранения двух и более приспособлений, а также их смены, используется [Библиотека приспособлений](https://gitlab.com/robosphere/arm-tools/tools-library), к которой в дальнейшем будут присоединяться узлы подачи материала.
- [Модуль печатающий](https://gitlab.com/robosphere/arm-tools/3d-print-tool), печатающая головка 3D принтера, адаптированная для применения Робот-манипулятор.
- Печатающий модуль состоит из быстросменного сопла, нагреваемой трубки, подающего модуля и сменного картриджа с пластиковой нитью определённой длины (длина рассчитана под конкретный объём печати)
- Подача пластика должна быть регулируемой, а подающий модуль компактным, приводы должны быть либо BLDC(рекомендовано), либо шаговые моторы.
- Основной пластик АБС, PVA, их электропроводимые вариации
Полный перечень репозиториев с приспособлениями манипулятора
- [Механический захват](https://gitlab.com/robosphere/arm-tools/grip-tool)
- [3D-печать](https://gitlab.com/robosphere/arm-tools/3d-print-tool)
- [Подача компаунда](https://gitlab.com/robosphere/arm-tools/extrude-melt-tool)
- [Пайка](https://gitlab.com/robosphere/arm-tools/soldering-tool) с [картриджем](https://gitlab.com/robosphere/arm-tools/solder-cartridge)
- [Сварка](https://gitlab.com/robosphere/arm-tools/welding-tool)
- [Фрезерная и пост-обработка](https://gitlab.com/robosphere/arm-tools/post-processing-tool)
- [Сканирование и съёмка](https://gitlab.com/robosphere/arm-tools/scan-tool)
- [Модуль подачи компаунда](https://gitlab.com/robosphere/arm-tools/). Форсунка с пассивным смесителем компонентов компаунда, переключаемое на полимерный клей. Применяется для заливки корпусов.
- Модуль содержащий 2 реагента и вспениватель, смешиваемых в сопле, которое проворотом переключается на пропитывающий полимер
- 1 конусообразное сопло с приводом, длиной 1 см
- 4 трубки, ведущие к перезаправляемым баллонам и насосу.
- [Модуль паяльный](https://gitlab.com/robosphere/arm-tools/soldering-tool) с щупом(паяльник с возможностью проводить электротестирование; Тонкий, длинный, с керамическим нагревателем и металлической двуслойной оболочкой для дозированного смачивания жала паяльника припоем; рабочая температура до 400C)
### Автоматизированное рабочее место (АРМ)
Рабочий стол и манипуляторы с приспособлениями формируют Автоматизированное рабочее место (АРМ), которое может быть объединено с другими рабочими местами, формируя сложные производственные комплексы.
- [Модуль сварки](https://gitlab.com/robosphere/arm-tools/welding-tool), головка сварочного автомата подающая и фиксирующая проволоку. Проволока подаётся от самого автомата, который является трудноперемещаемой оснасткой.
- Податчик проволоки D1-2мм
- Встроенный модуль отрезания проволоки
- Узкий и острый: рабочий наконечник и сопло
- Быстросменный наконечник
- Возможность варьирования режима работы от пайки до сварки и электроэрозии
- [Модуль стыковки](https://gitlab.com/robosphere/arm-tools/connection-tool), последнее звено при производстве Робота-манипулятор. Является механизмом, вмещающим привод поворота по своей оси небольшой мощности с редуктором и контроллером, и привод втягивания крепёжного штыря. модуль стыковки имеет выводы для управления инструментом по CAN шине и выводы питания инструмента на торце. В середине торца, по оси мотора имеется подвижный (втягиваемый) штырь для фиксации инструментов на Роботе-манипуляторе и специальный рельеф для центровки инструмента при фиксации.
### Звено
- сборка 2х [приводов](https://gitlab.com/robosphere/servo) в составе корпуса, есть 2 основных типа звеньев, которые производятся в порядке очереди, методом заливки корпуса, его застыванием, и перестановкой оснастки на позицию будущего звена и дальнейшей закладкой приводов и кабелей, и заливкой, шаг за шагом.
### Кабели
Объёмные или плоскостные структуры из одножильной проволоки. Проволока выбирается сварочной легированной и омеднённой сталью, поставляется рулонами. Также это может быть сложная 3D деталь — слабопроводящий пластик напечатанный с растворимой поддержкой и нерастворимым каркасом. Потом гальванически обращенный медью, никелем, оловом до нужной толщины. Лишний пластик можно отжечь, но на малых токах медь и так осаждается в неплохой проводник. В целом, технология гальванпластики очень хорошо совместима с 3д печатью. Так осаждают и железо (я сам немножко пробовал), оно получается твердым, царапает обычное железо. Это, конечно, не из-за углерода, которого там нет, а из-за водорода. Обычно это считается недостатком и процесс ведут либо на малом токе, либо потом отжигают продукт примерно при 400С. Тогда водород уходит и железо получается столь мягким,что в I мировую войну им заменяли дефицитную медь для поясков снарядов.
Корпус - отвердевший компаунд, связавший собой исполнительные механизмы, приводы, основания. Несёт на себе защитные и конструктивные функции. Может иметь внешнюю оболочку напечатанной из полимеров, или не иметь её и быть просто пористым прочным телом, для повышения прочности пористое тело пропитывается сверхтекучими полимерами.
Корпус и кабели входят в состав звена.
Корпус - отвердевший компаунд, связавший собой исполнительные механизмы, приводы, основания. Несёт на себе защитные и конструктивные функции. Может иметь внешнюю оболочку напечатанной из полимеров, или не иметь её и быть просто пористым прочным телом, для повышения прочности пористое тело пропитывается сверхтекучими полимерами. Корпус и кабели входят в состав звена.
### Компаунд
@ -220,7 +198,7 @@ title: 'Технологическая инструкция по сборке'
Применяются: 1 Робот-манипулятор + 1 модуль печатающий, расходный материал: АБС, обычная 3Dпечать, компаундооталкивающий состав.
Процесс: 3D печать 2х частей формы по УП. Количество деталей формы может быть увеличено до 3х основных формообразующих + 2 направляющих + 2 замка, чтоб роботам можно было проще(и качественнее) паять кабельные трассы. Затем робот при помощи МЗ и кисточки покрывает формообразующие поверхности вязким и клейким на первых порах составом(аналог - герметик)
Процесс: 3D печать 2х частей формы по управляющей программе. Количество деталей формы может быть увеличено до 3х основных формообразующих + 2 направляющих + 2 замка, чтоб роботам можно было проще(и качественнее) паять кабельные трассы. Затем робот при помощи МЗ и кисточки покрывает формообразующие поверхности вязким и клейким на первых порах составом(аналог - герметик)
#### 11. Подготовка оснастки литья корпуса звена

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View file

@ -0,0 +1,88 @@
---
id: plansys2
title: 'PlanSys2'
---
[PlanSys2](https://github.com/IntelligentRoboticsLabs/ros2_planning_system) - это система планирования для ROS2 от создателей ROSPlan (система планирования для ROS1). PlanSys2 не ограничивается планированием в рамках одного устройства, а поддерживает распределение задач между _многими взаимодействующими агентами_ в реальном времени. Исполнение планов реализовано на базе еревьев поведения_.
Планы и задачи описываются на Lisp-подобном языке PDDL (Planning Domain Definition Language). Согласно спецификации PDDL содержит следующие базовые сущности планируемой задачи:
* __Объекты__ (Objects)
* __Свойства__ (Predicates) объектов (True/False).
* __Начальное состояние__ (Initial state)
* __Спецификация целей__ (Goal specification): то, что мы хотим, чтобы было правдой
* __Действия/Операторы__ (Actions/Operators): способы изменения состояния мира.
PlanSys2 поддерживает PDDL версии 2.1, тогда как последняя версия PDDL - 3.1.
## Архитектура фреймворка
Архитектура PlanSys2 модульная и каждый отдельный компонент может быть заменён.
![](img/plansys2_architecture.png)
Описание компонентов
* __Planner Node__ - основной узел. Содержит алгоритм планирования и использует разные т.н. plan solvers - POPF, TFD. При генерации планов Planner Node обращается к узлам Domain Expert и Problem Expert, содержащими описания соответствующих предметным областям в формате PDDL.
* __Domain Expert__ считывает PDDL-файлы и размещает их во внутренней памяти. Этот компонент содержит общее описание предметной области.
* __Problem Expert__ содержит описание проблемы(задачи), которую нужно решить, включая конкретные экземпляры классов, предикаты, функции и цели, которые валидируются Domain Expert. то есть Problem Expert содержит динамическое знание приложения. Этот узел создаёт описания задач для Planner Node в формате PDDL.
* __Executor Node__ запрашивает у Planner Node план и, если тот существует, то выполняет его. План превращается в ерево поведения (Behaviour Tree)_. Для исполнения действий используется протокол аукциона, который выбирает наиболее подходящий узел, реализующий выполняемое действие.
* __Applications__ - приложения роботов, использующие PlanSys2. Содержат узлы, реализующие действия(__Actions__), и модель PDDL, которая их реализует. Любое приложение также включает в себя узел Controller Node, который
обращается к знаниям Problem Expert для консультаций и установления экземпляров, предикатов и целей. Этот контроллер также запрашивает Executor Node для выполнения или отмены планов.
* __Terminal__ - среда исполнения команд для управления и мониторинга PlanSys2.
* Визуализирует структуру сущностей PDDL и информацию Problem Expert.
* Показывает подробности о свойствах и действиях в терминах PDDL.
* Устанавливает и удаляет экземпляры, свойства, функции и цели.
* Визуализирует, исполняет и отслеживает планы.
* Проверяет статус узлов, исполняющих действия.
## Пример сборки автомобиля тремя роботами
Сначала формируется план в PDDL-формате:
```
0 (move rb1 assembly_zone body_car_zone)
0 (move rb2 assembly_zone steerwheel_zone)
0 (move rb3 assembly_zone wheels_zone)
5.001 (transport rb1 bc_1 body_car_zone assembly_zone)
5.001 (transport rb2 stwhl_1 steerwheel_zone assembly_zone)
5.001 (transport rb3 whl_1 wheels_zone assembly_zone)
10.002 (assemble rb1 assembly_zone whl_1 bc_1 stwhl_1 car_1)
10.002 (move rb2 assembly_zone body_car_zone)
10.002 (move rb3 assembly_zone steerwheel_zone)
15.003 (move rb1 assembly_zone wheels_zone)
15.003 (transport rb2 bc_2 body_car_zone assembly_zone)
15.003 (transport rb3 stwhl_2 steerwheel_zone assembly_zone)
20.004 (transport rb1 whl_2 wheels_zone assembly_zone)
20.004 (move rb3 assembly_zone body_car_zone)
25.005 (assemble rb2 assembly_zone whl_2 bc_2 stwhl_2 car_2)
25.005 (move rb1 assembly_zone steerwheel_zone)
25.005 (transport rb3 bc_3 body_car_zone assembly_zone)
30.006 (move rb2 assembly_zone wheels_zone)
30.006 (transport rb1 stwhl_3 steerwheel_zone assembly_zone)
35.007 (transport rb2 whl_3 wheels_zone assembly_zone)
40.008 (assemble rb1 assembly_zone whl_3 bc_3 stwhl_3 car_3)
```
Данный план преобразуется в Дерево поведения, где заданы узлы для параллельного и последовательного выполнения задач:
![](img/behaviour_tree_from_pddl.png)
Структура отдельного действия:
![](img/action.png)
При определении порядка исполнения плана используется т.н. _Аукцион действий (action auction)_. Когда наступает очередь для выполнения действия (например, из схемы выше), формируется новая запись _ActionPerformerClient_ в таблице _ActionMap_.
![](img/action_execution_flow.png)
Протокол работает так:
* Когда ActionPerformerClient запись создана, посылается сообщение-запрос с описанием действия и его параметров
* Ноды, находящиеся в состоянии ожидания и способные выполнить этот запрос, отвечают, подтверждая или отвергая данный запрос
* После подтверждения ноды приступают к исполнению
* Периодически ноды отправляют сообщения с обратной связью о действиях, которые они исполняют.
Пример:
![](img/action_execution_flow_example.png)
## Симуляция и полевые испытания
PlanSys2 был проверен сначала в симуляции, а потом и на реальной системе, состоящей из 3-ёх роботов. Исходные коды проекта опубликованы на [Github](https://github.com/IntelligentRoboticsLabs/plansys2_cooking_experiment).

View file

@ -1,14 +1,13 @@
module.exports = {
module.exports = {
docs: [
{
type: 'category',
label: 'Общая информация',
collapsed: false,
items: [
'motivation',
'robossembler-overview',
'plan',
'replication',
'mining'
'plan'
],
},
{
@ -31,9 +30,14 @@
'technologies/wood',
'technologies/machine-learning-in-robotics',
'technologies/gripper-tools-research',
<<<<<<< sidebars.js
'technologies/o2ac-repo-review',
'technologies/moveit2.md',
'technologies/dds_and_ros2.md'
'technologies/dds_and_ros2.md',
'technologies/plansys2'
=======
'technologies/plansys2'
>>>>>>> sidebars.js
],
},
{
@ -58,6 +62,8 @@
label: 'Разное',
collapsed: false,
items: [
'replication',
'mining',
'glossary',
'analogy',
],