Управление реальным роботом без обратной связи в ROS (часть 4)

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

В том уроке мы сделаем первые шаги в запуске ROS на реальном роботе. Мы преобразуем команды линейной и угловой целевых скоростей робота в команды, подаваемые на двигатели, которые будут вращать левое и правое колеса нашего робота с дифференциальным приводом. Мы используем разомкнутую систему управления (без обратной связи), которая не использует данные с датчиков (например, энкодеров) в качестве обратной связи.

Обзор: разомкнутая система управления роботом

Цели: 1. Организация управления роботом без обратной связи через WiFi с помощью команд скорости

2. Обучение управлению без обратной связи роботом с дифференциальным приводом, с использованием интерфейса передачи сообщений ROS через WiFi, и управление двигателями реального робота

Обзор: У нас есть две машины: хост-машина с Ubuntu и робот, управляемый через Raspberry Pi. Устройства обмениваются сообщениями ROS, объединяя их в сеть для совместного использования одного и того же мастера ROS. Узлы ROS для Raspberry Pi управляют двигателями (влево + вправо) и публикуют показания энкодеров робота. Ноды ROS на хост-машине вычисляют целевые значения скорости для двигателей, а также обновляют одометрию робота.

План:

  1. Установить ПО на Raspberry Pi, которая на роботе
  2. Настроить сеть между хост-машиной и Raspberry Pi
  3. Создать ноды ROS для отправки команд на моторы робота
  4. Проверить, что робот корректно отрабатывает команды управления

Код репозитория (хранилища):

git clone -b openloop https://github.com/richardw05/gopigo_ws.git

Видео-мануал

Совместимость:

Программное обеспечение

  • ROS: Kinetic
  • OS: Ubuntu 16.04

Аппаратное обеспечение

  • Робот с дифференциальным приводом: GoPiGo
  • USB-адаптер WiFi: Raspberry Pi USB WiFi Dongle

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

Если вы заказываете новый USB-адаптер WiFi, рассмотрите устройство WiFi, поддерживающее стандарт 802.11 AC, если в будущем вы собираетесь передавать данные с камеры.

0. (GoPiGo) Установка ПО

Raspberry Pi робота будет взаимодействовать с платой GoPiGo, которая контролирует и связывается с различными периферийными устройствами (такими как двигатели, инфракрасные датчики и т.д.). Мы установим ROS и библиотеку GoPiGo на Raspberry Pi.

А. Установите ROS на Raspberry Pi. На Raspberry Pi предусмотрена специальная процедура установки ROS. Следуйте инструкциям отсюда: wiki.ros.org/ROSberryPi/Installing ROS Kinetic on the Raspberry Pi

Б. Установите GoPiGo на Raspberry Pi. Инструкции по установке библиотеки GoPiGo можно найти здесь: http://www.dexterindustries.com/GoPiGo/programming/python-programming-for-the-raspberry-pi-gopigo/installing-gopigo-python-library

1. (Опционально) Работа по сети с ROS через WiFi