Skip to content

Commit 131d5d0

Browse files
committed
Fix/Feature: UR Arm Controller Update Rate (#225)
* Change controller update rate for universal robots to 500 * Use UniversalRobots update_rate parameters if available
1 parent 13e8843 commit 131d5d0

File tree

2 files changed

+33
-4
lines changed
  • clearpath_generator_common/clearpath_generator_common/param
  • clearpath_manipulators_description/config/arm/universal_robots

2 files changed

+33
-4
lines changed

clearpath_generator_common/clearpath_generator_common/param/manipulators.py

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333

3434
from clearpath_config.clearpath_config import ClearpathConfig
3535
from clearpath_config.common.utils.dictionary import merge_dict, replace_dict_items
36+
from clearpath_config.manipulators.types.arms import Franka, UniversalRobots
37+
from clearpath_config.manipulators.types.grippers import FrankaGripper
3638
from clearpath_generator_common.common import MoveItParamFile, Package, ParamFile
3739
from clearpath_generator_common.param.writer import ParamWriter
3840

@@ -103,12 +105,39 @@ def generate_parameters(self, use_sim_time: bool = False) -> None:
103105
parameters={}
104106
)
105107
arm_param_file.read()
108+
109+
# Franka Exception. Add Arm ID.
110+
if arm.MANIPULATOR_MODEL == Franka.MANIPULATOR_MODEL:
111+
updated_parameters = replace_dict_items(
112+
arm_param_file.parameters,
113+
{r'${name}': f'{arm.name}_{arm.arm_id}'}
114+
)
115+
else:
116+
updated_parameters = replace_dict_items(
117+
arm_param_file.parameters,
118+
{r'${name}': arm.name}
119+
)
120+
# UR Arm Exception. Update Rate
121+
if arm.MANIPULATOR_MODEL == UniversalRobots.MANIPULATOR_MODEL:
122+
try:
123+
# Update Rate from Parameter File
124+
update_rate_param_file = ParamFile(
125+
name=f'{arm.ur_type}_update_rate',
126+
package=Package('ur_robot_driver'),
127+
path='config',
128+
parameters={}
129+
)
130+
update_rate_param_file.read()
131+
updated_parameters.update(update_rate_param_file.parameters)
132+
except Exception as e:
133+
print(f'Unable to get UniversalRobots {arm.ur_type}_'
134+
f'update_rate.yaml parameter file: {e.args[0]}')
106135
updated_parameters = replace_dict_items(
107-
arm_param_file.parameters,
108-
{r'${name}': arm.name}
136+
updated_parameters,
137+
{r'${controller_name}': arm.name}
109138
)
110139
self.param_file.parameters = merge_dict(
111-
self.param_file.parameters, updated_parameters)
140+
updated_parameters, self.param_file.parameters)
112141
# Grippers
113142
for arm in self.clearpath_config.manipulators.get_all_arms():
114143
if not arm.gripper:

clearpath_manipulators_description/config/arm/universal_robots/control.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
controller_manager:
22
ros__parameters:
3-
update_rate: 1000 # Hz
3+
update_rate: 500 # Hz
44

55
joint_state_broadcaster:
66
type: joint_state_broadcaster/JointStateBroadcaster

0 commit comments

Comments
 (0)