Описание системы
Аппаратная часть
Отличительная особенность Edu и более старших версий - это наличие внутреннего компьютера для собственной разработки на базе Nvidia Jetson Orin NX серии. Интерфейсы этого устройства выведены через шею робота, с разводкой дополнительных портов шины GPIO.
№ | Название коннектора | Описание интерфейса | Спецификация интерфейса |
---|---|---|---|
1 | XT30UPB-F | VBAT | Выход питания от аккумулятора (прямое подключение к батарее) |
2 | XT30UPB-F | 24V | Выход питания 24В/5А |
3 | XT30UPB-F | 12V | Выход питания 12В/5А |
4 | RJ45 | 1000 BASE-T | Гигабитный Ethernet (GbE) |
5 | RJ45 | 1000 BASE-T | Гигабитный Ethernet (GbE) |
6 | Type-C | Type-C | Поддержка мастер режима USB3.0, выход 5В/1.5А |
7 | Type-C | Type-C | Поддержка мастер режима USB3.0, выход 5В/1.5А |
8 | Type-C | Type-C | Поддержка мастер режима USB3.0, выход 5В/1.5А |
9 | Type-C | Alt Mode Type-C | Поддержка мастер режима USB3.2, цифровое аудио/видео DP1.4 |
10 | 5577 | I/O OUT | Выход питания 12В/3А |
Программная часть
Нетворкинг
Для получения доступа к внутреннему компьютеру пользователя необходимо установить сетевое подключение
- Подключитесь к роботу в 4 или 5 разъем RJ45 используя витую пару
- На Debian-like системах: перейдите в настройку сетей и адаптеров (зачастую net)
- Перейдите в настройку IPv4 и отключите DHCP установив ручной режим
- Задайте статический адрес в 192.168.123.*/24 подсети для вашего проводного сетевого интерфейса.
- Проверьте, что адрес был задан верно используя net-tools
ifconfig
- Проверьте досигаемость устройства
ping -I название_сетевого_интерфейса 192.168.123.164
Если пинг проходит, значит соединение удалось установить
- Для подключения по ssh введите
ssh -X unitree@192.168.123.164
Пароль от учетной записи unitree:123
- Для проброса графической оболочки X введите в домашней папке пользователя запустите NXсервер ```bash sh ~/nomachine.sh
- Запустите клиент NXplayer и подключитесь со своего ПК к пользователю
- Заполните данные учетной записи login:passw | unitree:123 .
Далее соглашайтесь со всем, пока не увидите рабочий стол устройства
Конфигурация рабочей среды
Данный подраздел руководства релевантен для всех моделей роботов Unitree Go2, B2, B2W, H1 и G1 ввиду их общей программной архитектуры. Взаимодействие с роботами для разработчиков основано на Eclipse CycloneDDS, что обеспечивает легкую организацию связи и управления с низкой задержкой в системах реального времени.
CycloneDDS — это реализация OMGDDS с открытым исходным кодом, разработанная Eclipse Foundation. Она отличается высокой производительностью, низкой задержкой и поддержкой различных платформ, что делает её идеальным решением для робототехники и других приложений, требующих высокой производительности и надежности.
DDS используется как интерфейс для передачи сообщений в ROS2, обеспечивая интеграцию в систему. Это позволяет разработчикам использовать стандартные сообщения ROS2 (ROS2 msg) для взаимодействия и управления роботами Unitree без необходимости дополнительной обёртки интерфейсов SDK.
Ниже будут представлены шаги по настройке рабочей среды на Ubuntu 20.04:
Системная настройка
- Установите полную версию ROS2 Foxy или Humble на своем ПК
Не добавляйте указатель источника на ROS дистрибутив в ~/.bashrc, если он уже есть закомментируйте его. Для того, чтобы изменение применилось до перезапуска переукажите источник source ~/.bashrc .
- Скопируйте удаленный репозиторий в домашнюю папку вашего пользователя
git clone https://github.com/unitreerobotics/unitree_ros2
Настройка пакетов ROS2 от Unitree и DDS
- Установите unitree_sdk2, следуя инструкции из источника
git clone https://github.com/unitreerobotics/unitree_sdk2
- Установите необходимые пакеты
sudo apt install ros-foxy-rmw-cyclonedds-cpp sudo apt install ros-foxy-rosidl-generator-dds-idl
Вместо foxy Вы должны писать Ваш дистрибутив
- Соберите DDS
cd ~/unitree_ros2/cyclonedds_ws/src git clone https://github.com/ros2/rmw_cyclonedds -b foxy git clone https://github.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.x cd .. colcon build --packages-select cyclonedds
- Укажите в ~/.bashrc источник на ваш дистрибутив ROS2
source /opt/ros/foxy/setup.bash
Вместо foxy Вы должны писать Ваш дистрибутив
colcon build --symlink-install #Сборка репозитория с созданием символьных ссылок на объекты
Объявление домена DDS
- Подключитесь к роботу и будьте уверены, что вы участник подсети 192.168.123.*/24
- Отредактируйте скрипт подключения окружения
sudo nano ~/unitree_ros2/unitree_ros2_setup.sh
Предварительно скопируйте название вашего сетевого интерфейса, зачастую это eth0
#!/bin/bash echo "Setup unitree ros2 environment" source /opt/ros/foxy/setup.bash source $HOME/unitree_ros2/cyclonedds_ws/install/setup.bash export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces> <NetworkInterface name="eth0" priority="default" multicast="default" /> </Interfaces></General></Domain></CycloneDDS>'
замените eth0 на название вашего интерфейса
DDS использует таблицу Kernel IP routing table для своей внутренней коммуникации. Если Вы собираетесь использовать сложный сетевой маршрут или сетевые мосты, убедитесь, что они статически заданы в вашей таблице
- Сохраните изменения файла и укажите на него источник
source ~/unitree_ros2/unitree_ros2_setup.sh
- Проверьте работоспособность на подключенном ПК к роботу выполнив
ros2 topic list
Если вы увидели следующее, то у Вас получилось все сделать правильно
Следующие шаги
Для дальнейшего взаимодействия с роботами Unitree и эффективной разработки рекомендуется тщательно изучить официальную документацию. Добавление её содержимого в данное руководство не является приоритетом, так как документация может быть кардинально изменена в зависимости от версии релиза. Для обеспечения актуальности и корректности всегда лучше ориентироваться на оригинальный источник.
Использование официальной документации позволит вам глубже понять архитектуру, возможности и особенности работы с роботами Unitree, что значительно упростит процесс разработки и интеграции.