CN1392979A - 通信设备和通信方法、网络系统、以及机器人设备 - Google Patents

通信设备和通信方法、网络系统、以及机器人设备 Download PDF

Info

Publication number
CN1392979A
CN1392979A CN01803072A CN01803072A CN1392979A CN 1392979 A CN1392979 A CN 1392979A CN 01803072 A CN01803072 A CN 01803072A CN 01803072 A CN01803072 A CN 01803072A CN 1392979 A CN1392979 A CN 1392979A
Authority
CN
China
Prior art keywords
communication
information processing
processing process
data
send
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN01803072A
Other languages
English (en)
Other versions
CN100380324C (zh
Inventor
佐部浩太郎
河本献太
加布里尔·科斯塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN1392979A publication Critical patent/CN1392979A/zh
Application granted granted Critical
Publication of CN100380324C publication Critical patent/CN100380324C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H2200/00Computerized interactive toys, e.g. dolls

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Manipulator (AREA)
  • Small-Scale Networks (AREA)

Abstract

将用于发送和接收机器人设备(1)的对象的数据的网关对象(48)分配给机器人设备(1)的无线LAN PC卡(41),将用于发送和接收个人计算机(32)的对象的数据的网关对象(52)分配给远程系统(30)的网络适配器(31)。当无线LAN PC卡(41)和网络适配器(31)通过无线或有线连接相互连接时,在无线LAN PC卡(41)的网关对象(48)和网络适配器(31)的网关对象(52)之间执行内部对象通信,从而执行机器人设备(1)的对象和个人计算机(32)的对象之间的内部对象通信。由此,可以方便地准备程序。

Description

通信设备和通信方法、网络系统、以及机器人设备
                        技术领域
本发明涉及用于在多个电子装置之间进行通信的通信设备和通信方法,用于进行信息处理的信息处理系统,用于准备程序的程序准备方法,网络系统,以及机器人设备。
                        背景技术
近来,已经提出了许多象动物一样行动的宠物类型的机器人设备。例如,能够按照实现多个进程之间的内部进程通信的程序等的规定来行动的机器人设备。
但是,需要花费大量的时间和精力来开发运行在内置装置中的目标板上的软件,用于实现机器人设备中复杂的实时处理。这是由以下原因造成的。
(1)用于监视目标板上程序运行状态的手段非常少。
(2)由于通常在目标板上并不配置显示内部状态的设备,所以使用按照特定方法与远机器进行通信的技术,以便发送内部信息,并使用远程机器上的控制台来确认信息。在这种情况下,必须将通信代码嵌入到目标板上的程序中。
(3)如果通信技术不通用,则必须为每一个用户想调试的程序准备通信代码。该技术最简单的方法就是将打印语句插入源代码中,并使用串行通信在终端上予于确认。该技术由此称作打印语句调试技术。在许多系统中仍旧使用该原始的技术。
(4)对于许多实时操作系统(OS),由于在内核空间上执行用户的实时任务,所以系统将被未经授权的处理任务破坏。甚至当用户试图调查遭到破坏的原因时,由于系统已经破坏而不能找到其原因。如果已经执行打印语句调试,重汇编可能改变代码的排列,并由此改变程序漏洞(bug)的状态,使得更加难以找到原因。
(5)由于用户的实时任务链接到内核空间上,所以改变用户程序需要重新链接并重新运行整个系统。例如,即使仅插入一行打印语句,也需要重新链接并再次全部运行。效率很低。
                    发明内容
由此,鉴于现有技术的上述状态,本发明的目的是提供一种能够方便地在软件(进程)组件之间的改变的通信设备和通信方法、信息处理系统、程序准备方法、网络系统以及机器人设备。
根据本发明的通信设备包括:第一通信部件,具有用于向第一电子装置的信息处理进程发送和从其接收数据的信息处理进程;以及第二通信部件,具有用于向第二电子装置的信息处理进程发送和从其接收数据的信息处理进程。当第一通信部件和第二通信部件通过无线或有线连接彼此互联时,在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。
在具有该结构的通信设备中,由于第一通信部件的信息处理对象和第二通信部件的对象之间的内部进程通信的运行与同一系统上的内部进程通信相似,所以将第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的通信处理为同一系统上的内部进程通信。
根据本发明的通信方法包括步骤:通过无线或有线连接将具有用于向第一电子装置的信息处理进程发送和从其接收数据的信息处理进程的第一通信部件、和具有用于向第二电子装置的信息处理进程发送和从其接收数据的信息处理进程的第二通信部件相连接;以及在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。
在该通信方法中,由于第一通信部件的信息处理对象和第二通信部件的对象之间的内部进程通信的运行与同一系统上的内部进程通信相似,所以将第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的通信处理为同一系统上的内部进程通信。
根据本发明的信息处理系统包括:电子装置,由信息处理进程控制;信息处理设备,其中采用用来控制电子装置的信息处理进程,并处理该信息处理进程;以及通信部件,用于在电子装置和信息处理设备之间进行无线或有线通信。该信息处理设备使用通信部件在电子装置被操作时电子装置的信息处理进程和其采用的信息处理进程之间进行通信,然后使用从电子装置的信息处理进程发送的数据,并处理其所采用的信息处理进程。
在该信息处理系统中,信息处理设备处理考虑了真实环境中的电子装置的信息处理进程。
根据本发明的程序准备方法包括:程序准备步骤,在信息处理设备中,使用通信部件在当由信息处理进程控制的电子装置被操作时,电子装置的该信息处理进程和信息处理设备的信息处理进程之间进行无线或有线通信,并使用从电子装置的信息处理进程所发送的数据,准备用于电子装置的信息处理进程;以及程序嵌入步骤,将在程序准备步骤中准备的信息处理进程嵌入电子装置中。
在该程序准备方法中,信息处理设备考虑真实环境中的电子装置而准备信息处理进程,并将考虑了该环境而准备的信息处理进程嵌入到根据该信息处理进程操作的电子装置中。
根据本发明的网络系统,其中在具有由内部对象通信构成的运行控制程序的机器人设备和由内部对象通信构成的计算机系统之间通过有线或无线通信进行数据通信,该系统包括:网关对象,用于在机器人设备和计算机系统之间执行内部对象通信和网络通信之间的动态协议转换。
根据本发明的通信方法,其中在由具有内部对象通信构成的机器人设备和由具有内部对象通信构成的计算机系统之间通过有线或无线通信进行数据通信,该方法包括:在机器人设备和计算机系统之间的内部对象通信和网络通信之间进行协议转换。
根据本发明的机器人设备,具有由内部对象通信构成的运行控制程序,并与由内部对象通信构成的计算机系统通过有线或无线通信进行数据通信,该机器人设备包括:网关对象,用于与计算机系统执行内部对象通信和网络通信之间的动态协议转换。
                        附图说明
图1是表示根据本发明实施例的机器人设备的结构透视图;
图2是表示机器人设备结构的方框图;
图3是表示四条腿类型的软件结构的图;
图4是表示带轮子类型的软件结构的图;
图5是表示四条腿类型的姿势变化的状态转移图;
图6是表示输入和状态之间的关系的图;
图7是表示设计机器人的处理过程的流程图;
图8是表示设计文件的描述的图表;
图9是表示连接信息的图表;
图10是表示机器人引导之后的对象管理器、虚拟机器人和设计机器人的操作的时序图;
图11是表示在切入(Plug-In)和切出(Plug-Out)时对象管理器、虚拟机器人和设计机器人的操作的时序图;
图12是表示观测器和主体(subject)之间的关系的图;
图13是表示在多个观测器环境下,观测器和主体之间的关系的图;
图14是表示在多个主体环境下,观测器和主体之间的关系的图;
图15是表示对象管理器、观测器和主体之间的关系的图;
图16是表示在收到连接信息的情况下,对象管理器的操作时序图;
图17是表示开始做(DoStart)之后的序列的时序图;
图18是表示在切入、切出、以及状态改变时的序列的时序图;
图19是表示一实施例的网络系统结构的方框图;
图20是表示构成该实施例的网络系统的机器人设备和远程系统的基本部分的结构方框图;
图21是表示port.cfg文件的描述的图;
图22是表示连接之前一组对象的状态的图;
图23是表示由网关对象连接的一组对象的图;
图24是表示包括构成机器人设备的软件的SoccerDog(足球狗)对象在内的一组对象的方框图;
图25是表示连接文件的前半部分的图;
图26是表示连接文件的中间部分的图;
图27是表示连接文件的后半部分的图;
图28是说明机器人设备的更具体实例的图。
                    具体实施方式
现在将参照附图详细描述本发明的实施例。在该实施例中,本发明应用到一网络系统中,通过有线或无线通信,一具有由面向对象系统构成的软件(对象)的宠物类型的机器人设备与其相连接。
宠物类型的机器人设备通过内部对象通信(内部进程通信)根据各种处理,例如作出类似于特定动物的姿势。应注意,与网络系统相连接的机器人设备不仅限于宠物类型的机器人,而是可以在本发明的范围内进行构建。首先将描述该机器人设备的结构,然后详细描述应用本发明的网络系统。
(1)机器人设备的结构
(1-1)整体结构
机器人设备1被称作整体上具有类似狗的形状并可以用四条腿行走的宠物类型的机器人设备,如图1所示。也就是说,机器人设备1包括安装在身体2上的运动单元3,并且身体2由头部2A和躯干部2B构成。
头部2A上安装麦克风4、触觉传感器5、能够实现立体视觉的电视摄像机6、遥控红外接收部分7等,并能够通过使用这些部件获取各种信息。头部2A上还安装图像显示部分9和扬声器10,并能够输出各种信息。但是,头部2A的结构并不仅限于该结构。例如,图像显示部分9可以用LED(发光二极管)构成,以便给出表情。
躯干部2B在其背部安装有操作器11,并且在相应于尾巴的点上安装有天线12,以便能够经由操作器11和天线12检测用户的操作。躯干部2B还具有一插槽,以便将IC卡装载到该插槽,执行软件版本更新等。
另外,用于处理通过头部2A输入和输出的各种信息和操作器11等的操作信息的控制器15、用于向各部分供电的供电单元14、以及用于经由天线12发送和接收各种信息的通信单元16安装在躯干部2B上,并且电池17安装在其较低的部位。
另一方面,运动单元3由四条腿形成,每一条腿具有执行器和位于关节点上的角度检测传感器。运动单元3通过串行总线连接到身体2上,并在身体2的控制下操作。因此,机器人设备1可以通过四条腿行走来移动。
另外,后腿可以身体2上拆卸下来。在机器人设备1中,可以安装具有轮子的运动单元来替代后腿。因此,该机器人设备1的形式可以根据用户的喜好在四条腿运动形式(下文中称作四条腿类型)和轮子运动形式(下文中称作轮子类型)之间变化。
图2是表示该机器人设备1的结构的方框图。在机器人设备1中,在其上记录有处理程序的程序介质20经由外围设备单元21连接到中央处理单元22,中央处理单元22执行记录在程序介质20上的处理程序。中央处理单元22还经由外围设备单元21与作为运动单元3的执行器和传感器的机器人设备组件24、25、26、电视摄像机6、操作器11等连接,并能够控制整体的操作。
类似地,中央处理单元22经由外围设备单元21与构成供电单元14的用于供电控制的单片微处理器27相连接,并控制单片微处理器27从电池17向全身供电,以及在节电模式中用纽扣电池29替代电池17向全身供电。
(1-2)软件结构
图3是用层表示的四条腿类型的机器人设备1的软件结构的图。与图3相比较,图4是表示轮子类型的软件结构的图。在这些软件结构中,最低层是设备驱动器层,其中设置各种设备驱动器。设备驱动器执行从/向运动单元3的传感器和执行器、以及安装在头部2A的各种机器人设备组件等输入/输出各种信息,并具有用于处理这些信息的软件对象。
在这些设备驱动器中,电池管理器设备驱动器(电池管理器DD)通过与供电单元14的单片微处理器27进行数据通信来检测电池17的剩余能量,并将检测的剩余能量周期地通知上层机器人系统软件。电池管理器设备驱动器还管理中央处理单元22的时钟等,然后根据机器人系统软件的指令降低时钟的频率,并停止不必要的设备的操作,由此降低总能量消耗。
机器人串行总线设备驱动器(机器人串行总线DD)通过与主控串行总线的硬件进行数据通信,获取与安装在身体2上的串行总线相连接的运动单元3的传感器信息等,并将传感器信息等通知上层机器人系统软件。另外,机器人串行总线设备驱动器向各对应设备发送从机器人系统软件输出的执行器的控制数据、音频信号等。
在系统启动时,机器人串行总线设备驱动器检测连接到串行总线上的设备的变化(增加或删除)。此外,机器人串行总线设备驱动器采集与该变化相关的设备特有的信息,并向机器人系统软件输出表明机器人设备1的当前形式的信息。
机器人系统软件设置在高于设备驱动器层的上一层。机器人系统软件由软件对象构成,比如虚拟机器人、设计机器人、供电管理器、以及对象管理器。
在这些软件对象中,虚拟机器人将每一个设备特有格式的数据转换成机器人设备的通用格式,然后在与机器人串行总线设备驱动器的数据通信中发送和接收该数据。具体地,例如,对于马达控制数据,电位计的传感器输出在该设备的特有格式中用模数转换得到的10比特数据表示,而虚拟机器人将这样表示的数据转换成最低的一比特表示0.001度的数据,并将该数据以机器人设备1中的通用格式输出。另外,除了发送/接收该格式转换的数据之外,虚拟机器人向上层软件输出由例如电视摄像机6获取的图像数据。
虚拟机器人还从机器人串行总线设备驱动器接收表明机器人设备1的当前形式的信息,并将这些信息组织在一起。由此,该虚拟机器人管理表明在整个机器人设备1中以何种顺序连接了那些机器人组件的连接信息(CPC(可配置的实际组件)连接信息),并将该连接信息(CPC连接信息)通知设计机器人。
如果连接到串行总线的设备发生了变化,则虚拟机器人从设备驱动器层的机器人串行总线设备驱动器接收通知,并通知给设计机器人。
设计机器人从虚拟机器人接收连接信息(CPC连接信息),接着比较所接收的连接信息与预先记录的连接模板信息,由此选择适合于机器人设备1当前形式的模板。另外,根据所选择的模板,设计机器人指令对象管理器将上一层中的取决于形式的软件更新为适合于当前形式的取决于形式的软件。
在该实施例中,连接模板信息在设计文件中描述为设计数据。
根据设计机器人的指令,对象管理器使用从设计机器人发送的与对象和各个对象的连接相关的信息,将取决于形式的软件更新为适合于当前形式的取决于形式的软件。具体地,针对构成该取决于形式的软件的所有对象,对象管理器发出指令停止操作,取消内部对象通信的连接,拆除对象,并开放资源。对象管理器还进一步发出指令,装载所需的新对象,初始化这些对象,为内部对象通信构建连接,并启动这些对象。对象之间的连接指用于在这些对象之间发送和接收数据的连接。本发明涉及该对象之间的数据发送和接收,并将在下文中详细描述,本发明通过管理对象使这些对象共享在共享存储器中的数据来实现内部对象通信。
供电管理器与电池管理器设备驱动器交换数据,并且根据来自上层软件(不取决于形式的软件或取决于形式的软件)的指令,供电管理器指令电池管理器设备驱动器切换时钟和停止对象的操作。
取决于形式的软件设置在高于机器人系统软件的上一层,不取决于形式的软件设置在更高的上一层。取决于形式的软件是根据机器人设备1的形式而变化的软件,不取决于形式的软件是不考虑机器人设备1的形式而固定的机器人设备1的上层软件。因此,取决于机器人设备1的形式的各种对象在取决于形式的软件中出现。在该实施例中,适合于四条腿类型的形式和轮子类型的形式的软件能够通过改变该取决于形式的软件来方便地构建。
具体地,在四条腿的类型中,该取决于形式的软件(图3)由包括命令转换器、动作网络、动作重演、行走模式生成器、以及视觉的对象作为与运动单元3相关的对象来构成。
命令转换器将来自独立于形式之外的不取决于形式的软件的命令转换成适合于机器人设备1的形式的命令。也就是说,当发出指令以采取睡觉、休息、起床、或运动姿势的命令(睡觉、休息、起床、或运动命令)从不取决于形式的软件输入作为与运动单元3相关的命令时,四条腿类型中的命令转换器将该命令转换为发出指令以采取睡觉、坐、站、或行走姿势的命令(睡觉、坐、站、或行走命令)。
动作网络根据命令转换器输出的表明姿势的命令,开始相应于图5所示的转移图中的箭头的对象的方法(项目)。也就是说,如果在睡觉状态下输入行走的命令,则依次开始该动作重演对象的响应项目,以便姿势依次变化为坐、站和行走。在这种情况下,当到达最终的行走状态时,开始一相应于表明该状态的自循环的行走模式生成器的项目。
动作重演通过启动动作网络的项目为相应的姿势变化输出关节角度命令值。具体地,动作重演保持作为关键数据的所登记的离散关节角度命令值,并使用该关键数据通过插值处理输出一序列角度命令值。
行走模式生成器计算并输出每一个关节角度命令值,以便在不取决于形式的软件所指定的方向上运动。
视觉例如是用于图像处理的对象,并执行处理以便从虚拟机器人对象接收电视摄像机6所获取的图像数据。由此,该视觉识别例如一红色对象,并检测和输出该红色对象相对于机器人设备1的位置及其视在尺寸。
另一方面,在轮子类型中,取决于形式的软件(图4)由包括对于该轮子类型和四条腿类型是通用的视觉对象、以及对于该轮子类型是特殊的命令转换器、动作命令器、动作重演2、轮子模式生成器的对象构成,作为与运动单元3相关的对象。
在这些对象中,类似于四条腿类型中的命令转换器,命令转换器将来自独立于形式之外的不取决于形式的软件的命令转换为适合于机器人设备1的形式的命令。在这种情况下,由于机器人设备1属于轮子类型,所以命令转换器将发出指令以采取睡觉、休息、起床、和运动姿势的命令(睡觉、休息、起床、和运动命令)转换为发出指令以采取睡觉、休息、准备好、和走的姿势的命令(睡觉、休息、准备好、和走命令)。
动作命令器接收命令转换器的输出,并生成与轮子控制命令相关联的关节角度命令值。也就是说,当输入命令睡觉时,动作命令器将关节角度命令值设置到空档(neutral)。在空挡状态下,既不驱动马达,也不止动马达。因此,构成运动单元的双臂保持向下悬垂,并且轮子保持在停止状态。
当输入命令休息时,动作命令器生成关节角度命令值,以便双臂在肘部成90度弯曲并保持向前,而且头部2A的脸部面向前方。轮子保持不动。
当输入命令准备时,动作命令器生成关节角度命令值,以便双臂向前伸出,而且头部2A的脸部面向前方。在这种情况下,轮子也保持静止。当输入命令走时,动作命令器生成关节角度命令值,以便轮子旋转向前运动,而双臂保持类似于准备状态下的姿势。
动作重演2根据动作命令器的指令,针对轮子类型特有的动作,控制除轮子之外的其它部件的操作(例如,双臂的操作)。轮子模式生成器在动作命令器的控制下生成轮子控制信息。
不取决于形式的软件是独立于机器人设备1的形式之外的软件,并具有形式设置对象等。形式设置对象从取决于形式的软件接收独立于机器人设备1的形式之外的信息,并通过使用该信息,向取决于形式的软件输出表明上述机器人设备1的姿势的、并且与机器人设备1的形式不相关的命令(睡觉等)。
例如,如果根据视觉对象发送的出现/没有出现红色对象及其位置信息在一分钟或更长时间内没有检测到红色对象,则发布命令,以便维持其所处的睡觉状态,从休息状态转换到睡觉状态,从起床状态转换到休息状态,以及从运动状态转换到起床状态,如图6所示。
另一方面,如果检测到一尺寸小于预定值(不大于机器人设备的设定值10)的红色对象并持续检测到10秒钟或更长时间,则发布命令,以便从睡觉状态转换到休息状态,从休息状态转换到起床状态,从起床状态转换到运动状态,以及继续保持运动状态。
如果检测到尺寸不小于预定值的红色对象,则发布命令,以便从睡觉状态转换到起床状态,从休息状态和起床状态转换到运动状态,以及继续保持运动状态。
由此,在该机器人设备1中,最上层的软件独立于形式之外形成,并且不取决于形式的软件以与形式不相关的格式发送和接收数据。因此,在该机器人设备1中,只有依赖于形式的取决于形式的软件根据形式来变化,由此使软件易于根据形式来变化。
(1-3)取决于形式的软件的改变
在机器人设备1中,根据来自设计机器人的指令通过对象管理器的处理来更新取决于形式的软件。在该实施例中,通过构建用于装载、卸载的重新连接、以及构成取决于形式的软件的对象的内部对象通信来更新取决于形式的软件。
因此,设计机器人从虚拟机器人接收指定机器人设备1的形式的连接信息(CPC连接信息)的通知。根据该连接信息(CPC连接信息),设计机器人指令对象管理器更新该取决于形式的软件,并向对象管理器提供所需的信息。
虚拟机器人通过在低层上的机器人串行总线设备驱动器来获取连接到串行总线上的每一个设备的信息,然后使用该信息准备连接信息(CPC连接信息),并将连接信息发送给设计机器人。
因此,在机器人设备1中,将预定的信息记录到每一个机器人组件的存储器,并且在虚拟机器人中连接到串行总线的设备的信息可以通过经由机器人串行总线设备驱动器执行的数据通信与其位置信息一起获得。
在该机器人设备1中,电视摄像机、扬声器、麦克风、各种执行器、传感器等是基本的构成部件(CPC基本要素),并且多个设定为链接状态的这些基本构成部件的组合构成了各个组件(CPC模型)。例如,作为组件的一条腿是由多个基本构成部件组成的,包括处于特定链接状态的三个马达和一个开关。
在机器人设备1中,特有的识别数据分配给各个组件,以便连接到串行总线的各个构成部件能够通过使用该识别数据来指定。识别数据包括制造该部件的工厂的ID、以及相当于序列号的ID。另外,相应于该识别数据,每一个构成部件的信息和每一个构成部件在组件中的位置信息通过组件中每一个构成部件的链接信息和每一个构成部件的属性信息来设置,并且此信息与每一个组件的识别数据一起保存在每一个组件的存储器中。在该实施例中,如果组件具有较小的存储器容量,则仅将识别数据记录在每一个组件的存储器中,而将构成部件的信息和构成部件在组件中的位置信息保存在主体2中。
在启动系统时,或者当设备改变时,虚拟机器人根据识别数据、从机器人串行总线设备驱动器发送的位置信息等顺序地追踪树状结构的串行总线,然后通过使用各个基本构成部件(CPC基本要素)和代表各个构成部件的连接次序的数据结构来准备连接信息(CPC连接信息),并将该连接信息通知设计机器人。在这种情况下,由虚拟机器人发送的连接信息(CPC连接信息)由相应于形式的构成部件信息(CPC基本要素位置信息)构成。
设计机器人根据虚拟机器人发送的连接信息(CPC连接信息)参照设计文件,由此选择相应于机器人设备1的当前形式的连接模板(即,下文中将描述的标号)。另外,根据所选择的模板,设计机器人指令对象管理器将取决于形式的软件更新为适合于当前形式的取决于形式的软件。
设计文件包括文本数据格式的描述,其中对机器人设备1的每一种形式,使用一附加的标号描述了一组每一个组件的构成部件信息(CPC基本要素位置信息)。构成部件信息(CPC基本要素位置信息)包括每一个组件的基本构成部件(CPC基本要素)和每一个构成部件的位置信息(CPC坐标定位器)。在这些信息中,位置信息(CPC坐标定位器)是到为机器人设备1设置的参考位置的坐标。该坐标使用一般的链接坐标系统表示,并由旋转矩阵和位置矢量的级联构成,用于转换坐标系统。
标号指定相应的对象,也指定用于装载对象和构建内部对象通信所需的数据。应用设计标号、或者具有比设计标号更通用和更容易理解的描述的虚拟标号、或者由设计标号和虚拟标号组合构成的组合标号。虚拟标号由设计机器人来替代设计标号使用。
下面的公式代表设计标号的描述。该设计标号由一个或多个构成部件信息(CPC基本要素位置信息)或一个设计标号(Design Label)构成。Design Label(
CPC Primitive Location Information or Design Label;
……)                                                        …(1)
另一方面,下面的公式代表虚拟标号(Virtual Label)的描述。虚拟标号由设计标号(Design Label)、构成部件(CPC Primitive)、以及构成部件(CPCPrimitive)的位置信息(CPC Coordinate Locator)构成。Virtual Label(
Design Label:
CPC Primitive:
CPC Coordinate Locator:)                                                        …(2)
下面的公式代表组合标号(Composite Label)的描述。Composite Label(
Composite Label;
or/and Design Label:
or/and Virtual Label;)                                                        …(3)
在这种情况下,在来自由发送给设计机器人的连接信息(CPC连接信息)指定的构成部件信息(CPC基本要素位置信息)中的指定位置信息(CPC坐标定位器)的树状结构的末梢上的虚拟标号内限定的位置信息(CPC坐标定位器)如果存在,则设计机器人用设计标号替代该虚拟标号,并设置该设计标号使其有效。
由此,通过根据连接信息(CPC连接信息)访问设计文件,可以指定机器人设备的当前形式(比如四条腿类型和轮子类型),并可以获取更新取决于形式的软件所需的各种数据。
图7是表示设计机器人的特定处理过程的流程图。当设计机器人从虚拟机器人得到连接信息(CPC连接信息)的通知时,处理从步骤SP1转移到步骤SP2,根据连接信息(CPC连接信息)访问设计文件,由此确定机器人设备1的当前形式。
然后,在设计机器人中的处理转移到步骤SP3,比较基于从虚拟机器人发送的连接信息(CPC连接信息)的构成部件信息(CPC基本要素位置信息)和基于设计文件所保持的连接信息(CPC连接信息)的构成部件信息(CPC基本要素位置信息)。
在设计机器人中的处理转移到步骤SP4。根据比较结果访问设计文件,并检测指定相应于当前形式的对象和重构内部对象通信所需的数据的设计标号。
然后,在设计机器人中的处理转移到步骤SP5。根据检测的设计标号访问连接文件,并检测相应于该标号的连接信息,从而获取用于指定相应对象及用于重构内部对象通信所需的数据。在这种情况下,连接文件是其中连接信息(连接数据)与标号关联被记录的文件。连接信息(连接数据)是用于指定相应对象及用于重构内部对象通信所需的数据。
在设计机器人中的处理转移到步骤SP6。连接信息(连接数据)发送到对象管理器,由此指令对象管理器更新取决于形式的软件。之后,处理转移到步骤SP7结束该处理过程。
图8是说明该设计文件的一部分的描述的图表。在该设计文件中,“DRX”是代表机器人设备1的形式的描述,4Legged是代表四条腿类型的形式的描述。“Head”、“RightFrontLeg”、“LeftFrontLeg”、“RightRearLeg”、以及“LeftRearLeg”分别代表头部、右前腿、左前腿、右后腿、以及左后腿。由此,第一句指定该四条腿类型包括头部、右前腿、左前腿、右后腿、以及左后腿。
在第二句中的“Wheel”代表轮子类型。与第一句相比,第二句指定轮子类型包括头部、右前腿、左前腿、右后轮、以及左后轮。第三句描述在头部中摄像机链接的安排。第四句描述摄像机链接的虚拟标号。第五句及接下来的句法以树格式描述右前腿、左前腿等的位置信息(CPC坐标定位器)。
图9是说明部分连接信息(CPC连接信息)的描述的图表。在该实施例中,连接信息也以类似于设计文件的文本数据格式来描述。在该描述中,“Joint”代表一接口,指示该部分是与其它构成部件的连接点。在这种情况下,从第二到第五行的描述中可以知道电视摄像机经由用C0、C0、C0、C0、C0表示的5个插孔或类似形式来连接。
在图9示例中的连接信息(CPC连接信息)与上述参照图8描述的四条腿类型的相一致。
另一方面,下面的公式代表部分连接文件的描述。该连接文件以文本数据格式描述。在该描述中,第一句和第二句分别描述相应于四条腿类型的腿和轮子类型的轮子的对象、以及用于构建这些对象的内部对象通信所需的数据。
具体地,在第一句中,描述作为服务名称的对象名称“MoNet”、数据格式“MoNetOutData”、以及代表主体的“S”。另外,描述作为类似的服务名称的对象名称“MoNetReplay”、数据格式“MoNetOutData”等。最后,分配代表观测器的描述“O”。类似地,在接下来的行中描述主体、观测器、数据格式等。DRX 4Legged(
MoNet.MoNetOutData..S,MoNetReplay.MoNetOutData...O
MoNet.MoNetOutData..S,WalkingPattemGenerator.MoNetOutData...O)DRX Wheel(
MotionConverter.MCData..S,MotionReplay2.MCData...O
MotionConverter.MCData..D,Wheel.MCData...O)                                                         …(4)
由此,在图8的情况下,设计机器人从基于DRX4Legged的第一句描述中提取连接信息(连接数据)(DRX4Legged后面括号中的描述),并通知对象管理器该连接信息,从而更新取决于形式的软件。
图10是表示引导时对象管理器、虚拟机器人、以及设计机器人的处理的时序图。当接通机器人设备1的电源或复位机器人设备1时,开始引导处理。此时,在机器人设备1中,从文件中加载每一个对象,以便构建取决于形式的软件,并初始化每一个对象管理器的内部变量。
然后,从对象管理器向每一个对象发送进行初始化命令(DoInit),并根据DoInit命令将每一个对象的查询项目登记到对象管理器或类似的管理器中。由此,在机器人系统软件层上构建了每一个内部对象通信。
接着,DoStart命令从对象管理器顺序发送给虚拟机器人和设计机器人,虚拟机器人和设计机器人开始操作。虚拟机器人生成连接信息(CPC连接信息),并响应来自设计机器人的请求,将该连接信息(CPC连接信息)发送给生成连接信息(连接数据)的设计机器人。另外,该连接信息(连接数据)还发送给对象管理器,并由该连接信息(连接数据)构建取决于形式的软件。
在关闭的时候,DoStop命令从对象管理器发送给每一个对象。根据该DoStop命令,每一个对象针对所有的请求发布错误,并停止操作。接着,从对象管理器向每一个对象发送DoDestroy命令。相应地,每一个对象开放已经使用的资源,并删除登记到对象管理器中的项目。然后,各对象进入等待状态。
因此,即使机器人设备1使用其变化的形式引导,也可以通过使用适合于该变化的形式的软件来操作。
另外,在所谓的切入和切出时,从对象管理器向每一个对象发送DoStop命令,并且每一个对象根据该DoStop命令针对所有的请求发布错误并停止操作,如图11所示。
接着,类似于引导的情况,将DoStart命令从对象管理器依次发送给虚拟机器人和设计机器人。虚拟机器人生成连接信息(CPC连接信息),并将该连接信息(CPC连接信息)发送给生成连接信息(连接数据)的设计机器人。取决于形式的软件由该连接信息(连接数据)来构建。
因此,即使形式通过切入和切出动态地改变,机器人设备1也可以通过使用适合于变化的形式的软件来操作。
如果电池17用光了,则类似于切入或切出的情况,响应来自电池管理器的状态变化请求,重复执行根据DoStop命令和DoStart命令的处理。因此,如果电池17用光了,则降低时钟频率并停止不必要的设备的操作,从而改变状态以便机器人设备通过使用纽扣电池29操作。另一方面,如果加载了充电的电池17,则提高时钟频率并启动各设备的操作,以便机器人设备使用电池17操作。
(1-4)对象管理器的处理
对象管理器根据来自如上所述执行的设计机器人的通知,重构构成取决于形式的软件的对象,并由此更新取决于形式的软件。具体地,对象管理器根据来自设计机器人的通知加载或卸载对象,并重构相应于加载和卸载的内部对象通信,由此改变取决于形式的软件。
当构建该内部对象通信时,如果必须将对应的对象名称登记给该对象,则各自对象的独立性受到阻碍,并且必须准备多种类型的对象以便与任意的形式相对应。因此,在该实施例中,对象管理器根据从设计机器人输出的连接信息(连接数据)构建内部对象通信,并由此保证了对象的独立性。
本发明的特点在于,使基于内部对象通信的数据通信在由内部对象通信构建的机器人设备1(目标板或目标系统)的一组对象和将个人计算机用于程序准备的机器人设备1的对象之间得以进行。如在下文中将详细描述的,当机器人设备1和个人计算机通过无线或有线通信部件彼此互联时,通过机器人设备1和个人计算机分别保有的网关对象使内部对象通信得以进行,由此构建机器人设备1的对象和个人计算机上的对象之间的内部对象通信。
下面将具体描述该内部对象通信。在下面的描述中,为了说明简单起见,将避免指定具体的对象名称。也就是说,下面的描述可以应用到机器人设备1中的内部对象通信,也可以应用到机器人设备1和个人计算机所保有的对象(下文中将详细描述的网关)之间的内部对象通信。该内部对象通信异步地执行。
图12是表示在该实施例中两个对象之间的内部对象通信的基本结构的图。在该实施例中,通过使用Ready(准备好)信号和Notify(通报)信号来执行内部对象通信,以防止传输超出对象(在该实例中,对象B)的处理能力的数据。
在图12中,对象A从属于对象A的成员、其级别为0的主体向属于对象B的成员、级别为0的观测器发送数据,由此启动对象B的方法。在这种情况下所指的主体和观测器构成它们所属的对象中的所谓代理程序。
在该关联中,仅当从观测器发送Ready信号时主体才发送数据。Ready信号必须每次传输数据时发送一次。由此,在观测器一方的对象B可以等待完成接收数据的处理,然后接收随后的数据。
通过如此使用Ready信号和Notify信号,执行内部对象通信。根据本发明,内部对象通信实现为发送方和接收方共享在共享存储器中的数据。
图13是说明在多个观测器环境下内部对象通信的基本结构的图。在这种情况下,作为主体的对象A可以向所有的观测器分发数据,并可以单独地向对象ID所指定的特定观测器分发数据。在该实施例中,在该多个观测器的环境下,也是响应Ready信号将数据发送给相应的观测器。
每一个对象指派指定对象的对象ID和指定方法以启动(进入)该相应的方法的选择器序号(即,方法序号)。然后,每一个对象指定一观测器并向其发送期望的数据。
图14是表示在所谓的多个主体的环境下内部对象通信的基本结构的图。在这种情况下,对象A和B是主体,而对象C是观测器。观测器可以从多个主体接收数据,并具有每次收到数据时处理所请求的数据的方法。另外,观测器可以仅向主体ID所指定的特定主体发送Ready信号,并由此能够选择地输入期望的数据。
在该实施例中,至少一个属于取决于形式的软件层的对象能够通过使用参照图12至14所描述的Ready信号和Notify信号来执行内部对象通信,并且当需要时能够依据多个观测器或多个主体的连接形式与其它的对象相连接。也就是说,具有多个观测器的对象具有相应于多个观测器的数量的连接项目。
图15是表示对象管理器和各个对象之间的关系的图。每一个对象根据对象ID和选择器序号指定一种方法,然后交换数据。每一个对象具有分配给基本方法的选择器序号0至3,而不考虑相对应的主体和观测器。
将进行初始化(DoInit)命令分配给选择器序号0,并且每一个对象通过启动该DoInit命令初始化。DoStart命令分配给选择器序号1,并且每一个对象通过启动该DoStart命令开始操作。DoStop命令分配给选择器序号2,并且每一个对象通过启动该DoStop命令停止操作。DoDestroy命令分配给选择器序号3,并且每一个对象通过启动该DoDestroy命令开放资源。
另外,响应来自对象管理器的请求或响应来自其它对象的请求,每一个对象使用返回值恰当地发送观测器的服务名称、选择器序号等。
因此,在对象管理器根据从设计机器人发送的连接信息(连接数据)加载或卸载对象之后,可以重构内部对象通信。
下面的公式代表从设计机器人发送的连接信息(连接数据)。主体的服务名称和观测器的服务名称以文本数据格式描述,它们之间用逗号隔开。在主体方一侧,描述作为服务名称的对象名称“FooB”、数据格式“Image”、相应的构成部件名称“RightCamera”、以及表示主体的“S”。在观测器一方,描述作为服务名称的对象名称“FooA”、数据格式“Image”、相应的构成部件名称“RightCamera”、以及表示观测器的“O”。
FooB.Image.RightCamera.S,FooA.Image.RightCamera.O         …(5)
当加载对象时,对象管理器从该连接信息(连接数据)的描述中检测该加载的对象的对象名称。
另外,对象管理器保护堆栈存储器和堆阵存储器,并从预定的文件加载检测到的对象名称的对象。在这种情况下,对象管理器从操作系统(OS)获取对象ID,并与在连接信息(连接数据)中描述的对象名称一起记录该对象ID。
由此,对象管理器以上述方式通过使用登记的对象ID执行下述DoInit、DoConnect、DoStart处理等。
在DoInit处理中,根据获取的对象ID和上述选择器序号,对象管理器针对所有通过加载对象获取的对象调用DoInit命令。各对象具有它们各自的根据DoInit命令初始化的内部变量,由此对象管理器初始化各个对象。
在初始化处理中,对象管理器根据来自每一个对象的通知,登记作为每一个对象的主体的项目(Control)和作为对象的项目(Connect)。对象的名称和主体的名称以及对象相应地登记到连接信息(连接数据)的主体和对象的描述中。
在DoConnect处理中,根据在DoInit处理中的登记,对象管理器将作为登记目标的主体ID(对象ID)和主体的项目(Control)的通知发给具有观测器的每一个对象的项目(Connect)。在接收该通知时,该对象通过使用在通知中提供的主体ID和项目(Control)访问相应的主体,并登记项目的连接(Notify)。从连接登记所请求的主体向观测器返回Ready信号,由此观测器和相应的主体彼此连接。
在构建观测器和主体之间的内部对象通信时,对象管理器发出相应主体的主体ID(对象ID)和项目(Control)的通知给得到连接信息(连接数据)中通知的观测器。因此,每一个对象可以将任意对象作为连接目标,而不用明确表示,同样当需要时也可以根据对象管理器的指令与各个对象连接。由此,可以比传统技术保证更高的独立性。
在这种情况下,由于对象管理器根据连接信息(连接数据)构建内部对象通信,取决于形式的软件可以容易并任意地更新,因此可以根据形式方便地变化软件。
在DoStart处理中,对象管理器通过使用上述的选择器序号1向每一个对象发送DoStart命令。如果每一个对象具有观测器,则通过使用DoConnect处理所获得的主体ID和项目向主体发送Ready信号(Ready)。由此,形成其中可以从相应的主体接收数据的状态,并且取决于形式的软件开始操作。
也就是说,在多个观测器环境下的主体向登记的观测器中发送Ready信号的观测器发出例如传感器输出的数据通知。观测器完成接收数据的处理,并在可以接收下一个数据的时候发送Ready信号。
在上述关闭、切入、切出、以及状态转换的情况下,从设计机器人发送的连接信息(连接数据)与从设计机器人先前发送和登记的内容不同。因此,对象管理器通过使用上述的选择器序号2向每一个对象发送DoStop命令。在这种情况下,观测器取消项目(Ready)。
在DoDisconnect处理中,对象管理器关闭主体和观测器之间的通信连接。在这种情况下,对象管理器向观测器的项目(Connect)发送DoDisconnect消息,然后使观测器向主体发布项目(Control)的断开请求(RemoveObserver),由此关闭通信连接。
在DoDestroy处理中,对象管理器通过使用上述的选择器序号3向相应的对象发送DoDestroy命令,由此废弃该对象。在这种情况下,该对象取消在DoInit处理中执行的登记。
在Object Unload处理中,对象管理器针对由DoDestroy处理废弃的对象,开放堆栈存储器和堆阵存储器的区域,并卸载该对象。对象管理器还删除在加载时登记的主体ID和主体名称。
例如,在从设计机器人收到连接信息(连接数据)时,对象管理器根据图16所示的顺序通过使用上述的控制处理来控制,一直到DoStart处理为止。
具体地说,当通过消息将连接信息(连接数据)发送给对象管理器时,对象管理器启动并加载在该连接信息中描述的对象A和对象B。在这种情况下,对象管理器根据操作系统的系统命令加载对象A和对象B。此时,对象管理器获取并登记对象A和B的对象ID。
然后,对象管理器根据如上所述获取的观测器ID和选择器序号0,启动对象A和B的DoInit处理,并由此从对象A和B获取并登记作为主体的项目(Control)和作为对象的项目(Connect)。
接着,对象管理器通过使用登记的项目(Connect)启动作为观测器的对象A的DoConnect处理,并将作为主体的对象B连接到对象A。由此根据连接信息(连接数据)建立内部对象连接,对象管理器启动对象A和B的DoStart处理。
图17是表示DoStart处理之后的序列的时序图。当在对象管理器中通过DoStart处理启动对象A、对象B和其它对象时,这些对象通过使用上述的Ready和Notify消息执行内部对象通信。
在这种情况下,该启动使得对象A向对象B的Ready项目发送Ready消息,从对象B发送给对象A的Notify项目使得数据从对象B发送给对象A。如果在该数据的处理期间没有消息从对象A发送到对象B的Ready项目,则登记通过对象B发送给对象A的Notify项目,并且通过对象A发送给对象B的Notify项目使数据发送。由此,在该内部对象通信中,可以防止传输超过对象A的数据处理能力的数据。
图18是表示在切入、切出、以及状态转换时的序列的时序图。当从设计机器人发送的连接信息(连接数据)与从设计机器人先前发送和登记的内容不同时,对象管理器向所有的对象发送DoStop命令,以停止所有对象的操作。在这种情况下,对象A和B取消Ready项目,以便不再启动随后的各自Notify项目。
当完成所有对象的DoStop处理时,在该情况下的对象管理器向对象A发送DoDisconnect命令,以将对象A从其它对象断开,然后启动对象A的DoDestroy处理。由此开放对象A的资源,并且取消通过DoInit执行的对象B的登记。
当所需对象的DoDestroy处理完成时,对象管理器根据操作系统的系统命令执行卸载。访问所需对象的废弃器,也就是说,在这种情况下,访问对象A的废弃器,从而取消加载时执行的对象A的登记。另外,对象管理器开放堆栈存储器和堆阵存储器,由此完成对象A的卸载。
然后,对象管理器根据连接信息(连接数据)发出指令加载对象C,并类似于参照图16所述的上述处理接着启动DoInit、DoConnect、以及DoStart处理。由此,在操作期间,由对象A和B构成的结构变化成由对象B和C构成的结构,而不用编译。
上面参照图12至18描述了内部对象通信等。下面将描述作为实施例的实质部分与本发明相关的网络系统。应用本发明的网络系统使得连接到网络上的远程系统(例如,使用个人计算机作为终端的系统)的机器人设备的软件的改变等得以进行,并假设机器人设备1连接到远程系统。
图19示出应用本发明的网络系统的示例结构。在该网络系统中,远程系统30是具有个人计算机32和工作站33作为终端的系统,机器人设备1是具有到网络的通信部件的机器人设备。机器人设备1包括无线LAN PC卡41,远程系统30包括网络适配器31,用于与机器人设备1进行通信。在该网络系统中,使用用于网络通信的TCP/IP(传输控制协议/因特网协议)协议,从而执行远程系统30和机器人设备1之间的通信。因此,为机器人设备1提供IP地址,并由此可以在网络系统中与个人计算机32进行通信。如此构成网络系统以保证与机器人设备1的通信,将机器人设备1作为无线LAN(局域网)上的机器(电子装置)来处理。
机器人设备1至少包括PC卡I/F42、快闪ROM43、DRAM44、以及CPU45,例如如图19所示。PC卡I/F42是用于无线LANPC卡41的接口。快闪ROM43和DRAM44是存储部件,用于存储由机器人设备1处理的各种信息。CPU45是用于控制机器人设备1的每一部分的控制部件。例如,CPU45相应于图2所示的中央处理单元22。图19示出三个机器人设备1,每一个都具有该种结构。
正如下面将描述的,该网络允许机器人设备1的开发方在机器人设备1连接到网络上时开发机器人设备1所保有的对象。该网络还允许用户方通过使用个人计算机32等在网络上监视机器人设备1的内部状态。
例如在上面的示例描述中,机器人设备1通过使用无线LAN连接到网络系统。这是因为作为机器人设备1的移动计算机不希望实际的物理连接。因此,该通信不限于无线通信。例如,机器人设备1和个人计算机32可以通过有线通信相互进行通信。
图20示出在上述的网络系统中能够相互进行通信的机器人设备1和远程系统30的示例结构。
机器人设备1具有作为通信部件的无线LANPC卡41、设备驱动器46、TCP/IP协议堆栈47和TCP网关48。远程系统30具有作为通信部件的网络适配器31、设备驱动器51和TCP网关52。
机器人设备1和远程系统30两者在各自的最低层都具有用于网络的适配器。作为机器人设备1中的硬件的无线LANPC卡41和远程系统30中的网络适配器31构成了这些用于网络的适配器。
称作第一电子装置的机器人设备1的无线LANPC卡41(例如,包括PC卡I/F)是具有(分配至此的)信息处理进程(网关对象48)的第一通信部件,用于向和从机器人设备1的信息处理进程(对象)发送和接收数据。连接到称作第二电子装置的个人计算机32(远程系统30)上的网络适配器31是具有(分配至此的)信息处理进程(网关对象52)的第二通信部件,用于向和从个人计算机32上的信息处理进程(对象)发送和接收数据。在该网络系统中,当无线LANPC卡41和网络适配器31通过无线或有线连接相互连接时,在用于发送和接收无线LANPC卡41的数据的信息处理进程(网关对象48)和用于发送和接收网络适配器31的数据的信息处理进程(网关对象52)之间执行内部进程通信(内部对象通信),从而在机器人设备1的信息处理进程和个人计算机32的信息处理进程之间执行内部进程通信(内部对象通信)。
另外,使用经常用于网络通信的TCP/IP数据通信系统的数据通信,在用于发送和接收网络适配器31的数据的信息处理进程和用于发送和接收个人计算机32的数据的信息处理进程之间执行。
机器人设备1和远程系统30分别在无线LANPC卡41和网络适配器31的上一层具有设备驱动器46和51。
设备驱动器46和51是用于控制作为每一个网络的适配器的无线LANPC卡41和网络适配器31的软件。
机器人设备1和远程系统30还分别在设备驱动器46和51的上一层具有未示出的TCP/IP套接字接口(socket interface)。机器人设备1和远程系统30通过各自的TCP/IP套接字接口输入和输出数据。例如,机器人设备1具有等价于套接字库的协议堆栈对象,并使用该协议堆栈对象用于接入。
在机器人设备1和远程系统30中,网关对象(TCP网关)48和52设置在比未示出的TCP/IP套接字接口高的层上。网关对象48和52构成相对于网络的入口/出口。网关对象48和52执行用于上述内部对象通信的协议和用于网络通信的TCP/IP协议之间的转换。
在各自系统的两个网关对象48、52中,一个网关对象起服务器的作用(下文中称作服务器网关对象),另一个网关对象起客户机的作用(下文中称作客户机网关对象)。例如,考虑系统的属性,在调停用户处理过程的远程系统一侧上的网关对象变为客户机网关对象,而目标系统(机器人设备)的网关对象变为服务器网关对象。现在将描述网关对象48和52的具体操作。
网关对象48和52具有其中描述了通信系统的设置的、称作port.cfg文件的设置文件,并使用该设置文件将在内部对象通信中限定的通信服务名称与在TCP/IP通信中使用的IP地址和端口号相对应。
图21示出port.cfg文件(设置文件)的一个示例。例如,在port.cfg文件中将各种信息作为文本数据格式描述。具体地说,描述了对象名称、数据名称、主体名称、端口号、IP地址等。该port.cfg文件可以任意重写。
由于网关对象48和52与图12或图15所示的对象A和对象B存在关系,所以网关对象48和52能够按照预定的序列执行预定处理。具体地说,网关对象48和52动态地生成作为代理程序的观测器和主体,并将在各自port.cfg文件中描述的服务名称与观测器或主体ID相关联,由此执行到各自系统上的服务管理器(对象管理器)的登记。
如上所述,由于服务名称可以被任意地描述到port.cfg文件中,所以网关对象48和52执行所有的在port.cfg文件中如此任意描述的服务。通过消除对服务名称到port.cfg文件的描述限制,可以通过网关对象48和52执行所有对象(机器人设备1的对象和个人计算机32的对象)之间的内部对象通信。
服务名称对应于观测器或主体ID和端口号,以便与port.cfg文件中描述的网络端口(IP地址和端口号)对应。通过与port.cfg文件的描述相对应,也就是说,分配相同的端口号给相应内部对象通信的服务名称,在网关对象存在于网络的不同位置时,在网络上产生机器人设备1的网关对象48和远程系统30的网关对象52之间的内部对象通信的对应。
如果连接请求发送到远程系统30的客户机网关对象52中的观测器或主体,对相应的端口号执行连接(连接命令)。如果目标系统(目标板或机器人设备1)一方的服务器网关对象48已经启动,则将建立连接。另一方面,如果目标系统没有准备好,则在几秒之后重新进行连接,并且在目标系统准备好之后建立连接。
在建立连接之后,每次网关对象的观测器或主体收到数据(Notify或Ready消息)时,消息发送到对应的端口。与此相反,当网络端口收到数据时,相应的观测器发送Notify消息,主体发送Ready消息。
由于在如上所述的系统之间(即,在机器人设备1和远程系统30之间)建立了连接,彼此通过网络互联的机器人设备1和远程系统30可以处理为包括多个对象的一个系统。例如,如图22所示,在建立连接之前,包括一组对象(例如,部分软件)的系统A(例如,机器人设备1)和包括另一组对象(例如,部分软件)的系统B(例如,远程系统30)在图22中边界用虚线表示的相对两侧独立地构建。在连接建立之后,用虚线表示的边界之间的通信被消除,并提供如图23所示的虚拟网关对象GO(例如,一组网关对象48、52)。这被认为等价于将各自系统的对象组相互连接。因此,应该认为机器人设备1的对象和远程系统30的对象构成一个系统。机器人设备1由远程系统30经由单个虚拟网关对象GO通过网络来操作。
系统(机器人设备1和远程系统30)如此通过虚拟网关对象GO彼此连接,并执行如图20所示的数据发送/接收。因此,连接到各自系统(机器人设备1和远程系统30)的网关对象上的对象能够与在另一系统上存在的对象执行内部对象通信,而不用关心通过网络的通信。
由于从图22所示的网络结构到图23所示的网络结构的变化可以处理为等价于对象之间的连接变化,所以图23所示的网络结构可以简单地通过改变用于将期望的对象彼此互联的连接文件的描述来实现,而不用额外改变对象代码。
即使由于OS或处理器的不同,而使相同的代码不能由远程系统30和目标系统(机器人设备1)执行,上述内部对象通信的框架(framework)也独立于OS或处理器之外,因此能够在执行系统上执行对象可以根据在执行系统上实施的框架通过重新汇编来生成。
该网络系统允许在远程系统30上改变与目标系统(机器人设备1)上的对象相连接(进行通信)的远程系统30上的对象。因此,可以考虑目标系统的实际状态(真实环境)或实时地在远程系统30上开发(设计)对象。
在开发之后,在远程系统30上开发的对象被重新汇编并引入机器人设备1。由于引入到机器人设备1的对象是考虑了装配在机器人设备1上的对象的状态(真实环境)后开发的,所以该对象不会引起问题,并在机器人设备1上执行处理,而不会对其它对象造成任何不便。而且,对象的开发非常简单,因为是通过简单的网关对象虚拟连接实现的。
针对上述描述,现在将描述符合预定标准,例如OPEN-R的网络扩展技术,OPEN-R是由Sony公司提出的用于娱乐机器人的硬件和软件平台技术。在该平台技术中,将软件构建为组件,并作为对象单元(等价于进程)来执行。
在面向对象的系统中,在根据设计模式的观测器模式而设计的对象之间提供通信协议,并且用户需要定义输入到对象的数据的数据结构及其服务名称、处理数据的方法、以及输出数据结构及其服务名称。通过连接已经定义了数据结构、服务名称和处理方法的对象,传播事件,并实现从识别到动作的一系列机器人的系统。
内部对象通信具有下列特点。
在设计对象时,仅定义接收的数据和发送的数据,而不定义消息的发送源和目的地;
用于发送/接收的端口指向服务,并且为每一个端口指定一用户定义的唯一名称;
消息的发送和接收通过称作O Subiect和O Observer的代理类别来执行,并且其中的例证(instance)以一对一的方式对应上述的单独的服务;
服务之间的连接在连接文件中定义,并且在系统启动时发送给O Subiect和O Observer的例证;
服务之间通信是异步通信,并且连接支持多点对多点的通信;
数据的流控制通过使用表明可以接收的Ready消息来执行;以及
使用共享存储器,以便确保数据的可量测性、并实现高速传输/接收。
现在将描述网关对象。机器人中的无线网络的移动不受限制,因此非常方便。可以考虑各种利用方法,例如发送机器人的传感器信息,发送处理结果,以及使用远程主机上的工具移动机器人。尽管已经存在方法,用以在客户机一方提供框架来隐藏从代理(proxy)到网络上分布的对象的访问,从而客户机一方对该访问没有察觉,但是该方法对于开发是不完善的,因为每次提供新服务时,必须设计用于通信的对象、或必须将通信代码添加到现有的对象和代理中。由于机器人内部的软件是根据预定的平台技术的编程框架来描述的,所以对象之间的数据定义、通信方法和通信伙伴的依赖关系完全分开。因此,正如参照图20和21所描述的,引入等价于网络的出口/入口的称作TCP网关的对象。该对象(TCP网关)读取设置文件(图21),其中描述了内部对象通信的服务名称与TCP/IP端口号的对应关系,并且该对象动态地生成服务和端口,并执行发送至此的数据的协议转换(图20)。通过将服务与预定数据端口连接,可以选择通信伙伴。由于通信方法和通信伙伴通过使用TCP网关如此确定,所以对象的设计者可以唯一地决定数据的定义,并可以方便地使用网络。
上述预定平台技术的框架可以通过使用Unix的Fork()、exec()以及等价于IPC和共享存储器的消息通信的函数,即W.Richard Stevens,“Unixnetwork programming,second edition,Vol.2,IPC:inter-process communication”,Pearson Education,2000,在机器人上当前使用的OS之外的OS上实现。在Linux上准备的就绪环境中,在源代码一级上对象与机器人内部的代码兼容,因此可以描述在该二者的系统上执行的代码。
如上所述,TCP网关对象在该仿真环境中是类似实现的,并且各自TCP网关的端口号相互匹配,该两个系统可以对称地彼此相互连接,如图23所示。因此,机器人中的对象和远程主机上的子对象(object son)可以实时地相互通信。远程主机上对象的开发方可以任意地使用机器人的传感器信息,并使用便利的工具,例如在Linux上的工具,命令操作机器人。在远程主机上通过实际地执行复杂的图像识别、然后根据图像识别的结果操作机器人,或者在与机器人通信的同时,在远程主机上通过重新汇编市场可得的宠物程序的上层对象、并执行该对象,可以确认在实时可操作性上该技术不低于独立系统。
当然,在通用的计算机、例如Linux上开发软件比在嵌入的装置上开发软件要方便的多。而且,对于普遍性,使对机器人的编程在全世界通用的开发环境上进行具有明显的优点。
也可以在用于嵌入的开发环境中最终重新汇编如此开发的代码,并将商用的软件包制作为独立于系统的软件。
现在将描述该技术到多CPU机器人的应用。上述的内部对象通信的扩展机理也可以应用到具有两个或多个用于嵌入的CPU的机器人系统。当前,两个CPU可以通过上述用于机器人的预定平台技术、称作OPEN-R的总线相互通信。通过引入该总线通信的协议转换对象,可以任意地定义在一个CPU中的用于动作控制的对象组、以及在另一CPU中思考类型(thinking-type)的对象组之间的通信。
如上所述,通过引入TCP对象使在内部对象通信中发送的数据得以从网络中使用,并且在通用的计算机上、例如Unix或Linux上实现上述用于机器人的预定平台技术的编程框架。而且,可以呈现该平台技术的体系结构可移植性,并且通过结合网关和仿真器可以实现用于无缝执行、以及在机器人和远程主机之间对象开发的环境的构建。
现在将描述使用该网关对象的网络系统的具体实例。图24示出根据上述用于内部对象通信的框架的、用于执行所谓的足球狗的机器人软件(包括多个对象组的软件)结构的示例。
用于足球狗的程序是使机器人设备象足球球员一样执行寻找球、然后接近球并踢球的动作的程序。该足球狗程序具有用于执行该动作的描述,并根据该描述选择执行任务所需的软件组件(对象)。如果需要,则重新构建整个系统。
图24所示的每一个对象的功能概述如下。VRComm61是用于访问机器人设备1的各单元的对象。OMPsd62是用于处理距离传感器的信息的对象。OMCdt63是用于根据颜色检测计算球的位置的对象。OMTE64是用于管理颈部的姿势以控制眼睛朝向球的对象。OMLE2_S65是用于控制行走动作的对象。OMNE66是用于控制从落下恢复的对象。OMSE67是用于控制尾巴的对象。OMoNET68是用于执行动作控制对象之间的专属控制和姿势信息管理的对象。OMGsensor69是用于检测机器人设备的身体姿势的对象。OMBC70是用于管理电池信息的对象。SoccerDog71是用于计划踢球时的动作的对象。这些对象的连接通过如图25至27所示的用于每一个对象连接的连接文件实现。为了方便起见,将图25至27所示的连接文件针对页面空间分开,而描述实际上按照图25、26和27的顺序连续。
现在将描述在该结构的现有对象组中新开发SoccerDog对象70的情况(软件开发环境的情况)。执行如下所述的处理,新开发SoccerDog对象70。
仅将SoccerDog对象70传入远程系统30,而将其它的现有对象留在机器人设备1中。
在机器人设备1一方,安排一网关对象(图20所示的TCP网关对象48)取代SoccerDog对象,并将与该SoccerDog对象连接的所有服务连接到该网关对象上。另一方面,在远程系统30一方,引入一网关对象(图20所示的TCP网关对象52)代替现有对象,并将到该SoccerDog对象所有连接指引到该网关对象上。
如此连接之后,可以在任何时间进行使用作为服务器的机器人设备1上的网关对象、从远程系统30的连接。因此,可以通过在机器人设备1上编译之后、引导机器人设备1上的系统并执行(启动)SoccerDog对象,使整个系统操作。设置了一个在远程系统30上开发SoccerDog对象的环境。也就是说,在远程系统30(个人计算机32)上的SoccerDog对象和机器人设备1的对象之间构建了内部对象通信。
如果在SoccerDog对象中存在某些故障,则通过例如停止该SoccerDog对象执行在远程系统30上的SoccerDog对象的开发,然后在远程系统30上再次修正、编译和执行该SoccerDog对象。例如,在SoccerDog对象中的故障可能是如下情形,即,在使用该SoccerDog对象开发新操作(例如,用于踢球动作的新操作)时,机器人设备1可能不能正常执行该新操作。在这种情况下,停止SoccerDog对象,在远程系统30上再次修正、编译和执行。
在调整故障、以及开发最终结束之后,将远程系统30上的SoccerDog对象的源代码重新编译,用于目标系统(机器人设备1)的环境,并与现有对象链接,由此准备用于机器人设备1的执行程序。将执行程序引入到机器人设备1中。机器人设备1由如此引入的执行程序控制操作。
以上述的方式,通过根据本发明的网络系统开发用于执行足球狗的机器人软件。
由于该软件(SoccerDog对象)是在远程系统30和机器人设备1彼此互联的状态下、在远程系统30上开发的,所以不需要在机器人设备1上再次引导整个系统,并可以修正(处理)SoceerDog对象。由此,可以高效地开发SoccerDog对象。
由于该软件的开发不需要将程序下载到机器人设备1,所以可以实现高效开发。在作为终端的远程系统30(个人计算机32)上,可以使用通用的程序,比如在常规远程系统(个人计算机32)上使用的调试器和剖析器(profiler),因此可以通过高效地利用资源来开发软件。
上述实例是开发环境的一个示例。对于用户方的示范应用,现在将描述如下情形,即,准备一程序,从而用户通过个人计算机等与机器人设备1通信,以便观测机器人设备1的内部状态、或者向机器人设备1发送命令。
通常,为了实现该功能,不仅需要在个人计算机上准备程序,而且需要将用于发送感情(emotion)数据到个人计算机32的代码添加到测量机器人设备1的感情的机器人设备1上的模块(对象)中,以及将用于从个人计算机32接收数据的代码添加到用于执行接收操作命令的对象(机器人设备1的对象)中。
另一方面,在根据本发明的网络系统中,使每一个软件模块(对象)根据如上所述的内部对象通信的框架进行操作。如果可以引入用于中继网络通信的网关对象,则个人计算机32和机器人设备1的对象之间的内部对象通信可以简单地通过重写连接文件、以及将现有机器人设备1的感情输出和操作命令接收服务与该网关对象连接来构建,并且在每一个对象中执行所述处理。
因此,可以在个人计算机32上新开发程序,而不用改变嵌入在现有机器人设备1中的程序。例如,用户可以通过个人计算机32等与机器人设备1通信,以便观测机器人设备1的内部状态(或向外输出对象的处理状态),或者向机器人设备1发送命令。用户也可以向机器人设备1添加新功能。
通过使用本发明如此构建网络,可以达到下述效果。
机器人系统(机器人设备)的程序(软件)开发方可以在高度便利的远程系统上开发程序。
由于可以通过实际操作机器人设备1来进行开发,而不象仿真器或类似的那样,所以开发方不再受到真实环境和仿真器环境不同的困扰。也就是说,虽然设置模仿真实环境的仿真器环境非常困难,但是开发方可以不用设置该仿真器环境而开发程序。
另外,由于将相同的源代码用作目标系统(目标板或机器人设备)的源代码和远程系统的源代码,所以伴随系统变化的引用工作(传输工作)将非常简单,并可以减少出错的可能性。
此外,通过简单地将内部对象通信的服务与网关对象相连接,可以使用网络来扩展功能,而不用改变现有的机器人程序。
由于机器人设备上的程序与远程系统上的程序的融合非常方便,并且可以在远程系统上开发程序,所以不能在机器人设备1上使用计算机资源进行的处理,可以通过远程系统的强大处理能力来实现。因此,可以开发更加复杂的程序。
此外,用作本发明实施例的机器人设备并不仅限于具有图1所示外观的设备。例如,机器人设备1也可以具有更象具体动物的外观/形状,如图28所示。
从上面的描述中可以清楚地看出,根据本发明的通信设备包括:第一通信部件,具有用于向第一电子装置的信息处理进程发送和从其接收数据的信息处理进程;以及第二通信部件,具有用于向第二电子装置的信息处理进程发送和从其接收数据的信息处理进程。当第一通信部件和第二通信部件通过无线或有线连接彼此互联时,在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。因此,由于第一通信部件的信息处理对象和第二通信部件的对象之间的内部进程通的信运行与同一系统上的内部进程通信相似,所以可以将第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的通信处理为同一系统上的内部进程通信。
根据本发明的通信方法包括步骤:通过无线或有线连接将具有用于向第一电子装置的信息处理进程发送和从其接收数据的信息处理进程的第一通信部件、和具有用于向第二电子装置的信息处理进程发送和从其接收数据的信息处理进程的第二通信部件相连接;以及在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。因此,由于第一通信部件的信息处理对象和第二通信部件的对象之间的内部进程通信的运行与同一系统上的内部进程通信相似,所以将第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的通信处理为同一系统上的内部进程通信。
根据本发明的信息处理系统包括:电子装置,由信息处理进程控制;信息处理设备,其中采用控制电子装置的信息处理进程,并处理该信息处理进程;以及通信部件,用于在电子装置和信息处理设备之间进行无线或有线通信。该信息处理设备使用通信部件在电子装置被操作时电子装置的信息处理进程和其采用的信息处理进程之间进行通信,然后使用从电子装置的信息处理进程发送的数据,并处理其所采用的信息处理进程。因此,该信息处理设备可以处理(例如,进行)考虑了真实环境中的电子装置的信息处理进程。
根据本发明的程序准备方法包括:程序准备步骤,在信息处理设备中,使用通信部件在当由信息处理进程控制的电子装置被操作时,电子装置的该信息处理进程和信息处理设备的信息处理进程之间进行无线或有线通信,并使用从电子装置的信息处理进程所发送的数据,准备用于电子装置的信息处理进程;以及程序嵌入步骤,将在程序准备步骤中准备的信息处理进程嵌入电子装置中。因此,信息处理设备考虑真实环境中的电子装置准备而信息处理进程。电子装置将考虑了真实环境而准备的信息处理进程嵌入于其中,并根据该信息处理进程操作。由于信息处理进程是考虑了真实环境而准备的,所以电子装置可以没有任何故障地操作。

Claims (36)

1.一种通信设备,包括:
第一通信部件,具有用于向第一电子装置的信息处理进程发送和从其接收数据的信息处理进程;以及
第二通信部件,具有用于向第二电子装置的信息处理进程发送和从其接收数据的信息处理进程;
其中,当第一通信部件和第二通信部件通过无线或有线连接彼此互联时,在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。
2.如权利要求1所述的通信设备,其中所述信息处理进程是由面向对象系统准备的程序构成的。
3.如权利要求1所述的通信设备,其中第一电子装置是机器人设备,其操作由信息处理进程控制,第二电子装置是信息处理设备。
4.如权利要求1所述的通信设备,其中在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信中执行到网络通信的协议转换,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。
5.如权利要求4所述的通信设备,其中到TCP/IP(传输控制协议/因特网协议)的转换是通过到网络通信的协议转换而实现的。
6.如权利要求1所述的通信设备,其中用于发送和接收第一和第二通信部件的数据的信息处理进程具有其中描述了通信系统设置的设置文件,并根据设置文件的描述项目执行在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信。
7.如权利要求6所述的通信设备,其中第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信的服务名称在所述设置文件中描述,并且
用于发送和接收第一和第二通信部件的数据的信息处理进程,根据在设置文件中描述的服务名称,执行在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信,由此在第一电子装置的信息处理进程和第二电子装置的信息处理进程之间执行相应于服务名称的内部进程通信。
8.如权利要求6所述的通信设备,其中在设置文件中描述在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的连接的对应项目,并且
用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程,根据在设置文件中描述的连接的对应项目彼此互相连接,以便执行内部进程通信。
9.一种通信方法,包括步骤:通过无线或有线连接将具有用于向第一电子装置的信息处理进程发送和从其接收数据的信息处理进程的第一通信部件、和具有用于向第二电子装置的信息处理进程发送和从其接收数据的信息处理进程的第二通信部件相连接;以及在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现第一电子装置的信息处理进程和第二电子装置的信息处理进程之间的内部进程通信。
10.一种信息处理系统,包括:
电子装置,由信息处理进程控制;
信息处理设备,其中采用用来控制电子装置的信息处理进程,并处理该信息处理进程;以及
通信部件,用于在电子装置和信息处理设备之间进行无线或有线通信;
其中,该信息处理设备使用通信部件在电子装置被操作时电子装置的信息处理进程和其采用的信息处理进程之间进行通信,然后使用从电子装置的信息处理进程发送的数据,并处理其所采用的信息处理进程。
11.如权利要求10所述的信息处理系统,其中所述信息处理进程是由面向对象系统准备的程序构成的。
12.如权利要求10所述的信息处理系统,其中信息处理设备进行所述信息处理进程,作为对信息处理进程的处理。
13.如权利要求10所述的信息处理系统,其中信息处理设备向外输出信息处理进程的处理状态,作为对信息处理进程的处理。
14.如权利要求10所述的信息处理系统,其中通信部件包括:第一通信部件,具有用于向电子装置的信息处理进程发送和从其接收数据的信息处理进程;以及第二通信部件,具有用于向该信息处理设备的信息处理进程发送和从其接收数据的信息处理进程;并且
当第一通信部件和第二通信部件通过无线或有线连接彼此互联时,在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现电子装置的信息处理进程和信息处理设备的信息处理进程之间的内部进程通信。
15.如权利要求14所述的信息处理系统,其中在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信中执行到网络通信的协议转换,由此实现电子装置的信息处理进程和信息处理设备的信息处理进程之间的内部进程通信。
16.如权利要求15所述的信息处理系统,其中到TCP/IP(传输控制协议/因特网协议)的转换是通过到网络通信的协议转换而实现的。
17.如权利要求14所述的信息处理系统,其中用于发送和接收第一和第二通信部件的数据的信息处理进程具有其中描述了通信系统设置的设置文件,并根据设置文件的描述项目执行在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信。
18.如权利要求17所述的信息处理系统,其中电子装置的信息处理进程和信息处理设备的信息处理进程之间的内部进程通信的服务名称在所述设置文件中描述,并且
用于发送和接收第一和第二通信部件的数据的信息处理进程,根据在设置文件中描述的服务名称,执行在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信,由此在电子装置的信息处理进程和信息处理设备的信息处理进程之间执行相应于服务名称的内部进程通信。
19.如权利要求17所述的信息处理系统,其中在设置文件中描述在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的连接的对应项目,并且
用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程,根据在设置文件中描述的连接的对应项目彼此互相连接,以便执行内部进程通信。
20.一种程序准备方法,包括:
程序准备步骤,在信息处理设备中,使用通信部件当由信息处理进程控制的电子装置被操作时,电子装置的该信息处理进程和信息处理设备的信息处理进程之间进行无线或有线通信,并使用从电子装置的信息处理进程所发送的数据,准备用于电子装置的信息处理进程;以及
程序嵌入步骤,将在程序准备步骤中准备的信息处理进程嵌入电子装置中。
21.如权利要求20所述的程序准备方法,其中所述信息处理进程是由面向对象系统准备的程序构成的。
22.如权利要求20所述的程序准备方法,其中具有用于向电子装置的信息处理进程发送和从其接收数据的信息处理进程的第一通信部件、与具有用于向信息处理设备的信息处理进程发送和从其接收数据的信息处理进程的第二通信部件通过无线或有线连接彼此互联,并且在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间执行内部进程通信,由此实现电子装置的信息处理进程和信息处理设备的信息处理进程之间的内部进程通信。
23.如权利要求22所述的程序准备方法,其中在用于发送和接收第一通信部件的数据的信息处理进程和用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信中执行到网络通信的协议转换,由此实现电子装置的信息处理进程和信息处理设备的信息处理进程之间的内部进程通信。
24.如权利要求23所述的程序准备方法,其中到TCP/IP(传输控制协议/因特网协议)的转换是通过到网络通信的协议转换而实现的。
25.如权利要求22所述的程序准备方法,其中用于发送和接收第一和第二通信部件的数据的信息处理进程具有其中描述了通信系统设置的设置文件,并根据设置文件的描述项目执行在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信。
26.如权利要求25所述的程序准备方法,其中电子装置的信息处理进程和信息处理设备的信息处理进程之间的内部进程通信的服务名称在所述设置文件中描述,并且
用于发送和接收第一和第二通信部件的数据的信息处理进程,根据在设置文件中描述的服务名称,执行在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的内部进程通信,由此在电子装置的信息处理进程和信息处理设备的信息处理进程之间执行相应于服务名称的内部进程通信。
27.如权利要求25所述的程序准备方法,其中在设置文件中描述在用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程之间的连接的对应项目,并且
用于发送和接收第一通信部件的数据的信息处理进程与用于发送和接收第二通信部件的数据的信息处理进程,根据在设置文件中描述的连接的对应项目彼此互相连接,以便执行内部进程通信。
28.一种网络系统,其中在具有由内部对象通信构成的运行控制程序的机器人设备和由内部对象通信构成的计算机系统之间通过有线或无线通信进行数据通信,该网络系统包括:
网关对象,用于在机器人设备和计算机系统之间执行内部对象通信和网络通信之间的动态协议转换。
29.如权利要求28所述的网络系统,其中网关对象使内部对象通信中限定的通信的服务名称与网络通信中使用的地址和端口号相对应。
30.如权利要求28所述的网络系统,其中到TCP/IP(传输控制协议/因特网协议)的转换是通过到网络通信的协议转换而实现的。
31.一种通信方法,其中在由具有内部对象通信构成的机器人设备和由具有内部对象通信构成的计算机系统之间通过有线或无线通信进行数据通信,该方法包括:
在机器人设备和计算机系统之间的内部对象通信和网络通信之间进行协议转换。
32.如权利要求31所述的通信方法,其中协议转换通过网关对象执行,并且网关对象使内部对象通信中限定的通信的服务名称与网络通信中使用的地址和端口号相对应。
33.如权利要求31所述的通信方法,其中到TCP/IP(传输控制协议/因特网协议)的转换是通过到网络通信的协议转换而实现的。
34.一种机器人设备,具有由内部对象通信构成的运行控制程序,并与由内部对象通信构成的计算机系统通过有线或无线通信进行数据通信,该机器人设备包括:
网关对象,用于与计算机系统执行内部对象通信和网络通信之间的动态协议转换。
35.如权利要求34所述的机器人设备,其中网关对象使内部对象通信中限定的通信的服务名称与网络通信中使用的地址和端口号相对应。
36.如权利要求4所述的机器人设备,其中到TCP/IP(传输控制协议/因特网协议)的转换是通过到网络通信的协议转换而实现的。
CNB018030726A 2000-08-28 2001-08-28 通信设备和通信方法、网络系统、以及机器人设备 Expired - Fee Related CN100380324C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP258039/00 2000-08-28
JP258039/2000 2000-08-28
JP2000258039 2000-08-28

Publications (2)

Publication Number Publication Date
CN1392979A true CN1392979A (zh) 2003-01-22
CN100380324C CN100380324C (zh) 2008-04-09

Family

ID=18746406

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018030726A Expired - Fee Related CN100380324C (zh) 2000-08-28 2001-08-28 通信设备和通信方法、网络系统、以及机器人设备

Country Status (4)

Country Link
US (1) US7388879B2 (zh)
EP (1) EP1315087A4 (zh)
CN (1) CN100380324C (zh)
WO (1) WO2002019104A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452289B (zh) * 2007-12-06 2011-09-28 Abb研究有限公司 机器人服务系统和用于为机器人提供远程服务的方法
CN108306844A (zh) * 2016-10-09 2018-07-20 上海思立微电子科技有限公司 通过应用编程接口的远程通信和远程编程
CN112219173A (zh) * 2018-06-22 2021-01-12 软件伺服系统公司 运动控制程序、运动控制方法以及运动控制装置
US11300939B2 (en) 2018-06-22 2022-04-12 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
US11310114B2 (en) 2019-08-14 2022-04-19 Cisco Technology, Inc. Industrial machine configuration using private wireless networking
US11314217B2 (en) 2018-06-22 2022-04-26 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412377B2 (en) 2000-01-24 2013-04-02 Irobot Corporation Obstacle following sensor scheme for a mobile robot
US8788092B2 (en) 2000-01-24 2014-07-22 Irobot Corporation Obstacle following sensor scheme for a mobile robot
US6956348B2 (en) 2004-01-28 2005-10-18 Irobot Corporation Debris sensor for cleaning apparatus
US6883201B2 (en) 2002-01-03 2005-04-26 Irobot Corporation Autonomous floor-cleaning robot
US7571511B2 (en) 2002-01-03 2009-08-11 Irobot Corporation Autonomous floor-cleaning robot
US6690134B1 (en) 2001-01-24 2004-02-10 Irobot Corporation Method and system for robot localization and confinement
FR2820222B1 (fr) * 2001-01-26 2003-03-21 Schneider Automation Procede de programmation d'une application d'automatisme
US8396592B2 (en) 2001-06-12 2013-03-12 Irobot Corporation Method and system for multi-mode coverage for an autonomous robot
US7663333B2 (en) 2001-06-12 2010-02-16 Irobot Corporation Method and system for multi-mode coverage for an autonomous robot
US9128486B2 (en) 2002-01-24 2015-09-08 Irobot Corporation Navigational control system for a robotic device
US8428778B2 (en) 2002-09-13 2013-04-23 Irobot Corporation Navigational control system for a robotic device
US8386081B2 (en) 2002-09-13 2013-02-26 Irobot Corporation Navigational control system for a robotic device
US20050234592A1 (en) * 2004-01-15 2005-10-20 Mega Robot, Inc. System and method for reconfiguring an autonomous robot
US7332890B2 (en) 2004-01-21 2008-02-19 Irobot Corporation Autonomous robot auto-docking and energy management systems and methods
JP2007530978A (ja) 2004-03-29 2007-11-01 エヴォリューション ロボティクス インコーポレイテッド 反射光源を使用する位置推定方法および装置
KR101142564B1 (ko) * 2004-06-24 2012-05-24 아이로보트 코퍼레이션 자동 로봇 장치용의 원격 제어 스케줄러 및 방법
US7706917B1 (en) 2004-07-07 2010-04-27 Irobot Corporation Celestial navigation system for an autonomous robot
US11209833B2 (en) 2004-07-07 2021-12-28 Irobot Corporation Celestial navigation system for an autonomous vehicle
US8972052B2 (en) 2004-07-07 2015-03-03 Irobot Corporation Celestial navigation system for an autonomous vehicle
US20090018698A1 (en) * 2004-11-26 2009-01-15 Electronics And Telecommunications Research Instit Robot system based on network and execution method of that system
US8392021B2 (en) 2005-02-18 2013-03-05 Irobot Corporation Autonomous surface cleaning robot for wet cleaning
US7620476B2 (en) 2005-02-18 2009-11-17 Irobot Corporation Autonomous surface cleaning robot for dry cleaning
DE602006014364D1 (de) 2005-02-18 2010-07-01 Irobot Corp Autonomer oberflächenreinigungsroboter für nass- und trockenreinigung
US8930023B2 (en) 2009-11-06 2015-01-06 Irobot Corporation Localization by learning of wave-signal distributions
EP1941411B1 (en) * 2005-09-30 2011-09-14 iRobot Corporation Companion robot for personal interaction
US7835821B2 (en) * 2005-11-17 2010-11-16 Electronics And Telecommunications Research Institute Robot server for controlling robot, system having the same for providing content, and method thereof
KR101074937B1 (ko) 2005-12-02 2011-10-19 아이로보트 코퍼레이션 모듈형 로봇
EP2466411B1 (en) 2005-12-02 2018-10-17 iRobot Corporation Robot system
EP2816434A3 (en) 2005-12-02 2015-01-28 iRobot Corporation Autonomous coverage robot
ES2378138T3 (es) * 2005-12-02 2012-04-09 Irobot Corporation Movilidad de robot de cubrimiento
ES2706729T3 (es) 2005-12-02 2019-04-01 Irobot Corp Sistema de robot
EP3031377B1 (en) 2006-05-19 2018-08-01 iRobot Corporation Removing debris from cleaning robots
US8417383B2 (en) 2006-05-31 2013-04-09 Irobot Corporation Detecting robot stasis
KR100745641B1 (ko) * 2007-05-02 2007-08-02 주식회사 아이오. 테크 네트워크 기반의 로봇 시스템의 제어를 위한 통신 방법 및 데이터 구조
EP2574265B1 (en) 2007-05-09 2015-10-14 iRobot Corporation Compact autonomous coverage robot
JP2009011362A (ja) * 2007-06-29 2009-01-22 Sony Computer Entertainment Inc 情報処理システム、ロボット装置及びその制御方法
US8265800B2 (en) * 2007-08-20 2012-09-11 Raytheon Company Unmanned vehicle message conversion system
KR100974907B1 (ko) * 2007-12-17 2010-08-09 한국전자통신연구원 로봇 네트워크 시스템에서의 컨텐츠 전송/실행 장치 및방법
US20100180711A1 (en) 2009-01-19 2010-07-22 Comau, Inc. Robotic end effector system and method
EP2409457A4 (en) * 2009-03-17 2012-12-19 Comau Inc INDUSTRIAL COMMUNICATION SYSTEM AND METHOD
JP2011129115A (ja) * 2009-12-18 2011-06-30 Korea Electronics Telecommun 異機種ロボットの協業のためのコンポーネント連動装置およびそれに伴う方法
CN104127156B (zh) 2010-02-16 2017-01-11 艾罗伯特公司 真空吸尘器毛刷
US8879518B2 (en) 2012-02-08 2014-11-04 Acer Incorporated Method of timing reference management
US9131516B2 (en) 2012-03-30 2015-09-08 Acer Incorporated Method of preventing random access response collision
US8924011B2 (en) * 2012-04-03 2014-12-30 Knu-Industry Cooperation Foundation Intelligent robot apparatus responsive to environmental change and method of controlling and reconfiguring intelligent robot apparatus
US20130279383A1 (en) * 2012-04-20 2013-10-24 Acer Incorporated Method of Managing Discontinuous Reception Functionality
US9044863B2 (en) 2013-02-06 2015-06-02 Steelcase Inc. Polarized enhanced confidentiality in mobile camera applications
DE102015204641B4 (de) 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters
EP3403146A4 (en) 2016-01-15 2019-08-21 iRobot Corporation AUTONOMOUS MONITORING ROBOT SYSTEMS
KR102392113B1 (ko) * 2016-01-20 2022-04-29 삼성전자주식회사 전자 장치 및 전자 장치의 음성 명령 처리 방법
CN105938345A (zh) * 2016-06-06 2016-09-14 西安元智系统技术有限责任公司 一种通用控制器的控制方法
US10040195B2 (en) * 2016-06-21 2018-08-07 International Business Machines Corporation Recognizing a location of a robot shared in multiple data centers
PL3366409T3 (pl) 2017-02-23 2019-12-31 Comau S.P.A. Przegubowy robot przenoszący głowicę zgrzewająca do elektrycznego zgrzewania oporowego z elektrodami zlokalizowanymi po tej samej stronie; odpowiedni sposób zgrzewania elektrycznego oporowego komponentu do zgrzania
US11221497B2 (en) 2017-06-05 2022-01-11 Steelcase Inc. Multiple-polarization cloaking
US10100968B1 (en) 2017-06-12 2018-10-16 Irobot Corporation Mast systems for autonomous mobile robots
JP6748038B2 (ja) * 2017-08-15 2020-08-26 Vivita株式会社 情報処理装置
CN107688344B (zh) * 2017-08-22 2021-04-23 广东美的智能机器人有限公司 机器人的休眠控制方法及其装置
WO2019046965A1 (en) * 2017-09-08 2019-03-14 Robotiq Inc. SYSTEM AND METHOD FOR REMOTE ROBOT CONTROL
CN108326841B (zh) * 2017-12-19 2020-12-18 北京可以科技有限公司 模块化机器人及其系统、控制方法、构建提示方法及构建模块化机器人的校正方法
US11106124B2 (en) 2018-02-27 2021-08-31 Steelcase Inc. Multiple-polarization cloaking for projected and writing surface view screens
US11110595B2 (en) 2018-12-11 2021-09-07 Irobot Corporation Mast systems for autonomous mobile robots
US11076022B2 (en) * 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks
CN112589799B (zh) * 2020-12-10 2022-07-26 西北工业大学 一种面向集群的微型桌面机器人

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0474345A (ja) 1990-07-13 1992-03-09 Mitsubishi Electric Corp 動力伝達機構
JPH0474345U (zh) * 1990-11-05 1992-06-29
US5410641A (en) * 1991-10-23 1995-04-25 Seiko Epson Corporation Intelligent cartridge for attachment to a printer to perform image processing tasks in a combination image processing system and method of image processing
US5923659A (en) * 1996-09-20 1999-07-13 Bell Atlantic Network Services, Inc. Telecommunications network
JP3870983B2 (ja) * 1997-02-17 2007-01-24 ソニー株式会社 電子機器制御装置および方法、並びに電子機器
JPH10240504A (ja) 1997-02-28 1998-09-11 Digital Electron Corp 通信プログラムの作成方法
US5909569A (en) 1997-05-07 1999-06-01 International Business Machines Terminal emulator data stream differencing system
JP2873222B2 (ja) * 1997-05-12 1999-03-24 川崎重工業株式会社 ロボット情報処理装置
JPH10320367A (ja) 1997-05-19 1998-12-04 Fujitsu Ltd ネットワーク移動可能なオブジェクト間の通信方法及び通信システム
US6304894B1 (en) * 1997-09-22 2001-10-16 Hitachi, Ltd. Proxy server and recording medium storing a proxy server program
JP3765356B2 (ja) 1997-12-22 2006-04-12 ソニー株式会社 ロボツト装置
US6127941A (en) * 1998-02-03 2000-10-03 Sony Corporation Remote control device with a graphical user interface
US6324543B1 (en) 1998-03-06 2001-11-27 International Business Machines Corporation Dynamic object migration method using proxy object links to support automatic object distribution in an object-oriented environment
US6265974B1 (en) * 1998-06-19 2001-07-24 Lexent Technologies, Inc. Systems and methods for monitoring spatial relationship between mobile objects
US6505097B1 (en) * 1999-01-13 2003-01-07 Sony Corporation Arithmetic processing device, inter-object communication method, and robot
JP4366617B2 (ja) * 1999-01-25 2009-11-18 ソニー株式会社 ロボット装置
KR20010053322A (ko) * 1999-04-30 2001-06-25 이데이 노부유끼 전자 페트 시스템, 네트워크 시스템, 로봇, 및 기억 매체
US7140025B1 (en) * 1999-11-16 2006-11-21 Mci, Llc Method and apparatus for providing a real-time message routing communications manager
US7085805B1 (en) * 2000-07-07 2006-08-01 Sun Microsystems, Inc. Remote device management in grouped server environment
JP2002027573A (ja) * 2000-07-11 2002-01-25 Matsushita Electric Works Ltd 通信システム
TWI236610B (en) * 2000-12-06 2005-07-21 Sony Corp Robotic creature device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452289B (zh) * 2007-12-06 2011-09-28 Abb研究有限公司 机器人服务系统和用于为机器人提供远程服务的方法
CN108306844A (zh) * 2016-10-09 2018-07-20 上海思立微电子科技有限公司 通过应用编程接口的远程通信和远程编程
CN108306844B (zh) * 2016-10-09 2020-07-24 上海思立微电子科技有限公司 用于服务器与客户端之间的api通信的方法
CN112219173A (zh) * 2018-06-22 2021-01-12 软件伺服系统公司 运动控制程序、运动控制方法以及运动控制装置
CN112219173B (zh) * 2018-06-22 2021-12-24 软件伺服系统公司 运动控制程序、运动控制方法以及运动控制装置
US11300939B2 (en) 2018-06-22 2022-04-12 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
US11314217B2 (en) 2018-06-22 2022-04-26 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
US11392103B2 (en) 2018-06-22 2022-07-19 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
US11310114B2 (en) 2019-08-14 2022-04-19 Cisco Technology, Inc. Industrial machine configuration using private wireless networking

Also Published As

Publication number Publication date
US7388879B2 (en) 2008-06-17
EP1315087A4 (en) 2006-07-26
WO2002019104A1 (fr) 2002-03-07
CN100380324C (zh) 2008-04-09
US20030095514A1 (en) 2003-05-22
EP1315087A1 (en) 2003-05-28

Similar Documents

Publication Publication Date Title
CN1392979A (zh) 通信设备和通信方法、网络系统、以及机器人设备
CN1200345C (zh) 算术处理装置,对象对对象的通信方法和机器人装置
CN100351789C (zh) 信息提供设备、方法和信息提供系统
CN1280716C (zh) 计算机处理方法、分布式计算方法和网络计算方法
CN1252592C (zh) 通信服务供应方法和设备
CN1043176C (zh) 一种电信交换系统
CN1293465C (zh) Gui显示装置及光标或gui组件动画显示处理方法
CN1143208C (zh) 用于消息转换的装置和方法
CN1609796A (zh) 应用编程接口(api)的设计
CN1947106A (zh) 通知方法、连接装置、通信方法以及程序
CN1363074A (zh) 信息处理设备和方法、数据存储设备和程序
CN1680959A (zh) 进程编辑设备和方法以及进程管理设备和方法
CN1232555A (zh) 自动生成实时过程控制系统的控制图形的系统和方法
CN1256636A (zh) 便携式电子装置、娱乐系统和记录媒体
CN1700652A (zh) 一种基于协同模板的协同设计方法
CN1841328A (zh) 脚本语言的自动机方法
CN1229728C (zh) 具有会话管理和分布式管理功能以及相应的操作管理机制的web应用系统
CN100338575C (zh) 娱乐系统及数据供给方法、数据处理器、数据储存控制器
CN1825343A (zh) 创作和执行基于流程且基于约束的工作流的统一模型
CN1280727C (zh) 一种人机命令测试方法
CN1258704C (zh) 基于网格环境的多计算引擎协同方法
CN1256637A (zh) 便携式电子装置和娱乐系统
CN1870028A (zh) 工作流程系统、工作流程处理方法和工作流程处理程序
CN1270238C (zh) 信息处理设备、信息处理方法、和机器人设备
CN1396856A (zh) 机器人设备和机器人设备动作控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080409

Termination date: 20090928