diff --git a/.github/workflows/industrial_ci.yml b/.github/workflows/industrial_ci.yml index cc67d02..07f9f00 100644 --- a/.github/workflows/industrial_ci.yml +++ b/.github/workflows/industrial_ci.yml @@ -35,7 +35,7 @@ jobs: env: - ROS_REPO: ros BUILDER: colcon - ROS_DISTRO: humble + ROS_DISTRO: jazzy env: CCACHE_DIR: /github/home/.ccache # Directory for ccache (and how we enable ccache in industrial_ci) EVENT_NAME: ${{ github.event_name }} @@ -45,7 +45,7 @@ jobs: PR_NUMBER: ${{ github.event.number }} ANALYZER_TOKEN: ${{ secrets.ANALYZER_TOKEN }} DEBUG_BASH: true - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 with: diff --git a/README.md b/README.md index e56dd4d..5d00b3a 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,10 @@ This repository contains support packages that can be used with real KUKA robots as well as with simulations. -Github CI ------------- -[![Build Status](https://github.com/kroshu/kuka_robot_descriptions/workflows/CI/badge.svg?branch=main)](https://github.com/kroshu/kuka_robot_descriptions/actions) +ROS2 Distro | Branch | Github CI +------------ | -------------- | -------------- +**Jazzy** | [`master`](https://github.com/kroshu/kuka_robot_descriptions/tree/master) | [![Build Status](https://github.com/kroshu/kuka_robot_descriptions/actions/workflows/industrial_ci.yml/badge.svg?branch=master)](https://github.com/kroshu/kuka_robot_descriptions/actions) +**Humble** | [`humble`](https://github.com/kroshu/kuka_robot_descriptions/tree/humble) | [![Build Status](https://github.com/kroshu/kuka_robot_descriptions/actions/workflows/industrial_ci.yml/badge.svg?branch=humble)](https://github.com/kroshu/kuka_robot_descriptions/actions) ## What is included? @@ -67,8 +68,7 @@ Collision meshes are provided for the robots to speed up collision avoidance and ### Joint limit configurations -The support packages contain a joint limits file for every supported robot model, necessary time parametrization of MoveIt-planned paths. They contain the velocity limits also available in the URDF model and additional acceleration limits. Acceleration limits can never be global, these values are calculated from the worst-case ramp-up time to reach maximum velocity. The easiest way to modify the allowed velocities and accelerations is to change the velocity and acceleration scaling factors also available in the same configuration files. (The scaling factor can never be smaller than 1.) - +The support packages contain a joint limits file for every supported robot model, necessary time parametrization of MoveIt-planned paths. They contain the velocity limits also available in the URDF model and additional acceleration limits. Acceleration limits can never be global, these values are calculated from the worst-case ramp-up time to reach maximum velocity. The easiest way to modify the allowed velocities and accelerations is to change the velocity and acceleration scaling factors also available in the same configuration files. (The scaling factor can never be greater than 1.) ### Extending the models diff --git a/kuka_agilus_support/config/kr10_r1100_2_joint_limits.yaml b/kuka_agilus_support/config/kr10_r1100_2_joint_limits.yaml index 0b2ab1d..3493474 100644 --- a/kuka_agilus_support/config/kr10_r1100_2_joint_limits.yaml +++ b/kuka_agilus_support/config/kr10_r1100_2_joint_limits.yaml @@ -9,30 +9,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 5.23599 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 10.06528 has_jerk: false joint_2: has_velocity_limits: true max_velocity: 3.926991 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.72508 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 5.75959 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 2.68644 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 6.28319 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 56.49428 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 6.28319 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 49.23361 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 7.55728 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 125.45374 has_jerk: false diff --git a/kuka_agilus_support/config/kr6_r700_sixx_joint_limits.yaml b/kuka_agilus_support/config/kr6_r700_sixx_joint_limits.yaml index 64f30ee..2b4228c 100644 --- a/kuka_agilus_support/config/kr6_r700_sixx_joint_limits.yaml +++ b/kuka_agilus_support/config/kr6_r700_sixx_joint_limits.yaml @@ -9,30 +9,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 6.283185 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 41.672910 has_jerk: false joint_2: has_velocity_limits: true max_velocity: 5.23599 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 21.620884 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 6.283185 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 46.224233 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 6.64970 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 145.820923 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 6.77188 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 152.326213 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 10.73377 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 292.626544 has_jerk: false diff --git a/kuka_agilus_support/config/kr6_r900_sixx_joint_limits.yaml b/kuka_agilus_support/config/kr6_r900_sixx_joint_limits.yaml index 64f30ee..1850669 100644 --- a/kuka_agilus_support/config/kr6_r900_sixx_joint_limits.yaml +++ b/kuka_agilus_support/config/kr6_r900_sixx_joint_limits.yaml @@ -9,30 +9,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 6.283185 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 21.666156 has_jerk: false joint_2: has_velocity_limits: true max_velocity: 5.23599 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 6.889457 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 6.283185 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 31.415926 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 6.64970 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 133.055688 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 6.77188 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 135.557707 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 10.73377 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 268.382564 has_jerk: false diff --git a/kuka_agilus_support/test/test_kr_agilus.py b/kuka_agilus_support/test/test_kr_agilus.py index ad2b5ac..5bbb746 100644 --- a/kuka_agilus_support/test/test_kr_agilus.py +++ b/kuka_agilus_support/test/test_kr_agilus.py @@ -56,7 +56,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_cybertech_support/config/kr16_r2010_2_joint_limits.yaml b/kuka_cybertech_support/config/kr16_r2010_2_joint_limits.yaml index 525daa4..b5b3ddf 100644 --- a/kuka_cybertech_support/config/kr16_r2010_2_joint_limits.yaml +++ b/kuka_cybertech_support/config/kr16_r2010_2_joint_limits.yaml @@ -12,30 +12,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 3.490656 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 7.505672 has_jerk: false joint_2: has_velocity_limits: true - max_velocity: 3.05432 - has_acceleration_limits: false + max_velocity: 2.994851 + has_acceleration_limits: true + max_acceleration: 1.350277 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 3.31613 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 13.412379 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 7.50492 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 99.514484 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 7.50492 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 95.957307 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 10.99557 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 120.049850 has_jerk: false diff --git a/kuka_cybertech_support/test/test_kr_cybertech.py b/kuka_cybertech_support/test/test_kr_cybertech.py index 2ad7cc8..93784fd 100644 --- a/kuka_cybertech_support/test/test_kr_cybertech.py +++ b/kuka_cybertech_support/test/test_kr_cybertech.py @@ -56,7 +56,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_fortec_support/config/kr560_r3100_2_joint_limits.yaml b/kuka_fortec_support/config/kr560_r3100_2_joint_limits.yaml index dd42cc3..7a05d88 100644 --- a/kuka_fortec_support/config/kr560_r3100_2_joint_limits.yaml +++ b/kuka_fortec_support/config/kr560_r3100_2_joint_limits.yaml @@ -12,30 +12,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 1.5708 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.1500 has_jerk: false joint_2: has_velocity_limits: true max_velocity: 1.3962 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 0.9308 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 1.3090 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.5038 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 1.5708 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.5816 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 1.5708 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.6486 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 2.2689 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 2.1579 has_jerk: false diff --git a/kuka_fortec_support/test/test_kr_fortec.py b/kuka_fortec_support/test/test_kr_fortec.py index 2f48798..4815110 100644 --- a/kuka_fortec_support/test/test_kr_fortec.py +++ b/kuka_fortec_support/test/test_kr_fortec.py @@ -60,7 +60,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_iontec_support/config/kr70_r2100_joint_limits.yaml b/kuka_iontec_support/config/kr70_r2100_joint_limits.yaml index 3b4d247..b290680 100644 --- a/kuka_iontec_support/config/kr70_r2100_joint_limits.yaml +++ b/kuka_iontec_support/config/kr70_r2100_joint_limits.yaml @@ -12,30 +12,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 3.1416 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 6.1985 has_jerk: false joint_2: has_velocity_limits: true max_velocity: 2.7576 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.2580 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 2.7925 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.4709 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 4.01426 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 17.6323 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 4.01426 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 14.9965 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 5.58505 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 16.8623 has_jerk: false diff --git a/kuka_iontec_support/test/test_kr_iontec.py b/kuka_iontec_support/test/test_kr_iontec.py index 9e5bbe0..ef17bf8 100644 --- a/kuka_iontec_support/test/test_kr_iontec.py +++ b/kuka_iontec_support/test/test_kr_iontec.py @@ -60,7 +60,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_lbr_iisy_moveit_config/config/chomp_planning.yaml b/kuka_lbr_iisy_moveit_config/config/chomp_planning.yaml index 2d9fdb8..9dba26e 100644 --- a/kuka_lbr_iisy_moveit_config/config/chomp_planning.yaml +++ b/kuka_lbr_iisy_moveit_config/config/chomp_planning.yaml @@ -1,10 +1,14 @@ -planning_plugin: chomp_interface/CHOMPPlanner -request_adapters: >- - default_planner_request_adapters/AddTimeOptimalParameterization - default_planner_request_adapters/FixWorkspaceBounds - default_planner_request_adapters/FixStartStateBounds - default_planner_request_adapters/FixStartStateCollision - default_planner_request_adapters/FixStartStatePathConstraints +planning_plugins: + - chomp_interface/CHOMPPlanner +request_adapters: + - default_planning_request_adapters/ResolveConstraintFrames + - default_planning_request_adapters/ValidateWorkspaceBounds + - default_planning_request_adapters/CheckStartStateBounds + - default_planning_request_adapters/CheckStartStateCollision +response_adapters: + - default_planning_response_adapters/AddTimeOptimalParameterization + - default_planning_response_adapters/ValidateSolution + - default_planning_response_adapters/DisplayMotionPath start_state_max_bounds_error: 0.1 planning_time_limit: 10.0 max_iterations: 200 diff --git a/kuka_lbr_iisy_moveit_config/config/ompl_planning.yaml b/kuka_lbr_iisy_moveit_config/config/ompl_planning.yaml index 85aa81b..db6bbea 100644 --- a/kuka_lbr_iisy_moveit_config/config/ompl_planning.yaml +++ b/kuka_lbr_iisy_moveit_config/config/ompl_planning.yaml @@ -1,13 +1,16 @@ -planning_plugin: ompl_interface/OMPLPlanner -# To optionally use Ruckig for jerk-limited smoothing, add this line to the request adapters below -# default_planner_request_adapters/AddRuckigTrajectorySmoothing -request_adapters: >- - default_planner_request_adapters/AddTimeOptimalParameterization - default_planner_request_adapters/ResolveConstraintFrames - default_planner_request_adapters/FixWorkspaceBounds - default_planner_request_adapters/FixStartStateBounds - default_planner_request_adapters/FixStartStateCollision - default_planner_request_adapters/FixStartStatePathConstraints +planning_plugins: + - ompl_interface/OMPLPlanner +request_adapters: + - default_planning_request_adapters/ResolveConstraintFrames + - default_planning_request_adapters/ValidateWorkspaceBounds + - default_planning_request_adapters/CheckStartStateBounds + - default_planning_request_adapters/CheckStartStateCollision +# To optionally use Ruckig for jerk-limited smoothing, add this line to the response adapters below +# default_planning_response_adapters/AddRuckigTrajectorySmoothing +response_adapters: + - default_planning_response_adapters/AddTimeOptimalParameterization + - default_planning_response_adapters/ValidateSolution + - default_planning_response_adapters/DisplayMotionPath start_state_max_bounds_error: 0.1 planner_configs: APSConfigDefault: @@ -16,7 +19,16 @@ planner_configs: hybridize: 1 # Compute hybrid solution trajectories max_hybrid_paths: 36 # Number of hybrid paths generated per iteration num_planners: 8 # The number of default planners to use for planning - planners: "RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect" # A comma-separated list of planner types (e.g., "PRM,EST,RRTConnect"Optionally, planner parameters can be passed to change the default:"PRM[max_nearest_neighbors=5],EST[goal_bias=.5],RRT[range=10. goal_bias=.1]" + # Optionally, planner parameters can be passed to change the default: "PRM[max_nearest_neighbors=5]", "EST[goal_bias=.5]", "RRT[range=10. goal_bias=.1]" + planners: + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect SBLkConfigDefault: type: geometric::SBL range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() diff --git a/kuka_lbr_iisy_moveit_config/config/stomp_planning.yaml b/kuka_lbr_iisy_moveit_config/config/stomp_planning.yaml index a6fe92f..7d83d32 100644 --- a/kuka_lbr_iisy_moveit_config/config/stomp_planning.yaml +++ b/kuka_lbr_iisy_moveit_config/config/stomp_planning.yaml @@ -1,10 +1,14 @@ -planning_plugin: stomp_moveit/StompPlanner -request_adapters: >- - default_planner_request_adapters/AddTimeOptimalParameterization - default_planner_request_adapters/FixWorkspaceBounds - default_planner_request_adapters/FixStartStateBounds - default_planner_request_adapters/FixStartStateCollision - default_planner_request_adapters/FixStartStatePathConstraints +planning_plugins: + - stomp_moveit/StompPlanner +request_adapters: + - default_planning_request_adapters/ResolveConstraintFrames + - default_planning_request_adapters/ValidateWorkspaceBounds + - default_planning_request_adapters/CheckStartStateBounds + - default_planning_request_adapters/CheckStartStateCollision +response_adapters: + - default_planning_response_adapters/AddTimeOptimalParameterization + - default_planning_response_adapters/ValidateSolution + - default_planning_response_adapters/DisplayMotionPath stomp_moveit: num_timesteps: 60 diff --git a/kuka_lbr_iisy_support/config/lbr_iisy3_r760_joint_limits.yaml b/kuka_lbr_iisy_support/config/lbr_iisy3_r760_joint_limits.yaml index 3c5815c..4033d78 100644 --- a/kuka_lbr_iisy_support/config/lbr_iisy3_r760_joint_limits.yaml +++ b/kuka_lbr_iisy_support/config/lbr_iisy3_r760_joint_limits.yaml @@ -38,7 +38,7 @@ joint_limits: has_jerk: false joint_6: has_velocity_limits: true - max_velocity: 5.235983 + max_velocity: 6.981317 has_acceleration_limits: true max_acceleration: 112.291689 has_jerk: false diff --git a/kuka_lbr_iisy_support/test/test_lbr_iisy.py b/kuka_lbr_iisy_support/test/test_lbr_iisy.py index 7a71fdd..21e6237 100644 --- a/kuka_lbr_iisy_support/test/test_lbr_iisy.py +++ b/kuka_lbr_iisy_support/test/test_lbr_iisy.py @@ -56,7 +56,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_lbr_iiwa_moveit_config/config/chomp_planning.yaml b/kuka_lbr_iiwa_moveit_config/config/chomp_planning.yaml index 2d9fdb8..9dba26e 100644 --- a/kuka_lbr_iiwa_moveit_config/config/chomp_planning.yaml +++ b/kuka_lbr_iiwa_moveit_config/config/chomp_planning.yaml @@ -1,10 +1,14 @@ -planning_plugin: chomp_interface/CHOMPPlanner -request_adapters: >- - default_planner_request_adapters/AddTimeOptimalParameterization - default_planner_request_adapters/FixWorkspaceBounds - default_planner_request_adapters/FixStartStateBounds - default_planner_request_adapters/FixStartStateCollision - default_planner_request_adapters/FixStartStatePathConstraints +planning_plugins: + - chomp_interface/CHOMPPlanner +request_adapters: + - default_planning_request_adapters/ResolveConstraintFrames + - default_planning_request_adapters/ValidateWorkspaceBounds + - default_planning_request_adapters/CheckStartStateBounds + - default_planning_request_adapters/CheckStartStateCollision +response_adapters: + - default_planning_response_adapters/AddTimeOptimalParameterization + - default_planning_response_adapters/ValidateSolution + - default_planning_response_adapters/DisplayMotionPath start_state_max_bounds_error: 0.1 planning_time_limit: 10.0 max_iterations: 200 diff --git a/kuka_lbr_iiwa_moveit_config/config/ompl_planning.yaml b/kuka_lbr_iiwa_moveit_config/config/ompl_planning.yaml index 85aa81b..db6bbea 100644 --- a/kuka_lbr_iiwa_moveit_config/config/ompl_planning.yaml +++ b/kuka_lbr_iiwa_moveit_config/config/ompl_planning.yaml @@ -1,13 +1,16 @@ -planning_plugin: ompl_interface/OMPLPlanner -# To optionally use Ruckig for jerk-limited smoothing, add this line to the request adapters below -# default_planner_request_adapters/AddRuckigTrajectorySmoothing -request_adapters: >- - default_planner_request_adapters/AddTimeOptimalParameterization - default_planner_request_adapters/ResolveConstraintFrames - default_planner_request_adapters/FixWorkspaceBounds - default_planner_request_adapters/FixStartStateBounds - default_planner_request_adapters/FixStartStateCollision - default_planner_request_adapters/FixStartStatePathConstraints +planning_plugins: + - ompl_interface/OMPLPlanner +request_adapters: + - default_planning_request_adapters/ResolveConstraintFrames + - default_planning_request_adapters/ValidateWorkspaceBounds + - default_planning_request_adapters/CheckStartStateBounds + - default_planning_request_adapters/CheckStartStateCollision +# To optionally use Ruckig for jerk-limited smoothing, add this line to the response adapters below +# default_planning_response_adapters/AddRuckigTrajectorySmoothing +response_adapters: + - default_planning_response_adapters/AddTimeOptimalParameterization + - default_planning_response_adapters/ValidateSolution + - default_planning_response_adapters/DisplayMotionPath start_state_max_bounds_error: 0.1 planner_configs: APSConfigDefault: @@ -16,7 +19,16 @@ planner_configs: hybridize: 1 # Compute hybrid solution trajectories max_hybrid_paths: 36 # Number of hybrid paths generated per iteration num_planners: 8 # The number of default planners to use for planning - planners: "RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect" # A comma-separated list of planner types (e.g., "PRM,EST,RRTConnect"Optionally, planner parameters can be passed to change the default:"PRM[max_nearest_neighbors=5],EST[goal_bias=.5],RRT[range=10. goal_bias=.1]" + # Optionally, planner parameters can be passed to change the default: "PRM[max_nearest_neighbors=5]", "EST[goal_bias=.5]", "RRT[range=10. goal_bias=.1]" + planners: + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect + - RRTConnect SBLkConfigDefault: type: geometric::SBL range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() diff --git a/kuka_lbr_iiwa_moveit_config/config/stomp_planning.yaml b/kuka_lbr_iiwa_moveit_config/config/stomp_planning.yaml index a6fe92f..7d83d32 100644 --- a/kuka_lbr_iiwa_moveit_config/config/stomp_planning.yaml +++ b/kuka_lbr_iiwa_moveit_config/config/stomp_planning.yaml @@ -1,10 +1,14 @@ -planning_plugin: stomp_moveit/StompPlanner -request_adapters: >- - default_planner_request_adapters/AddTimeOptimalParameterization - default_planner_request_adapters/FixWorkspaceBounds - default_planner_request_adapters/FixStartStateBounds - default_planner_request_adapters/FixStartStateCollision - default_planner_request_adapters/FixStartStatePathConstraints +planning_plugins: + - stomp_moveit/StompPlanner +request_adapters: + - default_planning_request_adapters/ResolveConstraintFrames + - default_planning_request_adapters/ValidateWorkspaceBounds + - default_planning_request_adapters/CheckStartStateBounds + - default_planning_request_adapters/CheckStartStateCollision +response_adapters: + - default_planning_response_adapters/AddTimeOptimalParameterization + - default_planning_response_adapters/ValidateSolution + - default_planning_response_adapters/DisplayMotionPath stomp_moveit: num_timesteps: 60 diff --git a/kuka_lbr_iiwa_support/test/test_lbr_iiwa.py b/kuka_lbr_iiwa_support/test/test_lbr_iiwa.py index 92d9176..26b9d10 100644 --- a/kuka_lbr_iiwa_support/test/test_lbr_iiwa.py +++ b/kuka_lbr_iiwa_support/test/test_lbr_iiwa.py @@ -56,7 +56,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_mock_hardware_interface/include/kuka_mock_hardware_interface/hardware_interface.hpp b/kuka_mock_hardware_interface/include/kuka_mock_hardware_interface/hardware_interface.hpp index 64c7898..8f70b76 100644 --- a/kuka_mock_hardware_interface/include/kuka_mock_hardware_interface/hardware_interface.hpp +++ b/kuka_mock_hardware_interface/include/kuka_mock_hardware_interface/hardware_interface.hpp @@ -37,8 +37,7 @@ static constexpr size_t POSITION_INTERFACE_INDEX = 0; static constexpr size_t VELOCITY_INTERFACE_INDEX = 1; static constexpr size_t ACCELERATION_INTERFACE_INDEX = 2; -class HARDWARE_INTERFACE_PUBLIC KukaMockHardwareInterface -: public hardware_interface::SystemInterface +class KukaMockHardwareInterface : public hardware_interface::SystemInterface { public: CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override; diff --git a/kuka_quantec_support/config/kr210_r2700_2_joint_limits.yaml b/kuka_quantec_support/config/kr210_r2700_2_joint_limits.yaml index 0436d70..c9a2923 100644 --- a/kuka_quantec_support/config/kr210_r2700_2_joint_limits.yaml +++ b/kuka_quantec_support/config/kr210_r2700_2_joint_limits.yaml @@ -11,31 +11,37 @@ default_acceleration_scaling_factor: 1.0 joint_limits: joint_1: has_velocity_limits: true - max_velocity: 2.0944 - has_acceleration_limits: false + max_velocity: 2.0384 + has_acceleration_limits: true + max_acceleration: 1.98271 has_jerk: false joint_2: has_velocity_limits: true - max_velocity: 2.0071 - has_acceleration_limits: false + max_velocity: 1.9451 + has_acceleration_limits: true + max_acceleration: 1.26288 has_jerk: false joint_3: has_velocity_limits: true - max_velocity: 1.9548 - has_acceleration_limits: false + max_velocity: 1.95476 + has_acceleration_limits: true + max_acceleration: 2.56508 has_jerk: false joint_4: has_velocity_limits: true - max_velocity: 3.1241 - has_acceleration_limits: false + max_velocity: 3.12413 + has_acceleration_limits: true + max_acceleration: 7.03857 has_jerk: false joint_5: has_velocity_limits: true - max_velocity: 3.0000 - has_acceleration_limits: false + max_velocity: 3.00196 + has_acceleration_limits: true + max_acceleration: 1.76397 has_jerk: false joint_6: has_velocity_limits: true - max_velocity: 3.8397 - has_acceleration_limits: false + max_velocity: 3.83972 + has_acceleration_limits: true + max_acceleration: 1.87268 has_jerk: false diff --git a/kuka_quantec_support/config/kr210_r3100_2_joint_limits.yaml b/kuka_quantec_support/config/kr210_r3100_2_joint_limits.yaml index c7fd18f..f55bbd9 100644 --- a/kuka_quantec_support/config/kr210_r3100_2_joint_limits.yaml +++ b/kuka_quantec_support/config/kr210_r3100_2_joint_limits.yaml @@ -12,30 +12,36 @@ joint_limits: joint_1: has_velocity_limits: true max_velocity: 1.8326 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.4647 has_jerk: false joint_2: has_velocity_limits: true max_velocity: 1.6406 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 0.5173 has_jerk: false joint_3: has_velocity_limits: true max_velocity: 1.7453 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 1.3139 has_jerk: false joint_4: has_velocity_limits: true max_velocity: 2.3726 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 6.9234 has_jerk: false joint_5: has_velocity_limits: true max_velocity: 2.2460 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 7.0213 has_jerk: false joint_6: has_velocity_limits: true max_velocity: 3.5933 - has_acceleration_limits: false + has_acceleration_limits: true + max_acceleration: 7.9141 has_jerk: false diff --git a/kuka_quantec_support/test/test_kr_quantec.py b/kuka_quantec_support/test/test_kr_quantec.py index e00a6bb..aab5416 100644 --- a/kuka_quantec_support/test/test_kr_quantec.py +++ b/kuka_quantec_support/test/test_kr_quantec.py @@ -56,7 +56,5 @@ def generate_test_description(test_file): class TestModels(unittest.TestCase): def test_read_stdout(self, proc_output): - # Check for frames defined by ROS-Industrial - proc_output.assertWaitFor("got segment base", timeout=5) - proc_output.assertWaitFor("got segment flange", timeout=5) - proc_output.assertWaitFor("got segment tool0", timeout=5) + # Check for robot initialization + proc_output.assertWaitFor("Robot initialized", timeout=5) diff --git a/kuka_quantec_support/urdf/kr210_r2700_2_macro.xacro b/kuka_quantec_support/urdf/kr210_r2700_2_macro.xacro index 5b8a7cc..5223f85 100644 --- a/kuka_quantec_support/urdf/kr210_r2700_2_macro.xacro +++ b/kuka_quantec_support/urdf/kr210_r2700_2_macro.xacro @@ -112,14 +112,14 @@ - + - + diff --git a/kuka_resources/launch/fake_hardware_planning_template.launch.py b/kuka_resources/launch/fake_hardware_planning_template.launch.py index 461486a..05e159a 100644 --- a/kuka_resources/launch/fake_hardware_planning_template.launch.py +++ b/kuka_resources/launch/fake_hardware_planning_template.launch.py @@ -65,12 +65,21 @@ def launch_setup(context, *args, **kwargs): parameters=[robot_description, controller_config], ) + robot_description_kinematics = { + "robot_description_kinematics": { + "manipulator": {"kinematics_solver": "kdl_kinematics_plugin/KDLKinematicsPlugin"} + } + } + rviz = Node( package="rviz2", executable="rviz2", name="rviz2", output="log", arguments=["-d", rviz_config_file, "--ros-args", "--log-level", "error"], + parameters=[ + robot_description_kinematics, + ], ) robot_state_publisher = Node( @@ -82,17 +91,14 @@ def launch_setup(context, *args, **kwargs): # Spawn controllers def controller_spawner(controller_with_config): - arg_list = [ - controller_with_config[0], - "-c", - controller_manager_node, - "-p", - controller_with_config[1], - ] + arg_list = [controller_with_config[0], "-c", controller_manager_node] + if controller_with_config[1] is not None: + arg_list.append("-p") + arg_list.append(controller_with_config[1]) return Node(package="controller_manager", executable="spawner", arguments=arg_list) controller_names_and_config = [ - ("joint_state_broadcaster", []), + ("joint_state_broadcaster", None), ("joint_trajectory_controller", controller_config), ]