Мобильный робот с дифференциальным шасси

Материал из RoboWiki
Перейти к навигации Перейти к поиску


Мобильный робот

Внешний вид робота

Мобильный робот представляет собой платформу с дифференциальным шасси. Для навигации в пространстве робот оснащен различными сенсорами, среди которых: цифровые датчики линии и ультразвуковой дальномер. К двигателям представленной платформы присоединены энкодеры, благодаря которым можно узнать положение робота в пространстве с помощью одометрии. Для обработки сенсоров используется микроконтроллер Arduino Mega2560, который отвечает за низкоуровневую систему. Также на роботе присутствует микрокомпьютер RaspberryPi model 3b+. Данный компьютер занимается отправкой команд на контроллер с помощью фреймворка ROS

Низкоуровневая система

Заводской БП
Самодельный БП

Для программирования контроллеров Arduino используется программа Arduino IDE Скачать ее можно по данной Ссылке. Перед программированием робота требуется подключить питание и все внешние датчики. В качестве питания используется источник постоянного тока с выходным напряжением равным 5В. Для подачи питания на плату требуется соединить пин OUT+/+5V/PWR+ с пином Arduino Mega 5V

Пин Out-/gnd/PWR- требуется соединить с пином gnd Arduino с помощью перемычки.

Питание контроллера Arduino


Если при нажатии кнопки питания на батарейном блоке светодиод на контроллере Arduino загорелся зеленым цветом, это свидетельствует о том, что питание подключено верно. Если светодиод не горит или горит очень тускло, значит, что Вы допустили ошибку в подключении питания. На плате установлен kvant motor shield (далее шилд) , благодаря которому контроллер может осуществлять управления моторами. Моторы подключаются в клемы на шилде. Два провода от моторов должны находиться в соседних клемах.


Используемые сенсоры:

  • Датчик линии X2
  • Энкодер X2
  • УЗ дальномер HCSR-04

Поскольку на Arduino есть только один контакт с выходном 5V, используется расширяющая плата: шилд.
Датчик линии оснащен тремя контактами: VCC GND OUT.
Контакт VCC требуется соединить с помощью перемычки с контактом 5V на шилде.
Контакт GND требуется соединить с помощью перемычки с контактом G на шилде.
Контакт OUT требуется соединить с любым цифровым пином, например 33 с помощью перемычки.
Второй датчик линии подключается также, только контакт OUT требуется подключить к другому цифровому пину, например 35
Энкодер имеет 4 контакта: VCC GND D0 A0.
Контакт A0 можно не использовать.
Контакт VCC требуется соединить с помощью перемычки с контактом 5V на шилде.
Контакт GND требуется соединить с помощью перемычки с контактом G на шилде.
Контакт OUT требуется соединить с цифровым пином, поддерживающим прерывание, например 2
Второй энкодер подключается также, только контакт D0 требуется подключить к другому цифровому пину c поддержкой прерывания, например 3
Дальномер HCSR-04 имеет 4 контакта: VCC GND TRIG ECHO.
Контакт VCC требуется соединить с помощью перемычки с контактом 5V на шилде.
Контакт GND требуется соединить с помощью перемычки с контактом G на шилде.
Контакт TRIG требуется соединить с любым цифровым пином, например 21 с помощью перемычки с контактом 5V на шилде.
Контакт ECHO требуется соединить с любым цифровым пином, например 22 с помощью перемычки с контактом 5V на шилде.
На роботе установлен микрокомпьютер RaspberryPi model 3b+. Для его включения требуется соединить перемычкой контакт 5v c контактом OUT+/+5V/PWR+ на блоке питания и соединить контакт gnd c контактом Out-/gnd/PWR Расположение и нумерация пинов указаны на картинке, расположенной ниже.

Расположение и нумерация пинов RaspberryPi model3

Система верхнего уровня на базе RaspberryPi

RaspberryPi является компьютером, следовательно на нем должна быть установлена операционная система (далее ОС). На данном роботе установлен образ ubuntu, на котором уже предустановлен ROS и при запуске компьютера, он раздает точку доступа wi-fi. Управление компьютером осуществляется с помощью ssh. Сначала требуется подключить ваш компьютер к точке доступа wi-fi. Имя точки доступа называется ubiquityrobot + уникальный id. Пароль от точки доступа: robotseverywhere. Если на вашем компьютере установлена ОС ubuntu, то подключиться можно с помощью терминала. В терминале требуется ввести команду ssh ubuntu@10.42.0.1
Логин: ubuntu Пароль: ubuntu.
Если на вашем компьютере установлена ОС Windows, то можно воспользоваться ssh клиентом Putty. Во вкладке host name or ip adress нужно ввести ip 10.42.0.1. После этого в окне терминала введите логин и пароль указанные выше. Ядро ROS уже запущено по-умолчанию на данной ОС.
Для подключения к Arduino нужно ввести команду rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
.