Skip to main content

20. Практическая работа «Программирование адаптивного поведения робота»

Технологическая карта урока

ЦЕЛЕВОЙ БЛОК

Модуль: Интеллектуальные системы управления в робототехнике

Тема урока: 20. Практическая работа «Программирование адаптивного поведения робота»

Цель урока: Сформировать практические навыки разработки и программирования алгоритмов, позволяющих роботу адаптировать своё поведение к изменяющимся условиям окружающей среды.

Планируемые результаты:

Предметные:

  • Знать принципы организации адаптивного поведения робота
  • Понимать методы обработки данных от датчиков для принятия решений
  • Уметь программировать алгоритмы, обеспечивающие адаптацию робота к условиям среды
  • Владеть навыками тестирования и оптимизации адаптивных алгоритмов

Метапредметные:

  • Регулятивные УУД: умение планировать алгоритм адаптивного поведения, анализировать результаты, корректировать параметры
  • Познавательные УУД: развитие системного мышления, моделирование процессов адаптации по аналогии с живой природой
  • Коммуникативные УУД: умение работать в команде над сложным алгоритмом, распределять роли, обсуждать проблемы и решения

Личностные:

  • Формирование инженерного мышления и исследовательского подхода
  • Развитие интереса к биоподобным системам и искусственному интеллекту
  • Воспитание настойчивости при решении сложных задач

ИНСТРУМЕНТАЛЬНЫЙ БЛОК

Задачи урока:

  1. Актуализировать знания об интеллектуальных алгоритмах в робототехнике
  2. Познакомить с принципами адаптивного поведения в природе и робототехнике
  3. Научить разрабатывать алгоритмы адаптации к изменяющимся условиям
  4. Организовать практическую работу по программированию и тестированию адаптивного поведения робота
  5. Развить навыки анализа данных для корректировки поведения робота

Тип урока: Практическая работа

Учебно-методическое и материально-техническое обеспечение:

  • Робототехнические наборы с контроллерами и моторами (по количеству групп)
  • Набор датчиков (касания, света/цвета, ультразвуковые, гироскопы)
  • Компьютеры с установленной средой программирования для роботов
  • Тестовые полигоны с различными типами поверхностей или препятствий
  • Инструкционные карты по разработке адаптивных алгоритмов
  • Примеры программного кода для адаптивного управления
  • Секундомеры для измерения времени выполнения задачи
  • Таблицы для сбора и анализа данных эксперимента

ОРГАНИЗАЦИОННО-ДЕЯТЕЛЬНОСТНЫЙ БЛОК

Образовательные технологии: Проектная деятельность, проблемное обучение, работа в малых группах, эксперимент, моделирование

Межпредметные связи:

  • Математика: реализация статистических методов обработки данных от датчиков, усреднение величин, фильтрация шумов
  • Биология: моделирование адаптивного поведения по аналогии с живыми организмами, биомиметика, эволюционный подход
  • Информатика: алгоритмы с обратной связью, обработка массивов данных, оптимизация
  • Физика: механика движения, трение на различных поверхностях, сенсорные системы
Этап урока Деятельность учителя Деятельность ученика Планируемые результаты предметные Планируемые результаты УУД
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. Творческое задание (по желанию): предложить усовершенствованный алгоритм адаптации для выбранного типа робота или придумать новую задачу, требующую адаптивного поведения
Записывают домашнее задание.

Задают уточняющие вопросы.
Регулятивные: планирование самостоятельной работы.

Дополнительные материалы:

Варианты практических заданий:

Вариант 1: “Адаптация к различным типам поверхностей”

Задача: Разработать робота, который адаптирует скорость и мощность моторов к различным типам поверхностей для поддержания стабильного движения. Необходимое оборудование:

  • Датчик света/цвета (для определения типа поверхности)
  • Гироскоп или акселерометр (для измерения отклонений от прямолинейного движения)
  • Энкодеры моторов (для измерения фактической скорости) Механизм адаптации:
  1. Робот собирает данные о соотношении между заданной мощностью моторов и фактической скоростью на разных поверхностях
  2. На основе этих данных робот корректирует мощность моторов для поддержания заданной скорости
  3. При переходе на новую поверхность робот определяет её тип и применяет оптимальные настройки

Вариант 2: “Адаптивное преодоление препятствий”

Задача: Создать робота, который адаптирует свою стратегию к различным типам препятствий. Необходимое оборудование:

  • Ультразвуковой датчик расстояния
  • Датчики касания
  • Гироскоп Механизм адаптации:
  1. Робот собирает данные о препятствиях (размер, форма, расстояние)
  2. На основе этих данных выбирает оптимальную стратегию (объезд, преодоление, отступление)
  3. Анализирует успешность выбранной стратегии и корректирует её для похожих препятствий в будущем

Вариант 3: “Адаптация к изменению освещенности”

Задача: Разработать робота-сортировщика, который адаптирует свои алгоритмы распознавания цветов к различным условиям освещения. Необходимое оборудование:

  • Датчик цвета
  • Датчик освещенности Механизм адаптации:
  1. Робот калибрует датчик цвета при разных условиях освещения
  2. Создает таблицу соответствия показаний датчика реальным цветам при разном освещении
  3. При изменении освещенности автоматически корректирует пороговые значения для распознавания

Вариант 4: “Адаптация энергопотребления”

Задача: Создать робота, который оптимизирует своё энергопотребление в зависимости от выполняемой задачи и условий среды. Необходимое оборудование:

  • Датчик тока/напряжения
  • Различные сенсоры для определения условий среды Механизм адаптации:
  1. Робот измеряет энергопотребление при разных режимах работы
  2. Анализирует эффективность выполнения задачи при разных уровнях мощности
  3. Автоматически выбирает оптимальный режим работы, балансирующий между энергопотреблением и эффективностью

Пример алгоритма адаптации к типу поверхности:

// Алгоритм адаптации скорости робота к типу поверхности

// Глобальные переменные
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;
}

Биологические аналогии адаптивного поведения:

Механизм в живой природе Аналог в робототехнике Примеры применения
Рефлекторная адаптация Реактивная корректировка параметров Обход препятствий, поддержание равновесия
Обучение через повторение Накопление и анализ данных о результатах Оптимизация траектории движения
Условные рефлексы Коррекция алгоритмов на основе прошлого опыта Распознавание типов поверхностей
Нейропластичность Изменение весовых коэффициентов в алгоритме Адаптация к изменению условий
Гомеостаз Поддержание ключевых параметров в заданных пределах Регулирование скорости, энергопотребления
Групповая адаптация Обмен данными между роботами Коллективное картографирование местности

Методы статистической обработки данных для реализации адаптивного поведения:

  1. Скользящее среднее

    // Функция расчета скользящего среднего
    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;
    }
    
  2. Фильтрация выбросов

    // Функция фильтрации выбросов (медианный фильтр)
    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];
    }
    
  3. Экспоненциальное сглаживание

    // Функция экспоненциального сглаживания
    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): _______________