
- •1 Розробка плану проекту
- •1.1 Аналіз та постановка задачі
- •1.2 Обґрунтування вибору моделі життєвого циклу для реалізації проекту
- •1.2.1 Каскадна модель.
- •1.2.2 Ітераційна модель.
- •1.2.3 Спіральна модель.
- •1.3 Обґрунтування вибору мови програмування та case-засобів
- •1.4 Розробка графіка виконання робіт по проекту у контексті обраної моделі життєвого циклу
- •1.5 Аналіз ризиків проекту та управління ними
- •1.6 Системна специфікація вимог до розроблюваного проекту
- •1.6.1 Розробка користувальницьких (функційних) вимог
- •1.6.2 Нефункційні вимоги до програмного забезпечення
- •2 Вибір та аналіз існуючих алгоритмів побудови шляху на карті
- •2.1 Точні алгоритми
- •2.1.1 Пошук в ширину на незваженому графі.
- •2.1.2 Алгоритм Флойда-Уоршелла
- •2.1.3 Алгоритм Дейкстри
- •2.2 Евристичні алгоритми
- •2.2.1 Алгоритм a*
- •2.2.2 Алгоритм d* Lite
- •3 Розробка архітектури програмного забезпечення
- •3.1.1 Діаграма варіантів використання
- •3.1.2 Діаграма класів
- •3.1.3 Діаграма станів
- •3.1.4 Діаграма діяльності
- •3.2 Блок-схеми алгоритмічної частини програмного забезпечення
- •4 Кодування і тестування пз
- •4.1 Особливості реалізації програмного забезпечення
- •4.2 Допоміжні засоби для реалізації програмного забезпечення
- •4.3 Тестування пз
- •4.4 Представлення результатів тестування пз (у хронологічному порядку, які помилки були виявлені і виправлені)
- •4.5 Представлення результатів, що демонструють функціональність розробленого пз
- •4.6 Основні функції розробленого програмного забезпечення
- •5 Надійність програмного забезпечення
- •5.1 Поняття надійності програмного забезпечення
- •5.2 Класифікація моделей надійності програмного забезпечення
- •5.3 Розрахункова частина
- •6 Економічний розділ
- •6.1 Обґрунтування доцільності створення локальної мережі
- •6.2 Кошторис на розробку програмного продукту
- •6.2.1 Основна заробітна плата розробників (дослідників):
- •6.2.2 Амортизація обладнання, комп'ютерів та приміщень, які використовувались для розробки нового технічного рішення.
- •6.2.3 Оренда обладнання, устаткування, приміщень, які були використані в ході здійснення розробки нового технічного рішення.
- •6.2.4 Витрати на комплектуючі к, що були використані на розробку нового технічного рішення, розраховуються за формулою:
- •7.2 Забезпечення електробезпеки при експлуатації комп’ютерної техніки
- •7.3 Розрахунок загального штучного рівномірного освітлення приміщення люмінесцентними лампами методом коефіцієнта використання світлового потоку
- •Висновки
- •Перелік посилань
2.2.2 Алгоритм d* Lite
Алгоритм, який є модифікацією алгоритму А*, але для ландшафтів (мап) з динамічною зміною стану об'єктів на ній.
Алгоритм D* Lite знаходження найкоротшого шляху базується на припущеннях та плануванні руху об'єктів для робота, що знаходиться в незнайомій місцевості. Під час роботи алгоритму, робиться припущення про невідому частини ландшафту (наприклад, що він не містить перешкод) і знаходиться найкоротший шлях від своїх поточних координат до координат цілі при цих припущеннях. Робот починає слідувати по обраховуваному шляху, і коли він помічає нову інформацію про карту (наприклад, раніше невідомі перешкоди), він додає інформацію на свою карту, при необхідності перераховуючи новий найкоротший шлях від своїх поточних координат в задані координати цілі. Цей процес повторюється, поки не будуть досягнуті координати цілі або не визначиться, що ціль не може бути досягнута. При переміщенні по невідомій місцевості, нові перешкоди можуть бути виявлені часто, так що перепланування карти повинно бути швидким.
У зв'язку з усіма перевагами, алгоритм D* Lite широко використовується для мобільних роботів і автономної навігації транспортного засобу.
Розглянувши різні види алгоритмів для побудови траєкторії руху мобільної платформи на динамічно змінній місцевості можна зробити кілька висновків:
алгоритм пошуку в ширину на графі є неприйнятним вибором алгоритму побудови шляху для нашої задачі, оскільки він працює лише з манхетенськими відстанями, тоді к перехід між вершинами зв'язаними діагоналлю на карті можна провести за вагою √2;
алгоритм Флойда-Уоршелла дає надлишкову інформацію у вигляді всіх шляхів між кожними парами вершин, що потрібно лише на графах з величезною купою перешкод. Також даний алгоритм надає асимптотику O(n3), що є неприйнятним для нашої задачі, де самих вершин може бути порядка 10000-100000;
алгоритм Дейкстри найкраще підходить для вирішення поставленої задачі, якщо враховувати лише точні алгоритми: можливість привести асимптотику пошуку оптимального шляху до O(n*log(n)) за допомогою допоміжних структур даних дозволяє перераховувати шлях між вершинами досить швидко, проте до еталону ефективності ще далеко;
точні алгоритми дозволяють знайти найкоротший шлях між точками, але наявність можливості частої зміни положення об'єктів на ландшафті призведе до перерахунку траєкторії після кожної зміни положення рухомих об'єктів;
наявність евристичних методів дозволяє прискорити обрахунок траєкторії руху мобільного робота за допомогою певних евристичних оцінок та припущень;
алгоритм А* можна модифікувати до алгоритму LPA* (Longlife planning A*), який дозволяє швидко перераховувати траєкторію при зміні карти [11];
алгоритм D* Lite являє собою алгоритм спеціально призначений для побудови траєкторії руху мобільних роботів на місцевості з динамічними змінами. Оновлення траєкторії руху в цьому алгоритмі відбувається лише при зміні карти, яка є у самої мобільної платформи.
Зважаючи на переваги і недоліки розглянутих алгоритмів, для вирішення поставленої задачі пошуку траєкторії руху мобільної платформи оберемо та реалізуємо алгоритм D* Lite.