- Added HandMode.mp4 to demonstrate the hand mode functionality. - Added TeachMode.mp4 to showcase the teaching mode features.
115 lines
12 KiB
Markdown
115 lines
12 KiB
Markdown
# TeachKuka
|
|
|
|
**TeachKuka** — приложение SunriseWorkbench для ручного обучения робота KUKA LBR iiwa. С его помощью оператор может без написания траектории в коде вручную переместить робот, сохранить нужную позицию, а также записать и повторить последовательность движений.
|
|
|
|
Программа использует гравитационную компенсацию: после её включения робот становится лёгким для ручного ведения и удерживает положение, в которое его поставил оператор. Это удобно для быстрого обучения простых операций, проверки рабочей зоны и подготовки повторяемого движения.
|
|
|
|
Исходный код программы находится в проекте по пути [`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(...)` предварительно прикрепляется к фланцу робота.
|
|
|
|
Найти и запустить программу можно в разделе [Приложения](../features/applications.md) на smartPAD. В этом разделе также описаны состояния приложений и порядок их активации.
|
|
|
|

|
|
|
|
На smartHMI появляется меню **Выберите режим работы**:
|
|
|
|
| Пункт меню | Назначение |
|
|
|---|---|
|
|
| **Режим 1: Позиция** | Ручное ведение робота и получение координат выбранной позиции. |
|
|
| **Режим 2: Траектория** | Запись, воспроизведение и повтор траектории движения. |
|
|
| **Выход** | Завершение программы и возврат робота в Home. |
|
|
|
|
При выборе режима **Позиция** робот становится доступен для ручного перемещения. В режиме **Траектория** программа записывает движения робота, чтобы затем их повторить. Пункт **Выход** завершает выполнение программы и возвращает робот в Home.
|
|
|
|

|
|
|
|
## Режим 1: захват позиции
|
|
|
|
После выбора режима программа переходит в рабочую позицию, проверяет модель нагрузки и включает гравитационную компенсацию. Теперь робот можно перемещать рукой. Он будет следовать за оператором и оставаться в установленном положении.
|
|
|
|
В меню режима доступны следующие действия:
|
|
|
|
| Действие | Что происходит |
|
|
|---|---|
|
|
| **Получить позицию** | В журнал выводятся координаты фланца `X/Y/Z` в миллиметрах, ориентация `A/B/C` в градусах и положения суставов в градусах и радианах. |
|
|
| **Назад** | Гравитационная компенсация отключается, движение останавливается, тормоз активируется. |
|
|
|
|
Окно выбора действий режима **Позиция** показано ниже. Кнопка **Получить позицию** выводит в журнал положение робота в декартовом пространстве (`X/Y/Z`, `A/B/C`), а также положения суставов в градусах и радианах. Кнопка **Назад** возвращает к предыдущему шагу и переводит робота в рабочую позицию `(0, 0, 0, -1.57, 0, 1.57, 0)`.
|
|
|
|

|
|
|
|
Видео ниже показывает пример ручного ведения робота в этом режиме:
|
|
|
|
<video controls autoplay muted loop playsinline width="50%">
|
|
<source src="../../../assets/programms/video/HandMode.mp4" type="video/mp4">
|
|
Ваш браузер не поддерживает воспроизведение видео.
|
|
</video>
|
|
|
|
## Режим 2: запись и воспроизведение траектории
|
|
|
|
После входа в режим программа очищает предыдущую запись, включает гравитационную компенсацию и начинает сохранять текущие положения суставов робота. Новая точка записывается каждые 100 мс.
|
|
|
|
Запись ограничена 3000 точками — это примерно 5 минут движения. После достижения лимита программа останавливает запись и сообщает об этом в журнале.
|
|
|
|
### Действия режима
|
|
|
|
| Действие | Что происходит |
|
|
|---|---|
|
|
| **Повторить траекторию** | Запись останавливается, робот переходит к начальной точке и воспроизводит сохранённую траекторию. После завершения начинается новая запись. |
|
|
| **Рестарт** | Текущая траектория удаляется, после чего сразу начинается новая запись. |
|
|
| **Назад** | Запись и гравитационная компенсация останавливаются, режим завершается. |
|
|
|
|
После того как робот был перемещён по нужной траектории, выберите **Повторить траекторию**. Программа переведёт робота в рабочую позицию `(0, 0, 0, -1.57, 0, 1.57, 0)`, а затем воспроизведёт записанное движение. Если во время обучения была допущена ошибка, нажмите **Рестарт**: текущая запись будет сброшена и начнётся заново. Кнопка **Назад** возвращает к предыдущему пункту меню и переводит робота в рабочую позицию.
|
|
|
|

|
|
|
|
### Воспроизведение
|
|
|
|
Перед началом воспроизведения программа делает паузу две секунды, чтобы оператор успел отойти от робота. Затем робот переходит к первой записанной точке и повторяет движение через SmartServo с относительной скоростью 20%.
|
|
|
|
Во время воспроизведения программа проверяет внешние суставные моменты. Если момент на любом суставе превышает порог 6 Н·м, робот удерживает текущую позицию и временно приостанавливает траекторию. После освобождения пути воспроизведение продолжается с остановленной точки.
|
|
|
|
!!! note "Ограничение функции обнаружения препятствий"
|
|
Контроль внешнего момента помогает остановить траекторию при неожиданном сопротивлении, но не заменяет штатные функции безопасности KUKA. Оператор должен постоянно контролировать рабочую зону.
|
|
|
|
Видео ниже показывает пример записи и воспроизведения траектории:
|
|
|
|
<video controls autoplay muted loop playsinline width="50%">
|
|
<source src="../../../assets/programms/video/TeachMode.mp4" type="video/mp4">
|
|
Ваш браузер не поддерживает воспроизведение видео.
|
|
</video>
|
|
|
|
## Завершение работы
|
|
|
|
При выходе из главного меню программа останавливает активные потоки записи и гравитационной компенсации, отменяет активное движение и возвращает робота в положение **Home**. После этого приложение завершает работу.
|