Добрый день, уважаемые читатели Хабра! Начинаю серию статей о практическом использовании ROS на Raspberry Pi для проектов робототехники в связке с Arduino. Этот цикл имеет следующую структуру:
- Установка и настройка рабочей среды
- Компьютерное зрение с платой камеры RPi
- Управление роботом с клавиатуры с помощью телеопа
- Управление роботом с помощью игрового контроллера PS3 Dualshock.
Основное отличие версий B+ от B — количество доступных USB-портов на плате (у модели B — два, у модели B+ — четыре) и поддержка карт microSD (в модели B+ слот для SD-карт заменен слотом для карт microSD).
Я рекомендую использовать модель B+, поскольку вам потребуются порты USB для подключения источника питания, платы Arduino и, возможно, также подключения клавиатуры и мыши (если вы будете запускать Raspberry Pi локально, а не через SSH по сети).
Установка РОС Индиго
Маленький совет: для более комфортной работы с ROS на Raspberry Pi лучше использовать карту microSD объемом 16 ГБ и больше.Используя карту на 8 ГБ, после установки ROS Comm, всех необходимых библиотек для компьютерного зрения и различных драйверов для внешних устройств у меня на карте оставалось менее 1 ГБ свободного места.
На карте на 16 ГБ после установки подобных пакетов у меня было 7 ГБ свободного места.
Рекомендую установить версию ROS Comm, а затем, при необходимости, установить необходимые пакеты для ROS (как это делается, я покажу далее в статье).
Инструкции по установке ROS Indigo на Raspberry Pi доступны по адресу Веб-сайт .
Обратите внимание, что вам необходимо запускать команды, специфичные для вашей версии Rasbian (в моем случае — Джесси).
При выполнении окончательной компиляции .
/src/catkin/bin/catkin_make_isolated может возникнуть ошибка при компиляции компонента roscpp с аналогичным выводом:
Проблема в том, что на SD-карте недостаточно раздела подкачки.CMakeFiles/Makefile2:308: recipe for target 'CMakeFiles/roscpp.dir/all' failed make[1]: *** [CMakeFiles/roscpp.dir/all] Error 2 Makefile:127: recipe for target 'all' failed
Требуется раздел подкачки размером 1 ГБ.
Установить нужный своп можно следующим образом.
Для начала выделим место под своп: dd if=/dev/zero of=/swap bs=1M count=1024
Отформатируем новый раздел под swap: mkswap /swap
Сообщим системе, что она может использовать новый раздел для подкачки: swapon /swap
Чтобы автоматически включить подкачку на нашем разделе после перезагрузки, пропишем правило в /etc/fstab: /swap none swap sw 0 0
После этого просто перезапустите процедуру установки.
Установка дополнительных пакетов ROS
Давайте установим все необходимые пакеты ROS, которые нам понадобятся в дальнейшем для различных задач.Пакеты можно установить с помощью скрипта rosinstall. Установка займет несколько часов.
Нам понадобятся следующие пакеты:
- cv_bridge используется для преобразования изображений OpenCV в формат изображений ROS и наоборот.
- image_transport предназначен для подписки и публикации изображений в ROS; он скрыто реализует сжатие изображений для более быстрой транспортировки
- joystick_drivers обеспечивает аппаратную поддержку игровых контроллеров, таких как PS3 Dualshock.
- rqt_image_view — графическая программа для визуализации RGB-изображений, опубликованных в теме.
- rqt_graph используется для визуализации диаграммы вычислительного графа ROS (показывает все активные узлы и темы, а также связи между ними)
- rqt_plot — графическая утилита для визуализации опубликованных в теме значений в виде графика.
- teleop_twist_keyboard предоставляет пользовательский интерфейс для управления роботом с помощью нажатий клавиш на клавиатуре.
$ rosinstall_generator ros_comm cv_bridge image_transport joystick_drivers rqt_image_view rqt_graph rqt_plot teleop_twist_keyboard --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-custom_ros.rosinstall
$ wstool merge -t src indigo-custom_ros.rosinstall
$ wstool update -t src
$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:jessie
$ sudo .
/src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
Настройка рабочей среды для работы с Arduino
Разблокировка последовательных портов в Raspbian-версии Jessie немного отличается от описанной в разделе предыдущая статья .Дело в том, что в Raspbian Jessie отсутствует файл /etc/inittab. inittab был частью sysvinit, который был заменен systemd в версии Jessie. серийный getty теперь является обычным сервисом.
Поэтому нам нужно будет отключить последовательный сервис getty: $ sudo systemctl stop [email protected]
Процедура отключения ведения журнала отладки на последовательном порту остается неизменной, как и в Raspbian-версии Wheezy — файл /boot/cmdline.txt редактируется, как описано в разделе предыдущая статья .
Установка rosserial_arduino осуществляется по схеме из предыдущей статьи.
На этом установка основных модулей платформы ROS и настройка рабочей среды завершены.
Пришло время перейти к конкретным задачам.
Продолжение следует… Теги: #Raspberry Pi #Робототехника #raspberry #arduino #ros #robotics #rosserial
-
Карманный Жк-Проектор 3M Mp-180
19 Oct, 24 -
Воздушные Фильтры Для Пк
19 Oct, 24 -
Вы Смотрите Эти Скринкасты?
19 Oct, 24 -
Как Вы Снимаете Стресс?
19 Oct, 24 -
Мультитач Для Ноутбуков С Windows
19 Oct, 24 -
Мышеловка Для Гиков
19 Oct, 24