diff --git a/doc/lwc-doc/docs/sunrise/assets/video/HandMode.mp4 b/doc/lwc-doc/docs/sunrise/assets/video/HandMode.mp4 new file mode 100644 index 0000000..f81d369 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/video/HandMode.mp4 differ diff --git a/doc/lwc-doc/docs/sunrise/assets/video/TeachMode.mp4 b/doc/lwc-doc/docs/sunrise/assets/video/TeachMode.mp4 new file mode 100644 index 0000000..c6789d6 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/video/TeachMode.mp4 differ diff --git a/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md b/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md index d1c55d5..869f8e8 100644 --- a/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md +++ b/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md @@ -1,6 +1,98 @@ # TeachKuka -В данном разделе будет представлено описание управляющей программы **TeachKuka**, предназначенной для обучения позиций робота. +**TeachKuka** — приложение SunriseWorkbench для ручного обучения робота KUKA LBR iiwa. С его помощью оператор может без написания траектории в коде вручную переместить робот, сохранить нужную позицию, а также записать и повторить последовательность движений. -!!! info "Раздел в разработке" - Содержимое данного раздела находится в процессе подготовки. +Программа использует гравитационную компенсацию: после её включения робот становится лёгким для ручного ведения и удерживает положение, в которое его поставил оператор. Это удобно для быстрого обучения простых операций, проверки рабочей зоны и подготовки повторяемого движения. + +Исходный код программы находится в проекте по пути [`src/iiwa_sunrise/src/TeachKuka.java`](https://github.com/Daniel-Robotic/lightweight-cobot/blob/dev/src/iiwa_sunrise/src/TeachKuka.java). Файл можно открыть или скачать для добавления в Sunrise-проект. + +!!! warning "Безопасность" + Перед запуском убедитесь, что рабочая зона свободна, а робот не выполняет другое движение. При воспроизведении траектории постоянно контролируйте положение робота и не запускайте программу рядом с людьми или объектами, если их перемещение может привести к травме или повреждению оборудования. + +## Настройка инструмента + +В коде программы инструмент подключается к фланцу робота через аннотацию: + +=== "java" + ```java + @Named("tool1") + private Tool _gripper; + ``` + +`tool1` — замените на имя своейго инструмента. + +Проверить инструмент и его параметры можно в Sunrise Workbench: + +1. Откройте проект робота. +2. Перейдите в **Object Templates**. +3. Найдите инструмент, установленный на роботе. +4. Проверьте его имя и раздел **Load data**. +5. Укажите это имя вместо `tool1` в аннотации `@Named(...)` класса `TeachKuka`. +6. Убедитесь, что масса, центр тяжести и инерционные параметры соответствуют реальному захвату. + +!!! warning "Корректная модель нагрузки" + Программа может запуститься и с неправильными параметрами нагрузки, но гравитационная компенсация будет работать неточно. Из-за этого робот может вести себя слишком тяжело, самопроизвольно смещаться или некорректно удерживать положение. Выполните калибровку массы и центра тяжести инструмента, чтобы избежать повреждений оборудования. + +## Запуск и главное меню + +После запуска `TeachKuka` робот сначала перемещается в положение **Home**. Перед входом в любой рабочий режим он проходит через Home и переходит в заданную рабочую позицию. Инструмент из `@Named(...)` предварительно прикрепляется к фланцу робота. + +На smartHMI появляется меню **Выберите режим работы**: + +| Пункт меню | Назначение | +|---|---| +| **Режим 1: Позиция** | Ручное ведение робота и получение координат выбранной позиции. | +| **Режим 2: Траектория** | Запись, воспроизведение и повтор траектории движения. | +| **Выход** | Завершение программы и возврат робота в Home. | + +## Режим 1: захват позиции + +После выбора режима программа переходит в рабочую позицию, проверяет модель нагрузки и включает гравитационную компенсацию. Теперь робот можно перемещать рукой. Он будет следовать за оператором и оставаться в установленном положении. + +В меню режима доступны следующие действия: + +| Действие | Что происходит | +|---|---| +| **Получить позицию** | В журнал выводятся координаты фланца `X/Y/Z` в миллиметрах, ориентация `A/B/C` в градусах и положения суставов в градусах и радианах. | +| **Назад** | Гравитационная компенсация отключается, движение останавливается, тормоз активируется. | + +Видео ниже показывает пример ручного ведения робота в этом режиме: + + + +## Режим 2: запись и воспроизведение траектории + +После входа в режим программа очищает предыдущую запись, включает гравитационную компенсацию и начинает сохранять текущие положения суставов робота. Новая точка записывается каждые 100 мс. + +Запись ограничена 3000 точками — это примерно 5 минут движения. После достижения лимита программа останавливает запись и сообщает об этом в журнале. + +### Действия режима + +| Действие | Что происходит | +|---|---| +| **Повторить траекторию** | Запись останавливается, робот переходит к начальной точке и воспроизводит сохранённую траекторию. После завершения начинается новая запись. | +| **Рестарт** | Текущая траектория удаляется, после чего сразу начинается новая запись. | +| **Назад** | Запись и гравитационная компенсация останавливаются, режим завершается. | + +### Воспроизведение + +Перед началом воспроизведения программа делает паузу две секунды, чтобы оператор успел отойти от робота. Затем робот переходит к первой записанной точке и повторяет движение через SmartServo с относительной скоростью 20%. + +Во время воспроизведения программа проверяет внешние суставные моменты. Если момент на любом суставе превышает порог 6 Н·м, робот удерживает текущую позицию и временно приостанавливает траекторию. После освобождения пути воспроизведение продолжается с остановленной точки. + +!!! note "Ограничение функции обнаружения препятствий" + Контроль внешнего момента помогает остановить траекторию при неожиданном сопротивлении, но не заменяет штатные функции безопасности KUKA. Оператор должен постоянно контролировать рабочую зону. + +Видео ниже показывает пример записи и воспроизведения траектории: + + + +## Завершение работы + +При выходе из главного меню программа останавливает активные потоки записи и гравитационной компенсации, отменяет активное движение и возвращает робота в положение **Home**. После этого приложение завершает работу.