有大量资源描述了如何使用启动文件在节点启动时设置参数。(How to launch a node with a parameter in ROS2?)
但是,这不会触发动态重新配置回调:ms = MeanShift()
X1 = StandardScaler().fit_transform(X)
ms.fit(X1)
labels = ms.labels_
unique = numpy.unique(labels)
plt.figure()
colors = [plt.cm.Spectral(each)
for each in numpy.linspace(0, 1, len(unique))]
for k, col in zip(unique, colors):
if k == -1:
col = [0, 0, 0, 1]
class_member_mask = (labels == k)
xy = X1[class_member_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col), markeredgecolor='k', markersize=14)
xy = X1[class_member_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col), markeredgecolor='k', markersize=6)
plt.title("Clusters")
plt.savefig(plotfn)
plt.close()
。有什么方法可以在触发该回调的节点上的启动文件中指定操作?
等效于运行set_on_parameters_set_callback
命令(这将触发回调)
答案 0 :(得分:1)
您需要调用ROS 2服务/<node name>/set_parameters
来触发此回调。例如。 /talker/set_parameters
中{@ 1}包中的发话者节点。
创建一个包含以下内容的shell脚本
demo_nodes_cpp
...并将其添加到您的启动文件中。