Подглава 2.2.1.1.1 Создание рабочей области ROS для зависимостей
Last updated
Was this helpful?
Last updated
Was this helpful?
Прежде чем приступить к установке пакета 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
После установки этих двух устройств мы можем подключить веб-камеру к ПК, чтобы проверить, правильно ли она распознается нашим ПК.
Откройте Терминал и выполните команду dmesg, чтобы проверить журналы ядра. Если ваша камера обнаружена в Linux, она может выдать вам журналы, подобные этому:
$ dmesg
Если наша веб-камера поддерживает Ubuntu, мы можем открыть видеоустройство с помощью инструмента под названием
Cheese, Cheese простое средство просмотра веб-камеры.
Введите команду cheese в Терминале. Если он не установлен, вы можете установить его с помощью следующей команды:
$ sudo apt-get install cheese
Если драйвер и устройство правильные, вы получите видеопоток с веб-камеры, например:
Поздравляем! Ваша веб-камера хорошо работает в Ubuntu, но разве мы закончили? Нет. Следующее, что нужно, это протестировать пакет ROS usb_cam. Мы должны убедиться, что он хорошо работает в ROS!
Полный исходный код этого проекта может быть клонирован из следующего репозитория Git. Следующая команда клонирует репозиторий проект:
Давайте проверим веб-камеру, используя пакет usb_cam. Следующая команда используется для запуска узлов usb_cam для отображения изображений с веб-камеры и одновременной публикации тем изображений ROS:
$ roslaunch usb_cam usb_cam-test.launch
Если все работает нормально, вы получите поток изображений и логи в Терминале, как показано здесь:
Изображение отображается с использованием image_view пакета в ROS, который подписан на topic под названием /Usb_cam/image_raw
Вот topics, которые публикует узел usb_cam:
Мы закончили взаимодействие веб-камеры с ROS. Ну и что дальше? Мы должны связать сервопривод AX-12 Dynamixel с ROS. Прежде чем перейти к интерфейсу, мы должны что-то сделать для настройки этого сервопривода.
Далее мы рассмотрим, как настроить сервопривод Dynamixel AX-12A.
Чтобы настроить Dynamixel, вы должны переключить свою операционную систему на Windows. Инструмент RoboPlus работает в Windows. В этом проекте мы собираемся настроить сервопривод в Windows 7.
Вот ссылка для скачивания RoboPlus:
Если ссылка не работает, вы можете просто найти в Google RoboPlus 1.1.3. После установки программного обеспечения вы получите следующее окно. Перейдите на вкладку «Expert» в программном обеспечении, чтобы получить приложение для настройки Dynamixel:
Перед запуском Dynamixel Wizard и настройкой, мы должны подключить Dynamixel и правильно включить его. Ниже приведены изображения сервопривода AX-12A, который мы используем для этого проекта, и схема его контактного соединения:
В отличие от других RC сервоприводов, AX-12 - это интеллектуальный привод с микроконтроллером, который может контролировать каждый параметр сервопривода и настраивать их все. Он имеет редукторный привод, и выход сервопривода соединен с рупором сервопривода. Мы можем подключить любую ссылку к этому серво рупору. За каждым сервоприводом есть два порта подключения. Каждый порт имеет контакты, такие как VCC, GND и Data. Порты Dynamixel имеют последовательное соединение, поэтому мы можем подключить один сервопривод к другому сервоприводу. Вот схема подключения 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:
USB-to-Dynamixel:
Сервопривод Dynamixel может связываться с ПК с максимальной скоростью 1 Мбит/с. Он также может предоставлять обратную связь о различных параметрах, таких как его положение, температура и текущая нагрузка. В отличие от сервоприводов RC, он может поворачиваться до 300 градусов, и связь в основном осуществляется с использованием цифровых пакетов.
Теперь мы собираемся подключить Dynamixel к ПК. Ниже приведен стандартный способ подключения:
Трехжильный кабель сначала подключается к любому из портов AX-12, а другая сторона должна подключаться так, чтобы подключить концентратор питания с шестью портами. От концентратора питания с шестью портами подключите другой кабель к USB-to-Dynamixel. Мы должны установить переключатель USB-to-Dynamicel в режим TTL. Питание может быть подключено через адаптер 12 В или через батарею. Адаптер 12 В имеет гнездо с внутренней резьбой 2,1x5,5, поэтому при покупке вы должны проверить технические характеристики штепсельной вилки.
Подключите USB-to-Dynamixel к ПК с Windows и проверьте диспетчер устройств. (Щелкните правой кнопкой мыши на «Мой компьютер» и перейдите в «Свойства» | «Диспетчер устройств»). Если устройство правильно обнаружено, вы увидите что-то вроде этого:
Если вы получаете COM-порт для USB-Dynamicel, вы можете запустить Dynamixel менеджер из RoboPlus. Вы можете подключиться к номеру последовательного порта из списка и нажать кнопку «Поиск», чтобы найти Dynamixel, показано на следующем снимке экрана.
Выберите COM-порт из списка и подключитесь к порту, помеченному 1. После подключения к COM-порту установите скорость передачи по умолчанию 1 Мбит/с и нажмите кнопку Начать поиск:
Если вы получаете список сервоприводов на левой боковой панели, это означает, что ваш компьютер обнаружил сервопривод Dynamixel. Если сервопривод не обнаружен, вы можете выполнить следующие шаги для отладки:
1. Убедитесь в правильности подключений и питания с помощью мультиметра. Убедитесь, что индикатор питания на задней панели мигает при включении питания; если он не включается, это может указывать на проблему с сервоприводом или источником питания.
2. Обновите прошивку сервопривода с помощью диспетчера Dynamixel из опции, отмеченной 6. Мастер показан в следующем наборе снимков экрана. При использовании мастера вам может потребоваться отключить питание и включить его снова, чтобы обнаружить сервопривод.
3. После обнаружения сервопривода, вы должны выбрать модель сервопривода и установить новую прошивку. Это может помочь вам обнаружить сервопривод в диспетчере Dynamixel, если существующая прошивка сервопривода устарела.
Если сервоприводы перечислены в Dynamixel Manager, щелкните один из них, и вы увидите его полную конфигурацию. Мы должны изменить некоторые значения внутри конфигураций для нашего текущего проекта отслеживания лица. Вот параметры:
ID: установите ID на 1
Скорость в бодах: 1
Скорость движения: 100
Позиция ворот: 512
После выполнения этих настроек вы можете проверить, хорошо ли работает сервопривод, изменив положение цели.
Превосходно! Вы закончили настройку Dynamixel; Поздравляем! Что дальше? Мы хотим связать Dynamixel с ROS.
Полный исходный код этого проекта может быть клонирован из следующего репозитория Git. Следующая команда клонирует репозиторий проекта:
$ git clone https://github.com/qboticslabs/ros_robotics_projects
Вы можете использовать любую веб-камеру с поддержкой драйверов в Linux. В этом проекте iBall Face2Face () веб-камера используется для отслеживания. Вы также можете воспользоваться популярной веб-камерой Logitech C310, упомянутой как аппаратная. Вы можете выбрать её для лучшей производительности и отслеживания.
$ git clone
Сервопривод Dynamixel можно настроить с помощью программы RoboPlus, предоставленной ROBOTIS INC (), производитель сервоприводов Dynamixel.
Чтобы работать с Dynamixel, мы должны знать еще кое-что. Давайте посмотрим на некоторые важные характеристики сервопривода AX-12A. Технические характеристики взяты из руководства по сервоприводу.
Мы уже обсуждали, что адаптер USB-to-Dynamixel представляет собой преобразователь USB-последовательный интерфейс с чипом FTDI () в теме. Мы должны установить надлежащий драйвер FTDI на ПК, чтобы обнаружить устройство. Драйвер необходим для Windows, но не для Linux, потому что драйверы FTDI уже присутствуют в ядре Linux. Если вы устанавливаете программное обеспечение RoboPlus, драйвер может быть уже установлен вместе с ним. Если это не так, вы можете установить его вручную из папки установки RoboPlus.
Измененные параметры сервопривода показаны на следующем рисунке: