Инструменты пользователя

Инструменты сайта


courses:ros:topsecret

Темы проектов:

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
Разобрать суть статьи. Выявить правило определения фич. Протестировать для разных сканов.