diff --git a/README.md b/README.md index 11962ce..14be41f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ ROS 2 пакеты для управления роботом **KUKA LBR IIWA 7 | ОС | Дистрибутив ROS | Версия FRI | | :--- | :--- | :--- | -| `Ubuntu 24.04` | `jazzy` | `1.15` | +| `Ubuntu 24.04` | `jazzy` | `1.16` | --- diff --git a/README_en.md b/README_en.md index 280f0e2..f226b86 100644 --- a/README_en.md +++ b/README_en.md @@ -21,7 +21,7 @@ ROS 2 packages for controlling the **KUKA LBR IIWA 7 R800**: communication with | OS | ROS Distribution | FRI Version | | :--- | :--- | :--- | -| `Ubuntu 24.04` | `jazzy` | `1.15` | +| `Ubuntu 24.04` | `jazzy` | `1.16` | --- diff --git a/cobot/commands/doc_setup.py b/cobot/commands/doc_setup.py index 1a59a25..3f18ed3 100644 --- a/cobot/commands/doc_setup.py +++ b/cobot/commands/doc_setup.py @@ -123,6 +123,41 @@ def _task_up(port: str) -> None: done(False, fail_msg) +def _task_build() -> None: + """Run a one-shot mkdocs build with PDF generation enabled. + Запускает однократную сборку mkdocs с генерацией PDF. + """ + if not _DOC_DIR.exists(): + ui.error(f"Директория документации не найдена: {_DOC_DIR}") + return + + ok = True + with StepProgress("Сборка документации") as p: + if not _image_exists(): + p.set(0, "Сборка образа документации...") + if not _build_docs_image(p, 0, 60): + ok = False + if ok: + p.set(65, "Запуск mkdocs build...") + p.raw("[cyan]▸[/cyan] Генерация сайта и PDF...") + rc = process.stream([ + "docker", "run", "--rm", + "-v", f"{_DOC_DIR}:/docs", + "-e", "ENABLE_PDF_EXPORT=1", + _IMAGE_NAME, "build", + ], on_line=lambda s: p.log(s) if s else None) + if rc != 0: + p.raw("[red]Сборка не удалась.[/red]") + ok = False + else: + p.set(100, "Готово") + + if ok: + done(True, f"Сайт собран: {_DOC_DIR / 'site'} PDF: {_DOC_DIR / 'site' / 'pdf' / 'document.pdf'}") + else: + done(False, "Сборка завершилась с ошибкой") + + def _task_down() -> None: """Stop the lwc-docs container if it is running. Останавливает контейнер lwc-docs если он запущен. @@ -180,9 +215,9 @@ def register(subparsers: argparse._SubParsersAction) -> None: p.add_argument( "action", nargs="?", - choices=["up", "down", "rebuild"], + choices=["up", "down", "rebuild", "build"], default="up", - help="up — start (default), down — stop, rebuild — rebuild image and restart", + help="up — start (default), down — stop, rebuild — rebuild image and restart, build — generate static site + PDF", ) p.set_defaults(func=run) @@ -198,6 +233,10 @@ def run(args: argparse.Namespace) -> None: _task_down() return + if action == "build": + _task_build() + return + port_v = ui.text("Порт для сервера документации:", _DEFAULT_PORT) if port_v is None: return diff --git a/doc/build_docs.sh b/doc/build_docs.sh deleted file mode 100755 index 5eb1845..0000000 --- a/doc/build_docs.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -# Configure the Docker image and the MkDocs directory -DOCKER_IMAGE="squidfunk/mkdocs-material" -MKDOCS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/lwc-doc" && pwd)" - -# Define color codes for logging -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' # No Color - -log_info() { echo -e "${GREEN}[INFO]${NC} $1"; } -log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } -log_error() { echo -e "${RED}[ERROR]${NC} $1"; } - - -# Check for Docker and the MkDocs directory -if ! command -v docker &> /dev/null; then - log_error "Docker не найден. Установи Docker и повтори." - exit 1 -fi - -if [ ! -d "$MKDOCS_DIR" ]; then - log_error "Папка mkdocs не найдена: $MKDOCS_DIR" - exit 1 -fi - -if [ ! -f "$MKDOCS_DIR/mkdocs.yml" ]; then - log_error "Файл mkdocs.yml не найден в $MKDOCS_DIR" - exit 1 -fi - -# Determine the mode (build or serve) -MODE="${1:-build}" - -case "$MODE" in - build) - log_info "Сборка документации (build)..." - docker run --rm \ - -v "$MKDOCS_DIR:/docs" \ - "$DOCKER_IMAGE" build - if [ $? -eq 0 ]; then - log_info "Готово! Результат: $MKDOCS_DIR/site/" - else - log_error "Сборка завершилась с ошибкой." - exit 1 - fi - ;; - - serve) - log_info "Запуск dev-сервера на http://localhost:8000 ..." - log_warn "Остановка: Ctrl+C" - docker run --rm -it \ - -p 8000:8000 \ - -v "$MKDOCS_DIR:/docs" \ - "$DOCKER_IMAGE" serve \ - --dev-addr=0.0.0.0:8000 \ - --watch /docs \ - --livereload - ;; - - *) - echo "Использование: $0 [build|serve]" - echo " build — собрать статику в mkdocs/site/ (по умолчанию)" - echo " serve — запустить live-preview на localhost:8000" - exit 1 - ;; -esac \ No newline at end of file diff --git a/doc/lwc-doc/Dockerfile b/doc/lwc-doc/Dockerfile index dc88e30..35bf6ff 100644 --- a/doc/lwc-doc/Dockerfile +++ b/doc/lwc-doc/Dockerfile @@ -10,5 +10,5 @@ RUN apk add --no-cache \ g++ \ musl-dev \ python3-dev \ - && pip install mkdocs-with-pdf \ + && pip install mkdocs-to-pdf \ && apk del --no-cache gcc g++ musl-dev python3-dev diff --git a/doc/lwc-doc/docs/architecture/data-flow.md b/doc/lwc-doc/docs/architecture/data-flow.md deleted file mode 100644 index 884e403..0000000 --- a/doc/lwc-doc/docs/architecture/data-flow.md +++ /dev/null @@ -1,3 +0,0 @@ -# Потоки данных - -*Как данные идут от FRI до MoveIt: топики, сервисы, action-серверы.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-bringup.md b/doc/lwc-doc/docs/architecture/packages/iiwa-bringup.md deleted file mode 100644 index 1023d66..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-bringup.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_bringup - -*Launch-файлы, точка входа системы.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-config.md b/doc/lwc-doc/docs/architecture/packages/iiwa-config.md deleted file mode 100644 index 7d4c92f..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-config.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_config - -*URDF, SRDF, параметры контроллеров.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-controller.md b/doc/lwc-doc/docs/architecture/packages/iiwa-controller.md deleted file mode 100644 index ca62b4f..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-controller.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_controller - -*Аппаратный интерфейс FRI: SystemInterface, контроллеры.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-description.md b/doc/lwc-doc/docs/architecture/packages/iiwa-description.md deleted file mode 100644 index 920a108..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-description.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_description - -*Визуальная и кинематическая модель робота.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-msgs.md b/doc/lwc-doc/docs/architecture/packages/iiwa-msgs.md deleted file mode 100644 index 3d0d879..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-msgs.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_msgs - -*Кастомные сообщения и сервисы.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-planning.md b/doc/lwc-doc/docs/architecture/packages/iiwa-planning.md deleted file mode 100644 index 06c4343..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-planning.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_planning - -*MoveIt, планирование траекторий, конфигурация планировщиков.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-sunrise.md b/doc/lwc-doc/docs/architecture/packages/iiwa-sunrise.md deleted file mode 100644 index 5e1c228..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-sunrise.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_sunrise - -*Мост с Java-кодом Sunrise Workbench.* diff --git a/doc/lwc-doc/docs/architecture/packages/iiwa-utils.md b/doc/lwc-doc/docs/architecture/packages/iiwa-utils.md deleted file mode 100644 index cc1419c..0000000 --- a/doc/lwc-doc/docs/architecture/packages/iiwa-utils.md +++ /dev/null @@ -1,3 +0,0 @@ -# iiwa_utils - -*Вспомогательные утилиты.* diff --git a/doc/lwc-doc/docs/architecture/packages/realsense.md b/doc/lwc-doc/docs/architecture/packages/realsense.md deleted file mode 100644 index b4ef539..0000000 --- a/doc/lwc-doc/docs/architecture/packages/realsense.md +++ /dev/null @@ -1,3 +0,0 @@ -# RealSense - -*Пакеты камеры: драйвер, сообщения, MQTT-мост.* diff --git a/doc/lwc-doc/docs/architecture/system-overview.md b/doc/lwc-doc/docs/architecture/system-overview.md deleted file mode 100644 index 962aa4a..0000000 --- a/doc/lwc-doc/docs/architecture/system-overview.md +++ /dev/null @@ -1,3 +0,0 @@ -# Обзор системы - -*Диаграмма: робот ↔ FRI ↔ ROS2 ↔ интерфейсы управления.* diff --git a/doc/lwc-doc/docs/assets/extra.css b/doc/lwc-doc/docs/assets/extra.css new file mode 100644 index 0000000..ed7d1a5 --- /dev/null +++ b/doc/lwc-doc/docs/assets/extra.css @@ -0,0 +1,16 @@ +/* Центрирование изображений */ +.md-content img { + display: block; + margin: 1em auto; +} + +/* Центрирование таблиц */ +.md-typeset table { + display: table; + margin: 1em auto; +} + +/* Скрываем встроенную кнопку PDF от плагина to-pdf */ +a.md-header-nav__button.md-icon[href$=".pdf"] { + display: none !important; +} diff --git a/doc/lwc-doc/docs/assets/pdf_button.js b/doc/lwc-doc/docs/assets/pdf_button.js index b5be69d..e4f3fff 100644 --- a/doc/lwc-doc/docs/assets/pdf_button.js +++ b/doc/lwc-doc/docs/assets/pdf_button.js @@ -1,11 +1,12 @@ document.addEventListener("DOMContentLoaded", function () { + const siteRoot = document.querySelector('meta[name="site-root"]')?.content ?? ""; const btn = document.createElement("a"); - btn.href = "/pdf/document.pdf"; + btn.href = siteRoot + "/pdf/documentation.pdf"; btn.download = "lwc-documentation.pdf"; btn.title = "Скачать всю документацию в PDF"; btn.style.cssText = [ "position: fixed", - "bottom: 24px", + "bottom: 80px", "right: 24px", "z-index: 9999", "background: var(--md-primary-fg-color, #1976d2)", diff --git a/doc/lwc-doc/docs/control/foxglove.md b/doc/lwc-doc/docs/control/foxglove.md deleted file mode 100644 index 55690ae..0000000 --- a/doc/lwc-doc/docs/control/foxglove.md +++ /dev/null @@ -1,3 +0,0 @@ -# Foxglove Studio - -*Подключение, полезные панели, отправка команд.* diff --git a/doc/lwc-doc/docs/control/simulation.md b/doc/lwc-doc/docs/control/simulation.md deleted file mode 100644 index dce5284..0000000 --- a/doc/lwc-doc/docs/control/simulation.md +++ /dev/null @@ -1,3 +0,0 @@ -# Симуляция - -*Запуск в Webots и RViz.* diff --git a/doc/lwc-doc/docs/control/terminal.md b/doc/lwc-doc/docs/control/terminal.md deleted file mode 100644 index 7cbf858..0000000 --- a/doc/lwc-doc/docs/control/terminal.md +++ /dev/null @@ -1,3 +0,0 @@ -# Терминал (ROS2 CLI) - -*`ros2 topic`, `ros2 action`, `ros2 service` — шпаргалка.* diff --git a/doc/lwc-doc/docs/control/web-interface.md b/doc/lwc-doc/docs/control/web-interface.md deleted file mode 100644 index ca534b0..0000000 --- a/doc/lwc-doc/docs/control/web-interface.md +++ /dev/null @@ -1,3 +0,0 @@ -# Web-интерфейс - -*В разработке.* diff --git a/doc/lwc-doc/docs/development/build-rebuild.md b/doc/lwc-doc/docs/development/build-rebuild.md deleted file mode 100644 index 0728611..0000000 --- a/doc/lwc-doc/docs/development/build-rebuild.md +++ /dev/null @@ -1,3 +0,0 @@ -# Сборка и пересборка - -*`cobot rebuild`, `cobot clean`, `cobot update`.* diff --git a/doc/lwc-doc/docs/development/cli-reference.md b/doc/lwc-doc/docs/development/cli-reference.md deleted file mode 100644 index a7dbe38..0000000 --- a/doc/lwc-doc/docs/development/cli-reference.md +++ /dev/null @@ -1,3 +0,0 @@ -# Справочник CLI - -*Полный список команд `cobot` с параметрами.* diff --git a/doc/lwc-doc/docs/development/troubleshooting.md b/doc/lwc-doc/docs/development/troubleshooting.md deleted file mode 100644 index b156235..0000000 --- a/doc/lwc-doc/docs/development/troubleshooting.md +++ /dev/null @@ -1,3 +0,0 @@ -# Решение проблем - -*Частые ошибки и способы их исправления.* diff --git a/doc/lwc-doc/docs/examples/cartesian-goal.md b/doc/lwc-doc/docs/examples/cartesian-goal.md deleted file mode 100644 index 38411da..0000000 --- a/doc/lwc-doc/docs/examples/cartesian-goal.md +++ /dev/null @@ -1,3 +0,0 @@ -# Декартова цель (pose) - -*Пример задания цели в пространстве через MoveIt.* diff --git a/doc/lwc-doc/docs/examples/joint-position.md b/doc/lwc-doc/docs/examples/joint-position.md deleted file mode 100644 index 12bac67..0000000 --- a/doc/lwc-doc/docs/examples/joint-position.md +++ /dev/null @@ -1,3 +0,0 @@ -# Движение в позицию по осям - -*Пример отправки joint position goal.* diff --git a/doc/lwc-doc/docs/examples/moveit-python.md b/doc/lwc-doc/docs/examples/moveit-python.md deleted file mode 100644 index f07058c..0000000 --- a/doc/lwc-doc/docs/examples/moveit-python.md +++ /dev/null @@ -1,3 +0,0 @@ -# MoveIt Python API - -*Управление роботом из Python-скрипта.* diff --git a/doc/lwc-doc/docs/examples/realsense-data.md b/doc/lwc-doc/docs/examples/realsense-data.md deleted file mode 100644 index 64dc81d..0000000 --- a/doc/lwc-doc/docs/examples/realsense-data.md +++ /dev/null @@ -1,3 +0,0 @@ -# Чтение данных RealSense - -*Получение изображений и облака точек.* diff --git a/doc/lwc-doc/docs/examples/trajectory.md b/doc/lwc-doc/docs/examples/trajectory.md deleted file mode 100644 index ee6416c..0000000 --- a/doc/lwc-doc/docs/examples/trajectory.md +++ /dev/null @@ -1,3 +0,0 @@ -# Выполнение траектории - -*Пример составной траектории.* diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-01.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-01.png new file mode 100644 index 0000000..244c125 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-01.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-02.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-02.png new file mode 100644 index 0000000..06c93c8 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-02.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-03.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-03.png new file mode 100644 index 0000000..35993ae Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-03.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-04.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-04.png new file mode 100644 index 0000000..f615f62 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-04.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-05.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-05.png new file mode 100644 index 0000000..b114163 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-05.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-06.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-06.png new file mode 100644 index 0000000..78b7016 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-06.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-07.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-07.png new file mode 100644 index 0000000..f74e07a Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-07.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-08.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-08.png new file mode 100644 index 0000000..6ca3052 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-08.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-09.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-09.png new file mode 100644 index 0000000..e39c732 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-09.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-10.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-10.png new file mode 100644 index 0000000..004db33 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-10.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-11.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-11.png new file mode 100644 index 0000000..de7c500 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-11.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-12.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-12.png new file mode 100644 index 0000000..959da9d Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-12.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-13.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-13.png new file mode 100644 index 0000000..ad0a4cf Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-13.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-14.png b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-14.png new file mode 100644 index 0000000..1d83085 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/libraries/step-14.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-01.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-01.png new file mode 100644 index 0000000..8db4ad1 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-01.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-02.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-02.png new file mode 100644 index 0000000..6bae20a Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-02.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-03.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-03.png new file mode 100644 index 0000000..f2af350 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-03.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-04.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-04.png new file mode 100644 index 0000000..e56e752 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-04.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-05.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-05.png new file mode 100644 index 0000000..38d3796 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-05.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-06.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-06.png new file mode 100644 index 0000000..119b717 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-06.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-07.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-07.png new file mode 100644 index 0000000..473605f Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-07.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-08.png b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-08.png new file mode 100644 index 0000000..c21ec1e Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/config/new-project/step-08.png differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_active.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_active.jpg new file mode 100644 index 0000000..86e4db4 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_active.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_error.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_error.jpg new file mode 100644 index 0000000..4da0753 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_error.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_stoped.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_stoped.jpg new file mode 100644 index 0000000..8e593a9 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/app_stoped.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/applications/choose_app.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/choose_app.jpg new file mode 100644 index 0000000..36cfeaa Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/choose_app.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/applications/menu.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/menu.jpg new file mode 100644 index 0000000..5d80b87 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/menu.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/applications/selected_app.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/selected_app.jpg new file mode 100644 index 0000000..b2f6a4c Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/applications/selected_app.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/changelang.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/changelang.jpg new file mode 100644 index 0000000..6f17b65 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/changelang.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/clock.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/clock.jpg new file mode 100644 index 0000000..b88cd09 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/clock.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/groupusers.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/groupusers.jpg new file mode 100644 index 0000000..37fdbeb Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/groupusers.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/move_method.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/move_method.jpg new file mode 100644 index 0000000..7c230ae Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/move_method.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/speedmenu.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/speedmenu.jpg new file mode 100644 index 0000000..24a16f7 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/speedmenu.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/viewmove.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/viewmove.jpg new file mode 100644 index 0000000..0d368b0 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/extra-menu/viewmove.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/io-group/main.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/io-group/main.jpg new file mode 100644 index 0000000..4dd9330 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/io-group/main.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/io-group/output.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/io-group/output.jpg new file mode 100644 index 0000000..c68e952 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/io-group/output.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/cabinet.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/cabinet.jpg new file mode 100644 index 0000000..0de7cbc Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/cabinet.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames.jpg new file mode 100644 index 0000000..14acac8 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames2.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames2.jpg new file mode 100644 index 0000000..91934e9 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames2.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames3.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames3.jpg new file mode 100644 index 0000000..0b42b27 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames3.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames4.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames4.jpg new file mode 100644 index 0000000..1ead3fa Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/frames4.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/info.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/info.jpg new file mode 100644 index 0000000..938e503 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/info.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/main.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/main.jpg new file mode 100644 index 0000000..cceee67 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/main.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/protocol.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/protocol.jpg new file mode 100644 index 0000000..65bc61d Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/protocol.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/safety1.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/safety1.jpg new file mode 100644 index 0000000..88b6d32 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/safety1.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/kuka/station/safety2.jpg b/doc/lwc-doc/docs/sunrise/assets/kuka/station/safety2.jpg new file mode 100644 index 0000000..c60c845 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/kuka/station/safety2.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/troubleshooting/DisplayError.jpg b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/DisplayError.jpg new file mode 100644 index 0000000..2bde19c Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/DisplayError.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/troubleshooting/data_process_warning.jpg b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/data_process_warning.jpg new file mode 100644 index 0000000..e904024 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/data_process_warning.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/troubleshooting/desktop.jpg b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/desktop.jpg new file mode 100644 index 0000000..f7809fa Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/desktop.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/assets/troubleshooting/frames_warning.jpg b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/frames_warning.jpg new file mode 100644 index 0000000..de96e98 Binary files /dev/null and b/doc/lwc-doc/docs/sunrise/assets/troubleshooting/frames_warning.jpg differ diff --git a/doc/lwc-doc/docs/sunrise/config/libraries.md b/doc/lwc-doc/docs/sunrise/config/libraries.md new file mode 100644 index 0000000..e27490e --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/config/libraries.md @@ -0,0 +1,90 @@ +# Установка библиотек + +Для обеспечения полноценной работы проекта SunriseWorkbench необходимо установить пакет дополнительных библиотек, поставляемых в виде `.zip`-архивов. + +!!! note "Предварительное требование" + Перед установкой библиотек убедитесь, что проект создан или загружен. Обратитесь к разделу [Создание нового проекта](new-project.md) или [Загрузка готового проекта](load-project.md). + +## Открытие настроек + +В строке меню главного окна SunriseWorkbench выберите **Window → Preferences**. + +![Меню Window → Preferences](../assets/config/libraries/step-01.png) + +В открывшемся окне перейдите в раздел **Install/Update → Available Software Sites**. + +![Раздел Available Software Sites](../assets/config/libraries/step-02.png) + +## Добавление архивов библиотек + +Нажмите кнопку **Add**. В появившемся диалоговом окне добавьте `.zip`-архив с библиотеками через кнопку **Archive...**. + +![Диалог добавления источника](../assets/config/libraries/step-03.png) + +### Для пользователей Windows + +Перейдите в папку с `.zip`-архивами библиотек и выберите нужный файл. + +![Выбор архива (Windows)](../assets/config/libraries/step-04.png) + +### Для пользователей Linux + +Поскольку SunriseWorkbench работает в эмулированной Windows-среде, для доступа к файловой системе Linux необходимо выполнить следующие действия: + +1. В диалоге выбора файла нажмите поле **Искать в:** и выберите **Мой компьютер**. + + ![Мой компьютер](../assets/config/libraries/step-05.png) + +2. Отобразится список всех смонтированных дисков. Их количество может превышать фактическое число физических накопителей — это особенность работы эмулятора. + + ![Список дисков](../assets/config/libraries/step-06.png) + +3. Последовательно проверьте каждый диск. В одном из них будет отображена файловая система Linux (в примере — диск H). + + ![Файловая система Linux](../assets/config/libraries/step-07.png) + +4. Перейдите в папку с библиотеками, выберите один из `.zip`-архивов и нажмите **OK**. + + ![Выбор архива](../assets/config/libraries/step-08.png) + +## Добавление оставшихся архивов + +В списке **Available Software Sites** должна появиться запись с добавленным архивом. Повторите процедуру для всех оставшихся `.zip`-файлов библиотек. + +![Список добавленных архивов](../assets/config/libraries/step-09.png) + +После добавления всех архивов нажмите **OK** для сохранения настроек. + +## Установка библиотек + +В строке меню выберите **Help → Install New Software...**. + +![Help → Install New Software](../assets/config/libraries/step-10.png) + +В открывшемся окне в поле **Work with** выберите **All Available Sites** — в списке отобразятся компоненты из всех добавленных архивов. + +![Список компонентов](../assets/config/libraries/step-11.png) + +Установите флажки напротив всех доступных компонентов и нажмите **Next**. + +![Выбор компонентов](../assets/config/libraries/step-12.png) + +Ознакомьтесь со сводкой устанавливаемых компонентов и нажмите **Next**. + +Примите условия лицензионных соглашений и нажмите **Finish** — начнётся процесс установки. + +!!! warning "Продолжительность установки" + Установка библиотек может занять значительное время. Не прерывайте процесс. + +![Процесс установки](../assets/config/libraries/step-13.png) + +## Перезапуск приложения + +По завершении установки SunriseWorkbench предложит выполнить перезапуск. Нажмите **Restart Now**. + +![Запрос перезапуска](../assets/config/libraries/step-14.png) + +После перезапуска интерфейс переключится на русский язык, а в файле `StationSetup.cat` появятся все установленные библиотеки. + +!!! tip "Следующий шаг" + Если проект ещё не настроен, перейдите к разделу [Создание нового проекта](new-project.md) или [Загрузка готового проекта](load-project.md). diff --git a/doc/lwc-doc/docs/sunrise/config/load-project.md b/doc/lwc-doc/docs/sunrise/config/load-project.md new file mode 100644 index 0000000..5c78a7a --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/config/load-project.md @@ -0,0 +1,6 @@ +# Загрузка готового проекта + +В данном разделе будут приведены инструкции по импорту существующего проекта SunriseWorkbench. + +!!! info "Раздел в разработке" + Содержимое данного раздела находится в процессе подготовки. diff --git a/doc/lwc-doc/docs/sunrise/config/new-project.md b/doc/lwc-doc/docs/sunrise/config/new-project.md new file mode 100644 index 0000000..5705295 --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/config/new-project.md @@ -0,0 +1,63 @@ +# Создание нового проекта + +В данном разделе описан процесс создания нового проекта в SunriseWorkbench и его первоначальная конфигурация для работы с роботом KUKA LBR IIWA 7. + +!!! note "Предварительное требование" + Перед созданием проекта убедитесь, что SunriseWorkbench установлен. Инструкции по установке приведены в разделах [Windows](../install/windows.md) и [Linux](../install/linux/linux.md). + +## Запуск мастера создания проекта + +В главном окне SunriseWorkbench нажмите кнопку **New Sunrise Project**. + +![Главное окно SunriseWorkbench](../assets/config/new-project/step-01.png) + +## Настройка подключения к контроллеру + +В появившемся диалоговом окне укажите IP-адрес контроллера KUKA Sunrise Cabinet. + +![Ввод IP-адреса контроллера](../assets/config/new-project/step-02.png) + +!!! warning "IP-адрес контроллера" + IP-адрес контроллера по умолчанию: `172.31.1.147`. Если в вашей конфигурации используется другой адрес, обязательно измените его на актуальный. + +## Название проекта + +Задайте наименование проекта в соответствующем поле. + +![Ввод названия проекта](../assets/config/new-project/step-03.png) + +## Выбор модели робота + +В выпадающем списке выберите модель робота. Для KUKA LBR IIWA 7 выберите **LBR iiwa 7 R800**. + +![Выбор модели робота](../assets/config/new-project/step-04.png) + +## Выбор фланца + +Выберите тип фланца в соответствии с конфигурацией вашего робота. + +![Выбор фланца](../assets/config/new-project/step-05.png) + +!!! warning "Выбор фланца" + Тип фланца должен точно соответствовать физической конфигурации робота. В данной конфигурации используется **Medien-Flansch elektrisch**. Ориентацию оставьте по умолчанию (0°). + +## Проверка конфигурации + +В итоговом окне проверьте все указанные параметры. Убедившись в их корректности, нажмите **Finish**. + +![Проверка параметров](../assets/config/new-project/step-06.png) + +## Выбор шаблона приложения + +После создания проекта откроется диалог выбора шаблона. Выберите один из предложенных примеров и нажмите **Finish**. + +![Выбор шаблона](../assets/config/new-project/step-07.png) + +## Главное окно редактора + +После успешного завершения мастера откроется основное окно редактора SunriseWorkbench с созданным проектом. + +![Главное окно редактора](../assets/config/new-project/step-08.png) + +!!! tip "Следующий шаг" + Для полноценной работы с роботом необходимо установить все требуемые библиотеки. Инструкции приведены в разделе [Установка библиотек](libraries.md). diff --git a/doc/lwc-doc/docs/sunrise/deployment.md b/doc/lwc-doc/docs/sunrise/deployment.md deleted file mode 100644 index 14dc633..0000000 --- a/doc/lwc-doc/docs/sunrise/deployment.md +++ /dev/null @@ -1,3 +0,0 @@ -# Загрузка на контроллер - -*Сборка и деплой приложения на робота.* diff --git a/doc/lwc-doc/docs/sunrise/kuka/features/applications.md b/doc/lwc-doc/docs/sunrise/kuka/features/applications.md new file mode 100644 index 0000000..631deed --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/features/applications.md @@ -0,0 +1,59 @@ +# Приложения + +Раздел **Приложения** предоставляет доступ к выбору и управлению управляющими программами, разработанными в SunriseWorkbench и развёрнутыми на контроллере. Раздел открывается через кнопку **Приложения** в строке навигации smartHMI. + +![Меню приложений](../../assets/kuka/applications/menu.jpg) + +## Список приложений + +Страница выбора приложений разделена на два столбца: + +| Столбец | Описание | +|---|---| +| Приложения робота | Управляющие программы, запускаемые вручную оператором. | +| Фоновые приложения | Программы, выполняющиеся автоматически (`backgroundTask`). | + +Каждая запись в списке содержит: + +- **Индикатор состояния** — цветная точка слева от наименования. +- **Наименование приложения** — имя класса Java. +- **Пакет** — пространство имён или категория (например, `[application]`, `[ros]`, `[demo]`). +- **Чекбокс** — для выбора или деактивации приложения. + +![Выбор приложения](../../assets/kuka/applications/choose_app.jpg) + +Кнопка **Сбросить выбранное приложение робота** (иконка руки) снимает выбор активного приложения без его остановки. Фоновые приложения, находящиеся в состоянии выполнения, отображаются с зелёной точкой и кнопкой **Стоп**. + +## Выбор и активация приложения + +Для выбора приложения нажмите на его наименование в списке. Выбранное приложение выделяется оранжевым цветом, в чекбоксе появляется галочка (✓), а наименование отображается в строке навигации smartHMI. Система автоматически открывает страницу **Контроль приложений** с текущим состоянием программы и журналом её выполнения. + +## Состояния приложения + +### Активизировано + +![Состояние: активизировано](../../assets/kuka/applications/app_active.jpg) + +Серый круглый индикатор — приложение выбрано и загружено в контроллер, однако ещё не запущено. Для запуска нажмите **Старт**. + +### Выполнение + +Зелёный индикатор воспроизведения — программа активно выполняется. В журнале в реальном времени отображаются события, определённые программистом. Если программа предусматривает взаимодействие с оператором, поверх журнала появляется диалог с кнопками выбора. + +### Перемещение приостановлено + +![Состояние: приостановлено](../../assets/kuka/applications/app_stoped.jpg) + +Жёлтый индикатор паузы — выполнение прервано. Для возобновления нажмите **Старт**. + +### Ошибка + +![Состояние: ошибка](../../assets/kuka/applications/app_error.jpg) + +Красный индикатор — в ходе выполнения возникло необработанное исключение. Строка состояния отображает код ошибки. Исправление логических ошибок выполняется в SunriseWorkbench. + +## Деактивация приложения + +![Деактивация приложения](../../assets/kuka/applications/selected_app.jpg) + +Для снятия выбора с приложения перейдите в раздел **Приложения**, найдите активное приложение (выделено оранжевым, чекбокс ✓) и нажмите на чекбокс — приложение будет деактивировано. diff --git a/doc/lwc-doc/docs/sunrise/kuka/features/extra-menu.md b/doc/lwc-doc/docs/sunrise/kuka/features/extra-menu.md new file mode 100644 index 0000000..0a0c4da --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/features/extra-menu.md @@ -0,0 +1,84 @@ +# Дополнительное меню + +Помимо основных функциональных блоков раздела [Станция](station.md), smartHMI предоставляет доступ к дополнительным параметрам управления роботом через боковую панель smartPAD. Панели открываются поверх текущего вида и не требуют перехода в отдельный раздел интерфейса. + +## Метод управления роботом + +Панель **Опции ручного метода** позволяет настроить параметры ручного перемещения: активный инструмент, точку управления (TCP), базовую систему координат и вид перемещения. + +![Опции ручного метода](../../assets/kuka/extra-menu/move_method.jpg) + +### Выбор инструмента и TCP + +| Параметр | Описание | +|---|---| +| Инструмент | Активный инструмент, закреплённый на фланце. По умолчанию: `Фланец` | +| TCP | Точка управления инструментом. По умолчанию: `Фланец (Root)` | + +### Выбор базы + +Базовая система координат, относительно которой выполняется ручное перемещение. Выбирается из списка фреймов, определённых в проекте (например, `P1`). + +### Вид перемещения + +Определяет систему координат, в которой работают кнопки осей A1–A7: + +| Режим | Описание | +|---|---| +| Оси | Поосевое управление. Каждая кнопка перемещает соответствующую ось независимо. | +| Универс. | Перемещение в универсальной (мировой) системе координат. | +| База | Перемещение в выбранной базовой системе координат. | +| Инструмент | Перемещение в системе координат активного инструмента (TCP). | + +## Скорость управления + +Панель **Скорость** управляет процентным ограничением скорости ручного перемещения и выполнения программы. + +![Панель скорости](../../assets/kuka/extra-menu/speedmenu.jpg) + +## Вид перемещения + +Панель **Вид перемещения** управляет режимом работы кнопки **Старт** и параметрами подвода к фреймам. + +![Вид перемещения](../../assets/kuka/extra-menu/viewmove.jpg) + +### Режим приложения + +| Режим | Описание | +|---|---| +| Старт — непрерывный | Кнопка Старт запускает приложение в непрерывном режиме (по умолчанию). | +| Пошаговое выполнение | Кнопка Старт выполняет программу по одному шагу. Используется при отладке. | + +### Подвод к фрейму + +| Тип | Описание | +|---|---| +| Подвод к PTP | Движение по кратчайшей траектории в пространстве суставов (Point-to-Point). | +| Подвод к LIN | Движение по прямолинейной траектории TCP в декартовом пространстве (Linear). | + +Кнопка **Открыть вид фрейма** выполняет переход в раздел Фрейм. + +## Часы + +Нажатие на иконку часов отображает текущее системное время и дату контроллера. + +![Часы](../../assets/kuka/extra-menu/clock.jpg) + +!!! note + Системное время синхронизировано с часами контроллера KUKA Sunrise Cabinet. Изменение времени выполняется в настройках операционной системы контроллера. + +## Группа пользователей + +Диалог **Войти в систему** обеспечивает смену активной группы пользователей и соответствующего уровня доступа к функциям HMI. + +![Группа пользователей](../../assets/kuka/extra-menu/groupusers.jpg) + +Уровень доступа определяет перечень доступных операций: редактирование фреймов, управление Safety, изменение конфигурации проекта и другие. + +## Смена языка + +Диалог **Выбор языка** позволяет изменить язык интерфейса smartHMI. + +![Смена языка](../../assets/kuka/extra-menu/changelang.jpg) + +Изменение вступает в силу немедленно без перезагрузки системы. Текущий язык интерфейса отображается в нижнем левом углу smartHMI (например, `ru-RU`). diff --git a/doc/lwc-doc/docs/sunrise/kuka/features/io-group.md b/doc/lwc-doc/docs/sunrise/kuka/features/io-group.md new file mode 100644 index 0000000..7ba5ec3 --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/features/io-group.md @@ -0,0 +1,41 @@ +# Меню IO Group + +Раздел **Группы вводов/выводов** предоставляет доступ к мониторингу и ручному управлению цифровыми сигналами ввода/вывода, сконфигурированными в проекте Sunrise. Раздел открывается через строку навигации smartHMI. + +![Список групп IO](../../assets/kuka/io-group/main.jpg) + +## Доступные группы + +При нажатии на кнопку **Группы вводов/выводов** в строке навигации открывается список доступных групп. В данном проекте определены следующие группы: + +| Группа | Описание | +|---|---| +| FRI | Группа сигналов интерфейса FRI (Fast Robot Interface) | +| IO_group | Пользовательская группа цифровых вводов/выводов | + +## Просмотр сигналов + +После выбора группы открывается страница со списком всех сигналов. + +![Управление выходными сигналами](../../assets/kuka/io-group/output.jpg) + +### Структура таблицы сигналов + +| Столбец | Описание | +|---|---| +| Вход / Выход | Иконка направления сигнала | +| Имя | Наименование сигнала (например, `In_1`, `Out_16`) | +| Тип | Тип сигнала (для данной группы — цифровой Boolean) | +| Значение | Текущее состояние сигнала (`0` / `1`) | + +## Управление выходными сигналами + +Для сигналов с направлением **Выход** в нижней панели отображаются кнопки принудительной установки значения: + +| Кнопка | Действие | +|---|---| +| True | Установить значение выходного сигнала в `1` (активен) | +| False | Установить значение выходного сигнала в `0` (неактивен) | + +!!! note + Сигналы с направлением **Вход** доступны только для чтения. diff --git a/doc/lwc-doc/docs/sunrise/kuka/features/robot-menu.md b/doc/lwc-doc/docs/sunrise/kuka/features/robot-menu.md new file mode 100644 index 0000000..29beccc --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/features/robot-menu.md @@ -0,0 +1,6 @@ +# Меню робота + +В данном разделе будет представлено описание раздела **Меню робота** интерфейса KUKA smartHMI. + +!!! info "Раздел в разработке" + Содержимое данного раздела находится в процессе подготовки. diff --git a/doc/lwc-doc/docs/sunrise/kuka/features/station.md b/doc/lwc-doc/docs/sunrise/kuka/features/station.md new file mode 100644 index 0000000..8bda97f --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/features/station.md @@ -0,0 +1,168 @@ +# Станция + +Раздел **Станция** является главным уровнем навигации интерфейса KUKA smartHMI. Он открывается нажатием кнопки **Станция** в строке навигации smartPAD и предоставляет доступ к основным функциям управления роботизированной ячейкой. + +![Главное окно Станция](../../assets/kuka/station/main.jpg) + +## Структура меню + +Интерфейс раздела Станция включает четыре функциональных блока: + +| Блок | Описание | +|---|---| +| Меню навигации | Станция, Приложения, Меню робота, Меню IO Group | +| Меню станции | Данные процесса, Safety, Фреймы, KUKA_Sunrise_cabinet, Состояние HMI, Информация, Протокол | +| Дополнительное меню | Вид перемещения, Часы, Пользовательские кнопки | +| Функциональные кнопки smartPAD | Управление программой и перемещением | + +## Данные процесса + +Раздел **Данные процесса** отображает текущее состояние активного приложения (например, `Ok`). Используется для мониторинга параметров выполняемой программы в режиме реального времени. + +## Safety + +Раздел **Safety** предоставляет доступ к настройкам и состоянию системы безопасности робота. + +![Safety](../../assets/kuka/station/safety1.jpg) + +### Функции блока Safety + +| Функция | Описание | +|---|---| +| Состояние | Отображает текущее состояние конфигурации безопасности | +| Активация | Управление активацией и деактивацией конфигурации безопасности | + +### Доступные действия на странице Активация + +| Действие | Описание | +|---|---| +| Активизировать | Применить и активировать текущую конфигурацию безопасности | +| Деактивировать | Отключить активную конфигурацию безопасности | +| Сброс | Сбросить конфигурацию безопасности к предыдущему состоянию | + +Поле **Id безопасной конфигурации** отображает уникальный идентификатор загруженной конфигурации (например, `2BCAB6DD`). + +![Safety — Активация](../../assets/kuka/station/safety2.jpg) + +## Фреймы + +Раздел **Фреймы** открывает редактор систем координат. + +![Фреймы — общий вид](../../assets/kuka/station/frames.jpg) + +Здесь отображается список всех фреймов, определённых в проекте Sunrise, с возможностью просмотра, корректировки и навигации по иерархии. + +### Структура таблицы фреймов + +| Столбец | Описание | +|---|---| +| Имя фрейма | Наименование фрейма в проекте | +| X, Y, Z | Смещение по осям в мм | +| A, B, C | Ориентация в градусах | + +Данные фреймов также доступны в приложении SunriseWorkbench. + +### Навигация и корректировка + +![Вложенные фреймы](../../assets/kuka/station/frames2.jpg) + +Для перехода в дочерние фреймы нажмите кнопку **>** рядом с нужным фреймом. Путь навигации в строке «хлебных крошек» обновляется автоматически. Для возврата на предыдущий уровень нажмите соответствующий элемент в строке навигации. + +![Корректировка фрейма](../../assets/kuka/station/frames3.jpg) + +При нажатии **Корректировать** открывается диалог с таблицей сравнения текущих и новых значений. Для подтверждения нажмите **Сохранить**, для отмены — **Отменить**. + +![Вложенность фреймов](../../assets/kuka/station/frames4.jpg) + +Фреймы поддерживают многоуровневую вложенность. Полный путь иерархии отображается в строке навигации (например, `Универсальный > grant_RNF > P4`). + +## KUKA_Sunrise_cabinet + +Раздел **KUKA_Sunrise_Cabinet** отображает информацию о состоянии аппаратных компонентов контроллера. + +![KUKA Sunrise Cabinet](../../assets/kuka/station/cabinet.jpg) + +| Компонент | Описание | +|---|---| +| Состояние загрузки | Статус загрузки контроллера | +| Магистральные шины | Состояние шины EtherCAT | + +## Состояние HMI + +Раздел **Состояние HMI** отображает статус соединения между smartHMI и контроллером Sunrise Cabinet. + +## Протокол + +Раздел **Протокол** открывает журнал системных событий. + +![Протокол](../../assets/kuka/station/protocol.jpg) + +### Фильтры журнала + +| Фильтр | Описание | +|---|---| +| Источник(и) | Станция, LBR_iiwa_7_R800 или оба | +| Уровень | Информация, Предупреждение, Ошибка | +| Промежуток времени | Временной диапазон выборки | + +Каждая запись содержит: иконку уровня, дату и время события, источник, наименование и описание события. + +## Информация + +Раздел **Информация** содержит подробные системные сведения о контроллере и подключённом роботе. + +![Информация](../../assets/kuka/station/info.jpg) + +## Функциональные кнопки smartPAD + +Физические кнопки smartPAD разделены на три группы: кнопки управления программой (левая панель), кнопки ручного управления осями (правая панель) и пользовательские кнопки. + +### Кнопки управления программой + +| Кнопка | Описание | +|---|---| +| Редактировать | Переход в режим обучения (Teach). Активирует возможность изменения точек программы в ручном режиме. | +| Стоп | Останавливает выполнение программы или движение робота. | +| Шаг назад | Выполняет один шаг программы в обратном направлении. Используется для отладки. | +| Старт | Запускает выбранное приложение или возобновляет остановленную программу. В режиме T1/T2 требует удержания enabling device. | + +!!! note + Режим редактирования со smartPAD не используется — все программы написаны на Java и изменяются только в SunriseWorkbench. + +### Кнопки управления осями (режимы T1 и T2) + +| Кнопка | Описание | +|---|---| +| A1 − / A1 + | Перемещение оси 1 в отрицательном / положительном направлении | +| A2 − / A2 + | Перемещение оси 2 в отрицательном / положительном направлении | +| A3 − / A3 + | Перемещение оси 3 в отрицательном / положительном направлении | +| A4 − / A4 + | Перемещение оси 4 в отрицательном / положительном направлении | +| A5 − / A5 + | Перемещение оси 5 в отрицательном / положительном направлении | +| A6 − / A6 + | Перемещение оси 6 в отрицательном / положительном направлении | +| A7 − / A7 + | Перемещение оси 7 в отрицательном / положительном направлении | + +При выборе режима декартового управления те же кнопки управляют перемещением TCP по осям X / Y / Z и ориентацией A / B / C. + +### Управление скоростью (Override) + +| Кнопка | Описание | +|---|---| +| 0 | Уменьшение скорости ручного перемещения | +| 100 | Увеличение скорости ручного перемещения | + +Значение отображается в процентах от максимальной скорости. В режиме T1 скорость TCP аппаратно ограничена до 250 мм/с. + +### Пользовательские кнопки + +Четыре белые круглые кнопки в нижней части левой панели. Их назначение задаётся программно в Sunrise-проекте через API. По умолчанию не назначены. + +## Режимы работы + +| Режим | Описание | +|---|---| +| T1 | Ручное управление, скорость ограничена до 250 мм/с по TCP. Требуется удержание enabling device. | +| T2 | Ручное управление, нормальная скорость. Требуется удержание enabling device. | +| AUT | Автоматический режим. Кнопки осей недоступны, управление осуществляется кнопками Старт / Стоп. | + +!!! tip "Дополнительное меню" + Описание дополнительных параметров управления приведено в разделе [Дополнительное меню](extra-menu.md). diff --git a/doc/lwc-doc/docs/sunrise/kuka/programs/lbr-server.md b/doc/lwc-doc/docs/sunrise/kuka/programs/lbr-server.md new file mode 100644 index 0000000..a35c417 --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/programs/lbr-server.md @@ -0,0 +1,6 @@ +# LBRserver + +В данном разделе будет представлено описание управляющей программы **LBRserver**, обеспечивающей связь контроллера с ROS 2 по протоколу FRI. + +!!! info "Раздел в разработке" + Содержимое данного раздела находится в процессе подготовки. diff --git a/doc/lwc-doc/docs/sunrise/kuka/programs/robot-power-control.md b/doc/lwc-doc/docs/sunrise/kuka/programs/robot-power-control.md new file mode 100644 index 0000000..94e2176 --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/programs/robot-power-control.md @@ -0,0 +1,6 @@ +# RobotPowerControl + +В данном разделе будет представлено описание управляющей программы **RobotPowerControl**, предназначенной для управления состоянием питания робота. + +!!! info "Раздел в разработке" + Содержимое данного раздела находится в процессе подготовки. diff --git a/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md b/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md new file mode 100644 index 0000000..d1c55d5 --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/kuka/programs/teach-kuka.md @@ -0,0 +1,6 @@ +# TeachKuka + +В данном разделе будет представлено описание управляющей программы **TeachKuka**, предназначенной для обучения позиций робота. + +!!! info "Раздел в разработке" + Содержимое данного раздела находится в процессе подготовки. diff --git a/doc/lwc-doc/docs/sunrise/network.md b/doc/lwc-doc/docs/sunrise/network.md deleted file mode 100644 index ac8dec7..0000000 --- a/doc/lwc-doc/docs/sunrise/network.md +++ /dev/null @@ -1,3 +0,0 @@ -# Настройка сети - -*FRI-соединение, IP-адреса и порты.* diff --git a/doc/lwc-doc/docs/sunrise/overview.md b/doc/lwc-doc/docs/sunrise/overview.md index 9f1408f..ad54f8f 100644 --- a/doc/lwc-doc/docs/sunrise/overview.md +++ b/doc/lwc-doc/docs/sunrise/overview.md @@ -1,3 +1,12 @@ # Обзор Sunrise Workbench -*Что такое FRI и зачем нужен Sunrise Workbench.* +Для программирования KUKA LBR IIWA 7 необходимо использовать специализированное программное обеспечение **SunriseWorkbench** — интегрированную среду разработки на базе Eclipse, предназначенную для написания, отладки и развёртывания управляющих программ на контроллере KUKA Sunrise Cabinet. + +!!! info "Об установщике" + Дистрибутив SunriseWorkbench не находится в открытом доступе. + Обратитесь к системному администратору за получением установочного пакета и уточнением его расположения. + +В данном руководстве представлены инструкции по установке SunriseWorkbench на следующие операционные системы: + +- [Windows](install/windows.md) +- [Linux](install/linux/linux.md) diff --git a/doc/lwc-doc/docs/sunrise/project-setup.md b/doc/lwc-doc/docs/sunrise/project-setup.md deleted file mode 100644 index 3b0bcf2..0000000 --- a/doc/lwc-doc/docs/sunrise/project-setup.md +++ /dev/null @@ -1,3 +0,0 @@ -# Настройка проекта - -*Импорт проекта, зависимости и библиотеки.* diff --git a/doc/lwc-doc/docs/sunrise/troubleshooting/config-error.md b/doc/lwc-doc/docs/sunrise/troubleshooting/config-error.md new file mode 100644 index 0000000..c0c87df --- /dev/null +++ b/doc/lwc-doc/docs/sunrise/troubleshooting/config-error.md @@ -0,0 +1,44 @@ +# Ошибка конфигурации + +При запуске управляющих программ может возникнуть ошибка, указывающая на то, что инструмент или фрейм не найден. Причиной является аварийное отключение контроллера, при котором конфигурация теряется. + +## Признаки проблемы + +Проблема проявляется при запуске программ **TeachKuka** или **LBRserver**. Диагностические признаки в главном меню smartHMI: + +- Жёлтые предупреждающие индикаторы в разделе **Данные процесса**; +- Жёлтые предупреждающие индикаторы в разделе **Фреймы**. + +![Ошибка отображения](../assets/troubleshooting/DisplayError.jpg) + +![Предупреждение в Данных процесса](../assets/troubleshooting/data_process_warning.jpg) + +![Предупреждение во Фреймах](../assets/troubleshooting/frames_warning.jpg) + +## Порядок устранения + +Выполните следующую последовательность действий: + +1. Подключите внешний монитор к контроллеру робота. +2. Перезагрузите контроллер. +3. Выполните вход в систему с учётными данными: + - Логин: `KukaUser` + - Пароль: `68kuka1secpw59` + + !!! warning "Раскладка клавиатуры" + По умолчанию на контроллере установлена немецкая раскладка клавиатуры (`DE`). Учитывайте это при вводе пароля. + +4. Скопируйте полный проект на USB-накопитель. +5. Откройте проводник файлов сочетанием клавиш ++win+e++. +6. Перейдите по пути: + + ``` + C:\KRC\Projects + ``` + +7. Замените все файлы в данной директории версиями с USB-накопителя. +8. Запустите программу перезагрузки системы с рабочего стола контроллера. + +![Рабочий стол контроллера](../assets/troubleshooting/desktop.jpg) + +После перезагрузки конфигурация будет восстановлена, и управляющие программы запустятся корректно. diff --git a/doc/lwc-doc/mkdocs.yml b/doc/lwc-doc/mkdocs.yml index 6f05cf0..66221b3 100644 --- a/doc/lwc-doc/mkdocs.yml +++ b/doc/lwc-doc/mkdocs.yml @@ -17,11 +17,14 @@ theme: plugins: - search - - with-pdf: + - to-pdf: author: Даниил Грабарь cover_title: Документация LWC cover_subtitle: Lightweight Cobot - output_path: pdf/document.pdf + output_path: pdf/documentation.pdf + +extra_css: + - assets/extra.css extra_javascript: - assets/pdf_button.js @@ -42,38 +45,28 @@ nav: - Sunrise Workbench: - Обзор: sunrise/overview.md - - Настройка проекта: sunrise/project-setup.md - - Настройка сети: sunrise/network.md - - Загрузка на контроллер: sunrise/deployment.md + - Установка: + - Windows: sunrise/install/windows.md + - Linux: + - Обзор: sunrise/install/linux/linux.md + - Установка эмулятора Windows: sunrise/install/linux/emulator.md + - Установка SunriseWorkbench: sunrise/install/linux/workbench.md + - Конфигурация проекта: + - Создание нового проекта: sunrise/config/new-project.md + - Загрузка готового проекта: sunrise/config/load-project.md + - Установка библиотек: sunrise/config/libraries.md + - KUKA LBR IIWA 7: + - Описание программ: + - TeachKuka: sunrise/kuka/programs/teach-kuka.md + - LBRserver: sunrise/kuka/programs/lbr-server.md + - RobotPowerControl: sunrise/kuka/programs/robot-power-control.md + - Функциональные возможности: + - Станция: sunrise/kuka/features/station.md + - Дополнительное меню: sunrise/kuka/features/extra-menu.md + - Приложения: sunrise/kuka/features/applications.md + - Меню робота: sunrise/kuka/features/robot-menu.md + - Меню IO Group: sunrise/kuka/features/io-group.md + - Решение проблем: + - Ошибка конфигурации: sunrise/troubleshooting/config-error.md - - Архитектура: - - Обзор системы: architecture/system-overview.md - - Пакеты: - - iiwa_controller: architecture/packages/iiwa-controller.md - - iiwa_bringup: architecture/packages/iiwa-bringup.md - - iiwa_planning: architecture/packages/iiwa-planning.md - - iiwa_msgs: architecture/packages/iiwa-msgs.md - - iiwa_config: architecture/packages/iiwa-config.md - - iiwa_description: architecture/packages/iiwa-description.md - - iiwa_sunrise: architecture/packages/iiwa-sunrise.md - - iiwa_utils: architecture/packages/iiwa-utils.md - - RealSense: architecture/packages/realsense.md - - Потоки данных: architecture/data-flow.md - - Управление: - - Foxglove Studio: control/foxglove.md - - Терминал: control/terminal.md - - Web-интерфейс: control/web-interface.md - - Симуляция: control/simulation.md - - - Примеры: - - Joint Position: examples/joint-position.md - - Cartesian Goal: examples/cartesian-goal.md - - Траектория: examples/trajectory.md - - MoveIt Python API: examples/moveit-python.md - - RealSense данные: examples/realsense-data.md - - - Разработка: - - Сборка и пересборка: development/build-rebuild.md - - CLI Reference: development/cli-reference.md - - Решение проблем: development/troubleshooting.md diff --git a/doc/lwc-doc/overrides/main.html b/doc/lwc-doc/overrides/main.html new file mode 100644 index 0000000..7e1ec81 --- /dev/null +++ b/doc/lwc-doc/overrides/main.html @@ -0,0 +1,5 @@ +{% extends "base.html" %} + +{% block extrahead %} + +{% endblock %}