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 | максимальное расстояние в мм |