Темы проектов:
1. Робот-пылесос
Исходная постановка задачи:
Построить траекторию (и пройти по ней), которая покрывает всю территорию карты (пропылесосит весь пол).
Исходные данные:
Робот начинает движение около “базы” в неизвестном мире. Строит карту мира и определяет своё местоположение (знает всегда координаты базы относительно себя). Робот знает габариты своего чистящего устройства, исходя из этого должен построить траекторию очистки всей территории.
Ограничения на исходные данные:
- Окружающий мир - такая замкнутая область, из каждой точки которого видно базу (выпуклая область).
- У робота есть лазерный дальномер (нет одометрии).
Усложнения:
- Нет базы (но появляется одометрия), мир может быть произвольным.
2. Искатель сокровищ
Исходная постановка задачи:
Разведать подземелье, найти золото.
Исходные данные:
Робот ищет золото в подземелье. Робот не знает карту подземелья, должен также определять, в какой части подземелья он находится. Необходимо обойти всё подземелье (также предоставить траекторию перемещения) и найти спрятанные сокровища.
Ограничения на исходные данные:
- Окружающий мир состоит из прямых линий (комнаты, коридоры). Участки карты, на которых находятся сокровища отличаются от окружающего мира (например, имеют хаотичную, стостящую не из прямых линий, область).
- У робота есть лазерный дальномер и данные одометрии.
Усложнения:
- В подземельях могут присутствовать ловушки, которые также необходимо распознать и объехать.
3. Футбол
Исходная постановка задачи:
Симулировать игру двух команд роботов с целью закатить мяч в чужие ворота
Исходные данные:
Две команды, один мяч. Можно давать пас, можно вести мяч. Наезжать друг на друга нельзя. Можно отобрать мяч (как во время паса, так и у едущего с ним робота). Игра до победного гола (нескольких голов)
Ограничения на исходные данные:
- В команде три-пять роботов, один из которых вратарь. Разрешено использование коллективного разума для принятия решения или наличие одного централизованного мозга.
- У роботов есть координаты других относительно друг друга, а также координаты мяча.
Усложнения:
- Роботы имеют разные характеристики игры (точность паса, скорость движения). Отдавать пас надо не только лучше позиционированному роботу, но и выбирать будет ли этот пас оптимальным.
4. Битва роботов
Исходная постановка задачи:
Две армии роботов бьются друг с другом.
Исходные данные:
Есть несколько типов роботов, (быстрый, сильный, далеко стреляющий) которые должны расположится на карте и одолеть команду противника. Они подчиняются командиру, который раздаёт приказы, решает, когда робота нужно перебросить на другой фланг и прочее. Необходимо уничтожить вражеского командира.
Ограничения на исходные данные:
- У роботов есть полоска здоровья.
- Роботам известна карта.
- Командир знает координаты каждого из своих роботов.
- Роботы могут видеть вражеских юнитов, но изначально не знают их координат.
Усложнения:
- Командиров может быть несколько, и каждый из них отвечает за свой фланг.
- Карта неизвестна (ни изначальное место противника, ни примерные габариты, ни примерную точку десанта на карте)
5. Робот-матка
Исходная постановка задачи:
Обеспечить жизнеобеспечение матке колонии роботов.
Исходные данные:
Есть единственная матка-робот. Для её жизнеобеспечения необходимо пропитание. В колонии присутствуют роботы-рабочие, которые могут быть отправлены в разведку или для добычи пищи из уже известного источника пропитания.
Ограничения на исходные данные:
- Роботов рабочих большое, но ограниченное число. Им пища не нужна.
- Матка - единый мозг, отдающий приказы.
- Карта неизвестна, её отображение, которое построили роботы-разведчики хранится у матки, но не у других роботов.
- Матка даёт исчерпывающие команды, например: “принести пищу из этой точки, куда следует добраться так-то.” Или: “Отправится в эту точку и снять развед-данные”.
Усложнения:
- Роботы могут пропадать (их может кто-то съедать), причём матка не может узнать, что кого-то съели, она лишь может узнать о невыполненном задании по истечении времени.
- Роботы не могут наезжать друг на друга.
6.Автопилот
Исходная постановка задачи:
Спланировать маршрут с учётом прочих участников движения.
Исходные данные:
Есть множество участников движения, о траекториях движения которых всё известно. Есть пропускная способность дороги: количество рядов, длина. На дорогах есть перекрёстки со светофорами. Необходимо проложить маршрут от заданной точки до заданной, принимая во внимания все траектории прочих участников движения, не вызывая заторов и коллизий.
Ограничения на исходные данные:
- Проложенный маршрут уже не корректируется. Под него подстраиваются новые участники
- Новые участники могут стартовать в любой момент времени, не обязательно все сразу.
- Карта известна, все маршруты известны, время старта новых участников движения неизвестно.
- На светофорах все стартуют одновременно и мгновенно набирают наибольшую скорость. Торможение происходит аналогично.
- Можно использовать единый мозг-диспетчер, однако также можно строить маршрут на собственном узле.
Усложнения:
- Светофоры имеют разное (заданное) время.
- На дороге может появиться машина с приоритетом (скорая, пожарная, полиция…) О её появлении мгновенно узнают все участники движения. Её маршрут известен, все перестраиваются так, чтобы машина с приоритетом проехала с наиболее высокой скоростью.
7.Коррекция прицела
Исходная постановка задачи:
Установить прицел на цели, вести цель, поразить цель.
Исходные данные:
Оперативник с снайперской винтовкой уничтожает цели на поле боя. Цели появляются хаотически. Задача поразить как можно больше целей за время работы программы.
Ограничения на исходные данные:
- Цели передвигаются в трёхмерном мире из стороны в сторону (слева направо, справа налево, снизу вверх, по диагонали и прочее). До каждой из целей есть своё расстояние. Пуля летит с какой-то скоростью и ей потребуется время, на преодоление этого расстояния. Стрелять необходимо с упреждением.
- Цели движутся равномерно прямолинейно.
- Открывать огонь можно только при получении соответствующей команды от человека-оператора. Если команды нет какое-то время, переключиться на другую цель.
- На стрельбище присутствуют препятствия, попадание в которых не приводит к поражению цели.
Усложнения:
- На стрельбище присутствует ветер (направленный в плоскости движения целей), ветер в произвольное время меняет своё направление. Оперативник знает, куда дует ветер сейчас, но не знает, куда он будет дуть следующий момент времени. Как следствие, он может промазать.
- У пули есть погрешность. Она летит не в ту точку, куда был произведён выстрел. Во-первых, пуля летит по угасающей траектории. Во-вторых, её направление может на малую ошибку отличаться от изначально заданного направления.
- Цели могут двигаться неравномерно (может менять ускорение, скорость пересчитывается), но стрелок в каждый момент времени знает, точное значение ускорения тела и может построить оценку положения цели.
8.Корпус Нова
Исходная постановка задачи:
Предотвратить таранный удар флагманом Ронана планеты Ксандара.
Исходные данные:
Корабли корпуса Нова - маленькие патрульные летательные аппараты, не имеющие оружия. Однако выстроившись в матрицу они способны создать непреодолимый щит. Задача выстроить щит, пока флагман Ронана не уничтожил Ксандар.
Ограничения на исходные данные:
- Флагман Ронана с какой-то заданной скоростью сбивает произвольные корабли корпуса Нова, которые не включились в матрицу.
- Матрица - прямоугольная сетка кораблей корпуса Нова.
- Корабли корпуса Нова подлетают к формирующейся матрице, но подключаются к ней только тогда, когда полностью сформирован ряд или столбец.
- Корабли, встроившиеся в матрицу, неуничтожимы флагманом Ронана.
- Кораблей корпуса Нова неограниченное число, но у них одна единственная точка вылета.
- Цель считается достигнутой, если матрица нужно размера построена и расположена на безопасном (заданном) расстоянии от планеты до того, как это расстояние достигнет флагман Ронана.
Усложнения:
- Матрицу можно формировать на расстоянии от флагмана, но если матрица будет находится в непосредственной близости, это снизит скорость движения флагмана пропорционально количеству кораблей в матрице.
- Флагман Ронана в приоритете сбивает корабли корпуса Нова, которые подлетели к матрице, но ещё пока не включились в неё.
- Матрица может формироваться из нескольких эпицентров.
9.Очистить поле битвы
Исходная постановка задачи:
Очистить местность с неизвестной картой от следов боя.
Исходные данные:
Турнир многих рас, проводимый Xaero, завершён. В турнире приняли участие как представители людей, так и роботов, а также инопланетян. Нужно убрать следы крови и тела, имея в распоряжении роботов-чистильщиков.
Ограничения на исходные данные:
- Кровь разных существ очищается разными чистильщиками. Причём мёртвые тела должны быть перенесены в специальное место специальными роботами.
- Карта неизвестна, чистильщикам даётся команда перемещения человеком-оператором.
- Карта может состоять из разных уровней, переход между уровнями может осуществляться с помощью лифтов, телепортов, лестниц.
Усложнения:
- На карте может остаться недобитый участник турнира. У оператора есть несколько охранных роботов. Следы этого побоища также должны быть ликвидированы.
- Необходимо успеть до начала следующего турнира.
10. Добыча волков
Исходная постановка задачи:
Найти и загнать цель стаей волков.
Исходные данные:
Стая волков охотится в лесу на неизвестной карте. Задача найти добычу, устроить на неё охоту, окружить.
Ограничения на исходные данные:
- Местность лесистая, следовательно окружение состоит из окружностей.
- Волки не умеют ходить сквозь деревья
- Жертва стремиться избежать стаи, однако начинает бежать только когда заметит стаю (есть радиус видимости, меньший, чем у волков).
- Задача волков окружить цель, для этого они могут использовать разные тактики: оставить группу волков в засаде, остальными загонять; бежать полукругом и прочее.
- Жертва бежит с той же скоростью, что и волки. Однако, если волк укусит жертву, её скорость уменьшится.
Усложнения:
- Жертва убегает зигзагами. Причём, если она набегает головой на волка, то не получает повреждений, но отбрасывает волка.
- Жертв может быть в лесу несколько, возможно переключение с жертвы на жертву. Жертвы бегают с разной скоростью.
- У волков накапливается усталость - они не могут долго бежать.
11. Спаси этих котят.
Исходная постановка задачи:
Во время наводнения перенести всех котят с опасного места на безопасное.
Исходные данные:
Идёт большая вода. Маме-кошке необходимо перенести своих котят с затопляемой территории. Мама-кошка знает местность и знает, где будет вода через некоторое время. Однако она не знает когда вода будет в каком месте.
Ограничения на исходные данные:
- Вода занимает участки мгновенно.
- Через воду кошка переправляться не может.
- Изначально котята на месте, которую затопит вода (в последнюю очередь).
- Кошке задано место, куда надо отнести котят.
- Если кошка двигается по маршруту, но оказывается, что этот маршрут уже преграждает вода, кошка должна спланировать и изменить свой текущий маршрут, а также последующие маршруты перемещения.
Усложнения:
- Котята медленно разбредаются из точек эвакуации (но не заходят в воду). Их надо отлавливать и возвращать.
- Кошке неизвестна местность. Она узнаёт её по ходу движения.
12. Рой неистребим.
Исходная постановка задачи:
Зерги должны удержать аванпосты под атакой протоссов.
Исходные данные:
Зерги подверглись массированной атаке тамплиеров протоссов. Задача удержать аванпосты до тех пор, пока королева Керриган не уничтожит тамплиеров.
Ограничения на исходные данные:
- Зерги имеют только маленьких беспомощных зерлингов, которые не могут оказать сопротивление организованной атаке тамплиеров. Они лишь могут создавать живой щит.
- Зерлинги рождаются на одном из аванпостов
- Тамплиеры десантируются в любую точку заранее определённой прямоугольной области, не содержащей аванпосты
- Тамплиеры протоссов уничтожают зерлингов как только подходят к ним.
- Тамплиеров уничтожает королева Керриган как только подходит к ним.
- Зерлингов неограниченное число, но подкрепление может не успеть дойти к аванпосту, когда он окажется захвачен протоссами.
- Тамплиеров протоссов ограниченное число.
- Двое существ одной расы не могут располагаться в одной точке (они должы стоять рядом)
- Зерги побеждают, кгда все протоссы уничтожены; протоссы побеждают, когда захвачен хотя бы один аванпост
Усложнения:
- Тамплиеры могут появляться в любой точке карты (в тылу).
- Тамплиеры наносят урон Керриган, которая медленно регенерирует. Сара Керриган должна выжить.
13. Ненавижу некромантов.
Исходная постановка задачи:
Убежать от зомби.
Исходные данные:
На неизвестной карте присутствуют некроманты. Сами по себе они не опасны. Но раз в какое-то время они воскрешают рядом с собой зомби. Задача найти выход из помещения и не быть съеденным зомби.
Ограничения на исходные данные:
- Чем дольше вы блуждаете по помещению, тем больше зомби восстанут за вами охотится.
- Вы двигаетесь быстрее, чем зомби, но понятия не имеете, где эти зомби располагаются.
- На карте вы можете найти артефакты различных свойств (замедляют призыв зомби у некромантов, убивают всех зомби на карте, дают временную неуязвимость к укусам и прочее).
- Зомби не знают где выход и просто бесцельно блуждают по карте, пока не обнаружат вас.
Усложнения:
- Людей, пытающихся выбраться несколько, и вы, если вам не удалось сбежать и вы были укушены, становитесь охотником на выживших. Задача становится поймать их всех.
- Выходов открывается несколько, как только вы превращаетесь в зомби.
14. Пронести кольцо.
Исходная постановка задачи:
Избегая Всевидящего Ока Саурона, необходимо пронести кольцо всевластия и выбросить его в Ородруин.
Исходные данные:
На неизвестной карте с кучей препятствий, которую периодически осматривает Всевидящее Око, необходимо пересечь Мордор и дойти до Ородруина.
Ограничения на исходные данные:
- Око имеет радиус обзора. В нём нельзя оставаться дольше какого-то фиксированного времени.
- У вас есть запас сил. Он не бесконечен.
- Карта Мордора плоская, но имеет непреодолимые препятствия, которые необходимо обойти.
- Из-за препятствий всевидящее Око имеет слепые зоны.
Усложнения:
- На карте присутствует Голлум, мечтающий отнять у вас свою прелесть. Вы успешно от него отбиваетесь (телепортируя его в произвольную точку карты) но это отнимает у вас выносливость.
- Око Саурона осматривает карту произвольно (в произвольный момент времени может смениться ускорение осмотра, скорость поворота сектора обзора соответственно пересчитывается).
15. Гензель и Гретель.
Исходная постановка задачи:
Найти выход на неизвестной карте. Карту запоминать нельзя.
Исходные данные:
На неизвестной карте необходимо найти выход. Строить и запоминать карту нельзя. За собой остаётся след из хлебных крошек.
Ограничения на исходные данные:
- У вас есть скан местности, по которому можно определить, в какую сторону можно двигаться.
- Один раз в некоторый интервал времени за вами остаётся хлебная крошка, символизирующая, что в этом участке карты вы уже были.
- Карту запоминать нельзя.
- Выход определяется сразу, как только он оказывается в радиусе видимости скана.
Усложнения:
- Крошки исчезают с течением времени.
16.Разобрать статью.
Статья посвящённая amcl (adaptive Monte-Carlo localization).
Разобрать принцип работы скан-матчера. Реализовать. Протестировать на тестовом окружении.
17. Разобрать статью
Статья посвящённая base_local_planner.
www.cs.washington.edu/ai/Mobile_Robotics/postscripts/colli-ieee.ps.gz
http://cs.stanford.edu/group/manips/publications/pdfs/Brock_1999_ICRA.pdf
Разобрать принцип планировщика. Реализовать. Протестировать на тестовом окружении.
18. Разобрать статью
Статья посвящённая Fast SLAM
Разобрать суть статьи. Выявить правило определения фич. Протестировать для разных сканов.