Files
lightweight-cobot/src/iiwa_bringup/launch/supported/simulation_nodes.py
T

41 lines
1.3 KiB
Python

import json
from launch_ros.actions import Node
from webots_ros2_driver.webots_controller import WebotsController
from iiwa_utils.camera_spawner import load_camera_config, build_ros_urdf # type: ignore
def make_simulation_nodes(settings) -> list:
"""Возвращает ноды камер для симуляции: [camera_spawner, *camera_controllers].
Если камеры не заданы в настройках — возвращает пустой список.
"""
if not settings.digital_twin.webots.cameras:
return []
camera_spawner = Node(
package="iiwa_utils",
executable="camera_spawner",
name="camera_spawner",
output="screen",
parameters=[{
"camera_configs": json.dumps(settings.digital_twin.webots.cameras)
}],
)
camera_controllers = []
for cam_path in settings.digital_twin.webots.cameras:
cam_cfg = load_camera_config(cam_path)
camera_controllers.append(WebotsController(
robot_name=f"{cam_cfg.name}_robot",
parameters=[{
"robot_description": build_ros_urdf(cam_cfg),
"use_sim_time": True,
"set_robot_state_publisher": False,
}],
respawn=True,
))
return [camera_spawner, *camera_controllers]