(pydrake)我如何跟踪输入端口回到其连接的输出端口?



我正在实现一个小型监控系统,用于计算控制器之间(实际的,期望的)的误差(并记录它们以进行快速和简单的分析)。在我的一些代码中,我将Systems添加到DiagramBuilder中,并使用Connect()连接所有内容。

我有一个控制器系统,它接受期望的输入,然后产生实际的输出。与其尝试记住连接到所需输出的输入,不如直接跟踪它。

我该怎么做?

从快速阅读来看,DiagramBuilder.connection_map()Diagram.connection_map()都有。

以下代码似乎可以在v1.11.0中工作:

def trace_to_output(diagram_or_builder, input_port):
system = input_port.get_system()
input_locator = (system, input_port.get_index())
connection_map = diagram_or_builder.connection_map()
output_system, output_index = connection_map[input_locator]
output_port = output_system.get_output_port(output_index)
return output_port
编辑:我把dict_inverse()写错了。固定的。

最新更新