📚
ROS Robotics Projects
  • Титульная страница
  • Термины
  • Глава 1. Начало работы с разработкой приложений ROS Robotics
    • Подглава 1.1 Начало работы с ROS
      • Подглава 1.1.1 Дистрибутивы ROS
      • Подглава 1.1.2 Поддерживаемые операционные системы
      • Подглава 1.1.3 Роботы и датчики, поддерживаемые ROS
      • Подглава 1.1.4 Почему ROS?
    • Подглава 1.2 Основы ROS
      • Подглава 1.2.1 Уровень файловой системы
      • Подглава 1.2.2 Уровень графов вычислений
      • Подглава 1.2.3 Уровень сообщества ROS
      • Подглава 1.2.4 Общение в ROS
    • Подглава 1.3 Клиентские библиотеки ROS
    • Подглава 1.4 Инструменты ROS
      • Подглава 1.4.1 Rviz (Визуализатор ROS)
      • Подглава 1.4.2 rqt_plot
      • Подглава 1.4.3 rqt_graph
    • Подглава 1.5 Симуляторы ROS
    • Подглава 1.6 Установка ROS kinetic на Ubuntu 16.04 LTS
      • Подглава 1.6.1 Начало работы с установкой
        • Подглава 1.6.1.1 Настройка репозиториев Ubuntu
        • Подглава 1.6.1.2 Настройка source.list
        • Подглава 1.6.1.3 Настройка ключей
        • Подглава 1.6.1.4 Установка ROS
        • Подглава 1.6.1.5 Инициализация rosdep
        • Подглава 1.6.1.6 Настройка среды ROS
        • Подглава 1.6.1.7 Получение rosinstall
    • Подглава 1.7 Настройка ROS на VirtualBox
    • Подглава 1.8 Настройка рабочего пространства ROS
    • Подглава 1.9 Возможности для ROS в отраслях и исследованиях
    • Подглава 1.10 Вопросы
    • Подглава 1.11 Заключение
  • Глава 2. Обнаружение и отслеживание лиц с использованием ROS, OpenCV и Dynamixel Servos
    • Подглава 2.1 Обзор проекта
    • Подглава 2.2 Аппаратные и программные предпосылки
      • Подглава 2.2.1 Установка зависимых пакетов ROS
        • Подглава 2.2.1.1 Установка пакета usb_cam ROS
          • Подглава 2.2.1.1.1 Создание рабочей области ROS для зависимостей
    • Подглава 2.3 Взаимодействие Dynamixel с ROS
      • Подглава 2.3.1 Установка пакетов ROS dynamicixel_motor
    • Подглава 2.4 Создание ROS-пакетов для трекера лица
      • Подглава 2.4.1 Интерфейс между ROS и OpenCV
    • Подглава 2.5 Работа с ROS-пакетом для отслеживания лиц
      • Подглава 2.5.1 Понимание кода трекера лица
      • Подглава 2.5.2 Понимание CMakeLists.txt
      • Подглава 2.5.3 Файл track.yaml
      • Подглава 2.5.4 Файлы запуска
      • Подглава 2.5.5 Запуск узла отслеживания лица
      • Подглава 2.5.6Пакет face_tracker_control
        • Подглава 2.5.6.1 Файл запуска start_dynamixel
        • Подглава 2.5.6.2 Файл запуска контроллера панорамирования
      • Подглава 2.5.7 Файл конфигурации контроллера панорамирования
      • Подглава 2.5.8 Файл конфигурации параметров сервосистемы
      • Подглава 2.5.9 Узел контроллера трекера лица
      • Подглава 2.5.10 Создание CMakeLists.txt
      • Подглава 2.5.11 Тестирование пакета управления трекером лица
      • Подглава 2.5.12 Соединение всех узлов вместе
      • Подглава 2.5.13 Закрепление кронштейна и настройка цепи
      • Подглава 2.5.14 Финальный запуск
    • Подглава 2.6 Вопросы
    • Подглава 2.7 Заключение
Powered by GitBook
On this page
  • Настройка веб-камеры в Ubuntu 16.04
  • Взаимодействие веб-камерой с ROS
  • Конфигурирование сервопривода Dynamixel с использованием RoboPlus
  • Питание и подключение Dynamixel к ПК
  • Настройка драйвера USB-to-Dynamicel на ПК

Was this helpful?

  1. Глава 2. Обнаружение и отслеживание лиц с использованием ROS, OpenCV и Dynamixel Servos
  2. Подглава 2.2 Аппаратные и программные предпосылки
  3. Подглава 2.2.1 Установка зависимых пакетов ROS
  4. Подглава 2.2.1.1 Установка пакета usb_cam ROS

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

PreviousПодглава 2.2.1.1 Установка пакета usb_cam ROSNextПодглава 2.3 Взаимодействие Dynamixel с ROS

Last updated 5 years ago

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

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

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

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

$ dmesg

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

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

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

$ sudo apt-get install cheese

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

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

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

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

Давайте проверим веб-камеру, используя пакет 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 с использованием RoboPlus

Чтобы настроить 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 к ПК

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

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

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

Подключите 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.

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

http://www.iball.co.in/Product/Face2Face-C8-0
-
Rev-3-0- / 90
https://github.com/qboticslabs/ros_robotics_projects
http://en.robotis.com/index/
http://www.robotis.com/download/software/RoboPlusWeb%28v1.1.3.0%29.exe
http://www.trossenrobotics.com/dynamixel-ax-12-robot-actuator.as
px
http://www.trossenrobotics.com/robotis-bioloid-usb2dynamixel.asp
http://www.ftdichip.com/
Рисунок 1: Журналы ядра устройства веб-камеры
Рисунок 2: Потоковое видео с веб-камеры с использованием Cheese
Рисунок 3: Работа пакета usb_cam в ROS
Рисунок 4: topics, публикуемые узлом usb_cam
Рисунок 5: Менеджер Dynamixel в RoboPlus
Рисунок 6: AX-12A Dynamixel и схема подключения
Рисунок 7: AX-12A Dynamixel и схема подключения
Рисунок 8: Технические характеристики AX-12A
Рисунок 9: Подключение Dynamixel к ПК
Рисунок 10: COM-порт USB-Dynamicel
Рисунок 11: COM-порт USB-to-Dynamicel
Рисунок 12: Мастер восстановления Dynamixel
Рисунок 13: Измененные настройки прошивки Dynamixel