Add a native Webots marker for setting the active tool's TCP position and orientation. Dragging edits the preview; releasing the mouse submits one complete, checked joint trajectory with configured TCP speed limits. Unreachable targets reset the marker to the current TCP. Preserve coordinate, joint, and control-file commands through motion reservations and a controller action proxy. Give the gizmo lowest priority and finish its committed trajectory before dispatching queued regular commands, including waits longer than the former two-second service timeout. Place the patron TCP at its working end, 55.2 mm along local Z, and use the flange TCP when no tool is attached. Add digital_twin.tcp_gizmo configuration, ROS interfaces, launch integration, and regression coverage. Document operation, configuration, tool attachment, speed limits, and troubleshooting in both Russian and English. Validation: 42 Python tests and 8 C++ tests passed. Webots regressions covered one action per release, translation and rotation with and without a tool, unreachable targets, and ordinary commands waiting for gizmo completion.
88 lines
5.3 KiB
YAML
88 lines
5.3 KiB
YAML
robot:
|
|
name: "iiwa7"
|
|
ip: "192.168.21.147"
|
|
port: 30200
|
|
fri_cycle_ms: 10 # период FRI-цикла: 5 мс (200 Гц) или 10 мс (100 Гц)
|
|
joint_position_tau: 0.04 # EMA позиций FRI [с]; 0 отключает сглаживание
|
|
description: pkg://iiwa_description/urdf/iiwa7.urdf.xacro
|
|
|
|
|
|
digital_twin:
|
|
tcp_gizmo:
|
|
enabled: true # TCP-гизма в Webots; только в режиме симуляции
|
|
publish_period: 0.032 # период управления [с]
|
|
command_timeout: 0.3 # максимальный возраст цели при отпускании мыши [с]
|
|
state_timeout: 0.5 # допустимый возраст состояния робота [с]
|
|
max_linear_speed: 0.50 # верхний предел скорости TCP [м/с]
|
|
max_angular_speed: 0.4 # скорость вращения TCP [рад/с]
|
|
webots:
|
|
world: pkg://iiwa_description/worlds/iiwa.wbt
|
|
# world: pkg://iiwa_description/worlds/simple_world.wbt
|
|
transform: "-0.25 0 0.79"
|
|
rotation: "0 0 1 0"
|
|
controller_timer: "50"
|
|
|
|
cameras:
|
|
- pkg://iiwa_config/config/cameras/d455_top.yaml
|
|
|
|
rviz:
|
|
config: pkg://iiwa_config/config/rviz/rviz_moveit.rviz
|
|
|
|
controller:
|
|
controller_path: pkg://iiwa_config/config/moveit/iiwa_controller.yaml
|
|
|
|
moveit:
|
|
srdf: pkg://iiwa_config/config/moveit/iiwa7.srdf
|
|
kinematics: pkg://iiwa_config/config/moveit/kinematics.yaml
|
|
joint_limits: pkg://iiwa_config/config/moveit/joint_limits.yaml
|
|
pilz_limits: pkg://iiwa_config/config/moveit/pilz_cartesian_limits.yaml
|
|
initial_positions: pkg://iiwa_config/config/moveit/initial_positions.yaml
|
|
moveit_controllers: pkg://iiwa_config/config/moveit/moveit_controllers.yaml
|
|
moveit_cpp: pkg://iiwa_config/config/moveit/moveit_cpp.yaml
|
|
|
|
|
|
tool:
|
|
active: "patron" # Активный инструмент: none | patron | ... (из tools.yaml)
|
|
|
|
planning:
|
|
pose_link: "tcp" # TCP-линк для декартовых целей
|
|
planning_group: "iiwa_arm" # Группа планирования из SRDF
|
|
default_frame: "base_link" # Система отсчёта по умолчанию
|
|
default_planner: "ompl" # Планировщик по умолчанию
|
|
planning_attempts: 3 # Число попыток планирования
|
|
|
|
web:
|
|
enabled: true
|
|
host: "0.0.0.0"
|
|
port: 8007
|
|
endpoints: pkg://iiwa_config/config/api_endpoints.yaml
|
|
joint_limits: pkg://iiwa_config/config/moveit/joint_limits.yaml
|
|
|
|
foxglove:
|
|
enabled: true # Запускать ли foxglove_bridge вместе с роботом
|
|
port: 8765 # WebSocket-порт, к которому подключается Foxglove Studio (по умолчанию 8765)
|
|
debug: false # Включить подробное логирование bridge-процесса
|
|
address: 0.0.0.0 # Адрес, на котором слушает сервер. 0.0.0.0 — все интерфейсы, 127.0.0.1 — только локально
|
|
tls: false # Включить TLS-шифрование соединения (нужны certfile + keyfile)
|
|
certfile: "" # Путь к SSL-сертификату (нужен только при tls: true)Путь к SSL-сертификату (нужен только при tls: true)
|
|
keyfile: "" # Путь к SSL-сертификату (нужен только при tls: true)
|
|
topic_whitelist: ['.*'] # Regex-список топиков, которые bridge публикует клиенту
|
|
param_whitelist: ['.*'] # Regex-список ROS-параметров, видимых клиенту
|
|
service_whitelist: ['.*'] # Regex-список сервисов, доступных клиенту
|
|
client_topic_whitelist: ['.*'] # Regex-список топиков, в которые клиент может публиковать (clientPublish)
|
|
min_qos_depth: 1 # Минимальная глубина QoS-очереди при подписке bridge на топик
|
|
max_qos_depth: 10 # Максимальная глубина QoS-очереди
|
|
num_threads: 0 # Число потоков исполнения. 0 = автоматически по числу CPU
|
|
send_buffer_limit: 10000000 # Максимальный размер буфера отправки в байтах (защита от OOM при медленном клиенте)
|
|
use_sim_time: false # Использовать симуляционное время /clock вместо системного
|
|
capabilities: # Список возможностей, открытых клиенту
|
|
- clientPublish
|
|
- parameters
|
|
- parametersSubscribe
|
|
- services
|
|
- connectionGraph
|
|
- assets
|
|
include_hidden: false # Показывать клиенту скрытые топики и сервисы (начинаются с _)
|
|
asset_uri_allowlist: ['^package://(?:[-\w%]+/)*[-\w%.]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$'] # Regex-список URI вида package://..., из которых bridge разрешает отдавать файлы-ассеты (URDF, mesh и т.п.)
|
|
ignore_unresponsive_param_nodes: true # Не падать, если нода не отвечает на запросы параметров (защита от зависания при старте)
|