Diagram Navigation

Материал из roboforum.ru Wiki
Версия от 15:21, 29 апреля 2009; SkyStorm (обсуждение | вклад) (Структуры данных)
Перейти к: навигация, поиск

Страница находится в процессе формирования. Может содержать как ошибки так и полностью концептуальные заблуждения. Информация размещается здесь в продолжение обсуждения форума. И развивается по мере поступления новых теоретических и практических данных.

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