【问题标题】:(pydrake) How do I trace an input port back to its connected output port?(pydrake) 如何将输入端口追溯到其连接的输出端口?
【发布时间】:2022-12-15 02:01:04
【问题描述】:

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

我有一个控制器系统,它接受所需的输入,然后产生实际的输出。 与其试图记住连接到所需输出的输入,我宁愿追溯它。

我怎么做?

【问题讨论】:

    标签: drake


    【解决方案1】:

    通过快速阅读,DiagramBuilder.connection_map()Diagram.connection_map() 都存在。

    以下代码似乎有效:

    def dict_inverse(d):
        return {v: k for k, v in d.items()}
    
    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()
        connection_map = dict_inverse(connection_map)
        output_system, output_index = connection_map[input_locator]
        output_port = output_system.get_output_port(output_index)
        return output_port
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多