Diagram Navigation — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м (Структуры данных)
Строка 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 градусов, при этом должны выполняться следующие условия

  1. N целочисленное число от 4..360
  2. шаг 360 / N = M градусов,

Построение карты замкнутого пространства

  1. позиционируем ось робота на 0(North)
  2. делаем замеры каждые N замеров через M град., при N=8 M=45гр, при N=24 M=15гр, при N=360 M=1гр ;)
  3. соединив полученные точки получаем схемотехническую карту помещения.
  4. передвигаемся по оси 0(North) и на пункт 2.
  5. повторяем 4. до достижения необходимой детализации

Формирование Диаграммного паспорта помещения Diagram Room Certificate(DCR) для чего находим центр помещения

  1. Выполняем пункты 1. - 3. „Построение карты замкнутого пространства“
  2. сравниваем полученные плечи N - Дальномер, S - Дальномер
  3. сравниваем полученные плечи W - Дальномер, E - Дальномер
  4. вычисляем направление движения для выхода на точку достижения равновесия плечей, движимся
  5. повторяем 1. - 4. до достижения равновесия плечей
  6. в полученной точке снимаем DN - это будет DCR.

Узнавание помещения

Для узнавания помещения введем понятие коэффициент соответствия в % Correction Coefficient(СС).

  1. Оказавшись в неизвестном помещении выполняем алгоритм построения DCR
  2. проводим операцию сравнения полученного DCR с имеющейся базой с учетом СС
  3. если есть совпадения то мы нашлись
  4. если нет то мы разведали еще одно помещение!!! сохраняем полученный 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 максимальное расстояние в мм