Моделирование подражательного поведения и викарного научения в группах мобильных роботов

Модель подражательного поведения и викарного научения в групповой робототехнике. Разработка и реализация программы по имитационному моделированию механизма подражательного поведения на примере задачи фуражировки в муравейнике. Типы социального поведения.

Рубрика Программирование, компьютеры и кибернетика
Вид магистерская работа
Язык русский
Дата добавления 27.08.2018
Размер файла 5,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рис. 13. Структура системы Hunger

Модуль kvorum_m отвечает за геометрическое и кинематическое моделирование поведения системы. Для работы модуля требуется описание виртуального поля и агентов. Задачами модуля являются вычисления положения агентов и определения состояния их датчиков.

На вход расчетного модуля kvorum_m подаются:

· описание роботов и среды в виде файлов конфигурации

- Agents.ctl - описание агентов,

- Env.ctl - описание среды,

- Map.ctl - описание карты.

· сообщения топика actions_topic, содержащего команды управления роботом.

Команды топика actions_topic используются для назначения скоростей движения и поворотов, осуществления запросов состояния датчиков и т.д. Выходом узла являются сообщения, которые публикуются в файлы ardans_topic и viz_proc_topic. В топик ardans_topic помещаются ответы на внешние команды, например, показания датчиков. В топик viz_proc_topic публикуются команды визуализации агентов и состояния поля.

Модуль kvorum_v используется для визуализации состояния системы на экране. Модуль считывает информацию из топика viz_proc_topic, куда публикуются команды создания агентов, их визуализации, отрисовки поля. На вход модуля визуализации kvorum_v подаются:

описание среды в виде файлов конфигурации

- Env.ctl - описание внешней среды,

- Map.ctl - описание карты.

сообщения топика pub_viz (команды визуализации).

Связь между модулями внутри ядра осуществляется при помощи топика viz_proc_topic.

Описание среды (Env.ctl)

Файл описывает среду, в которой находится робот.

# hunger

# Параметры поля

# Этот файл читается при создании объекта Env

# Ширина и высота окна отображения поля

self.MAX_SCR_X = 500

self.MAX_SCR_Y = 500

# Размерность поля

self.DIM_X = 100

self.DIM_Y = 100

self.UseTorusRegime = True # Флаг режима топологии тора

Описание карты (Map.ctl)

Описание карты, на которой будут находиться роботы, представляет собой программу (скрипт). В этом скрипте осуществляется работа с глобальной переменной Env, представляющую среду, в которой обитают агенты.

# Ориентиры

def P(x,y,c):

Env.SetRectangleField(x, y, x+1, y+1, gdic.LEVEL_COLOR, c)

"""

k = 1

for n in range(0, 9):

for m in range(0, 6):

P((n+1)*10, (m+1)*15, k)

k += 1

"""

P(35, 50, 3)

P(50, 70, 4)

P(65, 50, 5)

#Объект

P(65, 45, 1)

P(15, 40, 1)

P(20, 10, 27)

P(40, 12, 28)

P(60, 9, 29)

P(80, 11, 6)

P(10, 27, 7)

P(30, 30, 8)

P(50, 29, 9)

P(70, 31, 10)

P(90, 30, 11)

P(20, 49, 12)

P(40, 48, 13)

P(60, 50, 14)

P(80, 49, 15)

P(10, 71, 16)

P(30, 70, 17)

P(50, 72, 18)

P(70, 69, 19)

P(90, 70, 20)

P(20, 91, 21)

P(40, 89, 22)

P(60, 90, 23)

P(80, 88, 24)

P(95, 5, 25)

P(30, 35, 26)

def Phouse(x,y,c):

Env.SetRectangleField(x, y, x+3, y+3, gdic.LEVEL_COLOR, c)

# Дом

Phouse(49, 25, 2)

#Agents.append(CreateRobot(1, [50, 55, 90], "elefant"))

#Agents.append(CreateRobot(2, [48, 55, 90], "turtle"))

Функция P описывают построение прямоугольных препятствий на поле, которые фиксируются датчиками цвета.

Описание робота (Agents.ctl)

Файл Agents.ctl содержит описание агентов.

#

# Ориентация в пространстве

# Описание робота

#

########################################################################

# Вспомогательная функция для инверсии датчиков

########################################################################

def f_inv(r):

if(r==0): return 1

else: return 0

########################################################################

# Создание робота

########################################################################

def CreateRobot(id, pos, tip, irvalue):

global TIP_LEADER, TIP_FOLLOWER

# Аргументы: cid, cpos, cshape, cenv, csize = 0

A = TAgent(id, pos, tip, Env, csize = 0.75)

##A.State = id

A.traceOn = True

A.DrawSensors = False

# *** Датчики препятствий

#

# USONIC левый передний

A.Sensors.append(TSensor(gdic.ADDR_MvCtl, 0, 20, 1, 10, gdic.LEVEL_GROUND, gdic.ST_USONIC))

# USONIC правый передний

A.Sensors.append(TSensor(gdic.ADDR_MvCtl, 1, -20, 1, 10, gdic.LEVEL_GROUND, gdic.ST_USONIC))

A.SetSrc(gdic.LEVEL_IR, irvalue)

# USONIC левый боковой

A.Sensors.append(TSensor(gdic.ADDR_MvCtl, 2, 45, 1, 10, gdic.LEVEL_GROUND, gdic.ST_USONIC))

# USONIC правый боковой

A.Sensors.append(TSensor(gdic.ADDR_MvCtl, 3, -45, 1, 10, gdic.LEVEL_GROUND, gdic.ST_USONIC))

# USONIC центральный дальномер

A.Sensors.append(TSensor(gdic.ADDR_MvCtl, 4, 0, 1, 20, gdic.LEVEL_GROUND, gdic.ST_USONIC))

# *** Датчики цвета

#

# Сенсор пятна (дом). Точечный датчик (радиус=0)

A.Sensors.append(TSensor(gdic.ADDR_I2CDataServer, 0, 0, 0, 0, gdic.LEVEL_COLOR, gdic.ST_DETECTOR))

# Суперлокатор. Он должен быть один

A.Sensors.append(TSensor(gdic.ADDR_SuperLocator, 0, 0, 180, 20, gdic.LEVEL_COLOR, gdic.ST_USONIC, gdic.RST_SUPER_VECTOR))

# Датчики TSOP

TSOP_DIST = 40

A.Sensors.append(TSensor(gdic.ADDR_RC5Server, 0, 0, 90, TSOP_DIST, gdic.LEVEL_IR, gdic.ST_DETECTOR, gdic.RST_SCALAR))

A.Sensors.append(TSensor(gdic.ADDR_RC5Server, 1, 180, 90, TSOP_DIST, gdic.LEVEL_IR, gdic.ST_DETECTOR, gdic.RST_SCALAR))

A.Sensors.append(TSensor(gdic.ADDR_RC5Server, 2, 90, 90, TSOP_DIST, gdic.LEVEL_IR, gdic.ST_DETECTOR, gdic.RST_SCALAR))

A.Sensors.append(TSensor(gdic.ADDR_RC5Server, 3, -90, 90, TSOP_DIST, gdic.LEVEL_IR, gdic.ST_DETECTOR, gdic.RST_SCALAR))

if(tip=="elefant"):

A.RobotMoveSpeed =1

else:

A.RobotMoveSpeed = 0.8

A.RobotRotateSpeed = 5

return A

########################################################################

# Роботы

########################################################################

NUM_FOL = 9

FOLLOWER_IR_CODE = 0xA0

NUM_LEAD = 1

LEADER_IR_CODE = 0x01+200

for i in range(0, NUM_LEAD):

Agents.append(CreateRobot(i+1, [50, 25, 90], "turtle", LEADER_IR_CODE))

# последователи

for i in range(0, NUM_FOL):

Agents.append(CreateRobot(i+1+NUM_LEAD, [48+i*2, 14+i*(-1), 90], "elefant", FOLLOWER_IR_CODE+i))

########################################################################

# Вспомогательные функции для обращения к датчикам

########################################################################

def sGetColor(A):

s = A.Dataserver[0]

if(s==0): s = 100

return s

В файле описывается функция создания агента. В неё включены создание агента и датчиков, которыми он оснащен. Так же описаны функции обращения к датчикам sGet…., где входной параметр - id агента. Если объект находится в диапазоне датчика, то возвращается значение до объекта, иначе возвращается значение 100 (объект очень далеко).

Описание узла (Hunger.py)

Первой задачей для моделирования являлась реализация возникновения «голода» в группе роботов. Для этого при инициализации системы создавались агенты с разными уровнями активности и сытости. Для корректной работы метода было необходимо, чтобы в группе были хотя бы один активный и неголодный робот и хотя бы один голодный и неактивный. Голодный агент создается для инициирования процесса обмена пищей между агентами, так как данный процесс происходит только между сытым и голодным агентами. подражательный поведение социальный

Возникновение чувства голода у активного агента является условием перехода системы в следующее состояние.

При проведении эксперимента был замечен стремительный рост переменной N из-за активного обмена данными между агентами. Начальное значение переменной N сильно влияет на скорость появления чувства голода у агентов, поэтому было принято решение не устанавливать высокие начальные значения переменной N для разных уровней сытости. Предельное значение для N было увеличено и стало равняться N=100.

В связи с этим для контроля скорости возникновения голода в «муравейнике» в основном использовалось значение уровня сытости Ihas. Чем выше данное значение, тем медленнее будет наступать голод.

Согласно проведенным экспериментам, имеет место следующее распределение уровней сытости и значений переменных в зависимости от количества агентов (Таблица 1Таблица 6, Таблица 7).

Таблица 6. Распределение уровней сытости

Количество агентов

Количество уровней сытости

Используемые уровни

X<5

1

Level 1, голодные

5? x<10

2

Level 1, level 2

10? x <20

3

Level 1, level 2, level 3

Значения переменных для каждого уровня:

Таблица 7. Распределение значений переменных

Ihas

N

Level 1

16

1

Level 2

50

1

Level 3

100

3

При моделировании данной задачи активный робот создавался с наивысшим уровнем сытости. Таким образом при возникновении голода у активного агента, голод уже распространился по всему муравейнику.

Эмоция агента описывается, как результат работы функции Hunger(r). Если результатом является значение True, то эмоция робота положительная - агент не голоден. Если результат False, то эмоция отрицательная - робот голоден. Процедура, описывающая эмоцию агента, выглядит следующим образом:

def Hunger(r):

if (r.agent.satlevel>1 and r.agent.N< 100):

return True# агент не голоден

else:

return False #агент голоден

При встрече два робота анализируют эмоции (соответствующие потребности в пище) друг друга, имитируя обмен локальными сообщениями (функция def SingleLessHungry(r, nb)). Схема алгоритма представлена на Рис. 14.

Рис. 14. Блок-схема механизма анализа эмоций роботов

В зависимости от результата работы функции SingleLessHungry происходит выполнение одного из условий (Рис. 15):

Рис. 15. Выбор условия после выполнения функции SingleLessHungry

Если переменная lesssat=True, то у робота-соседа больше «пищи» и он готов ей поделиться. Если переменная равна False, то пищей делится текущий робот, если он сам не голоден.

Полученная схема алгоритма обмена сигналами между роботами представлена на Рис. 16.

Рис. 16. Схема алгоритма обмена сигналами между роботами

На рисунках ниже приведены примеры результатов моделирования. Роботы генерируются в произвольном месте полигона, в котором располагается «дом». «Дом» («муравейник») - это место, с которого начинается процесс моделирования (Рис. 17). Робот запоминает координаты, в которых он появился в первый раз, чтобы использовать их в последующих задачах.

После инициализации роботы начинают блуждать по полю в поисках агентов для обмен пищей.

Рис. 17. Инициализация системы- агенты в «доме»

Чтобы приблизить задачу к реальной работе муравейника, к функции блуждания была добавлена функция «произвольный поворот налево». Таким образом, агенты чаще держатся в определенной области, следовательно, чаще встречаются и обмениваются сигналами («пищей») (Рис. 18).

Рис. 18. Блуждание агентов около «дома»

После того, как активный агент проголодался, система переходит в следующее состояние. Неактивные агенты возвращаются в те точки, в которых они впервые появились- «домой». Это сделано для упрощения процесса привлечения внимания для инициации поиска пищи: в таком случае все агенты будут дома и не возникнет проблемы, что все агенты разбежались по полю и не заметят разведчика. Состояние агентов становится равным «REST».

Если агент голоден и это активный агент, то схема алгоритма действий выглядит следующим образом (Рис. 19):

Рис. 19. Схема алгоритма для активного робота

Схема алгоритма для неактивного робота (Рис. 20):

Рис. 20. Схема алгоритма для неактивного робота

Активный агент становится «разведчиком» и переходит в режим «SEARCH»- он ищет пищу, чтобы потом вернуться домой и повести за собой остальных. Робот-разведчик перемещается по полигону случайным образом с целью найти объект заданного цвета, не имея заранее данных о его местоположении.

На Рис. 21 видно, как разведчик строит путь и в итоге находит объект определенного цвета (пищу). Неактивный робот в это время находится в «доме».

Рис. 21. Разведчик нашел объект (пищу)

Как только разведчик нашел объект, состояние робота разведчика меняется на «COMEBACK», и агент переходит к выполнению следующего условия.

Далее выполняется процедура возвращения разведчика домой по уже построенному маршруту. Для этого необходимо упаковать построенный маршрут до объекта, отсортировать его по номерам шагов, а затем получить обратный маршрут до дома. Алгоритм создания маршрута описан в п. 3.5 данной работы.

Алгоритм создания обратного маршрута представлен ниже:

Входные данные: описание маршрута, цвет финальной точки

Выходные данные: описание маршрута возвращения домой

way = [] -инициализация описания пути

cnt = len(route) - длина построенного маршрута

Цикл по i от 0 до cnt:

RT = [ 0, 0, 0, 0, 0, 0, 0, 0 ] - очищаем данные ориентира

n = cnt-i-1 - проходим по точкам пути в обратном порядке

Если (route[n][3] == clr): newdir = D_F - нашли цвет финальной точки обратного пути

Иначе: newdir = DefDirection(route[n][4])

Конец Если

RT = [i, route[n][1], route[n][2], route[n][3], newdir, route[n][5], route[n][6], 0] - описание ориентира

way.добавить(RT)- добавляем ориентир в описание

Конец цикла по i

Выполнение шага моделирования

Конец цикла моделирования

На Рис. 22 видно, как разведчик возвращается «домой» после нахождения объекта определенного цвета:

Рис. 22. Возвращение разведчика домой

После возвращения разведчика запускается механизм привлечения внимания. При достижении объекта «дом» робот-разведчик разворачивается на 180?, занимая более удобное положение для начала повторения маршрута до объекта пищи. Разведчик делает короткую остановку, чтобы дать время роботам последователям зафиксировать изменения и понять, что им нужно следовать за ним.

Стоит отметить, что при использовании локатора робот видит все цветные пятна и не различает, какое из них ориентир, а какое робот. При имитационном моделировании данный способ будет работать, но при разработке реальных роботов могут возникнуть проблемы. Чтобы уменьшить вероятность потери робота-разведчика из поля зрения, было решено дополнительно наделить роботов датчиками ИК излучения, так как данный способ определения цели для преследования является более продуманным.

Таким образом, если разведчик вернулся домой и его цвет говорит о том, что он нашел пищу, окружающие разведчика роботы переходят в состояние «FOLLOW», т.е. начинают следовать за ним, используя датчики ИК.

После того, как разведчик инициировал поиск пищи, то есть показал другим агентам, что необходимо следовать за ним, робот-разведчик переходит в следующее состояние. Он должен повторить свой путь, по которому шел, когда искал пищу, по возможности сокращая путь. Алгоритм следования по маршруту был описан в п. 3.5 данной работы.

Роботы, идущие за разведчиком, должны следовать за ним или за другими роботами, следующими за разведчиком.

Блок-схема механизма, при котором выполняется следование за разведчиком, представлена на Рис. 23:

Рис. 23. Схема механизма следования за разведчиком

Функция Analyze помогает определить, в каком месте, относительно агента, находится разведчик или другой робот, за которым необходимо следовать.

Алгоритм функции Analyze

Входные данные: A, code -текущий агент, код ИК

Выходные данные sit, maxcode, maxdir- область и направление на объект с наибольшим значением кода ИК

sit = {'fwd':0, 'back':0, 'left':0, 'right':0}- направление

f0 = 0 -область впереди

f1 = 0- область сзади

f2 = 0- область справа

f3 = 0 - область слева

Если code>0:

Если (A.TSOPRC5[0] == code) то f0 = code -код зафиксирован передним датчиком

Конец Если

Если (A.TSOPRC5[1] == code) то f1 = code -код зафиксирован задним датчиком

Конец Если

Если (A.TSOPRC5[2] == code)то f2 = code - -код зафиксирован правым датчиком

Конец Если

Если (A.TSOPRC5[3] == code) то f3 = code --код зафиксирован левым датчиком

Конец Если

Иначе

f0 = A.TSOPRC5[0]

f1 = A.TSOPRC5[1]

f2 = A.TSOPRC5[2]

f3 = A.TSOPRC5[3]

Конец Если

maxcode = max(f0, f1, f2, f3) - определяем максимум

Если maxcode==f0 то maxdir = 'fwd' Конец Если

Если maxcode==f1 то maxdir = 'back'Конец Если

Если maxcode==f2 то maxdir = 'left'Конец Если

Если maxcode==f3 то maxdir = 'right'Конец Если

sit['fwd'] = f0

sit['back'] = f1

sit['left'] = f2

sit['right'] = f3

Выполнение шага моделирования

Конец цикла моделирования

Результат моделирования процесса показан ниже (Рис. 24). На рисунках видно, что робот последователь стремится приблизиться к роботу разведчику, не пытаясь повторить его путь по ориентирам.

Рис. 24. Преследование разведчика роботом-последователем

В Табл.8 приведены обобщенные результаты моделирования механизмов возвращения домой и повторения маршрута. Из Табл.8 видно, что на длинных маршрутах робот-разведчик чаще «теряется».

В начале выполнения механизма возвращения домой робот не всегда сразу находит точку для начала следования к «дому», он начинает обходить последний ориентир в поисках следующих точек маршрута, но не успевает и продолжает поворачиваться вокруг себя.

Можно заметить, что процент неудач при повторении пути значительно выше, чем при возвращении домой. Это связано с тем, что роботу-разведчику могут преграждать путь роботы-преследователи, которые не всегда вовремя реагируют на его действия. Поэтому разведчику необходимо обходить других роботов, избегая столкновения, затем снова искать ориентиры для повторения маршрута.

Таблица 8. Моделирование механизмов возвращения и повторения маршрута

Действие

Маршрут

Кол-во неудач, %

Робот возвращается домой

Длинный

14,4

Короткий

2,4

Робот повторяет путь до еды

Длинный

24,3

Короткий

7,3

Из графика ниже (Рис. 25) видно, что чем больше роботов следует за разведчиком, тем ниже процент удач при повторении пути до объекта.

Рис. 25. График зависимости количества удач при повторении пути от количества роботов-последователей

В Табл.9 приведены результаты моделирования механизма преследования робота-разведчика для разных типов маршрутов. Можно заметить, что чем больше количество роботов-преследователей, тем меньше процент роботов, дошедших до цели. Это объясняется тем, что, во-первых, преследователи мешают разведчику дойти до цели, следовательно, преследователи также не дойдут до объекта. Во-вторых, преследователи стараются избегать столкновений друг с другом, то есть запускается механизм рефлекса, после которого преследователи не всегда видят разведчика и теряют цель для преследования.

Таблица 9. Соотношение длины путей и количества преследователей

Действие робота-разведчика

Количество роботов преследователей

Маршрут

Кол-во последователей, дошедших до цели, %

Робот повторил путь до еды

1

Короткий

100

Длинный

100

2

Короткий

80

Длинный

50

4

Короткий

67

Длинный

45

10

Короткий

44

Длинный

23

Неудачи преследования робота-разведчика в основном обусловлены двумя причинами, которые тесно связаны друг с другом. Первая причина- робот разведчик не смог дойти до объекта, поэтому роботы, следующие за ним, также не смогли добраться до «пищи». Вторая причина - это большое количество роботов- преследователей, которые препятствуют следованию робота-разведчика по маршруту к объекту, вследствие чего разведчик сбивается с пути. Уменьшая количество роботов-преследователей, можно уменьшить количество препятствий на пути разведчика к еде, что увеличит число дошедших до пищи роботов-преследователей.

Заключение

В процессе выполнения выпускной квалификационной работы была реализована модель подражательного поведения и викарного научения в ГРТ.

Практическая и теоретическая значимости данной работы заключаются в разработке модели и алгоритма подражательного поведения на примере решения задачи фуражировки в муравейнике и написании программы по имитационному моделированию с использованием разработанных методов и алгоритмов.

Достоинствами разработанных методов являются портируемость предложенных агоритмов непосредственно на физических роботов и расширяемость разработанных процессов, что позволит развивать модель и добавлять в нее новые механизмы. В качестве основных недостатков стоит выделить невозможность использования предложенной модель на большом количестве роботов, а также ограничение, что маршруты должны начинаться из одной и той же точки .

В ходе выполнения выпускной квалификационной работы был решен ряд задач:

- Был проведен обзор моделей подражательного поведения и викарного научения при решении задач ГРТ. Полученные результаты служили базой знаний создаваемой модели.

- Был произведен выбор и анализ решаемой задачи из области ГРТ.

- Были разработаны методы и алгоритмы реализации выбранных моделей.

- Была написана программа по имитационному моделированию на основе разработанных методов и алгоритмов.

- Был проведен анализ результатов моделирования.

В дальнейшем разработанная модель подражательного поведения и викарного научения может быть доработана для работы с большим количеством роботов, а также использована для проведения экспериментов с физической моделью.

Список литературы

1. INAKI NAVARRO, FERNANDO MATIA An Introduction to Swarm Robotics [Journal] // ISRN Robotics. - 2013. - p. 10 .

2. Карпов В. Э. Модели социального поведения в групповой роботехнике [Статья] // Управление большими системами. Выпуск 59. - 2016 г.. - стр. 165-232.

3. Гаазе-Раппопорт М. Г. Поспелов Д. А. От амебы до робота: модели поведения [Книга]. - Москва : Наука, 1987.

4. Фет А. И. Инстинкт и социальное поведение [Книга]. - Москва : Сова, 2008.

5. Тинберген Н. Социальное поведение животных / Social Behavior in Animals [Книга]. - Москва : Мир, 1953.

6. Захаров А. А. Муравей, семья, колония [Книга]. - Москва : Наука, 1978.

7. Мандель Б. Р. Современная зоопсихология: новый модульный курс ФГОС, ФГОС-3+ [Книга]. - М.-Берлин : Директ-Медиа, 2015.

8. Гудолл Дж. Шимпанзе в природе: поведение [Книга]. - Москва : Мир, 1992.

9. Зорина З.А. Полетаева И.И., Резникова Ж.И. Основы этологии и генетики поведения: Учебник [Книга]. - Москва : МГУ, 2002.

10. Мак-Фарленд Д. Поведение животных: Психобиология, этология и эволюция: Пер. с англ. [Книга]. - Москва : Мир, 1988.

11. Топчий М. В. Зоопсихология и сравнительная психология: Учебное пособие [Книга]. - Ставрополь : СКСИ, 2005.

12. Дьюсбери Д. Поведение животных: Сравнительные аспекты / Пер.с англ [Книга]. - Москва : Мир, 1981.

13. Зорина З.А. Полетаева И.И., Резникова Ж.И. Основы этологии и генетики поведения: Учебник [Книга]. - Москва : МГУ, 2002.

14. Творогова Н. Д. Общая и социальная психология: Практикум [Книга]. - Москва : ООО «Медицинское информационное, 1997.

15. Andry P., Gaussier P., Moga S., Banquet J. P., Nadel J. Learning and communication via imitation: an autonomous robot perspective [Article] // IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans. - 2001. - Vol. 31.

16. Lopes M., Melo F., Montesano L., Santos-Victor J. Abstraction Levels for Robotic Imitation: Overview and Computational Approaches [Article] // Studies in Computational Intelligence: Motor Learning to Interaction Learning in Robots. - 2009. - Vol. 264.

17. Карпов В. Э. Открытые семантические технологии проектирования интеллектуальных систем = Open Semantic Technologies for Intelligent Systems (OSTIS-2016): материалы VI междунар. науч.-техн. конф. [Конференция] // Сенсорная модель подражательного поведения роботов. - Минск : БГУИР, 2016. - стр. 471-476.

18. Симонов П.В. Потребностно-информационная теория эмоций // Вопросы психологии. 1982. Т. 6. С. 44-56

19. Карпов В. Э. Эмоции и темперамент роботов. Поведнеческие аспекты [Журнал] // Известия РАН. Теория и системы управления. - 2014 г.. - стр. 126-145.

20. Karpov V. E. , Karpova I. P. Leader election algorithms for static swarms [Journal] // Biologically Inspired Cognitive Architectures. - 2015. - pp. 54-64.

21. Billard A., Dautenhahn K. International Society for Adaptive Behavior Experiments in Learning by Imitation - Grounding and Use of Communication in Robotic Agents [Journal] // Adaptive Behavior. - 1999. - pp. 411-434 .

22. Payton D., Daily M., Hoff B., Howard M., Lee C. Pheromone Robotics [Journal] // Autonomous Robots. - 2001. - pp. 319-324 .

23. Eric Bonabeau Guy Theraulaz, Marco Dorigo Swarm Intelligence: From Natural to Artificial Systems (Santa Fe Institute Studies on the Sciences of Complexity) [Книга]. - New York : Oxford University Press, 1999.

24. Кипятков В. Е. Мир общественных насекомых [Книга]. - Москва : Издательство "Знание", 1985.

25. Карпова И. П. К вопросу о представлении маршрута мобильного робота на основе визуальных ориентиров [Статья] // Мехатроника, автоматизация, управление. - 2017 г.. - стр. 81-89.

26. Длусский Г. М. Муравьи рода Формика [Книга]. - Москва : Наука, 1967.

27. Цетлин М. Л. Исследования по теории автоматов и моделированию [Книга]. - Москва : Наука, 1969.

28. Daniel Charbonneau Anna Dornhaus Workers `specialized' on inactivity: Behavioral consistency of inactive workers and their role in task allocation [Статья] // Behavioral Ecology and Sociobiology. - [б.м.] : Springer-Verlag Berlin Heidelberg, 2015 г.. - Т. 69.

Приложение 1

Установка системы моделирования KVORUM

Москва, 2018

Общие сведения

Данный документ описывает поэтапную установку системы KVORUM на виртуальную машину и содержит:

- описание настройки виртуальной машины;

- описание установки и конфигурирования фреймворка ROS;

- описание последующей установки и настройки системы KVORUM.

Настройка виртуальной машины

Скачайте дистрибутив OC Linux - KUbuntu 16.04. Укажите динамический тип жесткого диска с изменяемым размером до 60 Гб. Остальные параметры создания виртуальной машины оставить по умолчанию.

Не используйте другие версии KUbuntu.

Установка ROS

Система KVORUM использует фреймворк ROS-kinetic.

Для установки ROS откройте консоль и наберите следующие команды:

1. Настройка компьютера для приема программного обеспечения с сайта packages.ros.org:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2. Установка ключей:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

3. Обновление доступных для скачивания пакетов:

sudo apt-get update

4. Установка ROS:

sudo apt-get install ros-kinetic-desktop

WARNING: не используйте команду sudo apt-get install ros-kinetic-desktop-full. Данная установка содержит пакеты графического 2D и 3D ускорения, которые конфликтуют с виртуальной машиной.

5. Инициализация системы контроля зависимостей rosdep:

sudo rosdep init

rosdep update

Rosdep позволяет легко устанавливать системные зависимости для источника, который необходимо скомпилировать, и требуется для запуска некоторых основных компонентов в ROS.

6. Установка окружения:

source /opt/ros/kinetic/setup.bash

Выполните перезагрузку системы.

Установка рабочего окружения и настройка KVORUM

Для установки системы необходимо получить архив и распаковать его в домашнюю директорию /home.

WARNING: архив содержит не только папку kvorum. Убедитесь, что у вас полный установочный пакет.

1. Чтобы распаковать архив необходимо установить программу unrar:

sudo apt-get install unrar

2. После распаковки выполните:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

source ~/.bashrc

Это делается для того, чтобы установить автоматическую регистрацию окружения в командной оболочке. Для этого добавляем обработку файла в конец .bashrc. Путь до setup.bash должен быть абсолютным.

3. Перейдите в рабочий каталог:

cd ~/ros

4. Создайте в данной папке рабочее окружение:

catkin_init_workspace

catkin_make

Первая команда инициализирует рабочее окружение, вторая - собирает его.

5. После сборки в директории появятся каталоги build и devel. Директория devel содержит файл setup.bash, выполните его для установки дополнительных утилит:

source devel/setup.bash

Выполните команду для установки автоматической регистрации окружения в командной оболочке еще раз:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

source ~/.bashrc

6. Сделайте исполняемым скрипты системы kvorum:

chmod a+x src/kvorum/kvorum_m/scripts/*

chmod a+x src/kvorum/kvorum_v/scripts/*

chmod a+x src/kvorum/ant/scripts/*

chmod a+x src/kvorum/kdemo/scripts/*

chmod a+x src/kvorum/temper/scripts/*

chmod a+x src/kvorum/swhunt/scripts/*

chmod a+x src/kvorum/tmusrv/scripts/*

7. Сделайте исполняемым файл setmode:

chmod a+x setmode

8. Выполните скрипт setmode:

./setmode

Скрипт setmode установит необходимые права доступа для файлов системы.

9. Перейдите в папку usr:

cd usr

10. Выполните команду:

./install.bash

Данная команда установит дополнительное программное обеспечение и библиотеки.

11. Перейдите в папку libs:

cd libs

12. Распакуйте архив igraph. Установите, запустив из папки библиотеки:

./configure

make

make check

make install

Данная библиотека необходима для компиляции системы и не устанавливается при помощи команды rosdep install --from-paths src --ignore-src -r -y. Без установки библиотеки команда ./buildall работать не будет.

13. Проверьте и установите все зависимые библиотеки:

rosdep install --from-paths src --ignore-src -r -y

14. Вернитесь в рабочую директорию и выполните:

./buildall

Данная команда выполнит компиляцию системы.

15. Затем выполните:

source /opt/ros/kinetic/setup.bash

Первый запуск системы

1. Выполните в консоли команду:

roscore

roscore - это набор узлов и программ, которые являются предварительными условиями для запуска системы на основе ROS. У вас должен быть запущен roscore, чтобы узлы ROS могли общаться.

2. В другом окне консоли выполните команду для установки утилиты управления окнами wmctrl:

sudo apt-get install wmctrl

3. Затем запустите файл set_kvorum_path.sh :

source ~/set_kvorum_path.sh

Содержимое файла set_kvorum_path.sh

#!/usr/bin/env sh

export PYTHONPATH=$PYTHONPATH:~/ros/src/kvorum/pylib

Данная команда добавит в список каталога sys.path содержимое pylib.

4. Выполните:

roscd kdemo

cd scripts/demo

./run_demo

roscd- команда навигации системы ROS. roscd позволяет переходить по каталогам, используя имя пакета, имя стека или специальное местоположение.

После выполнения команд на экране появятся три окна: расчетный модуль, модуль визуализации и окно сценария.

Тестирование

Ниже представлен пример запуска приложения KVORUM из демо-каталога /sa.

Шаг 1. В консольном окне запускаем roscore:

Шаг 2. В другом окне консоли переходим в рабочий каталог, переходим в каталог kdemo, затем в каталог scripts/sa, откуда запускам скрипт run. На скриншоте ниже видно, что скрипт запустился успешно:

На экране появляются три окна.

1) Окно визуализации:

2) Окно расчетного модуля:

3) Третье окно: окно модельного поля:

Чтобы прекратить выполнение скрипта, нажмите Ctrl+Z в окне консоли, из которого производился запуск.

Приложение 2

Размещено на Allbest.ru

...

Подобные документы

  • Теоретические основы моделирования систем в среде имитационного моделирования AnyLogic. Средства описания поведения объектов. Анимация поведения модели, пользовательский интерфейс. Модель системы обработки информации в среде компьютерного моделирования.

    курсовая работа [1,5 M], добавлен 15.05.2014

  • Разработка инструментального средства для обнаружения уязвимостей веб-приложений на основе контроля поведения с функцией автоматического построения профилей нормального поведения. Основные методы обнаружения аномалий, анализ возможности их применения.

    курсовая работа [865,8 K], добавлен 02.02.2015

  • Разработка приложения на WinAPI с реализацией логической структуры в игре "Сапер". Реализация графической части приложения. Проверка на корректность поведения интерфейса программы, работы логической части игры, корректности записи и чтения файла.

    курсовая работа [1,1 M], добавлен 17.10.2012

  • Современные информационные технологии, используемые для изучения поведения радионуклидов в условиях захоронения радиоактивных отходов. Алгоритм создания программы для экспресс-оценки основных селектиных сорбционных характеристик различных материалов.

    реферат [1,2 M], добавлен 02.05.2016

  • Методы обнаружения вирусов. Метод соответствия определению вирусов в словаре. Обнаружение странного поведения программ, "белый список" и эвристический анализ. Антивирусное программное обеспечение. Обнаружение подозрительного поведения любой из программ.

    презентация [6,0 M], добавлен 10.05.2011

  • Решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях. Компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab.

    дипломная работа [2,9 M], добавлен 25.01.2013

  • Групповое взаимодействие роботов. Парадокс критерия эффективности. Задача группового управления роботами. Алгоритмы коллективного распределения целей в группах роботов. Анализ возможности улучшения плана методом попарного обмена целями между роботами.

    курсовая работа [229,4 K], добавлен 14.01.2012

  • "Рой частиц" как наиболее простой метод эволюционного программирования, основанный на идеи о возможности решения задач оптимизации с помощью моделирования поведения групп животных. Схема работы алгоритма, составление кода программы и блок-схемы.

    курсовая работа [38,5 K], добавлен 18.05.2013

  • Разработка концептуальной модели данных. Диаграмма потоков данных. Моделирование правил и поведения системы. Разработка структуры базы данных для автоматизации некоторых рутинных процессов налоговой инспекции, в частности заполнение налоговых деклараций.

    контрольная работа [453,2 K], добавлен 24.04.2014

  • Разработка программы, моделирующей работу сложного механизма, состоящего из двух кривошипов, шатунов и ползуна, в среде Delphi 7. Описание алгоритма работы программы и расчет ускорения точек механизма. Обзор уравнения сложности и руководства пользователя.

    курсовая работа [143,3 K], добавлен 07.08.2013

  • Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.

    курсовая работа [1,9 M], добавлен 05.01.2013

  • Разработка программы, моделирующей процессы обучения, работы и прогнозирования ИНС с использованием постоянного, а также адаптивного шага обучения. Исследование поведения системы в зависимости от количества входов при постоянном шаге самообучения.

    контрольная работа [92,5 K], добавлен 16.10.2011

  • Специфика функционирования Луганского университета имени Владимира Даля, организационная структура и работа различных подразделений. Особенности программной и технической характеристик информационной системы. Проектирование модели системы аналитики.

    отчет по практике [65,6 K], добавлен 12.05.2015

  • Основные понятия компьютерного моделирования. Функциональная схема робота. Системы компьютерной математики. Исследование поведения одного звена робота с использованием системы MathCAD. Влияние значений изменяемого параметра на амплитуду угла поворота.

    курсовая работа [1,2 M], добавлен 26.03.2013

  • Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.

    дипломная работа [3,3 M], добавлен 18.02.2017

  • Основы классификации объектов, их типы и подходы к моделированию. Программные и технические средства, используемые в данном процессе. Этапы моделирования, их общее описание и значение: постановка задачи, разработка модели, компьютерный эксперимент.

    реферат [36,3 K], добавлен 23.12.2014

  • Классификация колесных наземных мобильных роботов. Обзор приводов мобильных платформ. Особенности стабилизации скорости мобильной платформы Rover 5 с дифференциальным приводом. Разработка алгоритмов управления на основе микроконтроллера Arduino.

    курсовая работа [1,3 M], добавлен 04.05.2017

  • Назначение и типы роботов-андроидов. Функции обнаружения объектов в робототехнике; машинное, электромагнитное зрение, датчики препятствий на ИК лучах. Разработка концептуально-функциональной модели робота типа "шагающий" с функцией обнаружения объекта.

    курсовая работа [3,0 M], добавлен 20.12.2012

  • Использование принципов работы с эластичной сетью для оценки поведения структуры молекулярной машины во время динамического цикла. Основные топологические характеристики для эластичной сети, построенной на основе исследуемой молекулярной машины.

    курсовая работа [1,6 M], добавлен 25.06.2017

  • Характеристика алгоритмов и программных реализаций поведения агентов в двумерной среде. Исследование разработки структур данных и знаний. Особенность создания интерфейса и карты лабиринта. Экспериментальное тестирование и отладка модулей программы.

    дипломная работа [2,4 M], добавлен 12.08.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.