【问题标题】:Referencing objects through a tcp/ip connection - for robotics通过 tcp/ip 连接引用对象 - 用于机器人
【发布时间】:2012-03-02 12:29:16
【问题描述】:

我已经开始为我要建造的机器人设计一个框架。控制软件 - 出于以后的可移植性以及这里的挑战 - 试图模仿人类系统(当然大大简化)。因此,该框架有一个神经系统,由大脑和脊髓组成,大脑通过脊髓控制周围神经系统的传感器和“四肢”——即机器人摄像头、麦克风、电机控制器等。

我的挑战在于,我不知道如何将命令从大脑(通过脊髓)发送到由周围神经系统控制器初始化的传感器对象。在我的实现中,脊髓是一个 tcp/ip 服务器,接受来自传感器的连接并将它们发送到大脑。这样的事情将如何完成?大脑对感觉对象有意识,但它不应该实例化它们——这仅适用于周围神经系统。那么如何调用这些传感器对象上的功能,从大脑到脊髓,到周围神经系统,最后到有问题的传感器?

【问题讨论】:

    标签: c# tcp robotics


    【解决方案1】:

    据我所知,最好的解决方案是使用:

    大脑将持有感觉对象,实际上(回到编程语言)将是驻留在神经系统中的真实感觉对象的透明代理。

    我不确定脊髓是否适合 WCF/.NET Remoting 架构,但可以将其视为上述技术将采用的通信通道。

    【讨论】:

    • 一个可能的解决方案,虽然我担心相当庞大的 WCF 合同中的开销。主要问题是系统应该是可插拔的,以便可以按需添加和删除传感器 - 我不确定 WCF 是否可以放心地对进一步的合同进行依赖注入,因为额外的传感器是动态添加的?
    • 我不是 WCF 方面的专家,但 Castle Project 中的人在将 WCF 与他们的 IoC 容器集成方面做得非常出色:stw.castleproject.org/…
    【解决方案2】:

    在 Java 中,您可以使用 RMI 执行类似的操作。在 C# 中,请看一下 CORBA。

    用 tcp/ip-server 做这样的事情(我猜你想打开一个套接字,然后通过它解析命令)是一件很痛苦的事情。如果你想这样做,你必须定义发送、接收、解析和调用正确方法的命令。

    如果您能够设置某事。像 IIS 一样,您可能可以用 C# 编写 Web 服务。 Actor 将使用 Web 服务的方法并“远程”调用它们。

    【讨论】:

    • 你好 Benni,输入很好,define commands-way 可能是一个不错的选择。大脑了解传感器对象,可以实例化 ICommand 对象并将其序列化,然后通过 Spine tcp/ip 服务器将它们发送到外围神经系统控制器,负责将它们分发到相关传感器执行。
    【解决方案3】:

    我不太确定我是否理解您的问题,但是,您不能序列化您的命令并通过您的套接字发送它们吗?

    self hosted wcf service 是一种更简单的方法,因为它可以让您免于实施通信细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 2012-02-03
      相关资源
      最近更新 更多