==== Темы проектов: ==== **1. Робот-пылесос** \\ __Исходная постановка задачи:__ \\ Построить траекторию (и пройти по ней), которая покрывает всю территорию карты (пропылесосит весь пол). \\ __Исходные данные:__ \\ Робот начинает движение около “базы” в неизвестном мире. Строит карту мира и определяет своё местоположение (знает всегда координаты базы относительно себя). Робот знает габариты своего чистящего устройства, исходя из этого должен построить траекторию очистки всей территории. \\ __Ограничения на исходные данные:__ \\ * Окружающий мир - такая замкнутая область, из каждой точки которого видно базу (выпуклая область). * У робота есть лазерный дальномер (нет одометрии). __Усложнения:__ \\ * Нет базы (но появляется одометрия), мир может быть произвольным. \\ **2. Искатель сокровищ** \\ __Исходная постановка задачи:__ \\ Разведать подземелье, найти золото. \\ __Исходные данные:__ \\ Робот ищет золото в подземелье. Робот не знает карту подземелья, должен также определять, в какой части подземелья он находится. Необходимо обойти всё подземелье (также предоставить траекторию перемещения) и найти спрятанные сокровища. \\ __Ограничения на исходные данные:__ \\ * Окружающий мир состоит из прямых линий (комнаты, коридоры). Участки карты, на которых находятся сокровища отличаются от окружающего мира (например, имеют хаотичную, стостящую не из прямых линий, область). * У робота есть лазерный дальномер и данные одометрии. __Усложнения:__ \\ * В подземельях могут присутствовать ловушки, которые также необходимо распознать и объехать. **3. Футбол ** \\ __Исходная постановка задачи:__ \\ Симулировать игру двух команд роботов с целью закатить мяч в чужие ворота \\ __Исходные данные:__ \\ Две команды, один мяч. Можно давать пас, можно вести мяч. Наезжать друг на друга нельзя. Можно отобрать мяч (как во время паса, так и у едущего с ним робота). Игра до победного гола (нескольких голов) \\ __Ограничения на исходные данные:__ \\ * В команде три-пять роботов, один из которых вратарь. Разрешено использование коллективного разума для принятия решения или наличие одного централизованного мозга. * У роботов есть координаты других относительно друг друга, а также координаты мяча. __Усложнения:__ \\ * Роботы имеют разные характеристики игры (точность паса, скорость движения). Отдавать пас надо не только лучше позиционированному роботу, но и выбирать будет ли этот пас оптимальным. **4. Битва роботов** \\ __Исходная постановка задачи:__ \\ Две армии роботов бьются друг с другом. \\ __Исходные данные:__ \\ Есть несколько типов роботов, (быстрый, сильный, далеко стреляющий) которые должны расположится на карте и одолеть команду противника. Они подчиняются командиру, который раздаёт приказы, решает, когда робота нужно перебросить на другой фланг и прочее. Необходимо уничтожить вражеского командира. \\ __Ограничения на исходные данные:__ \\ * У роботов есть полоска здоровья. * Роботам известна карта. * Командир знает координаты каждого из своих роботов. * Роботы могут видеть вражеских юнитов, но изначально не знают их координат. __Усложнения:__ \\ * Командиров может быть несколько, и каждый из них отвечает за свой фланг. * Карта неизвестна (ни изначальное место противника, ни примерные габариты, ни примерную точку десанта на карте) **5. Робот-матка** \\ __Исходная постановка задачи:__ \\ Обеспечить жизнеобеспечение матке колонии роботов. \\ __Исходные данные:__ \\ Есть единственная матка-робот. Для её жизнеобеспечения необходимо пропитание. В колонии присутствуют роботы-рабочие, которые могут быть отправлены в разведку или для добычи пищи из уже известного источника пропитания.\\ __Ограничения на исходные данные:__ \\ * Роботов рабочих большое, но ограниченное число. Им пища не нужна. * Матка - единый мозг, отдающий приказы. * Карта неизвестна, её отображение, которое построили роботы-разведчики хранится у матки, но не у других роботов. * Матка даёт исчерпывающие команды, например: “принести пищу из этой точки, куда следует добраться так-то.” Или: “Отправится в эту точку и снять развед-данные”. __Усложнения:__ \\ * Роботы могут пропадать (их может кто-то съедать), причём матка не может узнать, что кого-то съели, она лишь может узнать о невыполненном задании по истечении времени. * Роботы не могут наезжать друг на друга. **6.Автопилот** \\ __Исходная постановка задачи:__ \\ Спланировать маршрут с учётом прочих участников движения. \\ __Исходные данные:__ \\ Есть множество участников движения, о траекториях движения которых всё известно. Есть пропускная способность дороги: количество рядов, длина. На дорогах есть перекрёстки со светофорами. Необходимо проложить маршрут от заданной точки до заданной, принимая во внимания все траектории прочих участников движения, не вызывая заторов и коллизий. \\ __Ограничения на исходные данные:__ \\ * Проложенный маршрут уже не корректируется. Под него подстраиваются новые участники * Новые участники могут стартовать в любой момент времени, не обязательно все сразу. * Карта известна, все маршруты известны, время старта новых участников движения неизвестно. * На светофорах все стартуют одновременно и мгновенно набирают наибольшую скорость. Торможение происходит аналогично. * Можно использовать единый мозг-диспетчер, однако также можно строить маршрут на собственном узле. __Усложнения:__ \\ * Светофоры имеют разное (заданное) время. * На дороге может появиться машина с приоритетом (скорая, пожарная, полиция...) О её появлении мгновенно узнают все участники движения. Её маршрут известен, все перестраиваются так, чтобы машина с приоритетом проехала с наиболее высокой скоростью. **7.Коррекция прицела** \\ __Исходная постановка задачи:__ \\ Установить прицел на цели, вести цель, поразить цель. \\ __Исходные данные:__ \\ Оперативник с снайперской винтовкой уничтожает цели на поле боя. Цели появляются хаотически. Задача поразить как можно больше целей за время работы программы. \\ __Ограничения на исходные данные:__ \\ * Цели передвигаются в трёхмерном мире из стороны в сторону (слева направо, справа налево, снизу вверх, по диагонали и прочее). До каждой из целей есть своё расстояние. Пуля летит с какой-то скоростью и ей потребуется время, на преодоление этого расстояния. Стрелять необходимо с упреждением. * Цели движутся равномерно прямолинейно. * Открывать огонь можно только при получении соответствующей команды от человека-оператора. Если команды нет какое-то время, переключиться на другую цель. * На стрельбище присутствуют препятствия, попадание в которых не приводит к поражению цели. __Усложнения:__ \\ * На стрельбище присутствует ветер (направленный в плоскости движения целей), ветер в произвольное время меняет своё направление. Оперативник знает, куда дует ветер сейчас, но не знает, куда он будет дуть следующий момент времени. Как следствие, он может промазать. * У пули есть погрешность. Она летит не в ту точку, куда был произведён выстрел. Во-первых, пуля летит по угасающей траектории. Во-вторых, её направление может на малую ошибку отличаться от изначально заданного направления. * Цели могут двигаться неравномерно (может менять ускорение, скорость пересчитывается), но стрелок в каждый момент времени знает, точное значение ускорения тела и может построить оценку положения цели. **8.Корпус Нова** \\ __Исходная постановка задачи:__ \\ Предотвратить таранный удар флагманом Ронана планеты Ксандара. \\ __Исходные данные:__ \\ Корабли корпуса Нова - маленькие патрульные летательные аппараты, не имеющие оружия. Однако выстроившись в матрицу они способны создать непреодолимый щит. Задача выстроить щит, пока флагман Ронана не уничтожил Ксандар. \\ __Ограничения на исходные данные:__ * Флагман Ронана с какой-то заданной скоростью сбивает произвольные корабли корпуса Нова, которые не включились в матрицу. * Матрица - прямоугольная сетка кораблей корпуса Нова. * Корабли корпуса Нова подлетают к формирующейся матрице, но подключаются к ней только тогда, когда полностью сформирован ряд или столбец. * Корабли, встроившиеся в матрицу, неуничтожимы флагманом Ронана. * Кораблей корпуса Нова неограниченное число, но у них одна единственная точка вылета. * Цель считается достигнутой, если матрица нужно размера построена и расположена на безопасном (заданном) расстоянии от планеты до того, как это расстояние достигнет флагман Ронана. __Усложнения:__ * Матрицу можно формировать на расстоянии от флагмана, но если матрица будет находится в непосредственной близости, это снизит скорость движения флагмана пропорционально количеству кораблей в матрице. * Флагман Ронана в приоритете сбивает корабли корпуса Нова, которые подлетели к матрице, но ещё пока не включились в неё. * Матрица может формироваться из нескольких эпицентров. ** 9.Очистить поле битвы ** \\ __Исходная постановка задачи:__ \\ Очистить местность с неизвестной картой от следов боя. \\ __Исходные данные:__ \\ Турнир многих рас, проводимый Xaero, завершён. В турнире приняли участие как представители людей, так и роботов, а также инопланетян. Нужно убрать следы крови и тела, имея в распоряжении роботов-чистильщиков. \\ __Ограничения на исходные данные:__ * Кровь разных существ очищается разными чистильщиками. Причём мёртвые тела должны быть перенесены в специальное место специальными роботами. * Карта неизвестна, чистильщикам даётся команда перемещения человеком-оператором. * Карта может состоять из разных уровней, переход между уровнями может осуществляться с помощью лифтов, телепортов, лестниц. __Усложнения:__ \\ * На карте может остаться недобитый участник турнира. У оператора есть несколько охранных роботов. Следы этого побоища также должны быть ликвидированы. * Необходимо успеть до начала следующего турнира. **10. Добыча волков** \\ __Исходная постановка задачи:__ \\ Найти и загнать цель стаей волков. \\ __Исходные данные:__ \\ Стая волков охотится в лесу на неизвестной карте. Задача найти добычу, устроить на неё охоту, окружить. \\ __Ограничения на исходные данные:__ * Местность лесистая, следовательно окружение состоит из окружностей. * Волки не умеют ходить сквозь деревья * Жертва стремиться избежать стаи, однако начинает бежать только когда заметит стаю (есть радиус видимости, меньший, чем у волков). * Задача волков окружить цель, для этого они могут использовать разные тактики: оставить группу волков в засаде, остальными загонять; бежать полукругом и прочее. * Жертва бежит с той же скоростью, что и волки. Однако, если волк укусит жертву, её скорость уменьшится. __Усложнения:__ * Жертва убегает зигзагами. Причём, если она набегает головой на волка, то не получает повреждений, но отбрасывает волка. * Жертв может быть в лесу несколько, возможно переключение с жертвы на жертву. Жертвы бегают с разной скоростью. * У волков накапливается усталость - они не могут долго бежать. ** 11. Спаси этих котят. ** \\ __Исходная постановка задачи:__\\ Во время наводнения перенести всех котят с опасного места на безопасное. \\ __Исходные данные:__ \\ Идёт большая вода. Маме-кошке необходимо перенести своих котят с затопляемой территории. Мама-кошка знает местность и знает, где будет вода через некоторое время. Однако она не знает когда вода будет в каком месте. \\ __Ограничения на исходные данные:__ * Вода занимает участки мгновенно. * Через воду кошка переправляться не может. * Изначально котята на месте, которую затопит вода (в последнюю очередь). * Кошке задано место, куда надо отнести котят. * Если кошка двигается по маршруту, но оказывается, что этот маршрут уже преграждает вода, кошка должна спланировать и изменить свой текущий маршрут, а также последующие маршруты перемещения. __Усложнения:__ * Котята медленно разбредаются из точек эвакуации (но не заходят в воду). Их надо отлавливать и возвращать. * Кошке неизвестна местность. Она узнаёт её по ходу движения. **12. Рой неистребим.** \\ __Исходная постановка задачи:__ \\ Зерги должны удержать аванпосты под атакой протоссов. \\ __Исходные данные:__ \\ Зерги подверглись массированной атаке тамплиеров протоссов. Задача удержать аванпосты до тех пор, пока королева Керриган не уничтожит тамплиеров. \\ __Ограничения на исходные данные:__ * Зерги имеют только маленьких беспомощных зерлингов, которые не могут оказать сопротивление организованной атаке тамплиеров. Они лишь могут создавать живой щит. * Зерлинги рождаются на одном из аванпостов * Тамплиеры десантируются в любую точку заранее определённой прямоугольной области, не содержащей аванпосты * Тамплиеры протоссов уничтожают зерлингов как только подходят к ним. * Тамплиеров уничтожает королева Керриган как только подходит к ним. * Зерлингов неограниченное число, но подкрепление может не успеть дойти к аванпосту, когда он окажется захвачен протоссами. * Тамплиеров протоссов ограниченное число. * Двое существ одной расы не могут располагаться в одной точке (они должы стоять рядом) * Зерги побеждают, кгда все протоссы уничтожены; протоссы побеждают, когда захвачен хотя бы один аванпост __Усложнения:__ \\ * Тамплиеры могут появляться в любой точке карты (в тылу). * Тамплиеры наносят урон Керриган, которая медленно регенерирует. Сара Керриган должна выжить. **13. Ненавижу некромантов.** \\ __Исходная постановка задачи:__ \\ Убежать от зомби. \\ __Исходные данные:__ \\ На неизвестной карте присутствуют некроманты. Сами по себе они не опасны. Но раз в какое-то время они воскрешают рядом с собой зомби. Задача найти выход из помещения и не быть съеденным зомби. \\ __Ограничения на исходные данные:__ * Чем дольше вы блуждаете по помещению, тем больше зомби восстанут за вами охотится. * Вы двигаетесь быстрее, чем зомби, но понятия не имеете, где эти зомби располагаются. * На карте вы можете найти артефакты различных свойств (замедляют призыв зомби у некромантов, убивают всех зомби на карте, дают временную неуязвимость к укусам и прочее). * Зомби не знают где выход и просто бесцельно блуждают по карте, пока не обнаружат вас. __Усложнения:__ \\ * Людей, пытающихся выбраться несколько, и вы, если вам не удалось сбежать и вы были укушены, становитесь охотником на выживших. Задача становится поймать их всех. * Выходов открывается несколько, как только вы превращаетесь в зомби. ** 14. Пронести кольцо. ** \\ __Исходная постановка задачи:__ \\ Избегая Всевидящего Ока Саурона, необходимо пронести кольцо всевластия и выбросить его в Ородруин. \\ __Исходные данные:__ На неизвестной карте с кучей препятствий, которую периодически осматривает Всевидящее Око, необходимо пересечь Мордор и дойти до Ородруина. \\ __Ограничения на исходные данные:__ * Око имеет радиус обзора. В нём нельзя оставаться дольше какого-то фиксированного времени. * У вас есть запас сил. Он не бесконечен. * Карта Мордора плоская, но имеет непреодолимые препятствия, которые необходимо обойти. * Из-за препятствий всевидящее Око имеет слепые зоны. __Усложнения:__ \\ * На карте присутствует Голлум, мечтающий отнять у вас свою прелесть. Вы успешно от него отбиваетесь (телепортируя его в произвольную точку карты) но это отнимает у вас выносливость. * Око Саурона осматривает карту произвольно (в произвольный момент времени может смениться ускорение осмотра, скорость поворота сектора обзора соответственно пересчитывается). **15. Гензель и Гретель. ** \\ __Исходная постановка задачи:__ \\ Найти выход на неизвестной карте. Карту запоминать нельзя. \\ __Исходные данные:__ \\ На неизвестной карте необходимо найти выход. Строить и запоминать карту нельзя. За собой остаётся след из хлебных крошек. \\ __Ограничения на исходные данные:__ \\ * У вас есть скан местности, по которому можно определить, в какую сторону можно двигаться. * Один раз в некоторый интервал времени за вами остаётся хлебная крошка, символизирующая, что в этом участке карты вы уже были. * Карту запоминать нельзя. * Выход определяется сразу, как только он оказывается в радиусе видимости скана. __Усложнения:__ \\ * Крошки исчезают с течением времени. **16.Разобрать статью. ** \\ [[http://papers.nips.cc/paper/1998-kld-sampling-adaptive-particle-filters.pdf|Статья посвящённая 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. Разобрать статью ** \\ [[http://robots.stanford.edu/papers/Montemerlo03a.pdf | Статья посвящённая Fast SLAM]] \\ Разобрать суть статьи. Выявить правило определения фич. Протестировать для разных сканов.