2012-03-02 51 views
0

我已经开始为我要构建的机器人设计框架。控制软件是为了以后的便携性以及本文的挑战 - 模仿人类系统的尝试(当然,这已经大大简化了)。因此,框架有一个神经系统,由大脑和脊髓组成,后者通过大脑控制周围神经系统的传感器和“肢体” - 即机器人相机,麦克风,电机控制器等。通过tcp/ip连接引用对象 - 对于机器人

我的挑战是我无法弄清楚如何将命令从大脑 - 通过脊髓 - 发送到由周围神经系统控制器初始化的传感器对象。在我的实施中,脊髓是一个tcp/ip服务器,接受来自传感器的连接并将它们发送到大脑。这样的事情会如何完成?大脑对感觉物体有意识,但它不应该能够将它们实例化 - 这只是对周围神经系统。那么如何调用这些传感器对象的功能,从大脑到脊髓,再到周围神经系统,最后到有问题的传感器?

回答

0

据我了解最好的解决办法是使用:

大脑会保持感官的对象,其事实上(回到编程语言)将是对神经系统中真实感官对象的透明代理。

我不确定脊髓是否适合WCF/.NET Remoting体系结构,但可以认为它是所提及技术将采用的通信通道。

+0

一个可能的解决方案,但我关心的是一个相当庞大的WCF合同中的开销。主要关心的是该系统应该是可插拔的,以便可以根据需要添加和移除传感器 - 我不确定WCF是否放心依赖注入更多合同,因为其他传感器正在动态添加? – 2012-03-02 13:14:08

+1

我不是WCF的专家,但Castle Project中的人做了一个很棒的工作,将WCF与他们的IoC容器集成在一起:http://stw.castleproject.org/Windsor.WCF-Integration-Facility.ashx?HL = wcf – paszczi 2012-03-05 06:32:21

0

在Java中,你可以用RMI做这样的事情。在C#中,请看看CORBA。

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

如果你能够设置某物。就像一个IIS,你可能会用C#编写一个Web服务。参与者将使用Web服务的方法并“远程”调用它们。

+0

你好Benni,很好的输入,定义命令的方式可能是一个好方法。大脑掌握了传感器对象的知识,并可以实例化ICommand对象并将这些对象序列化,并通过spine tcp/ip服务器将它们发送到外围神经系统控制器,负责将它们分发到相关传感器以供执行。 – 2012-03-02 13:20:43

0

我不太清楚,如果我理解你的问题,但是,你不能序列化你的命令并通过你的套接字发送它们吗?

一个更简单的方法是self hosted wcf service,因为它可以让你免于执行通信细节。

+0

你好费尔南多,很好的投入,我相信这是正确的道路。 – 2012-03-02 13:24:52