feat(rbs): refactor controller paths and launch configuration

- Rename default controllers file `rbs_arm0_controllers.yaml` to `controllers.yaml` across all launch files
- Enhance `runtime.launch.py` by adding imports (`URDF_parser`, `ControllerManager`, `yaml`) and new arguments (`scene_config_file`, `ee_link_name`, `base_link_name`)
  - Implement xacro argument loading via YAML
  - Configure `robot_builder` to save controllers to `controllers.yaml` based on URDF parsing
- Add `control.launch.py` in `rbs_bringup` for dynamic controller spawning based on strategies/configurations
- Add `rbs_bringup.launch.py` as a unified entry point for single robot setup, initializing core settings like gripper, robot type, and controllers
- Remove `launch_env.launch.py`
- Remove `multi_robot.launch.py`
- Enhance `rbs_robot.launch.py` with `ee_link_name` and `base_link_name` arguments for end-effector and base link customization
- Add `ee_link_name` and `base_link_name` to `skills.launch.py` for flexible robot setup in skills
- Update `mtp_jtc_cart.cpp` with `base_link` and `robot_ee_link` parameters for KDL chain retrieval
- Remove `single_robot.launch.py` for simplified single robot deployment
This commit is contained in:
Ilya Uraev 2024-11-12 22:23:12 +03:00
parent a7b7225dd1
commit ea4ae0ed69
13 changed files with 279 additions and 880 deletions

View file

@ -53,6 +53,8 @@ def launch_setup(context, *args, **kwargs):
robot_description_semantic = LaunchConfiguration("robot_description_semantic")
control_space = LaunchConfiguration("control_space")
control_strategy = LaunchConfiguration("control_strategy")
ee_link_name = LaunchConfiguration("ee_link_name").perform(context)
base_link_name = LaunchConfiguration("base_link_name").perform(context)
remappings = []
if multi_robot == "true":
@ -141,7 +143,7 @@ def launch_setup(context, *args, **kwargs):
[
PathJoinSubstitution(
[
FindPackageShare(description_package),
FindPackageShare("rbs_bringup"),
"launch",
"control.launch.py",
]
@ -202,6 +204,8 @@ def launch_setup(context, *args, **kwargs):
"with_gripper_condition": with_gripper_condition,
"namespace": namespace,
"use_moveit": use_moveit,
"ee_link_name": ee_link_name,
"base_link_name": base_link_name,
}.items(),
)
@ -221,14 +225,14 @@ def generate_launch_description():
DeclareLaunchArgument(
"robot_type",
description="Type of robot to launch, specified by name.",
choices=["rbs_arm", "ur3", "ur3e", "ur5", "ur5e", "ur10", "ur10e", "ur16e"],
choices=["rbs_arm", "ar4", "ur3", "ur3e", "ur5", "ur5e", "ur10", "ur10e", "ur16e"],
default_value="rbs_arm",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"controllers_file",
default_value="rbs_arm0_controllers.yaml",
default_value="controllers.yaml",
description="YAML file containing configuration settings for the controllers.",
)
)
@ -397,6 +401,21 @@ def generate_launch_description():
description="Custom semantic robot description (SRDF) to override the default.",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"ee_link_name",
default_value="",
description="End effector name of robot arm",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"base_link_name",
default_value="",
description="Base link name if robot arm",
)
)
return LaunchDescription(
declared_arguments + [OpaqueFunction(function=launch_setup)]