Перемещение по комнате

Тема в разделе "Arduino & Shields", создана пользователем Kot111, 10 ноя 2013.

  1. Kot111

    Kot111 Нуб

    Есть робот пылесос, сейчас он упираясь в препятствия просто меняет курс, суть вот в чем хочу сделать так чтобы он ездил по комнате объезжаю всю площадь, , как сделать? Какое железо для этого понадобится? Сильно не пинать с ардуино работаю недавно.
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    А что в роботе есть сейчас? Возможно, нужно не железо, а просто хорошая программа.
     
  3. Kot111

    Kot111 Нуб

    В роботе сейчас uno R3, ик дальномер, драйвер мотора и 3 кнопки в качестве бампера
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Сперва нужно продумать алгоритм перемещения робота. Должен ли робот ориентироваться в окружающем пространстве и иметь карту помещения? Или же можно ограничиться простым набором правил, которые позволят роботу обойти всю площадь? Предполагается ли наличие препятствий (тапки, кот)?
     
  5. Kot111

    Kot111 Нуб

    Я склоняюсь к простому набору правил, из препятствий могут быть только тапки. А что понадобится чтобы робот имел карту помещений?
     
  6. Sergey991

    Sergey991 Нерд

    Гм. лично я предлагаю дальномер на сервомашинку посадить, тогда вы теоретически сможете сканировать 180 градусов, тоесть дальномер крутится на серво, когда видит припятствие смотрит на угол и корректирует движение) Надеюсь помог)
     
  7. NR55RU

    NR55RU Гик

    Вот тут обсуждался вопрос создания "карты" пространства.
    Поглядите может какую мысль интересную почерпнете. :)
     
  8. Megakoteyka

    Megakoteyka Оракул Модератор

    Понадобится прежде всего как-то определять положение робота относительно этой карты, т.е. система навигации.
    Если набор правил - то проще всего ходить змейкой либо по спирали. Только придется добавить алгоритм объезда препятствий.
     
  9. Kot111

    Kot111 Нуб

    Допустим змейка он едет- едет, бац уперся, отъехал (объехал) и снова на маршрут? Я правильно понимаю?
     
  10. pemalhim

    pemalhim Нуб

    энкодеры есть на двигателях? можно использовать их
     
  11. Kot111

    Kot111 Нуб

    Нет
     
  12. Megakoteyka

    Megakoteyka Оракул Модератор

    Если уперся в стену - развернулся и поехал обратно. Если встретил тапок - объехал его и поехал дальше.
    Нужно учитывать пройденное расстояние либо уметь отличать мелкую преграду от стены.
     
  13. Kot111

    Kot111 Нуб

    Еще вопрос, реально ли реализовать следующие при включении робота он едет змейкой, а при нажатии на кнопку (не важно как либо на корпусе либо удаленно) робот начинает ехать по спирали?
     
  14. Megakoteyka

    Megakoteyka Оракул Модератор

    Сменить режим по нажатию кнопки легко.
    Реализовать режимы будет гораздо сложнее :)
     
  15. pemalhim

    pemalhim Нуб

    На счет режима спирали: Vбк=V/R*(R-l/2); Vдк=V/R*(R+l/2)
    где Vбк - скорость ближнего колеса, Vдк- скорость дальнего колеса, V-линейная скорость всей конструкции, R - текущий радиус спирали, l - расстояние между колесами. За один полный оборот угла радиус должен возрастать на постоянный шаг.
    Как вообще это можно сделать на ардуине? Вроде просто, но что то не хватает.
     
  16. Megakoteyka

    Megakoteyka Оракул Модератор

    Не хватает алгоритма поиска центра спирали и формулы расчета текущего радиуса спирали.
    На практике одно колесо проскользнет и вся спираль поломается. Нужно не только задавать правило перемещения, но и контролировать его каким-либо образом. Но сначала нужно реализовать просто перемещение в идеальных условиях, а затем плясать дальше с контролем.