Мобильный робот с дифференциальным шасси: различия между версиями
Editor (обсуждение | вклад) (Новая страница: « == Аппаратная часть == Для программирования контроллеров Arduino используется программа Arduin…») |
Editor (обсуждение | вклад) (→Аппаратная часть) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | == | + | |
+ | == Мобильный робот == | ||
+ | [[Файл:Diff robot.jpg|мини|Внешний вид робота]] | ||
+ | Мобильный робот представляет собой платформу с [https://en.wikipedia.org/wiki/Differential_wheeled_robot дифференциальным шасси]. Для навигации в пространстве робот оснащен различными сенсорами, среди которых: | ||
+ | '''цифровые датчики линии и ультразвуковой дальномер'''. К двигателям представленной платформы присоединены '''энкодеры''', благодаря которым можно узнать положение робота в пространстве с помощью [http://robocraft.ru/blog/technology/736.html одометрии]. Для обработки сенсоров используется '''микроконтроллер Arduino Mega2560''', который отвечает за низкоуровневую систему. Также на роботе присутствует '''микрокомпьютер RaspberryPi model 3b+'''. Данный компьютер занимается отправкой команд на контроллер с помощью фреймворка [https://ru.wikipedia.org/wiki/ROS_(%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0) ROS] | ||
+ | ===Низкоуровневая система=== | ||
+ | [[Файл:Заводской блок питания.jpg|мини|Заводской БП]] | ||
+ | [[Файл:Самодельный блок питания.jpg|мини|Самодельный БП]] | ||
Для программирования контроллеров Arduino используется программа Arduino IDE Скачать ее можно по | Для программирования контроллеров Arduino используется программа Arduino IDE Скачать ее можно по | ||
данной [https://www.arduino.cc/en/main/software Ссылке]. | данной [https://www.arduino.cc/en/main/software Ссылке]. | ||
Перед программированием робота требуется подключить питание и все внешние датчики. | Перед программированием робота требуется подключить питание и все внешние датчики. | ||
В качестве питания используется источник постоянного тока с выходным напряжением равным 5В. Для подачи питания на плату требуется соединить <strong> пин OUT+/+5V/PWR+ </strong> с пином Arduino Mega <strong> 5V | В качестве питания используется источник постоянного тока с выходным напряжением равным 5В. Для подачи питания на плату требуется соединить <strong> пин OUT+/+5V/PWR+ </strong> с пином Arduino Mega <strong> 5V | ||
− | Пин Out-/gnd/PWR- </strong> требуется соединить с пином gnd Arduino с помощью перемычки. Если при нажатии кнопки питания на батарейном блоке светодиод на контроллере Arduino загорелся зеленым цветом, это свидетельствует о том, что питание подключено верно. Если светодиод не горит или горит очень тускло, значит, что Вы допустили ошибку в подключении питания. На плате установлен <strong> kvant motor shield (далее шилд) </strong>, благодаря которому контроллер может осуществлять управления моторами. Моторы подключаются в клемы на шилде. Два провода от моторов должны находиться в соседних клемах. | + | Пин Out-/gnd/PWR- </strong> требуется соединить с пином gnd Arduino с помощью перемычки.[[Файл:Питание Arduino.jpg|мини|центр|Питание контроллера Arduino]]<br> |
− | + | Если при нажатии кнопки питания на батарейном блоке светодиод на контроллере Arduino загорелся зеленым цветом, это свидетельствует о том, что питание подключено верно. Если светодиод не горит или горит очень тускло, значит, что Вы допустили ошибку в подключении питания. На плате установлен <strong> kvant motor shield (далее шилд) </strong>, благодаря которому контроллер может осуществлять управления моторами. Моторы подключаются в клемы на шилде. Два провода от моторов должны находиться в соседних клемах. | |
− | + | ||
− | + | ||
Используемые сенсоры: | Используемые сенсоры: | ||
* Датчик линии X2 | * Датчик линии X2 | ||
Строка 31: | Строка 38: | ||
Контакт '''ECHO''' требуется соединить с любым цифровым пином, например '''22''' с помощью перемычки с контактом '''5V''' на шилде.<br> | Контакт '''ECHO''' требуется соединить с любым цифровым пином, например '''22''' с помощью перемычки с контактом '''5V''' на шилде.<br> | ||
На роботе установлен микрокомпьютер RaspberryPi model 3b+. Для его включения требуется соединить перемычкой контакт 5v c контактом '''OUT+/+5V/PWR+''' на блоке питания и соединить контакт '''gnd''' c контактом '''Out-/gnd/PWR''' | На роботе установлен микрокомпьютер RaspberryPi model 3b+. Для его включения требуется соединить перемычкой контакт 5v c контактом '''OUT+/+5V/PWR+''' на блоке питания и соединить контакт '''gnd''' c контактом '''Out-/gnd/PWR''' | ||
− | Расположение и нумерация пинов указаны на картинке, расположенной ниже | + | Расположение и нумерация пинов указаны на картинке, расположенной ниже. |
− | [[Файл:Выводы RaspberryPi3.png|мини|Расположение и нумерация пинов RaspberryPi model3]] | + | [[Файл:Выводы RaspberryPi3.png|мини|центр|Расположение и нумерация пинов RaspberryPi model3]] |
+ | |||
+ | === Система верхнего уровня на базе RaspberryPi === | ||
+ | RaspberryPi является компьютером, следовательно на нем должна быть установлена операционная система (далее ОС). | ||
+ | На данном роботе установлен [https://downloads.ubiquityrobotics.com/pi.html образ ubuntu], на котором уже предустановлен ROS и при запуске компьютера, он раздает точку доступа wi-fi. | ||
+ | Управление компьютером осуществляется с помощью ssh. Сначала требуется подключить ваш компьютер к точке доступа wi-fi. | ||
+ | Имя точки доступа называется '''ubiquityrobot + уникальный id'''. Пароль от точки доступа: '''robotseverywhere'''. Если на вашем компьютере установлена ОС ubuntu, то подключиться можно с помощью терминала. В терминале требуется ввести | ||
+ | команду '''ssh ubuntu@10.42.0.1'''<br> | ||
+ | Логин: '''ubuntu''' | ||
+ | Пароль: '''ubuntu'''.<br> | ||
+ | Если на вашем компьютере установлена ОС Windows, то можно воспользоваться ssh клиентом Putty. | ||
+ | Во вкладке host name or ip adress нужно ввести ip 10.42.0.1. После этого в окне терминала введите логин и пароль указанные выше. | ||
+ | Ядро ROS уже запущено по-умолчанию на данной ОС.<br> | ||
+ | Для подключения к Arduino нужно ввести команду '''rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0<br>'''. |
Текущая версия на 12:27, 28 июля 2020
Мобильный робот
Мобильный робот представляет собой платформу с дифференциальным шасси. Для навигации в пространстве робот оснащен различными сенсорами, среди которых: цифровые датчики линии и ультразвуковой дальномер. К двигателям представленной платформы присоединены энкодеры, благодаря которым можно узнать положение робота в пространстве с помощью одометрии. Для обработки сенсоров используется микроконтроллер Arduino Mega2560, который отвечает за низкоуровневую систему. Также на роботе присутствует микрокомпьютер RaspberryPi model 3b+. Данный компьютер занимается отправкой команд на контроллер с помощью фреймворка ROS
Низкоуровневая система
Для программирования контроллеров Arduino используется программа Arduino IDE Скачать ее можно по данной Ссылке. Перед программированием робота требуется подключить питание и все внешние датчики. В качестве питания используется источник постоянного тока с выходным напряжением равным 5В. Для подачи питания на плату требуется соединить пин OUT+/+5V/PWR+ с пином Arduino Mega 5V
Пин Out-/gnd/PWR- требуется соединить с пином gnd 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
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
.