Diagram Navigation
Страница находится в процессе формирования. Может содержать как ошибки так и полностью концептуальные заблуждения. Информация размещается здесь в продолжение обсуждения форума. И развивается по мере поступления новых теоретических и практических данных.
Внимание страничка ведется SkyStorm, внесение изменений без обсуждения не допускается (не считая грамматики :)
Содержание
Введение
Диаграммы направленности (DN) Diagram Navigation, практическая отработка алгоритмов планируется проводить на основе робота OR-TT-Diana.
Описание алгоритмов (чисто наброски)
Измерение имеет два параметра Расстояние, Направление(0-359 градусов, где 0 - север) Диаграммы направленности состоит из N измерений с шагом M градусов, при этом должны выполняться следующие условия
- N целочисленное число от 4..360
- шаг 360 / N = M градусов,
Построение карты замкнутого пространства
- позиционируем ось робота на 0(North)
- делаем замеры каждые N замеров через M град., при N=8 M=45гр, при N=24 M=15гр, при N=360 M=1гр ;)
- соединив полученные точки получаем схемотехническую карту помещения.
- передвигаемся по оси 0(North) и на пункт 2.
- повторяем 4. до достижения необходимой детализации
Формирование Диаграммного паспорта помещения Diagram Room Certificate(DCR) для чего находим центр помещения
- Выполняем пункты 1. - 3. „Построение карты замкнутого пространства“
- сравниваем полученные плечи N - Дальномер, S - Дальномер
- сравниваем полученные плечи W - Дальномер, E - Дальномер
- вычисляем направление движения для выхода на точку достижения равновесия плечей, движимся
- повторяем 1. - 4. до достижения равновесия плечей
- в полученной точке снимаем DN - это будет DCR.
Узнавание помещения
Для узнавания помещения введем понятие коэффициент соответствия в % Correction Coefficient(СС).
- Оказавшись в неизвестном помещении выполняем алгоритм построения DCR
- проводим операцию сравнения полученного DCR с имеющейся базой с учетом СС
- если есть совпадения то мы нашлись
- если нет то мы разведали еще одно помещение!!! сохраняем полученный DCR в базу.
Навигация по пространству(расчет положения, пройденного пути)
Структуры данных
Прежде всего определим структуру самой DN
Name | Type | Defult | Description |
---|---|---|---|
id | int | 0 | Идентификатор DN внутри сессии. 0 - означает что эта диаграмма у нас DCR |
timestamp | timestamp | 0 | Время в unix формате |
arm_count | int | 4 | Колиество плечей 4<= N <= 360 |
global_position | string | "" | GPS координата |
dcr_name | string | "" | если диаграмма у нас DCR, то можем назначить имя, например кухня ))) |
Структура измерения direction
Name | Type | Defult | Description |
---|---|---|---|
direction_id | int | 0 | Номер измерения в DN |
range | int | -1 | измеренное расстояние, если -1 то не мерилось или не определено |
unit | char | 0 | единица измерения. 0=мм, 1=см, 2=м, 3=inch |
detector | int | 0 | тип измерителя расстояния |
Структура измеритель detector
Name | Type | Defult | Description |
---|---|---|---|
detector_id | int | 0 | Номер датчика в БД |
detector_description | string | "" | Онисание тип и модель |
detector_min | int | 0 | минимальное расстояние в мм |
detector_max | int | 0 | максимальное расстояние в мм |