OR-TT-DiaNa

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск

О проекте

Мобильный робот OR-TT-DiaNa создаётся для отработки навигационных алгоритмов.

Название OR-TT-DiaNa в развернутом виде Open Robotics - Tamiya Tracks - Diagram Navigation.

В качестве электронной платформы используются модули открытой архитектуры мобильных роботов Open Robotics

  • OR-AVR-M32-D
  • OR-MD2-2A-12V-CP

Компоненты и цены

  • Модули Open Robotics:
    • OR-AVR-M32-D (~25$)
    • OR-MD2-2A-12V-CP (~20$)

Цели проекта

  • Построение платформы на полностью покупных элементах с минимальными работами напильником
  • Изучение возможностей модулей Open Robotics
    • Взаимодействие с Компасом - Планируется
    • Взаимодействие с Сонаром - Планируется
    • Взаимодействие с ИК дальномером - Планируется
    • Управление сервоприводом - Планируется
    • Отработка взаимодействия с модулями других проектов по RoboBus
  1. Програматор STK500 из проекта МиниБот подключен. Программирование проведено. - Успешно
  2. Модуль RoboRF-Uart-USB из проекта МиниБот в режиме Uart-USB. - Планируется
  3. Модуль RoboRF-Uart-USB из проекта МиниБот в режиме Uart-RoboRF. - Планируется
  • Отработка навигационных алгоритмов
    • Построение карты замкнутого пространства на основе Диаграмм направленности(DN)
    • Узнавание помещения на основе DN
    • Навигация по пространству(расчет положения, пройденного пути) на основе DN
  • Взаимодействие с ПК
    • Отработка механизма передачи данных на ПК
    • Реализация визуального отображения на ПК
  • Подбор оборудования и Изучение GPS навигации

Описание алгоритмов

Необходимое оборудование: Дальномер, Компас

  1. Компас(CMPS03) позволяет достичь точности измерения в 0.1 гр.
  2. Дальномер сонар(SRF08) макс дальность 6 метров, точность 3 см.

Измерение имеет два параметра Расстояние, Направление(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 в базу.
  • Навигация по пространству(расчет положения, пройденного пути)

Road Map

Project Blog

Неделя 916

  • 14.04.2009 - Получил OR модули на почте.
  • 15.04.2009 - Начал формирование целей - задач - алгоритмов в Вике.
  • 16.04.2009 - Установка софта(свеженький комп)
    • Драйвера FDTI
    • Bascom-AVR
    • AVRStudio
    • WinAvr
    • CVAvr

Подключение програматора STK500 от MiniBot v.1 к OR конторллеру. Необходимо снять джампера питания +3 и +5. Питание идет с программатора.

Настроил AVRStudio на STK500, считал сигнатуру и фьюзы, залил тестовую прошивку. Все Ок!!!

Неделя 917

  • 21.04.2009 Заморгали диодами, получили данные с CMPS03. Т.к. Железного компаса нет, пока не оценить насколько правильные.

Ну и uart работать заставить пока не удалось ...

  • 22.04.2009 Пытался сжечь неправильной расплюсовкой разъема питания ))) пошел дым ... выдернул ... вроде работаета )))

Борюсь с uart и i2c ... какие то проблемы непонятные ... выдержки из форума )))

Проблема с неработающим uart на первый взгляд решилась перестановкой джамперов с режима S на M, данные пошли.

Но тут же возникла проблема работы программы см приложение. Краткое описание:

  1. Пишем в uart
  2. зажигаем диод
  3. читаем i2c
  4. пишем прочитаное в uart
  5. если прочитаное не 0 зажигаем второй диод
  6. гасим диоды и на начало.

Когда подключен программатор или блок питания весь цикл проходит без проблем.

Когда подключаем Модуль RoboRF-Uart-USB из проекта МиниБот в режиме Uart-USB, выполняется только первые 2 пункта. Т.е. виснет на чтении i2c.

Не пойму это я криво i2c читаю или RoboRF-Uart-USB криво на i2c действует!!!

Изучил схему ... Радиоканал 2.4ГГц ZigBee для МиниБота
RoboBus 10 SDA -> mega8 PD2 -> cc2500 CDO2
RoboBus 11 SCL -> mega8 PB1 -> cc2500 CS
А на программаторе cc2500 в наличии нет ...

По результату общения с EdGull'
"Мегаплата" не полностью совместима с RoboBus, как результат она давит i2c.

  1. Решение Аппаратное: отрезать ноги 10 и 11
  2. Решение Программное: эти ноги (PD2 и PB1 ) перевести на вход.

При этом работа в режимах:

  1. режим USB - Uart Minibot - не пострадает
  2. режим USB - Uart Mega8 - cc2500 - не пострадает
  3. режим Minibot - Uart Mega8 - cc2500 - не пострадает
  • 23.04.2009 Купил второй USB кабель что бы прошить код в "Мегаплату", но он оказался битым )))

Написал поддержку SRF08 и I2C-It. Читаю справочник по геометрии ... много думаю )))