Pathplanning.ru :: автоматическое планирование траектории (проект) — различия между версиями
Kyakovlev (обсуждение | вклад) м |
Kyakovlev (обсуждение | вклад) м |
||
Строка 35: | Строка 35: | ||
* C++ в качестве языка программирования. | * C++ в качестве языка программирования. | ||
* Qt.Creator в качестве IDE. | * Qt.Creator в качестве IDE. | ||
− | * | + | * XML в качестве формата входных/выходных данных. |
=== Темы вводных занятий === | === Темы вводных занятий === | ||
* О проблеме планирования траектории, ее месте в искусственном интеллекте | * О проблеме планирования траектории, ее месте в искусственном интеллекте | ||
* О планировании траектории, как о задаче поиска пути на графе специального вида | * О планировании траектории, как о задаче поиска пути на графе специального вида | ||
− | * О среде разработки Qt.Creator, об используемых форматах входных/выходных | + | * О среде разработки Qt.Creator, об используемых форматах входных/выходных данных |
=== Направления развития === | === Направления развития === | ||
Строка 47: | Строка 47: | ||
* Многоагентное планирование (M*, CBS и др.) | * Многоагентное планирование (M*, CBS и др.) | ||
* Планирование в динамической среде (D*, D* Lite) | * Планирование в динамической среде (D*, D* Lite) | ||
− | * | + | * Разработка GUI-утилит для систем планирования (редакторы карт, трассировщики, отладчики, визуализаторы и др.) |
=== Критерии оценки === | === Критерии оценки === | ||
Строка 56: | Строка 56: | ||
8-9: Функционал A*, JPS и Theta* реализован в программном коде с использованием грамотной иерархии классов (наследование, не дублирование основного функционала и пр.). Проект компилируется и корректно работает на корректных входных данных. | 8-9: Функционал A*, JPS и Theta* реализован в программном коде с использованием грамотной иерархии классов (наследование, не дублирование основного функционала и пр.). Проект компилируется и корректно работает на корректных входных данных. | ||
− | 10: Функционал A*, JPS и Theta* реализован в программном коде с использованием грамотной иерархии классов (наследование, не дублирование основного функционала и пр.). Проект компилируется и корректно работает в том числе и на | + | 10: Функционал A*, JPS и Theta* реализован в программном коде с использованием грамотной иерархии классов (наследование, не дублирование основного функционала и пр.). Проект компилируется и корректно работает в том числе и на любых (в т.ч. "испорченных") входных данных. |
=== Ориентировочное расписание занятий === | === Ориентировочное расписание занятий === | ||
По договоренности. Предпочтительное время занятий: СР 15:00-20:00 ЧТ 15:00-20:00 ПТ 15:00-18:00 | По договоренности. Предпочтительное время занятий: СР 15:00-20:00 ЧТ 15:00-20:00 ПТ 15:00-18:00 |
Версия 16:38, 3 августа 2016
Ментор | Яковлев Константин |
Учебный семестр | Осень 2016 |
Учебный курс | 2-й курс |
Проект можно развивать на летней практике | |
Максимальное количество студентов, выбравших проект: 5 | |
Что это за проект?
Планирование траектории - одна из основополагающих способностей любого интеллектуального агента (робота, персонажа в компьютерной игре и т.д.), поэтому методам планирования пространственных перемещений всегда уделялось (и продолжает уделяться) большое внимание в искусственном интеллекте. В научной лаборатории, в которой я работаю, мы с коллегами уже не первый год занимаемся этой интересной тематикой: ведем научные исследования, публикуемся в научных журналах, делаем доклады о наших новых разработках на конференциях и семинарах. Предлагаю и вам познакомиться с областью path finding и овладеть базовыми алгоритмами, которые в дальнейшем можно будет развивать, совершенствовать и применять в реальных системах (навигационные сервисы, робототехника и др.).
В рамках предлагаемого проекта вы познакомитесь с основными методами планирования траектории на плоскости (A*, JPS, Theta*), изучите теоретические основы их работы, а также программно их реализуете.
В дальнейшем возможно развитие проекта с его трансформацией в дипломную работу (выпускную квалификационную работу бакалавра) высокого уровня, содержащую как научную часть (методы и алгоритмы интеллектуального планирования траектории), так и практическую – программную реализацию алгоритмов. В дальнейшем также возможно участие в научных исследованиях и проектах по этой тематике (написание статей, поездки на конференции и т.д.).
PS: Пример системы, разработанной моими студентами в качестве дипломной работы: pathplanning.ru (используется привязка к реальным данным Openstreetmaps + собственноручно реализованные алгоритмы планирования).
Чему вы научитесь?
- алгоритмам эвристического поиска на практике
- основам ООП на практике (работа с классами)
- современным технологиям разработки ПО (IDE, отладка и др.)
- основам разработки кросс-платформенных приложений
Какие начальные требования?
- С/С++.
- основы ООП.
- технический английский (для чтения статей).
Какие будут использоваться технологии?
- C++ в качестве языка программирования.
- Qt.Creator в качестве IDE.
- XML в качестве формата входных/выходных данных.
Темы вводных занятий
- О проблеме планирования траектории, ее месте в искусственном интеллекте
- О планировании траектории, как о задаче поиска пути на графе специального вида
- О среде разработки Qt.Creator, об используемых форматах входных/выходных данных
Направления развития
- Планирование в 3D
- Поддержка новых алгоритмов планирования (ANYA*, LIAN и др.)
- Многоагентное планирование (M*, CBS и др.)
- Планирование в динамической среде (D*, D* Lite)
- Разработка GUI-утилит для систем планирования (редакторы карт, трассировщики, отладчики, визуализаторы и др.)
Критерии оценки
4-5: Функционал A* реализован в программном коде, проект компилируется и корректно работает на корректных входных данных.
6-7: Функционал A*, JPS и Theta* реализован в программном коде, проект компилируется и корректно работает на корректных входных данных.
8-9: Функционал A*, JPS и Theta* реализован в программном коде с использованием грамотной иерархии классов (наследование, не дублирование основного функционала и пр.). Проект компилируется и корректно работает на корректных входных данных.
10: Функционал A*, JPS и Theta* реализован в программном коде с использованием грамотной иерархии классов (наследование, не дублирование основного функционала и пр.). Проект компилируется и корректно работает в том числе и на любых (в т.ч. "испорченных") входных данных.
Ориентировочное расписание занятий
По договоренности. Предпочтительное время занятий: СР 15:00-20:00 ЧТ 15:00-20:00 ПТ 15:00-18:00