Document TeachKuka operation and safety
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,98 @@
|
|||||||
# TeachKuka
|
# 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` в градусах и положения суставов в градусах и радианах. |
|
||||||
|
| **Назад** | Гравитационная компенсация отключается, движение останавливается, тормоз активируется. |
|
||||||
|
|
||||||
|
Видео ниже показывает пример ручного ведения робота в этом режиме:
|
||||||
|
|
||||||
|
<video controls autoplay muted loop playsinline width="50%">
|
||||||
|
<source src="../../../assets/video/HandMode.mp4" type="video/mp4">
|
||||||
|
Ваш браузер не поддерживает воспроизведение видео.
|
||||||
|
</video>
|
||||||
|
|
||||||
|
## Режим 2: запись и воспроизведение траектории
|
||||||
|
|
||||||
|
После входа в режим программа очищает предыдущую запись, включает гравитационную компенсацию и начинает сохранять текущие положения суставов робота. Новая точка записывается каждые 100 мс.
|
||||||
|
|
||||||
|
Запись ограничена 3000 точками — это примерно 5 минут движения. После достижения лимита программа останавливает запись и сообщает об этом в журнале.
|
||||||
|
|
||||||
|
### Действия режима
|
||||||
|
|
||||||
|
| Действие | Что происходит |
|
||||||
|
|---|---|
|
||||||
|
| **Повторить траекторию** | Запись останавливается, робот переходит к начальной точке и воспроизводит сохранённую траекторию. После завершения начинается новая запись. |
|
||||||
|
| **Рестарт** | Текущая траектория удаляется, после чего сразу начинается новая запись. |
|
||||||
|
| **Назад** | Запись и гравитационная компенсация останавливаются, режим завершается. |
|
||||||
|
|
||||||
|
### Воспроизведение
|
||||||
|
|
||||||
|
Перед началом воспроизведения программа делает паузу две секунды, чтобы оператор успел отойти от робота. Затем робот переходит к первой записанной точке и повторяет движение через SmartServo с относительной скоростью 20%.
|
||||||
|
|
||||||
|
Во время воспроизведения программа проверяет внешние суставные моменты. Если момент на любом суставе превышает порог 6 Н·м, робот удерживает текущую позицию и временно приостанавливает траекторию. После освобождения пути воспроизведение продолжается с остановленной точки.
|
||||||
|
|
||||||
|
!!! note "Ограничение функции обнаружения препятствий"
|
||||||
|
Контроль внешнего момента помогает остановить траекторию при неожиданном сопротивлении, но не заменяет штатные функции безопасности KUKA. Оператор должен постоянно контролировать рабочую зону.
|
||||||
|
|
||||||
|
Видео ниже показывает пример записи и воспроизведения траектории:
|
||||||
|
|
||||||
|
<video controls autoplay muted loop playsinline width="50%">
|
||||||
|
<source src="../../../assets/video/TeachMode.mp4" type="video/mp4">
|
||||||
|
Ваш браузер не поддерживает воспроизведение видео.
|
||||||
|
</video>
|
||||||
|
|
||||||
|
## Завершение работы
|
||||||
|
|
||||||
|
При выходе из главного меню программа останавливает активные потоки записи и гравитационной компенсации, отменяет активное движение и возвращает робота в положение **Home**. После этого приложение завершает работу.
|
||||||
|
|||||||
Reference in New Issue
Block a user