Подглава 2.2.1.1.1 Создание рабочей области ROS для зависимостей

Прежде чем приступить к установке пакета usb_cam, давайте создадим рабочее пространство ROS для хранения зависимостей всех проектов, упомянутых в книге. Мы можем создать другое рабочее пространство для хранения кода проекта.

Создайте рабочее пространство ROS с именем ros_project_dependencies_ws в домашней папке. Клонировать usb_cam пакет в папку src:

$ git clone https://github.com/bosch-ros-pkg/usb_cam.git

Создайте рабочее пространство, используя catkin_make,

После сборки пакета установите пакет Ubuntu v4l-util. Это коллекция утилит командной строки V4L, используемых пакетом usb_cam:

$ sudo apt-get install v4l-utils

Настройка веб-камеры в Ubuntu 16.04

После установки этих двух устройств мы можем подключить веб-камеру к ПК, чтобы проверить, правильно ли она распознается нашим ПК.

Откройте Терминал и выполните команду dmesg, чтобы проверить журналы ядра. Если ваша камера обнаружена в Linux, она может выдать вам журналы, подобные этому:

$ dmesg

Рисунок 1: Журналы ядра устройства веб-камеры

Вы можете использовать любую веб-камеру с поддержкой драйверов в Linux. В этом проекте iBall Face2Face (http://www.iball.co.in/Product/Face2Face-C8-0-Rev-3-0- / 90) веб-камера используется для отслеживания. Вы также можете воспользоваться популярной веб-камерой Logitech C310, упомянутой как аппаратная. Вы можете выбрать её для лучшей производительности и отслеживания.

Если наша веб-камера поддерживает Ubuntu, мы можем открыть видеоустройство с помощью инструмента под названием

Cheese, Cheese простое средство просмотра веб-камеры.

Введите команду cheese в Терминале. Если он не установлен, вы можете установить его с помощью следующей команды:

$ sudo apt-get install cheese

Если драйвер и устройство правильные, вы получите видеопоток с веб-камеры, например:

Рисунок 2: Потоковое видео с веб-камеры с использованием Cheese

Поздравляем! Ваша веб-камера хорошо работает в Ubuntu, но разве мы закончили? Нет. Следующее, что нужно, это протестировать пакет ROS usb_cam. Мы должны убедиться, что он хорошо работает в ROS!

Полный исходный код этого проекта может быть клонирован из следующего репозитория Git. Следующая команда клонирует репозиторий проект:

$ git clone https://github.com/qboticslabs/ros_robotics_projects

Взаимодействие веб-камерой с ROS

Давайте проверим веб-камеру, используя пакет usb_cam. Следующая команда используется для запуска узлов usb_cam для отображения изображений с веб-камеры и одновременной публикации тем изображений ROS:

$ roslaunch usb_cam usb_cam-test.launch

Если все работает нормально, вы получите поток изображений и логи в Терминале, как показано здесь:

Рисунок 3: Работа пакета usb_cam в ROS

Изображение отображается с использованием image_view пакета в ROS, который подписан на topic под названием /Usb_cam/image_raw

Вот topics, которые публикует узел usb_cam:

Рисунок 4: topics, публикуемые узлом usb_cam

Мы закончили взаимодействие веб-камеры с ROS. Ну и что дальше? Мы должны связать сервопривод AX-12 Dynamixel с ROS. Прежде чем перейти к интерфейсу, мы должны что-то сделать для настройки этого сервопривода.

Далее мы рассмотрим, как настроить сервопривод Dynamixel AX-12A.

Конфигурирование сервопривода Dynamixel с использованием RoboPlus

Сервопривод Dynamixel можно настроить с помощью программы RoboPlus, предоставленной ROBOTIS INC (http://en.robotis.com/index/), производитель сервоприводов Dynamixel.

Чтобы настроить Dynamixel, вы должны переключить свою операционную систему на Windows. Инструмент RoboPlus работает в Windows. В этом проекте мы собираемся настроить сервопривод в Windows 7.

Вот ссылка для скачивания RoboPlus:

http://www.robotis.com/download/software/RoboPlusWeb%28v1.1.3.0%29.exe

Если ссылка не работает, вы можете просто найти в Google RoboPlus 1.1.3. После установки программного обеспечения вы получите следующее окно. Перейдите на вкладку «Expert» в программном обеспечении, чтобы получить приложение для настройки Dynamixel:

Рисунок 5: Менеджер Dynamixel в RoboPlus

Перед запуском Dynamixel Wizard и настройкой, мы должны подключить Dynamixel и правильно включить его. Ниже приведены изображения сервопривода AX-12A, который мы используем для этого проекта, и схема его контактного соединения:

Рисунок 6: AX-12A Dynamixel и схема подключения

В отличие от других RC сервоприводов, AX-12 - это интеллектуальный привод с микроконтроллером, который может контролировать каждый параметр сервопривода и настраивать их все. Он имеет редукторный привод, и выход сервопривода соединен с рупором сервопривода. Мы можем подключить любую ссылку к этому серво рупору. За каждым сервоприводом есть два порта подключения. Каждый порт имеет контакты, такие как VCC, GND и Data. Порты Dynamixel имеют последовательное соединение, поэтому мы можем подключить один сервопривод к другому сервоприводу. Вот схема подключения Dynamixel к компьютеру:

Рисунок 7: AX-12A Dynamixel и схема подключения

Основной аппаратный компонент, взаимодействующий с ПК Dynamixel, называется адаптером USB-Dynamixel. Это адаптер USB-последовательный, который может преобразовывать USB в RS232, RS 484 и TTL. В двигателях AX-12 передача данных осуществляется с использованием TTL. Из предыдущего рисунка видно, что в каждом порту есть три контакта. Контакт данных используется для отправки и получения от AX-12, а контакты питания используются для питания сервопривода. Диапазон входного напряжения AX-12A Dynamixel составляет от 9 В до 12 В. Второй порт в каждом Dynamixel можно использовать для последовательного подключения. С помощью такой цепочки мы можем подключить до 254 сервоприводов.

Официальные ссылки на сервопривод AX-12A и адаптер USB-Dynamixel:

AX-12A:

http://www.trossenrobotics.com/dynamixel-ax-12-robot-actuator.as px

USB-to-Dynamixel:

http://www.trossenrobotics.com/robotis-bioloid-usb2dynamixel.asp

Чтобы работать с Dynamixel, мы должны знать еще кое-что. Давайте посмотрим на некоторые важные характеристики сервопривода AX-12A. Технические характеристики взяты из руководства по сервоприводу.

Рисунок 8: Технические характеристики AX-12A

Сервопривод Dynamixel может связываться с ПК с максимальной скоростью 1 Мбит/с. Он также может предоставлять обратную связь о различных параметрах, таких как его положение, температура и текущая нагрузка. В отличие от сервоприводов RC, он может поворачиваться до 300 градусов, и связь в основном осуществляется с использованием цифровых пакетов.

Питание и подключение Dynamixel к ПК

Теперь мы собираемся подключить Dynamixel к ПК. Ниже приведен стандартный способ подключения:

Рисунок 9: Подключение Dynamixel к ПК

Трехжильный кабель сначала подключается к любому из портов AX-12, а другая сторона должна подключаться так, чтобы подключить концентратор питания с шестью портами. От концентратора питания с шестью портами подключите другой кабель к USB-to-Dynamixel. Мы должны установить переключатель USB-to-Dynamicel в режим TTL. Питание может быть подключено через адаптер 12 В или через батарею. Адаптер 12 В имеет гнездо с внутренней резьбой 2,1x5,5, поэтому при покупке вы должны проверить технические характеристики штепсельной вилки.

Настройка драйвера USB-to-Dynamicel на ПК

Мы уже обсуждали, что адаптер USB-to-Dynamixel представляет собой преобразователь USB-последовательный интерфейс с чипом FTDI (http://www.ftdichip.com/) в теме. Мы должны установить надлежащий драйвер FTDI на ПК, чтобы обнаружить устройство. Драйвер необходим для Windows, но не для Linux, потому что драйверы FTDI уже присутствуют в ядре Linux. Если вы устанавливаете программное обеспечение RoboPlus, драйвер может быть уже установлен вместе с ним. Если это не так, вы можете установить его вручную из папки установки RoboPlus.

Подключите USB-to-Dynamixel к ПК с Windows и проверьте диспетчер устройств. (Щелкните правой кнопкой мыши на «Мой компьютер» и перейдите в «Свойства» | «Диспетчер устройств»). Если устройство правильно обнаружено, вы увидите что-то вроде этого:

Рисунок 10: COM-порт USB-Dynamicel

Если вы получаете COM-порт для USB-Dynamicel, вы можете запустить Dynamixel менеджер из RoboPlus. Вы можете подключиться к номеру последовательного порта из списка и нажать кнопку «Поиск», чтобы найти Dynamixel, показано на следующем снимке экрана.

Выберите COM-порт из списка и подключитесь к порту, помеченному 1. После подключения к COM-порту установите скорость передачи по умолчанию 1 Мбит/с и нажмите кнопку Начать поиск:

Рисунок 11: COM-порт USB-to-Dynamicel

Если вы получаете список сервоприводов на левой боковой панели, это означает, что ваш компьютер обнаружил сервопривод Dynamixel. Если сервопривод не обнаружен, вы можете выполнить следующие шаги для отладки:

1. Убедитесь в правильности подключений и питания с помощью мультиметра. Убедитесь, что индикатор питания на задней панели мигает при включении питания; если он не включается, это может указывать на проблему с сервоприводом или источником питания.

2. Обновите прошивку сервопривода с помощью диспетчера Dynamixel из опции, отмеченной 6. Мастер показан в следующем наборе снимков экрана. При использовании мастера вам может потребоваться отключить питание и включить его снова, чтобы обнаружить сервопривод.

3. После обнаружения сервопривода, вы должны выбрать модель сервопривода и установить новую прошивку. Это может помочь вам обнаружить сервопривод в диспетчере Dynamixel, если существующая прошивка сервопривода устарела.

Рисунок 12: Мастер восстановления Dynamixel

Если сервоприводы перечислены в Dynamixel Manager, щелкните один из них, и вы увидите его полную конфигурацию. Мы должны изменить некоторые значения внутри конфигураций для нашего текущего проекта отслеживания лица. Вот параметры:

ID: установите ID на 1

Скорость в бодах: 1

Скорость движения: 100

Позиция ворот: 512

Измененные параметры сервопривода показаны на следующем рисунке:

Рисунок 13: Измененные настройки прошивки Dynamixel

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

Превосходно! Вы закончили настройку Dynamixel; Поздравляем! Что дальше? Мы хотим связать Dynamixel с ROS.

Полный исходный код этого проекта может быть клонирован из следующего репозитория Git. Следующая команда клонирует репозиторий проекта:

$ git clone https://github.com/qboticslabs/ros_robotics_projects

Last updated

Was this helpful?