И я туда же… Начало


Началось все с того, что я наткнулся в интернете на описание проекта Arduino. Сам я программист и мне частенько хотелось запрограммировать что-нибудь осязаемое — что-то, что работало бы автономно, без компьютера. Arduino — это как раз оно и есть!

Заказав ардуину, стал продумывать функционал робота. Направление я выбрал практически сразу — автономная навигация. Мне очень интересна эта тема и она кажется мне значительно более занимательной, чем всякие «object avoidance» и тем более «безмозглые» RC-роботы.
Итак, задача: робот должен двигаться в заданную координатами точку, строя карту местности, вычисляя кратчайшие пути и объезжая препятствия.
Нужно еще придумать, как передавать координаты роботу. Наверно это будет что-то типа приложения для мобильника, через которое можно будет отдавать команды роботу. Так же в этом приложении можно будет просматривать карту местности, нарисованную роботом. В общем-то тут много вариантов, решу по ходу дела. Закончить проект надо успеть до окончания конкурса, те до 30.04.2012. Ну что ж, приступим!

Этап первый. Теория
Гугление по теме об автономной навигации чаще всего приводило к роботам с веб-камерами и обработкой сигнала на компе. Однако этот вариант не для меня, мой робот должен быть автономным. Значит будем разбираться сами.
1) Шасси
Чтобы не отвлекаться на мелочи, я решил взять готовое шасси от дешевого радиоуправляемого танка. Вынув все ненужные внутренности, я получил в свое распоряжение гусеничную платформу, пару моторчиков с редуктором и аккум на 4.8 вольт для питания моторчиков.
2) Глаза
Для определения расстояния до препятствий пока что буду использовать ультразвуковой сонар. По случаю я прикупил еще дальномер Sharp GP2Y0A02YK0F, однако диапазон 20-150см не очень мне подходит, хочется видеть препятствия ближе)
3) Мозги
Самое сложное для меня на данном этапе — определение местоположения. Робот должен в каждый момент времени четко понимать — где именно он находится и куда ему предстоит двигаться. Для этого надо точно определять пройденное расстояние и направление движения. Вот тут я еще не пришел к окончательному решению, пока что буду экспериментировать с электронным компасом и акселерометром. В дальнейшем может быть поставлю энкодеры на гусеницы — для этой цели я уже распотрошил две старые мышки =)

Этап второй. Учимся просто ездить

Разглядываем фотографию, видим следующие штуки:
1) Сонар, закрепленный на серве. Серва типа HXT900, только без опозновательных знаков. Серва ужасная — заедают пластиковые шестеренки, наводится плохо, разваливается в буквальном смысле. Заменю при первой возможности.

2) Ардуина с моторшилдом. Ну тут все просто.

Итого: робот ездит по прямой, крутит башкой по сторонам. Если встречает препятствие — поворачивает и едет в другую сторону.
Хотя на самом деле «по прямой» — это конечно не совсем правда 🙂 Левая гусеница сильно отстает от правой — из-за этого робот ездит по дуге. Частично это компенсируется уменьшением скорости правого моторчика, но решение конечно так себе — надо придумать что с этим сделать.

Следующий этап — установка акселерометра и компаса, они прибудут ко мне завтра. Вот тогда-то и начнется самое веселье. Ждите продолжения 🙂


0 комментариев на «“И я туда же… Начало”»

    • Трололошенько этот fixled.ru 😀

      I2C хаб для Ардуино(!) за 200р (!)
      fixled.ru/microcontrollers/modules/i2c-hub.html
      Модуль светодиода для Ардуино за 150)))
      fixled.ru/microcontrollers/modules/sled.html
      Т.е. они продают обычный сигнальный светодиод за 150р… ппц.

      На месте любителей ардуино я бы зубы подточил. В этом магазине вас за полных идиотов держут. ))

    • Не путай ценовую политику производителя и магазина. I2C хаб и модуль светодиода производит некто seeedstudio.com. И это их личная инициатива делать такие полезные вещи. В оригинале конечно же ценник у них пониже, но на то он и оригинал)

    • Да какая разница, где политика и чья ценовая))
      До светодиода за 150 рублей даже чипдипу далеко 😀

    • я купил там сонар за 600р
      нигде не нашел дешевле

    • Это я так, смеюсь над тем что продают))
      600р за сонар в России — это совсем не дорого. Хотя такой-же из Китая обошелся бы в 200р с доставкой, только ждать больше месяца пришлось бы.

    • Ну так нафиг покупать у них, если напрямую у братьев-китайцев ощутимо дешевле?
      Даже у SeeedStudio ценники завышены, но кое-что пришлось брать там, т.к. еще не нашел, где взять дешевле. УЗ-сонары брал на BuyInCoins. Из Китая в Казахстан доставка 3 недели в среднем. Платил через PayPal.

    • УЗ-сонары я покупал здесь.
      Вот кто бы сказал, где счётчик Гейгера взять?
      Похоже, после Фукусимы они в срочном порядке закончились везде :)))

  1. Отличная работа, спасибо!

    В начале апреля определимся и, скорее всего, продлим конкурс и на май — т.е. на всю весну.

    А по проекту — проблема «разного» поведения двигателей/колёс/гусениц решается использованием энкодеров (и корректировки с помощью ПИД-а) — вам ведь всё равно потребуется одометрия.

    пример использования — Робоконструктор POP-BOT: обзор и улучшения

    А вообще, ваша задача — это, фактически, SLAM. Пока распространённые алгоритмы работают именно на одометрии и лазерных дальномерах (думаю, пойдёт и УЗ-сенсор ).
    Вариантов реализации множество:
    * мобильный робот с датчиками, который по беспроводному каналу (например, тот же Bluetooth) передаёт данные на ПК, на котором уже крутится программа обсчёта. На ПК можно, например, использовать тот же ROS, так как там уже есть готовые реализации (GMapping).

    пример — Автомобиле-подобный робот Lego NXT с удаленным управлением с ПК на базе ROS

    * попробовать сделать всё на МК.

    Да, с этими маленькими сервами не угадаешь — поэтому лучше использовать стандартные сервы (типа SG-5010).

    Разумеется, ждём продолжения 🙂

    • Про SLAM я конечно же тоже читал, именно на их принципы и буду опираться. Но компьютер не буду использовать принципиально. Все расчеты — только на МК.
      Не хочу пока использовать энкодеры — гусеницы нехило проскальзывают при разворотах и, например, когда едут по разным поверхностям. Одометрию попытаюсь сделать на акселерометре с компасом + сближение с препятствиями.

    • Одометрия на акселерометре? и вообще акселерометр на танке? по-мойму, ни к чему.
      А одометрию, может быть, попробовать на сенсоре из оптической мышки сделать?
      А компас, наверное, придется на мачту поднимать, от движков подальше?

    • компас на корме стоит — никто никому пока не мешает

  2. По случаю я прикупил еще дальномер Sharp GP2Y0A02YK0F, однако диапазон 20-150см не очень мне подходит, хочется видеть препятствия ближе)

    Для того, что бы уменьшить минимальное расстояние обнаружения препятствий датчиком, его ставят на «корму»(на зад=) — 20 см корпуса танка какраз съедят его слепую зону 😉

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение