Мобильный робот с дифференциальным шасси: различия между версиями

Материал из RoboWiki
Перейти к навигации Перейти к поиску
(Новая страница: « == Аппаратная часть == Для программирования контроллеров Arduino используется программа Arduin…»)
 
(Аппаратная часть)
 
(не показаны 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.jpg|мини|Питание контроллера Arduino]]
+
Если при нажатии кнопки питания на батарейном блоке светодиод на контроллере Arduino загорелся зеленым цветом, это свидетельствует о том, что питание подключено верно. Если светодиод не горит или горит очень тускло, значит, что Вы допустили ошибку в подключении питания. На плате установлен <strong> kvant motor shield (далее шилд) </strong>, благодаря которому контроллер может осуществлять управления моторами. Моторы подключаются в клемы на шилде. Два провода от моторов должны находиться в соседних клемах.
[[Файл:Заводской блок питания.jpg|мини|Заводской БП]]
+
 
[[Файл:Самодельный блок питания.jpg|мини|Самодельный БП]]
+
 
 
Используемые сенсоры:
 
Используемые сенсоры:
 
* Датчик линии 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


Если при нажатии кнопки питания на батарейном блоке светодиод на контроллере 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
.