Чего вы достигнете
В конце этого модуля у вас будет виртуальная среда Python с установленным OpenArm SDK, и запуск 5-строчного тестового сценария вернет результат. True от arm.ping(). Это подтверждение означает, что ваш код Python имеет прямой канал связи с рукой — это основа, на которой строится все в модулях 3–6.
Полная документация по установке и настройке SDK находится по адресу аппаратное обеспечение/openarm/программное обеспечение. В этом модуле процесс обрабатывается в нужном вам контексте и охватывает наиболее распространенные виды сбоев.
Установите SDK
Работайте через руководство по настройке программного обеспечения для полной установки SDK. Краткая версия:
Установка занимает 5–15 минут в зависимости от вашего интернет-соединения. torch и lerobot пакеты большие, но они понадобятся вам в модулях 4 и 5, поэтому установите их сейчас.
Быстрый тест подключения Python
Запустите этот тест, запустив ROS 2 (из модуля 1) и активировав виртуальную среду. Это самый быстрый способ убедиться, что ваш полный стек работает непрерывно:
Если arm.ping() возвращает True и arm.get_joints() возвращает текущие углы суставов, все готово. Переходите к разделу устранения неполадок, только если видите ошибки.
Устранение неполадок: 3 наиболее распространенные ошибки подключения
Ошибка 1: ConnectionRefusedError или тайм-аут включен OpenArm()
ROS 2 не запущен или сервер действий еще не запущен. Проверьте это ros2 node list шоу /openarm_controller. Если нет, вернитесь к терминалу ROS 2 и подтвердите, что запуск выполнен без ошибок. Распространенная дополнительная причина: вы забыли указать источник своего рабочего пространства перед запуском — см. Модуль 1, важный шаг 2.
Ошибка 2: can0: Network is down в терминале РОС 2
Интерфейс SocketCAN упал. Это происходит, если вы отключили и снова подключили адаптер USB-CAN без повторного запуска ip link set команда. Бегать sudo ip link set can0 up type can bitrate 1000000, затем перезапустите запуск ROS 2. Добавьте эту команду в сценарий запуска, чтобы она запускалась автоматически при загрузке: sudo nano /etc/network/interfaces.d/can0.
Ошибка 3: arm.get_joints() возвращает все нули, даже если рука не находится в исходном положении
Это не ошибка — это значит рука является сообщает о своем совместном состоянии, но калибровка может быть не полной. Если ваша рука физически находится в нулевой позе, нули верны. Если ваша рука находится под другим углом, но по-прежнему показывает нули, повторно запустите калибровку через веб-интерфейс (блок 1, важный шаг 4). Шарнирным энкодерам необходима последовательность возврата в исходное положение для установления абсолютного положения.
Часть 2 завершена, когда...
arm.ping() возвращает True в вашем терминале Python. Тестовый сценарий выполняется без ошибок от начала до конца. Вы можете видеть изменение значений угла сустава в режиме реального времени, когда вы физически двигаете рукой во время движения. arm.get_joints() опрашивается в цикле. Вы готовы к третьему блоку.