PlanSys2 & PDDL
Для описания задач (task planning) в фреймворке Робосборщик используется язык PDDL и основанная на нём система планирования и управления задачами Plansys2.
Planning Domain Definition Language (PDDL)
PDDL (Planning Domain Definition Language) - Lisp-подобный язык для логического планирования. PlanSys2 поддерживает PDDL версии 2.1, текущая версия PDDL - 3.1.
Описание технологического процесса для автоматического планирования на языке PDDL состоит из двух частей:
- Описание предметной области - Domain (какие в принципе существуют типы объектов, условий, функций и действий)
- Описание конкретной задачи - Problem (какие объекты и какие стартовые условия представлены в конкретном техпроцессе - т.е. что у нас есть вообще в сцене/установке/производстве)
PDDL Domain
Согласно спецификации PDDL Domain содержит следующие базовые сущности планируемой задачи:
Объекты (Objects)
Какие типы/подтипы объекты фигурируют в технологическом процессе. Примеры
- Движитель (Подтипы - Робот-манипулятор, поворотный стол, конвеер)
- Приспособление (Подтипы - Захват, Пинцет и т.д.)
- Пробирка (Подтипы - Большая, маленькая и т.д.)
- Посадочный материал (Подтипы - Корешок, листок, черенок)
- Навык робота, программа (Подтипы - Захват, разрез, распознавание)
Условия (Predicates)
Типы условий, при которых начинаются те или иные действия. Это вопросы, подразумевающие ответ Да или Нет.
Примеры:
- Посадочный материал в пробирке?
- Робот свободен для задачи?
- Объект распознан?
- Посадочный материал поврежён?
Функции (Functions)
Функции похожи на условия - это тоже вопросы. Разница в том, что это вопросы, подразумевающие ответ в виде числа.
Примеры:
- Какой заряд у аккумуляторной батареи?
- Какая масса у посадочного материала X?