Калибровка суставов
Результат: у каждого выбранного мотора проверены смещение и пределы; вам понятно, какие записи поз и модели можно использовать. До начала сохраните резервные копии.
Сначала решить, нужна ли новая калибровка
- Существующая проверенная рука, настройки сохранились при прошивке: оставьте калибровку. Не меняйте смещения ради повторения иллюстрации.
- Новая сборка или неизвестная калибровка: выполните два этапа ниже.
- Изменились смещения: заново запишите позы и проверьте/обновите модель гравитации и преобразование для просмотрщика. Команда калибровки этого за вас не делает.
Называние записанной позы home или reference не калибрует мотор. Калибровка — отдельная запись смещений и пределов в устройство.
Требования к процедуре
Инструмент рассчитан на 1–6 моторов с уникальными ID 1–253, механически ограниченным ходом, GD32 STS model family 9, позиционным режимом и делителем положения 1. Закройте остальные программы на порту. Поддерживайте руку всё время, когда удержание выключено.
1. Выбрать физическую опорную позу
Новая опорная поза должна воспроизводиться вручную и оставлять достаточно хода в обе стороны. После калибровки она будет соответствовать 2048. Весь ход должен помещаться в 0–4095: до 2048 отсчётов ниже опоры и до 2047 выше неё.
Для новой SO-101/SO-102 используйте изображения: плечо вверх, предплечье и захват вперёд, основание и вращение запястья по центру между упорами, захват наполовину открыт. Ориентируйтесь на физический ход, а не на ещё не откалиброванные показания.
Эти изображения не задают универсальную позу готовой модели гравитации или URDF. Значение 2048 не означает автоматически 0°. У просмотрщика есть отдельное преобразование отсчётов в углы; у модели гравитации — собственная привязка.
2. Зафиксировать смещения и измерить пределы
Команда меняет сохранённые настройки, но не задаёт движения. Для полного шестимоторного примера:
macOS / Linux
npm run settings -- calibrate --port "$SERVO_PORT" --ids 1,2,3,4,5,6 --file tools/settings/calibrations/arm.local.json
Windows PowerShell
npm.cmd run settings -- calibrate --port "$env:SERVO_PORT" --ids 1,2,3,4,5,6 --file tools/settings/calibrations/arm.local.json
Если ID отличаются, замените список. Явный список не меняет остальные моторы. Если не указывать --ids, выбираются все обнаруженные моторы, не более шести.
- Если удержание включено, сначала подтвердите его снятие после поддержки механизма.
- Установите опорную позу, удерживайте её и нажмите Enter. Инструмент сохранит и проверит регистры смещений, затем запишет новые показания положения в отчёт.
- Вручную проведите каждый сустав по полному допустимому ходу, кратко задерживаясь у концов. Не давите на упоры.
- Проверьте таблицу минимумов, максимумов и хода; нажмите Enter. Сохраняются пределы с отступом 10 отсчётов внутрь от каждого измеренного конца.
Middle — только середина измеренного диапазона. Она не заменяет выбранную опорную позу; несимметричные пределы допустимы. Для сохранения сустав должен пройти не менее 64 отсчётов и менее полного оборота.
3. Проверить результат
В отчёте tools/settings/calibrations/arm.local.json должно быть status: "verified". Только это означает завершение обоих этапов. Проверяются сохранённые настройки, а не физическая неподвижность руки: referenceReadbackCounts сохраняется для информации и не служит отдельным условием равенства 2048. Проверьте эти показания, сохраняя выбранную опорную позу. Моторы остаются без удержания; записи настроек блокируются. Резервные копии моторов лежат в отдельном уникальном каталоге backups/ рядом с отчётом.
При crosses zero выбранный диапазон не помещается между 0 и 4095: исправьте физическую опору. reset 2 обнуляет только измеренный диапазон M2 для нового прохода и не исправляет неверную опору. Если отменить второй этап, сохранённые на первом этапе смещения остаются, а старые пределы — до их замены. До движения завершите калибровку.
Далее: подготовить конфигурацию и первое движение.
Главная раздела · Версия исходников: a995f77. Extension 9.0.

