Основы робототехники Сергей Александрович Филиппов Президентский Физико-математический лицей 239.

Презентация:



Advertisements
Похожие презентации
Программирование в среде RobotC Сергей Александрович Филиппов Президентский Физико-математический лицей 239.
Advertisements

Манипулятор. Ханойские башни Сергей Александрович Филиппов Санкт-Петербургский Физико-математический лицей 239.
Алгоритмы управления мобильным LEGO-роботом. Движение по линии Сергей Александрович Филиппов, Санкт-Петербургский Физико-математический лицей 239.
Начала программирования Занятие 16. Пошаговая детализация алгоритма. Подпрограммы-процедуры.
Исполнитель Робот СКИ, обстановка. Обстановка Робота Исполнитель Робот существует в некоторой обстановке прямоугольном поле, разбитом на клетки, между.
1 1 В курсе используется Си подобная система программирования «Исполнители 2.5» Автор: Поляков К.Ю.
Основные типы алгоритмических структур. Линейный алгоритм ( следование ) Алгоритм, в котором команды выполняются последовательно одна за другой, называется.
Методика решения заданий типа «Робот в лабиринте» Жукова Т.В. МБОУ Заречнская СОШ.
Что такое алгоритм? Исполнитель алгоритма? Каких исполнителей вы знайте? Какие исполнители называются неформальными, какие формальными? Что называется.
9 класс Урок 2 Цели урока: образовательные – повторить и закрепить понятия алгоритма, исполнителя, свойства и способы описания алгоритмов, типы алгоритмических.
Начала программирования Занятие 18. Пошаговая детализация алгоритма. Подпрограммы-функции.
Исполнитель РОБОТ Повторение Решение задач Примеры задач.
Исполнитель Робот СКИ, обстановкаИсполнитель Робот СКИ, обстановка.
Учитель : Майорова Т.Г.. Повторение: Алгоритм – описание последовательности действий (план). Исполнение которых приводит к решению поставленной задачи.
Алгоритмы Последовательность команд по управлению объектом, выполнение которой приводит к достижению заранее поставленной цели, называется алгоритмом управления.
Исполнитель Робот СКИ, обстановка. Обстановка Робота Исполнитель Робот существует в некоторой обстановке прямоугольном поле, разбитом на клетки, между.
Циклический алгоритм (Повтор). Циклический алгоритм – Циклический алгоритм – это алгоритм, некоторые шаги которого повторяются N-количество раз. Тело.
Учитель : Майорова Т.Г.. Повторение: Алгоритм – описание последовательности действий (план). Исполнение которых приводит к решению поставленной задачи.
Условный оператор среда Исполнители Учитель информатики МБОУ СОШ 1 с. Александров-Гай Саратовской области Гуреева Е.А.
Напишите блок-схему алгоритма у=3х 2 при х>b и у=2х 2 при других х.
Транксрипт:

Основы робототехники Сергей Александрович Филиппов Президентский Физико-математический лицей 239

План занятия Программирование и управление Команды высокого и низкого уровня Среда Ceebot Высокоуровневое управление Базовые команды перемещения Операции с объектами Поиск выход из лабиринта Управление роботом на низком уровне Регуляторы Ралли по коридору Полеты

Что такое робот? Устройство Управления (контроллер) Датчики Исполнительное устройство (моторы) Окружающая среда (по отношению к «телу» робота)

Программирование и управление Программирование Алгоритмические структуры Жесткое принятие решений «Таймерные модели» Управление Циклическое воздействие Высокая частота Корректировка по отклонению

Команды низкого уровня Команды действия Выполняются мгновенно Сразу передают управление следующей команде Их последствия ограничиваются только аналогичными командами и концом программы Примеры: включить моторы Команды ожидания Не выполняют никаких физических действий Останавливают следование программы до совершения определенного события Передают управление следующей команде после наступления ожидаемого события Примеры: ждать время, цикл «пока»

Команды высокого уровня Понятны начинающим Имеют встроенный алгоритм работы с использованием датчиков робота Не предполагают циклического управления с высокой частотой Примеры: Проехать вперед 1 метр Повернуться на месте на 90° move(a); // вперед a метров turn(b); // налево b градусов

Среда программирования Ceebot Язык CBot, подобный C++ Трехмерная среда исполнителей Операции с объектами Гонки, полеты и воздушные бои Футбол роботов Управление на низком и высоком уровне

Использование РАДАРА Датчик высокого уровня Тип object Категории объектов: Titanium, Converter, … Объявляем переменную и находим объект object ruda, home; ruda=radar(TitaniumOre); goto(ruda.position); grab(); home=radar(Converter); goto(home.position); drop();

Параметры команды RADAR Radar ( Категория объекта, Направление радара (в градусах), Угол обзора, Минимальное расстояние обзора, Максимальное расстояние обзора )

Применение РАДАРА while(radar(TitaniumOre)!=null) { // Переместить руду в конвертер... while(radar(Titanium,0,30)==null); // Взять титановый куб из конвертера... }

Тип Point Сложный тип из 3 значений типа float: x,y,z Обращение через точку Соответствует свойству объекта position point a; a=this.position; // позиция робота goto(ruda.position); grab(); a.x=a.x+2; // смещение на 2 метра goto(a);

Обход лабиринта ПОКА (не база) { ЕСЛИ (справа_свободно) { вправо(90); вперед(1); } ИНАЧЕ ЕСЛИ (спереди_свободно) вперед(1); ИНАЧЕ влево(90); } while(radar(GoalArea,0,360,0,1)==null) { if(radar(Barrier,-90,1,0,5)==null) { turn(-90); move(5); } else if(radar(Barrier,0,1,0,5)==null) move(5); else turn(90); }

Ралли по коридору Следование по ориентирам (флаги, мины) Низкоуровневые команды motor (mB, mC); // -1mB1, -1mC1 drive (v, u); // -1v1, -1u1 Ориентация по стене Релейный регулятор П-регулятор ПД-регулятор Ориентация по двум стенам

Ориентация по флагам while(true) { object item=radar(BlueFlag,...); float d=direction(item.position); turn(d); float dist=distance(this.position, item.position); move(dist); }

Низкоуровневое управление моторами while(true) { object item=radar(BlueFlag,...); float d=direction(item.position); float v=1; //Скорость float u=d/180; //Управляющее воздействие drive(v, u); wait(0.01); }

Движение вдоль стены на реле while(this.position.x10) // Если до стены больше 10 м drive(1, 0.5); else drive(1, -0.5); wait(0.01); }

Движение вдоль стены на П-регуляторе while(this.position.x

Движение вдоль стены на ПД- регуляторе с двумя датчиками float eold=0, k1=0.1, k2=0.5, k3=0.2; while(this.position.x

Защита от потери стены float s1, s2; while(this.position.x

Полеты while(radar(AlienWasp)!=null) { object item=radar(AlienWasp); float alpha=direction(item.position); float dist=distance(item.position,this.position); float dz=item.position.z-this.position.z; jet(dz/5); drive((dist)/5,alpha/3); if ((dist

Благодарю за внимание! Сергей Александрович Филиппов Президентский Физико-математический лицей 239 Санкт-Петербург