Этот проект описывает как сделать и интегрировать новый захват котролируемый ROSом для Kuka youbot. Этот репозиторий описывает последовательность действий, для создания и подключения нового захвата к мобильной платформы Kuka Youbot. Для реализации контроля сервоприводов используется плата Arduino, поддерживающая ROS сервисы и соединяющаяся с компьютером робота и сервоприводами через UART.
- Два сервопривода
- Распечатанный на 3D принтере и собраный захват. Модели и информацию можно найти здесь.
- Arduino mega/pro
- Провода
- Трансформаторы напряжения
Перед тем как начать, вам необходимо установить Arduino IDE.
-
Копируйте "youbot_gripper" в вашу папку catkin_ws/src.
-
Откройте ваш catking_ws и выполните компиляцию "Youbot gripper" с помощью catkin_make.
-
Установите пакет ROSserial:
sudo apt-get install ros-<your_ros_version>-rosserial-arduino
sudo apt-get install ros-<your_ros_version>-rosserial- откройте <расположение вашей папки Arduino>/Arduino/library в терминале и выполните следующую команду:
rosrun rosserial_arduino make_libraries.py .Эта команда автоматически конвертирует и копирует все ваши новые ROS-сообщения, сервисы и пакеты (включая пакет Youbot gripper) в библиотеки Arduino.
-
Загрузите файл "Gripper_service_server.ino" и расположите его в вашей папке Arduino.
-
Сначала попробуйте выполнить компиляцию программы без ее загрузки. Если она сработала - загрузите программу в плату Arduino и переходите к шагу 7. Если вы получаете следующую ошибку:
#include <cstring>
^~~~~~~~~
compilation terminated. то вы должны сменить файл "msg.h" в вашей директории ~/Arduino/libraries/ros_lib/ros2, которая была сгенерирована командой rosrun rosserial_arduino make_libraries.py . . Сделать нужно это следующим образом: заходим скетч>подключить библиотеку>управлять библиотеками в Arduino IDE, находим и скачиваем через поиск библиотеку "rosserial lib" (0.7.8 version), заходим в ~/Rosserial_Arduino_Library/src/ros/, копируем файл "msg.h" и заменяем на него файл с таким же именем в ~/Arduino/libraries/ros_lib/ros2. После этого библиотеку Rosserial_Arduino_Library можно удалить.
Moreover, you have to give the permissions to the USB por before you will start using the gripper. You can do it in 2 ways: Для запуска программы вам также необходимо выдать права на использование порта, к которому подключена плата. Вы можете сделать это 2 способами:
sudo usermode -a -G dialog $USER – выдает постоянное разрешение на использование портов
sudo chmod 666 /dev/ttyUSB0 – выдает временно разрешение на использование конкретного порта
Для того, чтобы запустить програму с грипером на вашем устройстве, к которому он подключен, вам нужно выполнить следующую команду:
rosrun rosserial_python serial_node.py /dev/tty_Ваш_порт_АрдуиноПример:
rosrun rosserial_python serial_node.py /dev/ttyUSB0Эта команда запустит сервер на вашем Arduino и предоставит вам сервис для захвата. Вы можете попробовать использовать этот сервис, запустив простую программу с клиентом следующей командой:
rosrun youbot_gripper youbot_gripper_client номер_инструкции Где номер_инструкции должен быть заменен согласно значениям, перечисленных ниже.
Для того, чтобы использовать команды для данного захвата, вы можете использовать следующие значения чтобы достичь желаемого результата:
0-100 - открыть захват на определенный процент
1000-1380 задать позицию первого сервопривода в диапазоне 0-380
2000-2380 задать позицию второго сервопривода в диапазоне 0-380
Для того, чтобы мониторить успешность захвата, сервис возвращает позитивную или негативную реакцию, основанную на конечном количестве момента в захвате. Позитивный ответ будет отправлен в следующих случаях:
- обьект был захвачен манипулятором
- команда для правого пальца была успешно отправлена
- команда для левого пальца была успешно отправлена
Демо:
Если у вас уже есть установленный пакет с симуляцией юбота то для внедрения захвата и его функционала в симулятор Gazebo вам нужно сделать следующие действия:
- Копировать файл
gripper_controller.launchи расположить его в~catkin_ws/scr/youbot_simulation/youbot_gazebo_control/launch/. - Копировать файл
gripper_controller.yamlиgripper_controller_1.yamlв вашу папку~catkin_ws/scr/youbot_simulation/youbot_gazebo_control/config - Заменить ваши папки
~catkin_ws/scr/youbot_description/urdf/youbot_gripperи~catkin_ws/scr/youbot_description/meshes/youbot_gripperна такие же папки из этого репозитория.
Или же вы просто можете загрузить целиком папки youbot_description и youbot_simulation в ваш catkin_ws.
После выполнения данных шагов вы можете запустить симуляцию с помощью следующей команды:
roslaunch youbot_gazebo_robot youbot.launchИногда, из-за разности версий появляются проблемы и ошибки, и симуляцию нужно перезапустить 2-3 раза для того, чтобы корректно загрузить контроллеры. Если ваша симуляция успешно загрузилась, вы можете проверить функционирование пальцев захвата с помощью следующих команд:
rostopic pub -1 /gripper/gripper_controller_1/command std_msgs/Float64 "data: -1.5"
rostopic pub -1 /gripper/gripper_controller/command std_msgs/Float64 "data: 1.5"
