Diagram Navigation — различия между версиями
=DeaD= (обсуждение | вклад) |
SkyStorm (обсуждение | вклад) м (→Структуры данных) |
||
Строка 48: | Строка 48: | ||
!Идентификатор DN внутри сессии. 0 - означает что эта диаграмма у нас DCR | !Идентификатор DN внутри сессии. 0 - означает что эта диаграмма у нас DCR | ||
|- | |- | ||
− | ! | + | !timestamp |
− | ! | + | !timestamp |
− | ! | + | !0 |
− | ! | + | !Время в unix формате |
+ | |- | ||
+ | !arm_count | ||
+ | !int | ||
+ | !4 | ||
+ | !Колиество плечей 4<= N <= 360 | ||
+ | |- | ||
+ | !global_position | ||
+ | !string | ||
+ | !"" | ||
+ | !GPS координата | ||
+ | |- | ||
+ | !dcr_name | ||
+ | !string | ||
+ | !"" | ||
+ | !если диаграмма у нас DCR, то можем назначить имя, например кухня ))) | ||
|} | |} | ||
Строка 60: | Строка 75: | ||
!Defult | !Defult | ||
!Description | !Description | ||
+ | |- | ||
+ | !direction_id | ||
+ | !int | ||
+ | !0 | ||
+ | !Номер измерения в DN | ||
+ | |- | ||
+ | !range | ||
+ | !int | ||
+ | !-1 | ||
+ | !измеренное расстояние, если -1 то не мерилось или не определено | ||
+ | |- | ||
+ | !unit | ||
+ | !char | ||
+ | !0 | ||
+ | !единица измерения. 0=мм, 1=см, 2=м, 3=inch | ||
+ | |- | ||
+ | !detector | ||
+ | !int | ||
+ | !0 | ||
+ | !тип измерителя расстояния | ||
|} | |} | ||
Строка 68: | Строка 103: | ||
!Defult | !Defult | ||
!Description | !Description | ||
+ | |- | ||
+ | !detector_id | ||
+ | !int | ||
+ | !0 | ||
+ | !Номер датчика в БД | ||
+ | |- | ||
+ | !detector_description | ||
+ | !string | ||
+ | !"" | ||
+ | !Онисание тип и модель | ||
+ | |- | ||
+ | !detector_min | ||
+ | !int | ||
+ | !0 | ||
+ | !минимальное расстояние в мм | ||
+ | |- | ||
+ | !detector_max | ||
+ | !int | ||
+ | !0 | ||
+ | !максимальное расстояние в мм | ||
|} | |} |
Версия 15:21, 29 апреля 2009
Страница находится в процессе формирования. Может содержать как ошибки так и полностью концептуальные заблуждения. Информация размещается здесь в продолжение обсуждения форума. И развивается по мере поступления новых теоретических и практических данных.
Внимание страничка ведется 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 | максимальное расстояние в мм |