3.9.3 Построение дерева поведения
Построение дерева поведения может быть выполнено либо сверху вниз, либо снизу вверх, либо даже в некоторой комбинации этих двух элементов. Часто бывает проще начать с корневого узла и двигаться вниз, начиная с более абстрактного сложного поведения, а затем добавляя более конкретные условия и задачи действий.
Для примера патрульного бота корневой узел будет иметь два составных дочерних поведения: «СТОЯТЬ СПОКОЙНО» и «ПАТРУЛИРОВАТЬ». Используя маркированный список, мы можем представить наше дерево так:
ПОВЕДЕНИЕ (корневой)
СТОЯТЬ СПОКОЙНО
ПАТРУЛИРОВАТЬ
Метка ПОВЕДЕНИЕ использована для корневого узла.
Обратите внимание, что приоритет дочернего поведения определяется его порядком в списке, так как мы всегда будем проходить через дочерние узлы в порядке списка. Таким образом, в этом случае поведение «СТОЯТЬ СПОКОЙНО» имеет более высокий приоритет, чем поведение «ПАТРУЛИРОВАТЬ». В конце концов, если мы позволим батарее разрядиться, робот не сможет продолжать свое патрулирование.
Далее, давайте конкретизируем эти два высокоуровневых поведения. Задача «СТОЯТЬ СПОКОЙНО» будет состоять из двух дочерних задач: «ПРОВЕРЯТЬ БАТАРЕЮ» и «ЗАРЯЖАТЬСЯ». Это также может включать проверку сервоприводов на перегрев или наблюдение за чрезмерным током приводных двигателей (возможно, робот застрял на чем-то). Задача «ПАТРУЛИРОВАТЬ» будет перемещать по четырем углам квадрата с помощью четырех дочерних задач. Итак, дерево поведения теперь выглядит следующим образом:
ПОВЕДЕНИЕ
СТОЯТЬ СПОКОЙНО
ПРОВЕРИТЬ БАТАРЕЮ
ЗАРЯЖАТЬСЯ
ПАТРУЛИРОВАТЬ
ТОЧКА МАРШРУТА_0
ТОЧКА МАРШРУТА_1
ТОЧКА МАРШРУТА_2
ТОЧКА МАРШРУТА_3
Еще раз, порядок списков очень важен. Например, мы хотим проверить батарею, прежде чем решим ее зарядить, и мы хотим патрулировать углы квадрата в определенном порядке.
Наконец, задача «ЗАРЯЖАТЬСЯ» состоит из двух дочерних моделей поведения: навигации к док-станции и подзарядки робота. Итак, наше финальное дерево поведения выглядит следующим образом:
ПОВЕДЕНИЕ;
СТОЯТЬ СПОКОЙНО;
ПРОВЕРИТЬ БАТАРЕЮ;
ЗАРЯЖАТЬСЯ;
НАПРАВИТЬСЯ К ДОК-СТАНЦИИ;
ЗАРЯДИТЬСЯ;
ПАТРУЛИРОВАТЬ;
ТОЧКА МАРШРУТА_0
ТОЧКА МАРШРУТА_1
ТОЧКА МАРШРУТА_2
ТОЧКА МАРШРУТА_3
При наличии нашей базовой древовидной структуры все, что нам остается - описать отношения между слоями в дереве, то есть между иерархическими задачами разного уровня. Давайте перейдем к этому дальше.
Last updated
Was this helpful?