14. Практическая работа «Программирование роботов для совместной работы. Выполнение общей задачи»
Модуль: Коллективное поведение робототехнических систем
Тема урока: Практическая работа «Программирование роботов для совместной работы. Выполнение общей задачи»
Цель урока: Сформировать практические навыки разработки и реализации алгоритмов для организации совместной работы нескольких роботов при решении общей задачи.
Планируемые результаты:
Предметные:
- Знать принципы синхронизации действий нескольких роботов
- Понимать алгоритмы координации и распределения задач в многоагентных системах
- Уметь программировать взаимодействие между роботами для решения общей задачи
- Владеть навыками отладки распределенных робототехнических систем
Метапредметные:
- Регулятивные УУД: умение планировать сложный алгоритм с участием нескольких исполнителей, контролировать и оценивать результаты совместной работы
- Познавательные УУД: развитие системного и алгоритмического мышления, поиск оптимальных стратегий распределения ресурсов
- Коммуникативные УУД: умение работать в команде над созданием распределенной системы, моделировать процессы коммуникации между агентами
Личностные:
- Формирование понимания значимости командной работы и распределения обязанностей
- Развитие ответственности за общий результат
- Воспитание настойчивости при решении сложных многокомпонентных задач
Задачи урока:
- Актуализировать знания о принципах взаимодействия нескольких роботов
- Научить разрабатывать алгоритмы для синхронизации действий роботов
- Сформировать навыки программирования коммуникаций между роботами
- Организовать практическую работу по созданию группы роботов, выполняющих общую задачу
- Развить умение оценивать эффективность распределенной робототехнической системы
Тип урока: Практическая работа
Учебно-методическое и материально-техническое обеспечение:
- Робототехнические наборы (не менее 2-3 на группу) с возможностью коммуникации
- Компьютеры с установленной средой программирования
- Модули беспроводной связи для роботов (Bluetooth, Wi-Fi, ИК-порты)
- Полигоны для тестирования совместной работы роботов
- Инструкционные карты с примерами кода для организации взаимодействия
- Презентация с алгоритмами координации роботов
- Раздаточный материал с описанием задач для совместного решения
- Видеоматериалы с примерами успешной реализации коллективного поведения роботов
Образовательные технологии: Проектная деятельность, проблемное обучение, работа в малых группах, практико-ориентированное обучение, моделирование реальных ситуаций
Межпредметные связи:
- Информатика: синхронизация процессов, распределенные вычисления, параллельные алгоритмы, обмен данными между системами
- Математика: алгоритмы оптимального распределения ресурсов и задач, теория графов, оптимизация маршрутов
- Физика: координация механического движения, взаимодействие объектов в пространстве
- Социология: моделирование коллективного поведения, распределение ролей, координация действий
Этап урока | Деятельность учителя | Деятельность ученика | Планируемые результаты предметные | Планируемые результаты УУД |
---|---|---|---|---|
1. Организационный момент (2 мин) | Приветствует учащихся, проверяет готовность к уроку. Организует деление класса на рабочие группы по 3-4 человека. | Готовятся к уроку, формируют рабочие группы. | Регулятивные: самоорганизация, готовность к работе в группе | |
2. Актуализация знаний (5 мин) | Организует фронтальную беседу по вопросам: - Какие принципы взаимодействия роботов мы изучили на предыдущем уроке? - Какие модели координации действий вы знаете? - Как роботы могут обмениваться информацией? - Какие задачи эффективнее решать группой роботов, а не одиночным роботом? Демонстрирует видеофрагмент успешной коллективной работы роботов. |
Участвуют в беседе, отвечают на вопросы, вспоминают материал предыдущего урока. Просматривают видеофрагмент, анализируют особенности показанного взаимодействия. |
Воспроизведение знаний о принципах и моделях взаимодействия роботов. Понимание преимуществ коллективной работы для решения сложных задач. |
Познавательные: актуализация знаний. Коммуникативные: участие в диалоге. |
3. Постановка цели и мотивация (3 мин) | Формулирует цель практической работы: “Сегодня мы будем разрабатывать программы для организации совместной работы нескольких роботов, которые должны скоординировать свои действия для решения общей задачи”. Подчеркивает практическую значимость темы, приводя примеры из реальной робототехники (работа складских роботов, групповые исследования марсоходами, совместное строительство). |
Осмысливают цель урока. Воспринимают информацию о практической значимости темы. |
Регулятивные: целеполагание. Личностные: осознание практической значимости учебного материала. |
|
4. Объяснение практических задач и алгоритмов координации (10 мин) | Представляет возможные варианты задач для совместного решения роботами: 1. Совместная транспортировка крупногабаритного груза 2. Коллективное исследование и картографирование территории 3. Распределенная сортировка объектов по признакам 4. Совместное преодоление препятствий 5. Построение заданной фигуры группой роботов Объясняет ключевые алгоритмы координации: - Алгоритм синхронизации действий - Алгоритм распределения подзадач - Алгоритм избежания конфликтов - Алгоритм совместного принятия решений Демонстрирует примеры простого программного кода для организации коммуникации между роботами. |
Слушают объяснение учителя. Изучают варианты задач и алгоритмы координации. Задают уточняющие вопросы. Делают записи в тетрадях. |
Понимание основных алгоритмов координации роботов. Знание подходов к программированию взаимодействия. |
Познавательные: анализ и структурирование информации. Коммуникативные: формулирование вопросов. |
5. Инструктаж по практической работе (5 мин) | Объясняет задание для практической работы: 1. Каждая группа выбирает одну из предложенных задач для совместного решения роботами 2. Разрабатывает алгоритм решения с чётким распределением ролей между роботами 3. Программирует коммуникацию и координацию действий 4. Тестирует и отлаживает систему 5. Готовит презентацию своего решения Обращает внимание на критерии оценки работы: - Успешность выполнения задачи - Эффективность распределения ролей - Оптимальность алгоритма - Надежность коммуникации Напоминает о технике безопасности при работе с оборудованием. |
Выбирают задачу для решения своей группой. Воспринимают требования к работе. Задают уточняющие вопросы по заданию. Планируют последовательность действий в группе. |
Регулятивные: принятие учебной задачи, планирование. Коммуникативные: распределение ролей в группе. |
|
6. Практическая работа: разработка алгоритмов (15 мин) | Консультирует группы на этапе разработки алгоритмов: - Помогает определить оптимальное распределение ролей между роботами - Подсказывает эффективные методы коммуникации - Обращает внимание на потенциальные конфликты и методы их решения - Предлагает варианты оптимизации маршрутов и действий Акцентирует внимание на необходимости учета межпредметных связей с информатикой (синхронизация процессов) и математикой (оптимизация распределения ресурсов). |
Работают в группах над разработкой алгоритмов для совместной работы роботов: - Анализируют выбранную задачу - Определяют необходимое количество роботов и их роли - Разрабатывают схему коммуникации - Планируют алгоритм координации действий - Прорабатывают сценарии обработки нештатных ситуаций - Создают блок-схемы или псевдокод для программирования |
Умение разрабатывать алгоритмы для координации действий роботов. Понимание принципов распределения задач между агентами системы. |
Познавательные: моделирование, анализ, синтез. Регулятивные: планирование деятельности. Коммуникативные: обсуждение идей, согласование решений. |
7. Физкультминутка (2 мин) | Проводит короткую физкультминутку в формате “программирование движений человека”, где обучающиеся выполняют движения по определенному алгоритму. | Выполняют упражнения, демонстрируя понимание алгоритма координации движений. | Регулятивные: саморегуляция. | |
8. Практическая работа: программирование и отладка (25 мин) | Организует процесс программирования и отладки многоагентной системы: - Консультирует по вопросам реализации алгоритмов - Помогает в настройке коммуникационных модулей - Обращает внимание на типичные ошибки синхронизации - Организует промежуточное тестирование системы - Стимулирует к поиску оптимальных решений Отмечает удачные технические и алгоритмические решения. |
Программируют роботов для совместной работы: - Пишут код для каждого робота системы - Реализуют протоколы коммуникации между роботами - Программируют алгоритмы принятия решений - Тестируют работу отдельных узлов системы - Выполняют отладку системы и устраняют ошибки - Оптимизируют алгоритмы по результатам тестов |
Навыки программирования многоагентных систем. Умение реализовывать алгоритмы синхронизации и коммуникации. Практические навыки отладки системы взаимодействующих роботов. |
Познавательные: применение знаний на практике, логическое мышление. Регулятивные: контроль, коррекция, оптимизация. Коммуникативные: взаимодействие в группе, распределение обязанностей. |
9. Тестирование и финальная подготовка (10 мин) | Организует тестирование систем на специальных полигонах: - Предлагает различные сценарии проверки - Контролирует выполнение задачи группой роботов - Отмечает особенности работы каждой системы - Помогает в подготовке презентации результатов |
Проводят финальное тестирование системы: - Запускают группу роботов на совместное выполнение задачи - Анализируют результаты тестирования - Вносят финальные корректировки в программу - Готовятся к демонстрации и презентации своего решения |
Умение тестировать и оптимизировать работу многоагентной системы. Навыки оценки эффективности совместной работы роботов. |
Регулятивные: оценка результатов, коррекция. Познавательные: анализ эффективности решения. Коммуникативные: согласование действий. |
10. Демонстрация результатов (15 мин) | Организует демонстрацию результатов работы групп: - Предоставляет каждой группе возможность продемонстрировать работу своей системы - Предлагает всем учащимся наблюдать за работой систем - Задает вопросы по алгоритмам и особенностям реализации - Отмечает достоинства каждого решения |
Демонстрируют работу своей многоагентной системы: - Кратко представляют концепцию решения - Запускают группу роботов на выполнение задачи - Комментируют процесс координации и взаимодействия - Отвечают на вопросы учителя и одноклассников |
Умение представлять и объяснять работу сложной робототехнической системы. Понимание принципов взаимодействия роботов в многоагентной системе. |
Коммуникативные: представление результатов, аргументация. Познавательные: анализ практического опыта. Личностные: уверенность в представлении результатов. |
11. Обсуждение и анализ результатов (5 мин) | Организует обсуждение продемонстрированных решений: - Предлагает сравнить различные подходы к решению задач - Акцентирует внимание на особенно удачных алгоритмических идеях - Помогает выявить факторы, влияющие на эффективность координации - Подчеркивает связь с реальными применениями многоагентных систем |
Участвуют в обсуждении результатов: - Анализируют достоинства и недостатки различных решений - Сравнивают эффективность разных подходов к координации - Формулируют выводы о факторах успешного взаимодействия роботов - Соотносят результаты с реальными задачами робототехники |
Понимание факторов, влияющих на эффективность многоагентных систем. Умение анализировать и сравнивать различные подходы к решению задач. |
Познавательные: сравнение, обобщение, анализ. Коммуникативные: участие в дискуссии, уважение к мнению других. |
12. Рефлексия и подведение итогов (5 мин) | Организует рефлексию с использованием метода “Светофор”+: - Зеленый: что получилось хорошо - Желтый: что можно улучшить - Красный: что вызвало затруднения - Плюс: что взять на заметку на будущее Подводит итоги урока. Оценивает работу групп по заявленным критериям. |
Участвуют в рефлексии: - Оценивают успешность выполнения задачи - Анализируют качество командной работы - Выявляют проблемные моменты и возможные пути улучшения - Фиксируют полезные идеи для будущих проектов |
Регулятивные: оценка результатов своей деятельности. Познавательные: рефлексия. Личностные: самоанализ, критическое мышление. |
|
13. Домашнее задание (3 мин) | Объясняет домашнее задание: 1. Обязательная часть: составить отчет по выполненной работе с описанием алгоритмов координации и анализом результатов 2. Творческая часть (по желанию): предложить улучшенный алгоритм для решения задачи или идею для нового проекта с использованием группы роботов |
Записывают домашнее задание. Задают уточняющие вопросы. |
Регулятивные: планирование самостоятельной работы. |
Задача: Организовать группу из 2-3 роботов для транспортировки крупного или тяжелого объекта из пункта А в пункт Б с преодолением препятствий. Требования:
- Роботы должны поддерживать синхронизацию движения при перемещении груза
- Необходимо распределить роли (лидер, последователи)
- Реализовать обмен информацией о скорости движения и направлении
- Обеспечить механизм коррекции при отклонении от курса
Задача: Организовать группу из 3-4 роботов для эффективного картографирования неизвестной территории. Требования:
- Разделить территорию на сектора для исследования
- Реализовать алгоритм распределения секторов между роботами
- Обеспечить обмен информацией о найденных объектах или препятствиях
- Предусмотреть перераспределение задач при выходе из строя одного из роботов
Задача: Организовать группу из 2-3 роботов для сортировки объектов разных типов (цвет, размер, форма) по соответствующим зонам. Требования:
- Распределить роли между роботами (сканер, транспортировщик, сортировщик)
- Реализовать обмен информацией о найденных объектах
- Обеспечить координацию движения для избежания столкновений
- Оптимизировать маршруты для минимизации времени сортировки
Задача: Организовать группу из 3-5 роботов для построения заданной геометрической фигуры или конструкции. Требования:
- Разбить задачу на подзадачи для каждого робота
- Реализовать алгоритм позиционирования роботов относительно друг друга
- Обеспечить синхронизацию этапов построения
- Предусмотреть механизм коррекции при отклонении от плана
// Код для робота-лидера
function leaderBehavior() {
while (not reachedGoal()) {
// Определение маршрута
path = calculatePath();
// Отправка информации о маршруте последователям
broadcast("PATH_UPDATE", path);
// Движение по маршруту
moveAlongPath(path);
// Ожидание подтверждения от последователей
waitForAcknowledgement();
}
// Сигнал о завершении задачи
broadcast("TASK_COMPLETED");
}
// Код для робота-последователя
function followerBehavior() {
while (not taskCompleted()) {
// Прослушивание сообщений от лидера
message = listen();
if (message.type == "PATH_UPDATE") {
// Расчет своего маршрута относительно лидера
myPath = calculateRelativePath(message.path);
// Движение по маршруту
moveAlongPath(myPath);
// Подтверждение выполнения
send("ACKNOWLEDGE", leader);
} else if (message.type == "TASK_COMPLETED") {
// Завершение работы
break;
}
}
}
// Разделение территории между n роботами
function divideTerritory(territory, n) {
// Разбиение территории на n примерно равных секторов
sectors = splitIntoSectors(territory, n);
// Назначение секторов роботам
for (i = 0; i < n; i++) {
assign(robots[i], sectors[i]);
broadcast("ASSIGNMENT", {robotId: i, sector: sectors[i]});
}
// Мониторинг выполнения задачи
while (not allSectorsExplored()) {
// Если один из роботов вышел из строя
if (robotFailure(robotId)) {
// Перераспределение оставшейся территории
remainingSectors = getRemainingSectors();
activeRobots = getActiveRobots();
newSectors = redistributeSectors(remainingSectors, activeRobots);
// Отправка новых заданий
for (robot in activeRobots) {
send("NEW_ASSIGNMENT", {sector: newSectors[robot]}, robot);
}
}
}
}
// Предотвращение столкновений между роботами
function collisionAvoidance() {
while (true) {
// Определение своей позиции и направления
myPosition = getPosition();
myDirection = getDirection();
// Оповещение других роботов
broadcast("POSITION_UPDATE", {position: myPosition, direction: myDirection});
// Получение данных о позициях других роботов
otherRobots = receivePositions();
// Проверка потенциальных столкновений
for (robot in otherRobots) {
if (willCollide(myPosition, myDirection, robot.position, robot.direction)) {
// Определение приоритета
if (hasPriority(myself, robot)) {
// Продолжить движение
continue;
} else {
// Уступить дорогу
avoidCollision(robot);
}
}
}
// Пауза перед следующей проверкой
delay(CHECK_INTERVAL);
}
}
[Общий канал связи]
/ | \
/ | \
[Робот 1] [Робот 2] [Робот 3]
/ | \ / | \ / | \
/ | \ / | \ / | \
Сенсоры | Моторы | Моторы | Моторы
| | |
Контроллер Контроллер Контроллер
Алгоритмическая часть (0-5 баллов):
- Эффективность распределения ролей между роботами (0-1)
- Оптимальность алгоритма координации действий (0-2)
- Наличие механизмов обработки нештатных ситуаций (0-1)
- Масштабируемость решения (возможность добавления роботов) (0-1)
Техническая реализация (0-5 баллов):
- Корректность программного кода (0-1)
- Надежность системы коммуникации (0-2)
- Точность выполнения роботами своих задач (0-1)
- Оптимизация ресурсов (энергии, времени, перемещений) (0-1)
Выполнение задачи (0-5 баллов):
- Успешность решения поставленной задачи (0-2)
- Время выполнения задачи (0-1)
- Устойчивость к внешним факторам (0-1)
- Общая эффективность работы системы (0-1)
Демонстрация и защита (0-5 баллов):
- Качество презентации решения (0-1)
- Понимание принципов работы созданной системы (0-2)
- Ответы на вопросы (0-1)
- Анализ сильных и слабых сторон решения (0-1)
Максимальный балл: 20 Шкала перевода в оценку:
- 18-20 баллов - “5”
- 14-17 баллов - “4”
- 10-13 баллов - “3”
- менее 10 баллов - “2”
- Название проекта (многоагентной системы)
- Цель и задачи (что должна выполнять система)
- Состав системы (количество роботов и их функциональное назначение)
- Распределение ролей (специализация каждого робота)
- Алгоритмы координации (описание используемых алгоритмов с блок-схемами)
- Система коммуникации (протоколы обмена данными)
- Результаты тестирования (успехи, проблемы и их решения)
- Перспективы развития (как можно улучшить систему)
- Выводы (что удалось реализовать, какие знания были получены)
Фамилия, имя: _________________________
Группа: _______
ЗЕЛЕНЫЙ (что получилось хорошо):
_________________________________________________
_________________________________________________
ЖЕЛТЫЙ (что можно улучшить):
_________________________________________________
_________________________________________________
КРАСНЫЙ (что вызвало затруднения):
_________________________________________________
_________________________________________________
ПЛЮС (что взять на заметку на будущее):
_________________________________________________
_________________________________________________
Моя оценка нашей работы на уроке (от 1 до 5): _______