[go: up one dir, main page]

CN1388927A - 信息处理设备、信息处理方法 、和机器人设备 - Google Patents

信息处理设备、信息处理方法 、和机器人设备 Download PDF

Info

Publication number
CN1388927A
CN1388927A CN01802695A CN01802695A CN1388927A CN 1388927 A CN1388927 A CN 1388927A CN 01802695 A CN01802695 A CN 01802695A CN 01802695 A CN01802695 A CN 01802695A CN 1388927 A CN1388927 A CN 1388927A
Authority
CN
China
Prior art keywords
information processing
shared memory
data
access
robot
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
CN01802695A
Other languages
English (en)
Other versions
CN1270238C (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 CN1388927A publication Critical patent/CN1388927A/zh
Application granted granted Critical
Publication of CN1270238C publication Critical patent/CN1270238C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • G05B19/4187Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow by tool management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Automation & Control Theory (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Robotics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Manufacturing & Machinery (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

一种机器人设备(1)包括具有多个对象的中央处理单元(CPU),并适于根据在对象之间进行的内部对象通信执行控制处理,所述中央处理进程控制多个对象对由该多个对象共享的共享存储器进行访问、以及由此进行内部对象通信。具体地,中央处理进程根据所述对象对共享存储器M上的预定区域M1、M2的访问,生成指针P11、P12、P13、P21、P22,然后由相应的参考数量计量对象RO1、RO2计量所述指针,并根据所计量的指针数量控制访问,从而执行内部对象通信。这使得容易地实现通畅的内部对象通信。

Description

信息处理设备、信息处理方法、和机器人设备
                         技术领域
本发明涉及使用多个进程执行各种处理的信息处理设备和信息处理方法,以及使用多个进程确定其动作等的机器人设备。
                         背景技术
在多个分布式进程之间进行通信(内部进程通信)以便实时地执行任务的情况下,任务的进行状态根据每一个进程处理的权重、优先权、处理周期等而不同。例如,如果高速执行的进程A的处理结果(数据)被从进程A发送到低速执行的进程B,则进程B充满了从进程A收到的队列,并且所收到的队列溢出。该队列溢出的问题出现在实时系统操作的不同点上。为了防止该问题的发生,必须通过特定的技术在进程之间进行握手。例如,提出了如下三种技术(Basics and Application of OS,A.S.Tannenbaum,Toppan,p.464):
(1)阻塞传输;
(2)包含复制的非阻塞传输;以及
(3)包含中断的非阻塞传输。
提出了该三种技术(1)至(3)。阻塞传输(1)是一种发送方等待,一直到传输结束并且在接收方的队列清空为止的传输技术。包含复制的非阻塞传输(2)是一种将数据复制到系统的一个区域、从而让发送方的进程继续进行的传输技术。包含中断的非阻塞传输(3)是一种通过中断处理执行写入传输缓冲器的传输技术。
另外,尽管可以认为上述的阻塞传输(1)是一种安全可靠的传输技术,但是该技术并不实用,因为当任意改变作为组件的软件或进程(例如,面向对象的软件,在下文中称为对象)的连接时,根据连接方式很有可能发生死锁。
面向对象的软件配置在例如宠物类型的机器人设备等中。宠物类型的机器人设备根据各种通过内部对象通信(或内部进程通信)的处理(例如,数据通信),例如作出类似于特定动物的姿势。
上述包含复制的非阻塞传输(2)的效率很低,因为它重复进行多余的复制。例如,在允许多个对象和多个对象之间通信(连接)的内部对象通信中,连接数量上的增加导致复制次数的增加,并因此导致用作缓冲器的存储器数量的增加。
在上述包含中断的非阻塞传输(3)中,不用执行从传输缓冲器的多余复制,因此节省了执行后续处理的时间。但是,由于中断通知用户已经可以再次写入传输缓冲器的信息,使用户变得更加难于处理编程。因此,一般认为包含中断的非阻塞传输(3)的问题要多于优点。
因此,希望实现如包含中断的非阻塞传输(3)中那样不需要从传输缓冲器中进行多余地复制,并解决该技术的问题,从而使用户不会感觉到处理上的麻烦。
                         发明内容
由此,鉴于现有技术的上述状态,本发明的目的是提供一种能够方便地实现通畅的内部进程通信的信息处理设备、信息处理方法、以及一种机器人设备。
根据本发明的信息处理设备包括控制装置,具有多个信息处理进程,并适于根据在信息处理进程之间进行的内部进程通信执行控制处理,所述控制装置控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信。
在具有上述结构的信息处理设备中,每一个独立地执行处理的信息处理进程共享在共享存储器中的数据,并由此执行各种处理。
根据本发明的信息处理方法具有多个信息处理进程,并适于根据在信息处理进程之间进行的内部进程通信执行控制处理,该信息处理方法包括控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信。
在该信息处理方法中,每一个独立地执行处理的信息处理进程共享在共享存储器中的数据,并由此执行各种处理。
根据本发明的机器人设备包括:输出装置,用于表达动作;以及控制装置,具有多个信息处理进程,并适于根据在信息处理进程之间进行的内部进程通信执行输出装置的控制处理,所述控制装置控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信。
在具有上述结构的机器人设备中,每一个独立地执行处理的信息处理进程共享在共享存储器中的数据,并由此执行输出装置的控制处理。
也就是说,在根据本发明的信息处理设备中,当具有多个信息处理进程、并适于根据在信息处理进程之间进行的内部进程通信执行控制处理的控制装置,控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信时,每一个独立地执行处理的信息处理进程能够共享在共享存储器中的数据,并由此执行各种处理。
另外,在根据本发明的信息处理方法中,当配置多个信息处理进程,然后根据在信息处理进程之间进行的内部进程通信执行控制处理,接着控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行的访问以便进行内部进程通信时,每一个独立地执行处理的信息处理进程能够共享在共享存储器中的数据,并由此执行各种处理。
此外,在根据本发明的机器人设备中,当具有多个信息处理进程、并适于根据在信息处理进程之间进行的内部进程通信执行输出装置的控制处理的控制装置,控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信时,每一个独立地执行处理的信息处理进程能够共享在共享存储器中的数据,并由此执行输出装置的控制处理。
                         附图说明
图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是用于说明指针去除的图;
图22是用于说明当复制数据时指针的动作情况的图;
图23是用于说明当重写数据时指针的动作情况的图;
图24是用于说明当在具有不同存储空间的对象之间开始内部对象通信时的处理的图;
图25是用于说明当在具有不同存储空间的对象之间结束内部对象通信时的处理的图;
图26是用于说明当向第三方对象转包(sublet)数据时的处理的图;
图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向全身供电。
正如将在后面所详细描述的,中央处理单元22具有控制装置的功能,该控制装置具有多个信息处理进程(对象),并适于根据在这些信息处理进程(对象)之间进行的内部进程通信(内部对象通信)执行控制处理,并控制对多个信息处理进程(对象)对由该多个信息处理进程(对象)共享的共享存储器进行访问、并由此进行内部进程通信(内部对象通信)。
(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所示的转移图中的箭头的对象的方法(项目(entry))。也就是说,如果在睡觉状态下输入行走的命令,则依次开始该动作重演对象的响应项目,以便姿势依次变化为坐、站和行走。在这种情况下,当到达最终的行走状态时,开始一相应于表明该状态的自循环的行走模式生成器的项目。
动作重演通过启动动作网络的项目为相应的姿势变化输出关节角度命令值。具体地,动作重演保持作为关键数据的所登记的离散关节角度命令值,并使用该关键数据通过插值处理输出一序列角度命令值。
行走模式生成器计算并输出每一个关节角度命令值,以便在不取决于形式的软件所指定的方向上运动。
视觉例如是用于图像处理的对象,并执行处理以便从虚拟机器人对象接收电视摄像机6所获取的图像数据。由此,该视觉识别例如一红色对象,并检测和输出该红色对象相对于机器人设备1的位置及其视在尺寸(apparentsize)。
另一方面,在轮子类型中,取决于形式的软件(图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,WalkingPatternGenerator.MoNetOutData…O)DRX Wheel(
MotionConverter.MCData..S,MotionReplay2.MCData…O
MotionConverter.MCData..D,Wheel.MCData…O)                                                          …(4)
由此,在图8的情况下,设计机器人从基于DRX 4Legged的第一句描述中提取连接信息(连接数据)(DRX 4Legged后面括号中的描述),并通知对象管理器该连接信息,从而更新取决于形式的软件。
图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中指定具体的对象名称。该内部对象通信异步地执行。
图12是表示在该实施例中两个对象之间的内部对象通信的基本结构的图。在该实施例中,通过使用Ready(准备)信号和Notify(通报)信号来执行内部对象通信,以防止传输超出对象(在该实例中,对象B)的处理能力的数据。
在图12中,对象A从属于对象A的成员、其级别为0的主体向属于对象B的成员、级别为0的观测器发送数据,由此启动对象B的方法。在这种情况下所指的主体和观测器构成它们所属的对象中的所谓代理(surrogate)程序。
在该关联中,仅当从观测器发送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)
当加载对象时,对象管理器从该连接信息(连接数据)的描述中检测该加载的对象的对象名称。
另外,对象管理器保护堆栈存储器和堆阵(heap)存储器,并从预定的文件加载检测到的对象名称的对象。在这种情况下,对象管理器从操作系统(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处理完成时,对象管理器根据操作系统的系统命令执行卸载。访问所需对象的废弃器(destructer),也就是说,在这种情况下,访问对象A的废弃器,从而取消加载时执行的对象A的登记。另外,对象管理器开放堆栈存储器和堆阵存储器,由此完成对象A的卸载。
然后,对象管理器根据连接信息(连接数据)发出指令加载对象C,并类似于参照图16所述的上述处理接着启动DoInit、DoConnect、以及DoStart处理。由此,在操作期间,由对象A和B构成的结构变化成由对象B和C构成的结构,而不用编译。
上面参照图12至18描述了用于执行内部对象通信的对象的连接。下面将描述本发明实施例的实质部分。本发明涉及对象(进程)之间的内部对象(进程)通信,并适于实现通畅的内部对象通信。
如上所述,内部对象通信,也就是各自对象的数据输入和输出,是由所谓的代理程序比如对象和观测器管理的。由于各个对象之间的数据通信是通过在主体和观测器之间执行预定程序来实现的,如上所述,所以可以方便地实现各个对象之间的结构设计。
内部对象通信通常假定各个对象在不同的存储器空间中操作。因此,认为内部对象通信通过其中数据在不同的存储器空间上从发送方的对象复制到接收方的对象的技术来实现,或者通过其中将数据放置在能够由各个对象(存储器空间)参照的共享存储器上的技术来实现。
假设采用其中在存储器空间上复制数据的技术,虽然处理简单,但是复制必须至少执行两次,例如从观测器复制到主体和从主体复制到对象。另外,该技术在复制目标为大量数据的情况下存在明显的缺点,因为复制时间与连接数量成正比地增加。
假设采用其中对象使用共享存储器的技术,数据只需一次复制到共享存储器,并且连接数量的增加不影响复制时间。因此,该技术与前述技术相比具有性能优势。
但是,即使假定使用共享存储器,由于在共享存储器上的数据内容只有一个,所以必须保护数据,以防止在存在多个用户(使用共享存储器的对象)时该数据被所有的用户使用,并且保护数据以防止用户写入。也就是说,由于多个用户使用该数据,所以必须防止用户重写数据。
在这种情况下,可以使每一个用户(对象)执行共享存储器上的数据的管理(参考管理)。但是,使各用户执行数据的参考管理和保护数据不仅麻烦,而且如果用户处理失败并将数据破坏也是非常危险的。
因此,本发明实现对共享存储器上的数据管理,而无需用户(对象)管理数据。具体地,在应用本发明的数据管理中,计量参考共享存储器的次数(参考次数或访问次数),从而管理共享存储器上的数据。例如,在“MoreEffective(C++),”Scott Mayer,Addison-Wesley Publisher,pp.175-205中提出了自动计量参考次数的技术。本发明将该技术扩展为在不同的存储器空间上管理共享存储器上的数据的技术。
首先,将参照图19描述计量参考数量(参考次数)的原理、即表示共享存储器的用户(参考者)的值的原理。
允许每一个用户(对象)通过获取共享存储器指针(下文中简称为指针)对共享存储器M访问。具体地,如图19所示,允许分别获取指针P11、P12和P13的各用户访问共享存储器的第一个区域M1。允许分别获取指针P21和P22的各用户访问共享存储器的第二个区域M2。共享存储器M的第一个区域M1中的数据由分别获取指针P11、P12和P13的各用户共享(参考)。共享存储器的第二个区域M2中的数据由分别获取指针P21和P22的各用户共享(参考)。
实际上,如图19所示,允许根据指针P11、P12、P13、P21和P22访问(参考)各自区域是通过参考数量计量对象RO1和RO2保存(计量的)参考数量来实现的。在这种情况下,参考数量计量对象是用于控制多个对象根据指针数量访问共享存储器的访问数量计数对象,其中指针数量是根据对象对共享存储器M的访问生成的访问数量。也可以认为参考数量计量对象是用于控制多个对象访问共享存储器的通信管理对象。具体地,参考数量计量对象表示共享存储器上的单个内容以及通过参考该内容的各用户获取的(或分配的)指针数量。
由此管理用户对共享存储器上的预定区域的参考数量。例如,如果由参考数量计量对象测量的参考数量是2或更大,则参考数量计量对象指示多个用户正在访问该共享存储器上的预定区域。如果由参考数量计量对象测量的参考数量是0,则参考数量计量对象指示没有用户正在访问该共享存储器上的预定区域。如下面将叙述的,如果参考数量是0,则去除参考数量计量对象,并且使由去除的参考数量计量对象所指示的区域成为未使用区域。
参照图20,现在将描述生成指针的情况。在生成指针的情况下,新生成共享存储器(或在共享存储器上保护一区域),也就是说,该共享存储器是由用户新近访问的。
在共享存储器上新保护一区域的情况下,准备由用户使用的指针P31,并准备相应于指针P31的参考数量计量对象RO3,如图20所示。由新准备的参考数量计量对象RO3所指示的内容分配到由系统共有(pool)的共享存储器M上的未使用区域M3。由此,获取由参考数量计量对象RO3指示的指针P31的用户可以使用由参考数量计量对象RO3指示的区域M3。
例如,在将新区域用作内部对象通信时对象之间的数据传输缓冲器的情况下,执行这种新区域保护。在这种情况下,将要记录数据的共享存储器M上的预定区域M3自动分配为内部对象通信时进程之间通信所用的传输缓冲器。通过如此保护该新区域M3,使区域M3中的数据在对象之间共享,由此实现基于不同存储器空间上的对象共享数据的内部对象通信,如下面将描述的。
另外,现在将描述去除指针的情况。在去除指针的情况下,例如,结束用户访问共享存储器M。在去除指针的情况下,由去除目标指针参考的参考数量计量对象被另一个指针参考时,与该参考数量计量对象不被另一个指针参考时的处理不同。
具体地,如图21所示,如果被将要去除的指针P11参考的参考数量计量对象RO1同时还被其它指针P12和P13参考,则仅去除指针P11。然后,由参考数量计量对象RO1计量的参考数量从3变为2。该参考数量上的变化等价于参考数量计量对象RO1的改变。
另一方面,如果参考数量计量对象RO2除了将要去除的共享存储器指针P21之外,不被任何其它的指针参考,也就是说,如果由参考数量计量对象RO2计量的参考数量是1,则将要去除的指针P21和指针P21所参考的参考数量计量对象RO2被去除。由此,由去除的参考数量计量对象RO2指示的区域M2返回给系统,然后将其作为未使用的区域。另外,在上述只去除指针P11的情况下,仍将参考数量计量对象RO1所指示的区域M1作为一在用区域,因为关于该区域的参考数量不少于一个。
根据上述的处理(指针的动作情况),如果由参考数量计量对象计量的参考数量不小于2,则多个用户正在使用(即,参考)对应于该参考数量计量对象的共享存储器的预定区域,并且在去除指针(即,结束参考)的情况下如果参考数量不小于2,则保留该参考数量计量对象,由此保护其它用户使用(或参考)该数据。另一方面,如果由参考数量计量对象计量的参考数量是1,则一个用户正在使用(即,参考)对应于该参考数量计量对象的共享存储器的预定区域,并且不需要为其它用户保护使用(或参考)的数据。因此,通过将参考数量计量对象与指针一起去除,可以将预定区域变为未使用区域。
参照图22,现在将描述复制数据的情况。复制数据可以简单地通过改变作为参考目标的参考数量计量对象(即,增加或减少参考数量)来实现。具体地,如图22所示,当在第二区域M2中复制数据时,如果为新用户复制该数据,则生成参考指示该第二区域M2的参考数量计量对象RO2的新指针P21。如果为访问其它区域(例如,第一区域M1)的用户复制数据,则将用户的指针P13参考的目标改变到指示第二区域M2的第二参考数量计量对象RO2。由此,在该实例中,由指示第一区域M1的第一参考数量计量对象RO1计量的参考数量从3降为2,而由第二参考数量计量对象RO2计量的参考数量从1增加到3。
参照图23,现在将描述重写记录在共享存储器上的预定区域中的数据的情况。如图23所示,如果数据将被重写入的区域M2仅由重写该数据的用户(参考者)访问,也就是说,如果由参考数量计量对象RO2所计量的参考数量是1,则允许在区域M2中任意重写,因此可以直接在区域M2中重写数据。
另一方面,如果数据将被重写入的区域M1由包括重写该数据的用户在内的多个用户访问(也就是说,如果由参考数量计量对象RO1所计量的参考数量不小于2),则重写数据将破坏其它用户使用的数据,因此分配未使用区域M3用于重写。具体地,根据下面的处理过程分配未使用区域M3和执行重写数据。
首先,生成指示(或分配给)该未使用区域M3的新参考数量计量对象RO3。然后,将要重写该数据的用户的指针P13的参考目标改变到所新生成的参考数量计量对象RO3,并将数据写入由参考数量计量对象RO3指示的区域M3。在这种情况下,由新生成的参考数量计量对象RO3计量的参考数量是1,而由原来的参考数量计量对象RO1计量的参考数量减少(在该实例中,从3减到2)。
根据该处理过程,当一个用户重新写入数据的区域由其它用户访问时,将数据写入新区域,可以实现由一个用户重写数据,而不用破坏其它用户访问的数据。
上述参考数量计量对象的生成和指针到其它参考数量计量对象的改变是通过用于监测参考数量计量对象所计量的参考数量的系统(控制装置)自动执行的。因此,将要重写数据的用户可以重写该数据,而不用考虑诸如生成参考数量计量对象和改变指针到其它参考数量计量对象的处理(即,不用理解该处理)。
另外,在重写数据时,由于存在其它用户的情况下的处理和不存在其它用户的情况下的处理是自动进行的,所以重写数据的用户可以重写数据,而不用知道正在执行那一个处理。由于重写数据是不用用户(对象)理解重写数据时的处理内容来实现的,所以用于执行该处理内容的程序不必包含在对象设计中。
上面描述了对应于各种处理时用于参考数量计量对象的生成、去除和改变(增加/减少测量的参考数量)的指针动作情况(参考管理)。现在将描述在存储器空间上执行的参考管理。具体地,在这种情况下,各个对象存在于不同的存储器空间,并且这些对象(用户)访问共享存储器。
首先,将参照图24描述从对象A(存储器空间A)到对象B(存储器空间B)的数据传送的处理过程。
用户获取指针P1,并通过使用该指针P1,用户将其所要发送的数据写入对应于指针P1的区域。在这种情况下,对应于指针P1的区域是由指针P1参考的参考数量计量对象RO1所指示的区域M1。这样,指针的动作情况使得保证数据写入得以实现。
接着,所获得的用于发送数据的指针P1传递给作为代理程序(传输代理)的对象B的主体。收到指针P1后,该主体准备复制指针P1,并将复制通知发送给对象B(即,执行消息传递)。在这种情况下,例如,将复制通知与包括共享存储器或类似的存储器的ID在内的属性数据一起发送给对象B。在所谓的主体和观测器之间的该消息传递是通过使用如上所述的来自主体的Notify消息来实现的,以及通过发送访问在构成不同存储器空间的信息处理进程之间共享的存储器M的消息的功能(消息通信功能)来实现。由于指针P1的复制是由主体准备的,所以在发送方将参考数量计量对象RO1所计量的参考数量加1。在该实例中,如图24所示,通过生成复制指针P1,将参考数量计量对象RO1所计量的参考数量从3增加到4。
另一方面,在接收方作为对象B的代理程序(接收代理)的观测器从主体接收通知,并存储指针P11。另外,根据与指针P11一起发送的共享存储器的或类似的ID,观测器通过使用新生成的参考数量计量对象RO2,从存储器空间B一方,将存储器M1附加到由指针P11的原来的指针P1参考的参考数量计量对象RO1所指示的共享存储器M上。然后,观测器响应用户(对象B)的请求,准备参考存储器空间B上的区域M1的指针P2,并将指针P2发送给参考数量计量对象RO3。因此,由于区域M1中的数据能够被对象A参考,也能够被对象B参考,所以实际上在不同的存储器空间上实现对象A和对象B之间的内部对象通信。
在对象A一方的存储器空间中,由于指针发送到对象B并由对象B保持,并计数为参考数量计量对象RO1的参考数量,所以对象A对共享存储器的访问是通过假设该共享存储器也能够由对象B访问来执行的。
参照图25,现在将描述开放数据的处理过程。开放数据意味着从对象A和对象B分别存在于不同的存储器空间的状态(如参照图24所述的)开放共享存储器的共享状态。
完成在对象B的处理时,用于请求下一个数据的Ready消息发送给对象A。在这种情况下,在观测器中,查找从对象A收到的指针P11(指针P2),并检查对应于所查找的指针P11的参考数量计量对象RO2计量的参考数量是否为0。如果参考数量为0,则确定结束对象B的使用,并将指针P11发送回对象A(主体)(也就是说,执行消息传递)。在对象A的主体,根据正常的动作情况(正常处理过程)去除相应的指针P1。在该实例中,由于响应指针P1的去除,参考数量计量对象RO1所计量的参考数量从1减为0,所以去除参考数量计量对象RO1。
以上参照图24和25描述了存在于不同存储器空间上的对象(用户)之间的数据传输处理等。下面将描述所谓的向第三对象转包数据,其是通过应用上面所述的处理过程实现的。向第三对象转包数据应用在当共享存储器上的预定区域M1由存在于不同的存储器空间上的对象A和B共享时(如图24所示)、还需要向第三对象开放(共享)该数据的情况中。用于该所谓的向第三对象转包数据的处理过程可以通过组合图24的处理过程(数据传输处理)和图25的处理过程(数据开放处理)基本上实现。现在将参照图26描述该处理过程。
首先,用户(对象A(存储器空间A))获取指针P1,并通过使用该指针P1,用户将其所要发送的数据写入共享存储器M上的相应区域M1。接着,所获得的用于发送数据的指针P1传递给对象A的主体。收到指针P1后,该主体准备复制指针P1,并将复制通知发送给对象B(即,执行消息传递)。在这种情况下,例如,将该通知与包括共享存储器的ID在内的属性数据一起发送给对象B。
在接收方对象B的观测器从主体接收通知,并存储指针P11。另外,根据与指针P11一起发送的共享存储器的或类似的ID等,观测器通过使用新生成的参考数量计量对象RO2,从存储器空间B一方,将存储器M1附加到由指针P11的原来的指针P1参考的参考数量计量对象RO1所指示的共享存储器M上。然后,观测器响应用户的请求,准备参考存储器空间B上的该区域的指针P2,并将指针P2发送给参考数量计量对象RO3。将参考数量计量对象RO1所计量的参考数量设定为1。因此,该结果等价于用户B(对象B)收到了区域M1中的数据。
对象B发送指针P2给主体。收到指针P2后,主体准备复制指针P2,并将复制通知发送给第三对象C(存储器空间C)作为转包配对(counterpart)(即,执行消息传递)。在这种情况下,例如,将包括共享存储器的ID在内的属性数据与通知一起发送给对象C。接收方的对象C的观测器从主体接收该通知并存储指针P21。通过该处理,当数据转包给第三对象C时,参考数量计量对象所计量的参考数量得以传播。因此,即使将数据转包给了第三对象C,也可以保护区域M1中的数据。
当第三对象结束使用该数据(区域)时,执行自动往回发送数据(或开放数据)的处理。该开放数据的处理如下执行。
完成在对象C的处理时,用于请求下一个数据的Ready消息发送给对象B。在这种情况下,在观测器中,查找从对象B收到的指针P21,并检查相应的参考数量计量对象RO3所计量的参考数量是否为0。如果参考数量为0,则确定在对象C的使用结束,并将指针P21发送回对象B(也就是说,执行消息传递)。在对象B的主体,根据正常的动作情况(正常处理过程)去除相应的指针P2。
另外,Ready消息从对象B(观测器)发送给对象A。在这种情况下,在观测器中,查找从对象A收到的指针P11,并检查对应的参考数量计量对象RO2所计量的参考数量是否为0。如果参考数量为0,则将指针P11发送回对象A(也就是说,执行消息传递)。在对象A的主体,根据正常的动作情况(正常处理过程)去除相应的指针P1。
在上述的方法中,执行所谓的向第三对象的数据转包处理。通过如上所述的处理,当数据转包给第三对象C时,参考数量计量对象所计量的参考数量得以传播。因此,即使将数据转包给了第三对象C,也可以保护区域M1中的数据。
根据本发明,通过使用如上所述的指针,数据可以从一个对象(主体)发送给多个对象(观测器)。现在将描述从发送方的对象A向接收方的多个对象B和C发送数据的情况,如图27所示。
在正常的数据传输中,当向作为传输代理程序的主体发送数据时,如果用户没有从接收方收到传输允许信号(Ready信号),则用户不能发送数据。因此,在这种情况下,该数据无效,或者在保持数据的同时发布重新传输请求。该处理的处理方式根据接收方的对象而不同。因此,如果用户保持数据并一直等待到允许接收为止,则必须向每一个传输目标(对象(观测器))发布传输请求。传统上,该处理由拥有该数据内容的用户执行。
但是根据本发明,将数据写入共享存储器,并且在主体内执行处理(数据管理)。具体的处理过程如下。
如图27所示,用户将数据写入共享存储器M的预定区域M1、M2、M3,并向主体发送参考其中写入数据的区域M1、M2、M3的指针P11、P12、P21、P22、P23。收到指针P11、P12、P21、P22、P23后,主体首先尝试向相应于各个指针P11、P12、P21、P22、P23的对象B和C的观测器发送数据。如果在接收方(观测器)允许接收,则主体立即发送数据。也就是说,指针由接收方的对象生成,并且将相应的参考数量计量对象所计量的参考数量加1。
另一方面,如果在接收方(观测器)不允许接收,则主体进入到每个连接目标(接收方)的队列。然后,当从允许接收的观测器收到Ready信号时,主体检查来自发送Ready信号的观测器的队列,如果存在,则立即发送累积的、并应该发送给该对象的数据。
通过如上所述的处理过程,执行从一个对象(主体)向多个对象(观测器)的数据传输处理。
根据本发明,即使使用相同的数据,接收的数据量和接收周期(例如,处理周期)也可以根据接收方(对象)的应用程序而变化。现在将描述在每一个对象处变化用于图像数据的接收周期的示例。
在下述情形中,例如,图像数据分发给每一个具有不同图像处理内容的图像处理对象,例如,用于执行运动检测图像处理的对象(下文中简称为运动检测对象)、以及用于识别脸部图像的对象(下文中称为脸部识别对象)。在这种情况下的图像数据处理通过使用上述的指针来进行,下面即将进一步详细描述。
例如,运动检测对象需要每隔两帧接收一幅图像数据的画面,而脸部识别对象需要每隔30帧接收一幅图像数据的画面。但是,在设计时是不考虑图像分发对象连接到哪一个对象(运动检测对象或脸部识别对象)的。假定下述条件,图像分发对象向用于每帧处理的主体(每帧主体)发送图像数据。该主体从启动系统等时所连接的观测器接收与数据传输的量和同步相关的参数。主体根据这些参数执行随后的传输。具体地,对于运动检测对象的观测器,主体每隔一次进入数据中的队列,从而执行每隔一次的传输。例如,在不执行传输的期间,该帧的图像数据无效,而不执行任何特定的处理。类似地,对于脸部识别对象的观测器,主体每隔30次进入从用户发送的数据中的队列,从而执行每隔30次的传输。
如上所述,根据本发明,即使使用相同的数据,接收的数据量和接收周期(例如,处理周期)也可以根据接收方(对象)的应用程序而变化。由于该处理由作为代理程序的主体和对象实现,所以对象不用基于该处理的假定而设计,并可以保证对象的独立性。
上面参照图19至27描述了适合作为实施例的本发明的特征。本发明实现了通畅的内部对象通信。具体地,可以提供下述效果。
由于对象之间的数据传输通过共享在共享存储器上的数据执行,所以内部对象通信可以高速执行。另外,由于对象之间的数据传输通过共享在共享存储器上的数据执行,所以用于通信所需的时间可以保持恒定,而不用考虑数据量。
通过使用指示共享存储器上的数据的指针来管理数据,可以方便地对数据进行管理,并且数据可以针对每个传输目标来管理。通过使用指示共享存储器上的数据的指针来管理数据,可以响应来自传输目标的对象的请求,在一个通信周期(处理周期)中将数据分发。另外,对于每个传输目标,在高峰时不能获取的数据可以被保存并集体发送。
在接收方,由于数据周期稳定,所以即使CPU的负载发生变化,也可以实现高可靠性的信号处理。
由于将参考管理功能添加到指示共享存储器的指针上,即,由于指针由独立的参考数量计量对象管理,所以共享存储器上的数据保护(数据管理)可以不用用户知道而进行。
另外,由于与通信相关的组件安装在主体和观测器中,即,由于与通信相关的处理仅由主体和观测器执行,所以改进了作为软件组件的、具有这样主体和观测器的对象的独立性。因此,在内部对象通信中的通信配对可以动态地变化。
作为实现如上所述的处理的操作系统(OS),可以考虑索尼公司提供的Aperios。但是,该OS不仅限于此,可以使用具有消息通信和共享存储器功能的一般的多进程OS。
在上述的实施例中,将内部对象通信作为本发明的实质部分应用到机器人设备中。但是,本发明不仅限于该实施例。例如,本发明也可以应用到其操作由对象控制的设备中。
(2)机器人设备的操作
具有上述结构的机器人设备1(图1)采用四条腿类型的形式,将作为运动单元3的腿附着到身体2上,并由附着在腿上的马达驱动以便使用四条腿走路。或者,该机器人设备1采用轮子类型的形式,将轮子替代后腿,并可以通过轮子进行移动。
在机器人设备1(图2)中,根据作为机器人组件24、25、26安装在腿等处的传感器的输出、以及由安装在头部2A上的各种信息获取装置获取的信息,所需的控制命令通过中央处理单元22的处理输出,由此控制运动单元3等。
在机器人设备1(图3和4)中,面向对象结构的上层软件驱动设备驱动器层上的各种设备,由此执行这些设备的控制。在该控制中,在位于设备驱动器层的上一层的机器人系统软件中,虚拟机器人检测连接到串行总线上的组件,并通知设计机器人该指示在作为整体的机器人设备1中何种机器人组件以何种顺序连接的连接信息(CPC连接信息)。因此,在机器人设备1中,根据连接到串行总线上的设备得以确定其当前形式,并可以确定构成其当前形式的控制目标。
在机器人设备1中,位于机器人系统软件上一层的软件根据连接信息(CPC连接信息)来更新,并且整体操作由适合于形式的软件来控制。
在更新软件时,机器人设备1比较通过机器人系统软件的设计机器人使用虚拟机器人所通知的连接信息(CPC连接信息)为每一种形式附加标号到各个部件的构成部件信息(CPC基本要素位置信息)组来描述的设计文件,并选择适合于该形式的恰当对象,由此根据该对象改变取决于形式的软件(图7和8)。因此,在机器人设备1中,可以容易地改变适合于形式的恰当软件,并可以控制总体操作。
另外,上层软件可以划分为独立于机器人设备的形式之外的不取决于形式的软件和依赖形式的取决于形式的软件,并且在将不取决于形式的软件以不依赖形式的格式所处理的数据转换为相应于取决于形式的软件的形式的格式的状态下,仅更新取决于形式的软件,以便向机器人系统软件发送和从其接收。因此,软件可以通过简单的处理来更新。
在这种情况下,虚拟机器人使用文本数据格式的描述(图8和9)生成构成部件信息(CPC基本要素位置信息),并且设计文件以类似的文本数据格式描述。因此,可以容易地对付将来增加的变化形式。
在机器人设备1中,当对象管理器重构该取决于形式的软件的对象时,执行软件的更新。也就是说,在启动或类似情况下设计机器人通知对象管理器给出指令以便连接适合于当前形式的对象的连接信息(连接数据),并加载连接信息(连接数据)所指定的对象(图6)。
在加载的对象初始化之后,对象管理器根据连接信息(连接数据)的指定,连接能够在它们之间交换数据的主体和观测器。在机器人设备1中,由此由适合于形式的对象构建取决于形式的软件。
因此,在机器人设备1中,可以不用考虑任何特定的连接目标来设计每一个对象,并构建软件。通过根据形式生成连接信息(连接数据),可以方便地构建适合于形式的软件。另外,可以不用重新编译或链接来改变软件。因此,在机器人设备1中,与传统的技术相比,可以显著地改善对象的独立性,相应地可以方便快速地提供适合于任意形式变化的恰当软件。也可以设定连接信息来构建一个对象和多个对象之间的内部对象通信。
由于连接信息(连接数据)是指定与主体进行通信的数据的格式的信息,所以对象管理器可以根据连接信息(连接数据)指定相应的对象ID和选择器序号,并方便地构建内部对象通信。
由于设计机器人从具有多个连接信息并记录在其中的设计文件中选择和提供连接信息给对象管理器,所以当需要时可以通过设置该设计来方便地构建相应于各种形式的软件。
另外,由于连接信息(连接数据)以文本数据格式描述,所以可以方便地以各种方式改变。
另外,当机器人设备1的形式改变时,虚拟机器人检测该形式的变化,并通知设计机器人该与变化的形式相关的连接信息(CPC连接信息)。设计机器人比较该连接信息(CPC连接信息)与设计文件,并由此生成与变化的形式相关的连接信息(连接数据)。根据该连接信息(连接数据),对象管理器卸载因为形式变化不再需要的对象,并加载因为形式变化而变的需要的对象,由此重构构成取决于形式的软件的对象。另外,这些对象通过连接信息(连接数据)连接起来以便进行内部对象通信,并且由此更新取决于形式的软件。
相应地,在机器人设备1中,在不取决于形式的软件等操作的同时,如果需要可以更新该取决于形式的软件以便构建适合于形式的软件。也可以将该软件的变化应用到能量消耗模式的切换中。另外,本发明使得通畅的内部对象通信和高速处理成为可能。
用作本发明实施例的机器人设备并不仅限于具有图1所示外观的设备。例如,机器人设备1也可以具有更象具体动物的外观/形状,如图28所示。在图28所示的机器人设备1中,相应于图1中的那些部件使用相同的标号表示。

Claims (25)

1.一种信息处理设备,包括控制装置,具有多个信息处理进程,并适于根据在信息处理进程之间进行的内部进程通信执行控制处理,所述控制装置控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信。
2.如权利要求1所述的信息处理设备,其中信息处理进程由根据面向对象的系统准备的程序构成。
3.如权利要求1所述的信息处理设备,其中在内部进程通信中,控制装置控制多个信息处理进程访问在共享存储器上同一区域中数据,所述数据由多个信息进程共享。
4.如权利要求3所述的信息处理设备,其中在内部进程通信中,控制装置自动分配数据将被记录到其中的共享存储器上的同一区域,作为用于内部进程通信的传输缓冲器。
5.如权利要求1所述的信息处理设备,其中控制装置通过使用通信管理进程控制多个信息处理进程对共享存储器的访问。
6.如权利要求1所述的信息处理设备,其中控制装置发送用于由在不同存储空间上构建的信息处理进程访问共享存储器的消息,并根据该消息控制该多个信息处理进程对共享存储器的访问。
7.如权利要求1所述的信息处理设备,其中控制装置根据信息处理进程对共享存储器的访问次数,控制该多个信息处理进程对共享存储器的访问。
8.如权利要求7所述的信息处理设备,其中控制装置根据信息处理进程对共享存储器的访问生成指针,并根据作为访问次数的指针的数量,控制多个信息处理进程对共享存储器的访问。
9.如权利要求8所述的信息处理设备,其中控制装置具有用于计量访问次数的访问数量计量进程,并进行内部进程通信中通信配对的动态改变;和
控制装置根据访问数量计量进程所计量的访问次数控制多个信息处理进程对共享存储器的访问。
10.如权利要求1所述的信息处理设备,其中多个信息处理进程分别在不同的存储器空间上构成;以及
该多个信息处理进程对共享存储器的访问是在不同的存储器空间上进行的。
11.如权利要求1所述的信息处理设备,其中控制装置根据接收方信息处理进程的处理周期控制对共享存储器的访问。
12.如权利要求1所述的信息处理设备,其中控制装置根据接收方信息处理进程的负载,生成用于访问共享存储器的队列,并根据该队列控制对共享存储器的访问。
13.一种信息处理方法,具有多个信息处理进程,并适于根据在信息处理进程之间进行的内部进程通信执行控制处理,该信息处理方法包括控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信。
14.一种机器人设备,包括:
输出装置,用于表达动作;以及
控制装置,具有多个信息处理进程,并适于根据在信息处理进程之间进行的内部进程通信执行输出装置的控制处理,所述控制装置控制多个信息处理进程对由该多个信息处理进程共享的共享存储器进行访问、以及由此进行内部进程通信。
15.如权利要求14所述的机器人设备,其中信息处理进程由根据面向对象的系统准备的程序构成。
16.如权利要求14所述的机器人设备,其中在内部进程通信中,控制装置控制多个信息处理进程访问在共享存储器上同一区域中数据,所述数据由多个信息进程共享。
17.如权利要求16所述的机器人设备,其中在内部进程通信中,控制装置自动分配数据将被记录到其中的共享存储器上的同一区域,作为用于内部进程通信的传输缓冲器。
18.如权利要求14所述的机器人设备,其中控制装置通过使用通信管理进程控制多个信息处理进程对共享存储器的访问。
19.如权利要求14所述的机器人设备,其中控制装置发送用于由在不同存储空间上构建的信息处理进程访问共享存储器的消息,并根据该消息控制该多个信息处理进程对共享存储器的访问。
20.如权利要求14所述的机器人设备,其中控制装置根据信息处理进程对共享存储器的访问次数,控制该多个信息处理进程对共享存储器的访问。
21.如权利要求20所述的机器人设备,其中控制装置根据信息处理进程对共享存储器的访问生成指针,并根据作为访问次数的指针的数量,控制多个信息处理进程对共享存储器的访问。
22.如权利要求21所述的机器人设备,其中控制装置具有用于计量访问次数的访问数量计量进程,并进行内部进程通信中通信配对的动态改变;和
控制装置根据访问数量计量进程所计量的访问次数控制多个信息处理进程对共享存储器的访问。
23.如权利要求14所述的机器人设备,其中多个信息处理进程分别在不同的存储器空间上构成;以及
该多个信息处理进程对共享存储器的访问是在不同的存储器空间上进行的。
24.如权利要求14所述的机器人设备,其中控制装置根据接收方信息处理进程的处理周期控制对共享存储器的访问。
25.如权利要求14所述的机器人设备,其中控制装置根据接收方信息处理进程的负载,生成用于访问共享存储器的队列,并根据该队列控制对共享存储器的访问。
CNB018026958A 2000-08-16 2001-08-16 信息处理设备、信息处理方法、和机器人设备 Expired - Fee Related CN1270238C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000247021A JP2002063038A (ja) 2000-08-16 2000-08-16 情報処理装置及び情報処理方法並びにロボット装置
JP247021/00 2000-08-16

Publications (2)

Publication Number Publication Date
CN1388927A true CN1388927A (zh) 2003-01-01
CN1270238C CN1270238C (zh) 2006-08-16

Family

ID=18737199

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018026958A Expired - Fee Related CN1270238C (zh) 2000-08-16 2001-08-16 信息处理设备、信息处理方法、和机器人设备

Country Status (5)

Country Link
US (1) US7228201B2 (zh)
EP (1) EP1310870A4 (zh)
JP (1) JP2002063038A (zh)
CN (1) CN1270238C (zh)
WO (1) WO2002015009A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329826C (zh) * 2003-07-16 2007-08-01 佳能株式会社 程序间通信装置和方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342759A (ja) * 2001-01-30 2002-11-29 Nec Corp 情報提供システム、情報提供方法、およびそのプログラム
US7403949B2 (en) * 2005-08-17 2008-07-22 International Business Machines Corporation Elimination of redundant objects in storage systems
US8301421B2 (en) * 2006-03-31 2012-10-30 Energid Technologies Automatic control system generation for robot design validation
KR101269024B1 (ko) 2009-12-18 2013-05-29 한국전자통신연구원 로봇 소프트웨어 컴포넌트 작업 실행 조정 장치 및 방법
US8392921B2 (en) * 2009-12-18 2013-03-05 Electronics And Telecommunications Research Institute Apparatus and method of coordinating operation action of robot software component
JP6510761B2 (ja) * 2014-04-08 2019-05-08 川崎重工業株式会社 データ採取システムおよび方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652885A (en) * 1993-05-25 1997-07-29 Storage Technology Corporation Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
JPH11120009A (ja) * 1997-10-14 1999-04-30 Toshiba Tec Corp プロセス間通信制御装置
JP2000148577A (ja) * 1998-11-09 2000-05-30 Fujitsu Ltd アクセス制御方法及びアクセス制御装置
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6615253B1 (en) * 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6606660B1 (en) * 1999-08-31 2003-08-12 Accenture Llp Stream-based communication in a communication services patterns environment
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6477580B1 (en) * 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6976216B1 (en) * 2000-11-17 2005-12-13 Streamzap, Inc. Computer system with remote key press events directed to a first application program and local key press events directed to a second application program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329826C (zh) * 2003-07-16 2007-08-01 佳能株式会社 程序间通信装置和方法

Also Published As

Publication number Publication date
US20030040839A1 (en) 2003-02-27
US7228201B2 (en) 2007-06-05
EP1310870A4 (en) 2008-07-02
WO2002015009A1 (en) 2002-02-21
CN1270238C (zh) 2006-08-16
EP1310870A1 (en) 2003-05-14
JP2002063038A (ja) 2002-02-28

Similar Documents

Publication Publication Date Title
CN1200345C (zh) 算术处理装置,对象对对象的通信方法和机器人装置
CN1392979A (zh) 通信设备和通信方法、网络系统、以及机器人设备
CN1280716C (zh) 计算机处理方法、分布式计算方法和网络计算方法
CN1363074A (zh) 信息处理设备和方法、数据存储设备和程序
CN1142489C (zh) 信息处理方法和服务器
CN1159653C (zh) 报文处理方法和报文处理器
CN1143208C (zh) 用于消息转换的装置和方法
CN100351788C (zh) 嵌入式设备的驱动方法
CN101064656A (zh) 存储集群系统、数据处理方法和程序
CN1227589C (zh) 用于保存返回状态的数据处理设备和方法
TW594548B (en) Multimode non-standard universal serial bus computer input device
CN1658184A (zh) 网络系统、分布式处理方法和信息处理装置
CN1534449A (zh) 网络外围设备的外围设备驱动程序维护方法
CN1947106A (zh) 通知方法、连接装置、通信方法以及程序
CN1218223A (zh) 执行移动对象的方法以及存储移动对象的记录介质
CN1270238C (zh) 信息处理设备、信息处理方法、和机器人设备
CN1115883A (zh) 数据处理系统用的电能管理方法与系统
CN1722107A (zh) 计算机系统以及存储装置系统的迁移方法
CN1914630A (zh) 作为数据类型的基于行为的多代理系统
CN1250532A (zh) 数据共享方法和计算机体系结构
CN1755640A (zh) 交换机装置和系统以及备份和还原方法及程序
CN1466720A (zh) 代理程序系统
CN1256636A (zh) 便携式电子装置、娱乐系统和记录媒体
CN1757027A (zh) 新式的个人电子装置
CN101042676A (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: 20060816

Termination date: 20090916