Чего вы достигнете

В конце этого модуля у вас будет виртуальная среда Python с установленным OpenArm SDK, и запуск 5-строчного тестового сценария вернет результат. True от arm.ping(). Это подтверждение означает, что ваш код Python имеет прямой канал связи с рукой — это основа, на которой строится все в модулях 3–6.

Полная документация по установке и настройке SDK находится по адресу аппаратное обеспечение/openarm/программное обеспечение. В этом модуле процесс обрабатывается в нужном вам контексте и охватывает наиболее распространенные виды сбоев.

Установите SDK

Работайте через руководство по настройке программного обеспечения для полной установки SDK. Краткая версия:

# Create an isolated environment for this path python3 -m venv ~/openarm-env источник ~/openarm-env/bin/activate # Install the SDK and its dependencies pip install openarm-sdk lerobot torch torchvision

Установка занимает 5–15 минут в зависимости от вашего интернет-соединения. torch и lerobot пакеты большие, но они понадобятся вам в модулях 4 и 5, поэтому установите их сейчас.

Быстрый тест подключения Python

Запустите этот тест, запустив ROS 2 (из модуля 1) и активировав виртуальную среду. Это самый быстрый способ убедиться, что ваш полный стек работает непрерывно:

# Make sure ROS 2 is running first (from a separate terminal) # source ~/openarm_ws/install/setup.bash && ros2 launch openarm_bringup real.launch.py из импорта openarm OpenArm рука = ОткрытьАрм() # connects via ROS 2 action server печать(arm.ping()) # should print: True печать(arm.get_joints()) # should print: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] рука.закрытие()

Если 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() опрашивается в цикле. Вы готовы к третьему блоку.