2024-04-18 13:29:36 +00:00
|
|
|
from launch import LaunchDescription
|
2024-10-14 14:21:30 +03:00
|
|
|
from launch.actions import DeclareLaunchArgument, OpaqueFunction
|
2024-04-18 13:29:36 +00:00
|
|
|
from launch.conditions import IfCondition
|
|
|
|
from launch.substitutions import LaunchConfiguration
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
from launch_ros.actions import ComposableNodeContainer, Node
|
|
|
|
from launch_ros.actions.composable_node_container import ComposableNode
|
refactor launch files for enhanced MoveIt integration and cleanup
- **RBS Bringup Launch File:**
- Enabled MoveIt by default (`use_moveit: true`).
- Removed unused arguments (`gripper_name`, `hardware`) for cleaner configuration.
- Updated `robot_description_kinematics` to use the new kinematics file path handling.
- **RBS Robot Launch File:**
- Streamlined robot description setup, removing unnecessary parameters like `gripper_name`, `hardware`, and pose arguments (`x`, `y`, `z`, `roll`, etc.).
- Updated robot description and semantic description to use launch configurations.
- Refactored kinematics file handling for clarity.
- **Skills Launch File:**
- Updated kinematics YAML loading to use `load_yaml_abs` for absolute path resolution.
- Standardized `robot_description`, `robot_description_semantic`, and `kinematics` parameters.
- **General Improvements:**
- Consolidated redundant logic across launch files.
- Improved maintainability by removing hardcoded and unused configurations.
2024-11-22 02:16:20 +03:00
|
|
|
from rbs_launch_utils.launch_common import load_yaml, load_yaml_abs
|
2023-11-30 13:47:33 +03:00
|
|
|
|
2024-10-14 14:21:30 +03:00
|
|
|
|
2024-04-18 13:29:36 +00:00
|
|
|
def launch_setup(context, *args, **kwargs):
|
refactor launch files for enhanced MoveIt integration and cleanup
- **RBS Bringup Launch File:**
- Enabled MoveIt by default (`use_moveit: true`).
- Removed unused arguments (`gripper_name`, `hardware`) for cleaner configuration.
- Updated `robot_description_kinematics` to use the new kinematics file path handling.
- **RBS Robot Launch File:**
- Streamlined robot description setup, removing unnecessary parameters like `gripper_name`, `hardware`, and pose arguments (`x`, `y`, `z`, `roll`, etc.).
- Updated robot description and semantic description to use launch configurations.
- Refactored kinematics file handling for clarity.
- **Skills Launch File:**
- Updated kinematics YAML loading to use `load_yaml_abs` for absolute path resolution.
- Standardized `robot_description`, `robot_description_semantic`, and `kinematics` parameters.
- **General Improvements:**
- Consolidated redundant logic across launch files.
- Improved maintainability by removing hardcoded and unused configurations.
2024-11-22 02:16:20 +03:00
|
|
|
robot_description_content = LaunchConfiguration("robot_description")
|
2025-03-10 13:49:07 +03:00
|
|
|
robot_description_semantic_content = LaunchConfiguration(
|
|
|
|
"robot_description_semantic"
|
|
|
|
)
|
|
|
|
robot_description_kinematics_filepath = LaunchConfiguration(
|
|
|
|
"robot_description_kinematics"
|
|
|
|
)
|
2023-11-30 13:47:33 +03:00
|
|
|
use_sim_time = LaunchConfiguration("use_sim_time")
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
use_moveit = LaunchConfiguration("use_moveit")
|
2024-11-12 22:23:12 +03:00
|
|
|
ee_link_name = LaunchConfiguration("ee_link_name").perform(context)
|
|
|
|
base_link_name = LaunchConfiguration("base_link_name").perform(context)
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
# with_gripper_condition = LaunchConfiguration("with_gripper_condition")
|
|
|
|
|
refactor launch files for enhanced MoveIt integration and cleanup
- **RBS Bringup Launch File:**
- Enabled MoveIt by default (`use_moveit: true`).
- Removed unused arguments (`gripper_name`, `hardware`) for cleaner configuration.
- Updated `robot_description_kinematics` to use the new kinematics file path handling.
- **RBS Robot Launch File:**
- Streamlined robot description setup, removing unnecessary parameters like `gripper_name`, `hardware`, and pose arguments (`x`, `y`, `z`, `roll`, etc.).
- Updated robot description and semantic description to use launch configurations.
- Refactored kinematics file handling for clarity.
- **Skills Launch File:**
- Updated kinematics YAML loading to use `load_yaml_abs` for absolute path resolution.
- Standardized `robot_description`, `robot_description_semantic`, and `kinematics` parameters.
- **General Improvements:**
- Consolidated redundant logic across launch files.
- Improved maintainability by removing hardcoded and unused configurations.
2024-11-22 02:16:20 +03:00
|
|
|
robot_description = {"robot_description": robot_description_content}
|
2024-10-14 14:21:30 +03:00
|
|
|
robot_description_semantic = {
|
refactor launch files for enhanced MoveIt integration and cleanup
- **RBS Bringup Launch File:**
- Enabled MoveIt by default (`use_moveit: true`).
- Removed unused arguments (`gripper_name`, `hardware`) for cleaner configuration.
- Updated `robot_description_kinematics` to use the new kinematics file path handling.
- **RBS Robot Launch File:**
- Streamlined robot description setup, removing unnecessary parameters like `gripper_name`, `hardware`, and pose arguments (`x`, `y`, `z`, `roll`, etc.).
- Updated robot description and semantic description to use launch configurations.
- Refactored kinematics file handling for clarity.
- **Skills Launch File:**
- Updated kinematics YAML loading to use `load_yaml_abs` for absolute path resolution.
- Standardized `robot_description`, `robot_description_semantic`, and `kinematics` parameters.
- **General Improvements:**
- Consolidated redundant logic across launch files.
- Improved maintainability by removing hardcoded and unused configurations.
2024-11-22 02:16:20 +03:00
|
|
|
"robot_description_semantic": robot_description_semantic_content
|
2024-10-14 14:21:30 +03:00
|
|
|
}
|
2024-04-18 13:29:36 +00:00
|
|
|
namespace = LaunchConfiguration("namespace")
|
2023-11-30 13:47:33 +03:00
|
|
|
|
2025-03-10 13:49:07 +03:00
|
|
|
# kinematics_yaml = load_yaml_abs(
|
|
|
|
# robot_description_kinematics_filepath.perform(context)
|
|
|
|
# )
|
|
|
|
# robot_description_kinematics = {"robot_description_kinematics": kinematics_yaml}
|
2024-07-04 11:38:08 +00:00
|
|
|
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
skills_container = ComposableNodeContainer(
|
|
|
|
name="skills",
|
2024-04-18 13:29:36 +00:00
|
|
|
namespace=namespace,
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
package="rclcpp_components",
|
2025-03-10 13:49:07 +03:00
|
|
|
# prefix=['kitty -e gdb -ex run --args'],
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
# prefix=['gdbserver localhost:1234'],
|
|
|
|
executable="component_container_mt",
|
|
|
|
composable_node_descriptions=[
|
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::MoveToJointStateActionServer",
|
|
|
|
name="mtjs_jtc",
|
|
|
|
parameters=[{"use_sim_time": use_sim_time}],
|
|
|
|
),
|
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::CartesianMoveToPose",
|
|
|
|
name="mtp_cart",
|
|
|
|
parameters=[
|
|
|
|
{"use_sim_time": use_sim_time},
|
|
|
|
{"robot_name": namespace},
|
|
|
|
],
|
|
|
|
),
|
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::MoveToPose",
|
|
|
|
name="mtp_jtc",
|
|
|
|
parameters=[
|
|
|
|
{"use_sim_time": use_sim_time},
|
|
|
|
{"robot_name": namespace},
|
2024-11-30 19:32:37 +03:00
|
|
|
{"base_link": base_link_name},
|
|
|
|
{"ee_link": ee_link_name},
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
robot_description,
|
|
|
|
],
|
|
|
|
),
|
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::MoveToPoseJtcCartesian",
|
|
|
|
name="mtp_jtc_cart",
|
|
|
|
parameters=[
|
|
|
|
{"use_sim_time": use_sim_time},
|
|
|
|
{"robot_name": namespace},
|
2024-11-12 22:23:12 +03:00
|
|
|
{"base_link": base_link_name},
|
2024-11-30 19:32:37 +03:00
|
|
|
{"ee_link": ee_link_name},
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
robot_description,
|
|
|
|
],
|
|
|
|
),
|
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::MoveitMtp",
|
|
|
|
name="mtp_moveit",
|
|
|
|
parameters=[
|
|
|
|
robot_description,
|
|
|
|
robot_description_semantic,
|
2025-03-10 13:49:07 +03:00
|
|
|
# robot_description_kinematics,
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
{"use_sim_time": use_sim_time},
|
2025-03-10 13:49:07 +03:00
|
|
|
{"base_link": base_link_name},
|
|
|
|
{"ee_link": ee_link_name},
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
],
|
|
|
|
condition=IfCondition(use_moveit),
|
|
|
|
),
|
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::MoveitMtpCart",
|
|
|
|
name="mtp_moveit_cart",
|
|
|
|
parameters=[
|
|
|
|
robot_description,
|
|
|
|
robot_description_semantic,
|
2025-03-10 13:49:07 +03:00
|
|
|
# robot_description_kinematics,
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
{"use_sim_time": use_sim_time},
|
|
|
|
],
|
|
|
|
condition=IfCondition(use_moveit),
|
|
|
|
),
|
2025-03-12 20:56:31 +03:00
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::MoveitMtpOrientationConstraint",
|
|
|
|
name="mtp_moveit_orientation_constraint",
|
|
|
|
parameters=[
|
|
|
|
robot_description,
|
|
|
|
robot_description_semantic,
|
|
|
|
{"use_sim_time": use_sim_time},
|
|
|
|
{"base_link": base_link_name},
|
|
|
|
{"ee_link": ee_link_name},
|
|
|
|
],
|
|
|
|
condition=IfCondition(use_moveit),
|
|
|
|
),
|
2025-03-17 14:14:14 +03:00
|
|
|
ComposableNode(
|
|
|
|
package="rbs_skill_servers",
|
|
|
|
plugin="rbs_skill_actions::TwistCmdWithCondition",
|
|
|
|
name="twist_cmd_with_condition",
|
|
|
|
parameters=[
|
|
|
|
{"use_sim_time": use_sim_time},
|
|
|
|
{"condition_topic" : "/gz_ros2_vacuum_gripper_plugin/contact_info"},
|
|
|
|
# {"robot_name": namespace},
|
|
|
|
{"base_link": base_link_name},
|
|
|
|
# {"ee_link": ee_link_name},
|
|
|
|
# robot_description,
|
|
|
|
],
|
|
|
|
),
|
|
|
|
|
2024-10-14 14:21:30 +03:00
|
|
|
],
|
2023-11-30 13:47:33 +03:00
|
|
|
)
|
2024-09-12 14:44:58 +03:00
|
|
|
|
2024-10-14 14:21:30 +03:00
|
|
|
nodes_to_start = [
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
skills_container,
|
2023-11-30 13:47:33 +03:00
|
|
|
]
|
2024-04-18 13:29:36 +00:00
|
|
|
return nodes_to_start
|
|
|
|
|
2024-10-14 14:21:30 +03:00
|
|
|
|
2024-04-18 13:29:36 +00:00
|
|
|
def generate_launch_description():
|
|
|
|
declared_arguments = []
|
|
|
|
|
|
|
|
declared_arguments.append(
|
|
|
|
DeclareLaunchArgument(
|
|
|
|
"robot_description",
|
|
|
|
default_value="",
|
|
|
|
description="robot description string",
|
|
|
|
)
|
|
|
|
)
|
|
|
|
declared_arguments.append(
|
|
|
|
DeclareLaunchArgument("robot_description_semantic", default_value="")
|
|
|
|
)
|
|
|
|
declared_arguments.append(
|
|
|
|
DeclareLaunchArgument("robot_description_kinematics", default_value="")
|
|
|
|
)
|
refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-10-30 17:49:03 +03:00
|
|
|
declared_arguments.append(
|
|
|
|
DeclareLaunchArgument("use_sim_time", default_value="false")
|
|
|
|
)
|
|
|
|
declared_arguments.append(
|
|
|
|
DeclareLaunchArgument("use_moveit", default_value="false")
|
|
|
|
)
|
2024-04-18 13:29:36 +00:00
|
|
|
declared_arguments.append(
|
|
|
|
DeclareLaunchArgument("with_gripper_condition", default_value="")
|
|
|
|
)
|
2025-03-10 13:49:07 +03:00
|
|
|
declared_arguments.append(DeclareLaunchArgument("namespace", default_value=""))
|
|
|
|
declared_arguments.append(DeclareLaunchArgument("ee_link_name", default_value=""))
|
|
|
|
declared_arguments.append(DeclareLaunchArgument("base_link_name", default_value=""))
|
2024-10-14 14:21:30 +03:00
|
|
|
return LaunchDescription(
|
|
|
|
declared_arguments + [OpaqueFunction(function=launch_setup)]
|
|
|
|
)
|