|
34 | 34 | import os
|
35 | 35 |
|
36 | 36 | from clearpath_config.common.types.platform import Platform
|
| 37 | +from clearpath_config.manipulators.types.arms import UniversalRobots |
37 | 38 | from clearpath_config.platform.battery import BatteryConfig
|
38 | 39 | from clearpath_generator_common.common import LaunchFile, Package, ParamFile
|
39 | 40 | from clearpath_generator_common.launch.generator import LaunchGenerator
|
@@ -461,6 +462,25 @@ def generate_platform(self) -> None:
|
461 | 462 |
|
462 | 463 | def generate_manipulators(self) -> None:
|
463 | 464 | manipulator_service_launch_writer = LaunchWriter(self.manipulators_service_launch_file)
|
| 465 | + # Universal Robots Tool Communication |
| 466 | + for arm in self.clearpath_config.manipulators.get_all_arms(): |
| 467 | + if arm.MANIPULATOR_MODEL == UniversalRobots.MANIPULATOR_MODEL: |
| 468 | + node = LaunchFile.Node( |
| 469 | + name=f'{arm.name}_ur_tool_comm', |
| 470 | + package='ur_robot_driver', |
| 471 | + executable='tool_communication.py', |
| 472 | + namespace=self.namespace, |
| 473 | + parameters=[{ |
| 474 | + 'robot_ip': arm.ip, |
| 475 | + 'tcp_port': 54321, |
| 476 | + 'device_name': f'/tmp/{arm.name}_gripper' |
| 477 | + }], |
| 478 | + ) |
| 479 | + manipulator_service_launch_writer.add_node(node) |
| 480 | + # Delay controllers |
| 481 | + self.manipulators_launch_file.args.append( |
| 482 | + ('control_delay', '1.0') |
| 483 | + ) |
464 | 484 | if self.clearpath_config.manipulators.get_all_manipulators():
|
465 | 485 | manipulator_service_launch_writer.add(self.manipulators_launch_file)
|
466 | 486 | manipulator_service_launch_writer.generate_file()
|
0 commit comments