20. Практическая работа «Программирование адаптивного поведения робота»
Модуль: Интеллектуальные системы управления в робототехнике
Тема урока: 20. Практическая работа «Программирование адаптивного поведения робота»
Цель урока: Сформировать практические навыки разработки и программирования алгоритмов, позволяющих роботу адаптировать своё поведение к изменяющимся условиям окружающей среды.
Планируемые результаты:
Предметные:
- Знать принципы организации адаптивного поведения робота
- Понимать методы обработки данных от датчиков для принятия решений
- Уметь программировать алгоритмы, обеспечивающие адаптацию робота к условиям среды
- Владеть навыками тестирования и оптимизации адаптивных алгоритмов
Метапредметные:
- Регулятивные УУД: умение планировать алгоритм адаптивного поведения, анализировать результаты, корректировать параметры
- Познавательные УУД: развитие системного мышления, моделирование процессов адаптации по аналогии с живой природой
- Коммуникативные УУД: умение работать в команде над сложным алгоритмом, распределять роли, обсуждать проблемы и решения
Личностные:
- Формирование инженерного мышления и исследовательского подхода
- Развитие интереса к биоподобным системам и искусственному интеллекту
- Воспитание настойчивости при решении сложных задач
Задачи урока:
- Актуализировать знания об интеллектуальных алгоритмах в робототехнике
- Познакомить с принципами адаптивного поведения в природе и робототехнике
- Научить разрабатывать алгоритмы адаптации к изменяющимся условиям
- Организовать практическую работу по программированию и тестированию адаптивного поведения робота
- Развить навыки анализа данных для корректировки поведения робота
Тип урока: Практическая работа
Учебно-методическое и материально-техническое обеспечение:
- Робототехнические наборы с контроллерами и моторами (по количеству групп)
- Набор датчиков (касания, света/цвета, ультразвуковые, гироскопы)
- Компьютеры с установленной средой программирования для роботов
- Тестовые полигоны с различными типами поверхностей или препятствий
- Инструкционные карты по разработке адаптивных алгоритмов
- Примеры программного кода для адаптивного управления
- Секундомеры для измерения времени выполнения задачи
- Таблицы для сбора и анализа данных эксперимента
Образовательные технологии: Проектная деятельность, проблемное обучение, работа в малых группах, эксперимент, моделирование
Межпредметные связи:
- Математика: реализация статистических методов обработки данных от датчиков, усреднение величин, фильтрация шумов
- Биология: моделирование адаптивного поведения по аналогии с живыми организмами, биомиметика, эволюционный подход
- Информатика: алгоритмы с обратной связью, обработка массивов данных, оптимизация
- Физика: механика движения, трение на различных поверхностях, сенсорные системы
Этап урока | Деятельность учителя | Деятельность ученика | Планируемые результаты предметные | Планируемые результаты УУД |
---|---|---|---|---|
1. Организационный момент (2 мин) | Приветствует учащихся, проверяет готовность к уроку. Организует деление на рабочие группы по 2-3 человека. | Готовятся к уроку, распределяются по группам. | Регулятивные: самоорганизация, готовность к работе в группе | |
2. Актуализация знаний (5 мин) | Организует фронтальную беседу по вопросам: - Что такое интеллектуальные алгоритмы в робототехнике? - В чем разница между обычным и адаптивным поведением робота? - Какие примеры адаптивного поведения в живой природе вы можете привести? Демонстрирует короткий видеоролик о роботах с адаптивным поведением. |
Участвуют в беседе, отвечают на вопросы. Приводят примеры адаптивного поведения в природе (приспособление животных к среде обитания, условный рефлекс, обучение на опыте). Просматривают видеоматериал. |
Активизация знаний об интеллектуальных алгоритмах управления. Понимание концепции адаптивного поведения. |
Познавательные: актуализация имеющихся знаний, установление межпредметных связей с биологией. Коммуникативные: участие в диалоге. |
3. Постановка цели и мотивация (3 мин) | Формулирует цель практической работы: “Сегодня мы разработаем и запрограммируем алгоритм, который позволит роботу самостоятельно адаптироваться к различным условиям окружающей среды”. Объясняет практическую значимость адаптивных алгоритмов в современной робототехнике. Обсуждает примеры применения (роботы-пылесосы, беспилотные автомобили, промышленные манипуляторы). |
Осмысливают цель работы. Задают уточняющие вопросы. Приводят собственные примеры, где требуется адаптация робота. |
Регулятивные: целеполагание. Личностные: мотивация к практической деятельности. |
|
4. Изучение принципов адаптивного поведения (10 мин) | Объясняет основные принципы создания адаптивного поведения робота: 1. Сбор данных об окружающей среде: - Регулярное измерение параметров с помощью датчиков - Создание базы данных о различных условиях 2. Анализ полученных данных: - Выявление закономерностей и паттернов - Статистическая обработка (среднее значение, отклонение) - Фильтрация случайных выбросов 3. Корректировка параметров работы: - Изменение скорости движения - Подстройка мощности моторов - Изменение чувствительности датчиков - Выбор оптимальной стратегии поведения 4. Оценка результата и обратная связь: - Сравнение с целевыми показателями - Корректировка алгоритма при необходимости Подчеркивает межпредметную связь с математикой при объяснении статистических методов. |
Воспринимают информацию. Фиксируют основные принципы адаптивного поведения. Задают вопросы. Устанавливают связь с математическими методами обработки данных. |
Знание принципов создания адаптивных алгоритмов. Понимание основных этапов адаптации робота к условиям среды. Представление о методах статистической обработки данных. |
Познавательные: восприятие и структурирование новой информации. Регулятивные: понимание логики адаптивного процесса. |
5. Демонстрация примера адаптивного поведения (7 мин) | Демонстрирует работу робота с простым адаптивным алгоритмом (например, подстройка скорости движения по линии в зависимости от яркости и контрастности разметки). Объясняет структуру алгоритма: - Сбор данных о контрастности - Настройка параметров движения - Оценка эффективности Комментирует, как робот корректирует свое поведение при изменении условий. Проводит параллели с адаптивным поведением в природе (межпредметная связь с биологией). |
Наблюдают за демонстрацией работы робота. Анализируют изменения в поведении робота при разных условиях. Задают вопросы о принципах работы адаптивного алгоритма. Устанавливают аналогии с биологическими системами. |
Понимание практической реализации адаптивного алгоритма. Умение анализировать изменения в поведении робота. |
Познавательные: наблюдение, анализ, установление аналогий. Коммуникативные: формулирование вопросов. |
6. Инструктаж по практической работе (5 мин) | Объясняет задание для практической работы: “Создание робота, который способен адаптироваться к различным типам поверхностей или препятствий”. Предлагает варианты адаптивного поведения на выбор: 1. Адаптация скорости движения к типу поверхности 2. Адаптация стратегии объезда препятствий 3. Адаптация к изменению освещенности Объясняет этапы выполнения работы: 1. Сборка робота с необходимыми датчиками 2. Разработка базового алгоритма 3. Добавление элементов адаптивности 4. Тестирование и оптимизация 5. Сбор и анализ данных Раздает инструкционные карты. |
Воспринимают задание. Выбирают вариант адаптивного поведения. Изучают инструкционные карты. Распределяют роли в группе. Задают уточняющие вопросы. |
Регулятивные: принятие учебной задачи, планирование. Коммуникативные: распределение ролей в группе. |
|
7. Физкультминутка (2 мин) | Проводит короткую физкультминутку с элементами имитации адаптивного поведения (например, движения с разной скоростью в зависимости от команды). | Выполняют физические упражнения. | Регулятивные: саморегуляция. | |
8. Практическая работа: сборка робота и разработка алгоритма (15 мин) | Консультирует группы в процессе сборки робота и разработки алгоритма: - Помогает выбрать оптимальную конструкцию робота - Подсказывает, какие датчики лучше использовать - Обращает внимание на правильное размещение датчиков - Помогает спланировать алгоритм адаптации Контролирует работу групп, отвечает на вопросы. |
Работают в группах над созданием робота: - Собирают конструкцию робота - Устанавливают необходимые датчики - Разрабатывают схему алгоритма - Планируют механизм адаптации - Определяют параметры, которые будут корректироваться - Создают базовую программу |
Умение выбирать и собирать конструкцию робота для решения задачи адаптации. Навыки разработки адаптивных алгоритмов. |
Познавательные: моделирование, разработка алгоритма. Коммуникативные: взаимодействие в группе. Регулятивные: планирование деятельности. |
9. Практическая работа: программирование и тестирование (20 мин) | Консультирует группы в процессе программирования: - Помогает реализовать алгоритмы статистической обработки данных - Подсказывает методы корректировки параметров - Обращает внимание на обработку исключительных ситуаций Организует тестирование на различных поверхностях или с разными препятствиями: - Предлагает различные условия для тестирования - Помогает собирать и анализировать данные - Консультирует по оптимизации алгоритмов Напоминает о необходимости сбора данных для анализа. |
Программируют адаптивное поведение робота: - Реализуют алгоритмы сбора данных от датчиков - Создают статистическую обработку данных - Программируют механизм корректировки параметров - Добавляют функции оценки эффективности Тестируют работу робота: - Проверяют на различных поверхностях/препятствиях - Собирают данные о работе - Анализируют успешность адаптации - Оптимизируют алгоритм - Документируют результаты |
Умение программировать адаптивные алгоритмы. Навыки тестирования и оптимизации программы. Умение анализировать данные и вносить корректировки. |
Познавательные: реализация алгоритмов, анализ данных. Регулятивные: тестирование, коррекция, оптимизация. Личностные: настойчивость при решении проблем. |
10. Сбор и анализ результатов (5 мин) | Организует систематизацию полученных результатов: - Предлагает заполнить таблицу результатов - Помогает проанализировать эффективность адаптации - Обращает внимание на выявление закономерностей - Стимулирует к формулированию выводов |
Систематизируют результаты: - Заполняют таблицу с данными - Оценивают эффективность адаптации - Определяют условия, при которых адаптация наиболее успешна - Формулируют выводы |
Умение систематизировать и анализировать результаты экспериментов. Навыки оценки эффективности адаптивных алгоритмов. |
Познавательные: анализ данных, выявление закономерностей. Регулятивные: оценка результатов. |
11. Демонстрация результатов (15 мин) | Организует демонстрацию работы роботов с адаптивным поведением: - Предоставляет каждой группе возможность продемонстрировать своего робота - Создает различные условия для демонстрации адаптации - Задает вопросы о механизме адаптации - Стимулирует обсуждение результатов |
Демонстрируют работу своих роботов: - Показывают адаптивное поведение в различных условиях - Объясняют принцип работы своего алгоритма - Комментируют процесс адаптации - Отвечают на вопросы - Участвуют в обсуждении |
Умение демонстрировать и объяснять работу адаптивного алгоритма. Навыки анализа эффективности адаптивного поведения. |
Коммуникативные: представление результатов, участие в дискуссии. Познавательные: анализ, сравнение различных решений. |
12. Обсуждение результатов (5 мин) | Организует обсуждение результатов практической работы: - Предлагает сравнить различные подходы к адаптации - Обсуждает преимущества и недостатки разных решений - Помогает выявить факторы, влияющие на эффективность адаптации - Проводит параллели с адаптацией в живых организмах |
Участвуют в обсуждении: - Сравнивают различные алгоритмы адаптации - Анализируют сильные и слабые стороны своего решения - Предлагают идеи для улучшения - Устанавливают аналогии с биологическими системами |
Понимание факторов, влияющих на эффективность адаптивного поведения. Умение анализировать различные подходы к решению задачи. |
Познавательные: сравнение, обобщение, установление аналогий. Коммуникативные: участие в дискуссии, аргументация. |
13. Рефлексия и подведение итогов (5 мин) | Организует рефлексию с использованием метода “РОП” (Результат, Особенности, Применение): - Какого результата достигла ваша группа? - Какие особенности адаптивного поведения вы реализовали? - Где можно применить разработанный вами алгоритм? Подводит итоги урока. Оценивает работу групп по заранее объявленным критериям. |
Участвуют в рефлексии: - Оценивают достигнутые результаты - Анализируют особенности своего решения - Предлагают возможные применения - Делятся впечатлениями от работы |
Регулятивные: оценка собственной деятельности. Познавательные: рефлексия. Личностные: осознание применимости полученных знаний и навыков. |
|
14. Домашнее задание (3 мин) | Объясняет домашнее задание: 1. Обязательная часть: подготовить отчет о практической работе, включающий описание алгоритма адаптации и анализ результатов 2. Творческое задание (по желанию): предложить усовершенствованный алгоритм адаптации для выбранного типа робота или придумать новую задачу, требующую адаптивного поведения |
Записывают домашнее задание. Задают уточняющие вопросы. |
Регулятивные: планирование самостоятельной работы. |
Задача: Разработать робота, который адаптирует скорость и мощность моторов к различным типам поверхностей для поддержания стабильного движения. Необходимое оборудование:
- Датчик света/цвета (для определения типа поверхности)
- Гироскоп или акселерометр (для измерения отклонений от прямолинейного движения)
- Энкодеры моторов (для измерения фактической скорости) Механизм адаптации:
- Робот собирает данные о соотношении между заданной мощностью моторов и фактической скоростью на разных поверхностях
- На основе этих данных робот корректирует мощность моторов для поддержания заданной скорости
- При переходе на новую поверхность робот определяет её тип и применяет оптимальные настройки
Задача: Создать робота, который адаптирует свою стратегию к различным типам препятствий. Необходимое оборудование:
- Ультразвуковой датчик расстояния
- Датчики касания
- Гироскоп Механизм адаптации:
- Робот собирает данные о препятствиях (размер, форма, расстояние)
- На основе этих данных выбирает оптимальную стратегию (объезд, преодоление, отступление)
- Анализирует успешность выбранной стратегии и корректирует её для похожих препятствий в будущем
Задача: Разработать робота-сортировщика, который адаптирует свои алгоритмы распознавания цветов к различным условиям освещения. Необходимое оборудование:
- Датчик цвета
- Датчик освещенности Механизм адаптации:
- Робот калибрует датчик цвета при разных условиях освещения
- Создает таблицу соответствия показаний датчика реальным цветам при разном освещении
- При изменении освещенности автоматически корректирует пороговые значения для распознавания
Задача: Создать робота, который оптимизирует своё энергопотребление в зависимости от выполняемой задачи и условий среды. Необходимое оборудование:
- Датчик тока/напряжения
- Различные сенсоры для определения условий среды Механизм адаптации:
- Робот измеряет энергопотребление при разных режимах работы
- Анализирует эффективность выполнения задачи при разных уровнях мощности
- Автоматически выбирает оптимальный режим работы, балансирующий между энергопотреблением и эффективностью
// Алгоритм адаптации скорости робота к типу поверхности
// Глобальные переменные
float targetSpeed = 30; // Целевая скорость (см/с)
float currentPower = 50; // Текущая мощность моторов (%)
float surfaceCoefficient = 1.0; // Коэффициент поверхности
int sampleSize = 5; // Размер выборки для усреднения
float samples[5]; // Массив для хранения измерений
int sampleIndex = 0; // Индекс текущего измерения
// Основной цикл
task main() {
// Инициализация
initMotors();
initSensors();
while(true) {
// Движение с текущей мощностью
setMotorPower(currentPower);
// Измерение фактической скорости
float actualSpeed = measureActualSpeed();
// Добавление измерения в массив
samples[sampleIndex] = actualSpeed;
sampleIndex = (sampleIndex + 1) % sampleSize;
// Расчет среднего значения скорости
float averageSpeed = calculateAverage();
// Определение типа поверхности по соотношению мощности и скорости
surfaceCoefficient = identifySurface(averageSpeed, currentPower);
// Корректировка мощности для достижения целевой скорости
currentPower = adjustPower(targetSpeed, surfaceCoefficient);
// Вывод информации на экран
displayData(averageSpeed, currentPower, surfaceCoefficient);
// Пауза перед следующим измерением
sleep(100);
}
}
// Функция расчета среднего значения
float calculateAverage() {
float sum = 0;
for(int i = 0; i < sampleSize; i++) {
sum += samples[i];
}
return sum / sampleSize;
}
// Функция определения типа поверхности
float identifySurface(float speed, float power) {
// Расчет коэффициента поверхности
float coefficient = speed / power;
// Фильтрация выбросов
if(coefficient > 1.5 || coefficient < 0.2) {
return surfaceCoefficient; // Возвращаем предыдущее значение
}
// Обновление коэффициента с небольшим весом для сглаживания
return surfaceCoefficient * 0.8 + coefficient * 0.2;
}
// Функция корректировки мощности
float adjustPower(float target, float coefficient) {
// Расчет необходимой мощности на основе целевой скорости и коэффициента поверхности
float requiredPower = target / coefficient;
// Ограничение значений мощности
if(requiredPower > 100) requiredPower = 100;
if(requiredPower < 20) requiredPower = 20;
return requiredPower;
}
Механизм в живой природе | Аналог в робототехнике | Примеры применения |
---|---|---|
Рефлекторная адаптация | Реактивная корректировка параметров | Обход препятствий, поддержание равновесия |
Обучение через повторение | Накопление и анализ данных о результатах | Оптимизация траектории движения |
Условные рефлексы | Коррекция алгоритмов на основе прошлого опыта | Распознавание типов поверхностей |
Нейропластичность | Изменение весовых коэффициентов в алгоритме | Адаптация к изменению условий |
Гомеостаз | Поддержание ключевых параметров в заданных пределах | Регулирование скорости, энергопотребления |
Групповая адаптация | Обмен данными между роботами | Коллективное картографирование местности |
-
Скользящее среднее
// Функция расчета скользящего среднего float movingAverage(float newValue) { static float values[WINDOW_SIZE]; static int index = 0; static float sum = 0; // Вычитаем старое значение и добавляем новое sum = sum - values[index] + newValue; values[index] = newValue; index = (index + 1) % WINDOW_SIZE; return sum / WINDOW_SIZE; }
-
Фильтрация выбросов
// Функция фильтрации выбросов (медианный фильтр) float medianFilter(float newValue) { static float values[FILTER_SIZE]; static float sortedValues[FILTER_SIZE]; static int index = 0; // Добавляем новое значение в массив values[index] = newValue; index = (index + 1) % FILTER_SIZE; // Копируем значения для сортировки for(int i = 0; i < FILTER_SIZE; i++) { sortedValues[i] = values[i]; } // Простая сортировка (для небольших массивов) for(int i = 0; i < FILTER_SIZE-1; i++) { for(int j = 0; j < FILTER_SIZE-i-1; j++) { if(sortedValues[j] > sortedValues[j+1]) { float temp = sortedValues[j]; sortedValues[j] = sortedValues[j+1]; sortedValues[j+1] = temp; } } } // Возвращаем медианное значение return sortedValues[FILTER_SIZE / 2]; }
-
Экспоненциальное сглаживание
// Функция экспоненциального сглаживания float exponentialSmoothing(float newValue) { static float smoothedValue = 0; static bool firstRun = true; // Инициализация при первом запуске if(firstRun) { smoothedValue = newValue; firstRun = false; return smoothedValue; } // Экспоненциальное сглаживание float alpha = 0.2; // Коэффициент сглаживания (0-1) smoothedValue = alpha * newValue + (1 - alpha) * smoothedValue; return smoothedValue; }
Таблица результатов адаптации робота к различным поверхностям
Группа: _________ Тип робота: __________
|--------------|-----------|-----------|-----------|--------------|--------------|
| Поверхность | Начальная | Начальная | Конечная | Время | Успешность |
| | мощность | скорость | мощность | адаптации | адаптации |
|--------------|-----------|-----------|-----------|--------------|--------------|
| Гладкая | | | | | |
| поверхность | | | | | |
|--------------|-----------|-----------|-----------|--------------|--------------|
| Ковровое | | | | | |
| покрытие | | | | | |
|--------------|-----------|-----------|-----------|--------------|--------------|
| Наклонная | | | | | |
| поверхность | | | | | |
|--------------|-----------|-----------|-----------|--------------|--------------|
| Неровная | | | | | |
| поверхность | | | | | |
|--------------|-----------|-----------|-----------|--------------|--------------|
Выводы о факторах, влияющих на адаптацию:
________________________________________________________________________
________________________________________________________________________
Предложения по улучшению алгоритма:
________________________________________________________________________
________________________________________________________________________
Конструкция робота (0-3 балла):
- Функциональность конструкции (0-1)
- Правильный выбор и размещение датчиков (0-1)
- Устойчивость и надежность (0-1)
Алгоритм адаптации (0-7 баллов):
- Корректность базового алгоритма (0-2)
- Реализация механизма адаптации (0-2)
- Эффективность статистической обработки данных (0-2)
- Наличие защиты от ошибочных измерений (0-1)
Результаты адаптации (0-6 баллов):
- Успешность адаптации к различным условиям (0-2)
- Скорость адаптации (0-1)
- Стабильность работы после адаптации (0-2)
- Сбор и анализ данных (0-1)
Демонстрация и защита (0-4 балла):
- Качество демонстрации адаптивного поведения (0-1)
- Понимание принципов адаптации (0-1)
- Объяснение результатов и выводы (0-1)
- Предложения по улучшению (0-1)
Максимальный балл: 20 Шкала перевода в оценку:
- 18-20 баллов - “5”
- 14-17 баллов - “4”
- 10-13 баллов - “3”
- менее 10 баллов - “2”
Фамилия, имя: _________________________
Группа: _______
Результат:
Чего удалось достичь в ходе практической работы?
_________________________________________________
_________________________________________________
Особенности:
Какие особенности адаптивного поведения вашему роботу удалось реализовать?
_________________________________________________
_________________________________________________
Применение:
Где еще можно применить разработанный вами алгоритм адаптации?
_________________________________________________
_________________________________________________
Чему новому вы научились на этом уроке? _______________________
_________________________________________________
Оцените свой вклад в работу группы (от 1 до 5): _______________