Режимы, сессии и остановка
Справочник для разработчика управляющего ПО. При использовании готовых replay/teleoperation/tuning-инструментов подготовку сессии выполняет общий контроллер; вручную воспроизводить эту последовательность параллельно с ним не нужно.
После сброса выбирается Legacy. Extension-конфигурация хранится в RAM и не восстанавливается автоматически из EEPROM. Перед новым запуском ПО должно проверить capabilities и поддерживать протокол 9.0.
Режим Legacy
Legacy mode поддерживает стандартный интерфейс регистров STS: включение мотора, режим работы, команды положения и скорости, чтение состояния. Существующее STS-ПО может использовать регистры 0–86, не включая Extension.
В позиционных режимах Legacy включение мотора без новой команды положения удерживает измеренную позицию, даже если она находится за сохранёнными пределами. Старое целевое положение не воспроизводится; вал не перемещается к ближайшему пределу. Новые команды положения по-прежнему ограничиваются сохранёнными пределами.
Extension использует собственные настройки движения и управления. Коэффициенты нельзя напрямую переносить между режимами: их масштабы различаются. Поддержка стандартных команд не гарантирует одинаковое физическое поведение всех моделей сервоприводов.
Запуск и остановка режима Extension
Ниже используются номера регистров и команды, описанные далее. Выбор режима подготавливает сессию; включение мотора запускает управление.
- Найдите подключённые ID и прочитайте capabilities каждого сервопривода. Проверьте
ARMCи версию9.0. Повторяйте проверку после сброса или смены прошивки. - Выключите мотор: запишите
0в Legacy-регистр включения удержания 40. Завершите прежнюю сессию и примените необходимые постоянные Legacy-настройки. - Запишите и прочитайте обратно полную конфигурацию
0xA0, включая velocity feedforward и скорость изменения компенсации гравитации. - Запишите
mode=1и новый ненулевой номер сессии в0xB8— всего 3 байта. Это выбирает Extension и подготавливает запуск; мотор остаётся выключенным. - Запишите
1в регистр 40. Прошивка проверит датчики, защиту, конфигурацию и сохранённые пределы, затем зафиксирует измеренную позицию как начальную цель удержания. Счётчики команд, I-коррекция и гравитация начнут с нуля. Читайте0xC1и дождитесь нужной сессии, пригодных свежих измерений, включённого привода и готового выхода. - Отправляйте цели и обновления гравитации. Проверяйте обратную связь: какие команды приняты и насколько точно выполняются.
- После последнего движения сервопривод удерживает конечную позицию до новой цели. Запишите
0в регистр 40, чтобы выключить мотор и завершить сессию. Для возврата в Legacy оставьте мотор выключенным и запишитеmode=0, session=0в0xB8.
Если запуск не удался, регистр 40 возвращается к 0. Обычного подтверждения записи недостаточно: проверьте прочитанное значение и обратную связь. Каждая попытка запуска использует подготовленную сессию. После неудачного запуска, torque-off или защитного отключения устраните причину и запишите новый номер в 0xB8 до повторного включения удержания. Повторная команда включения во время работающего управления сохраняет цель, компенсацию и счётчики.
Команды движения или изменения воздействия включённого мотора требуют готового оборудования, отсутствия зарегистрированной неисправности и показаний датчиков возрастом не более 2 мс. Обычный период регулятора — 1 мс; допустим интервал до 2 мс. Более длинные интервалы отключают выход мотора.
В Extension избегайте Legacy-записей в регистр режима 33 и регистры движения 41–47: они выключают мотор и выводят его из Extension. Сохранение постоянных настроек также завершает Extension-управление. Запись 0 в 40 оставляет режим Extension выбранным, но для запуска нужна новая подготовка сессии.
Если команды хоста перестали поступать
Сервопривод завершает последнее принятое движение и продолжает удерживать цель. Гравитация доходит до последнего запрошенного значения и сохраняется. Повторяющиеся сообщения для поддержания сессии не нужны; потеря связи сама по себе не меняет цель и не выключает мотор.
Чтобы изменить конечную позицию, отправьте новую цель. Чтобы отпустить мотор, установите torque enable в ноль. Проверка свежести датчиков, защита мотора и сторожевой таймер прошивки продолжают работать при движении и удержании.
Не путать три разных таймера
| Механизм | Что контролирует |
|---|---|
| Проверка свежести датчиков прошивкой | Пригодность локальных измерений; управляющие действия требуют возраст не более 2 мс |
| Проверки хоста | Возраст кадров, обратной связи и срок обновления гравитации; при нарушении программа пытается выполнить предусмотренное завершение |
| Потеря сообщений на шине | Сама по себе не является firmware-timeout, отключающим удержание или последнюю гравитацию |
Нельзя приравнивать период посылки команд хоста к периоду локального регулятора 1 мс. Хост может перестать работать, пока сервопривод продолжает ранее принятое движение.
Поведение готовых инструментов
| Инструмент / событие | Ожидаемое действие |
|---|---|
| Extension replay: обычное завершение или Ctrl+C | Сохранить последнюю цель и удержание; при настроенной гравитации обслужить оставшееся движение и подтвердить компенсацию |
| Teleoperation: обычное завершение или Ctrl+C | Перестать выдавать новые цели и сохранить удержание; ожидание завершения зависит от наличия модели гравитации |
| Tuning: обычное завершение | Вернуть настроенный baseline, оставить удержание |
| Tuning: Ctrl+C во время серии | Прервать серию и попытаться отключить удержание |
| Legacy replay: обычное завершение | Оставить удержание последней позы |
| Legacy replay: Ctrl+C или ошибка | Попытаться отключить удержание |
| Recorder: успешное завершение | Оставить выбранные моторы без удержания |
| Закрытие viewer | Не влияет на аппаратный контроллер |
| Убийство процесса или потеря шины | Команда очистки может не дойти; firmware может удерживать последнюю цель и гравитацию |
При настроенной модели гравитации и готовых моторах завершение общего Extension-контроллера обслуживает оставшееся движение и гравитацию, ожидает 200 мс покоя с общим timeout 30 с и подтверждает последнюю компенсацию. Покой здесь означает остановленный планировщик и диапазон измеренной позиции не больше одного отсчёта за эти 200 мс, а не нулевую ошибку относительно цели.
Ошибки модели, отклонённые обновления, устаревшая обратная связь, потеря сессии, аварии и проверенная температура от 60 °C вызывают попытку подтверждённого torque-off. Исключение: пропущен срок гравитации во время уже установленного удержания и два свежих прохода подтвердили здоровое неподвижное состояние той же сессии. Тогда ошибка возвращается с holdRetained: true; работа автоматически не продолжается.
Без модели гравитации общий контроллер не выполняет это заключительное ожидание покоя. При обычном воспроизведении именованных поз replay ожидает достижения каждой цели в пределах заданного допуска, но Ctrl+C может прервать это ожидание. Поэтому replay или телеуправление могут завершить процесс, пока мотор продолжает движение к последней цели.
Ctrl+C не является аппаратной аварийной остановкой. Завершение и снятие удержания зависят от работающей связи; безопасное состояние механизма должно быть обеспечено на уровне установки.
Главная раздела · Версия исходников: a995f77. Extension 9.0.

