使用启动文件动态设置ROS2参数?

时间:2019-09-01 23:17:13

标签: python ros2

有大量资源描述了如何使用启动文件在节点启动时设置参数。(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命令(这将触发回调)

1 个答案:

答案 0 :(得分:1)

您需要调用ROS 2服务/<node name>/set_parameters来触发此回调。例如。 /talker/set_parameters中{@ 1}包中的发话者节点。

创建一个包含以下内容的shell脚本

demo_nodes_cpp

...并将其添加到您的启动文件中。