JP5445312B2 - Operation control method, interactive device, and program - Google Patents
Operation control method, interactive device, and program Download PDFInfo
- Publication number
- JP5445312B2 JP5445312B2 JP2010105125A JP2010105125A JP5445312B2 JP 5445312 B2 JP5445312 B2 JP 5445312B2 JP 2010105125 A JP2010105125 A JP 2010105125A JP 2010105125 A JP2010105125 A JP 2010105125A JP 5445312 B2 JP5445312 B2 JP 5445312B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- module
- sequence
- motor
- modules
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 90
- 230000002452 interceptive effect Effects 0.000 title claims description 35
- 230000033001 locomotion Effects 0.000 description 28
- 230000004048 modification Effects 0.000 description 26
- 238000012986 modification Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000003993 interaction Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008094 contradictory effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 241000282412 Homo Species 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 206010041349 Somnolence Diseases 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007664 blowing Methods 0.000 description 2
- 230000000474 nursing effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010048232 Yawning Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009154 spontaneous behavior Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
- Feedback Control In General (AREA)
- Programmable Controllers (AREA)
Description
本発明は、モータ等の駆動部の動作を制御する動作制御方法、そのような動作制御方法を用いるインタラクティブデバイス(Interactive Device)、コンピュータにそのような動作制御方法の手順を実行させるプログラム、コンピュータにインタラクティブデバイスの機能を実現させるプログラム、及びコンピュータをインタラクティブデバイスの手段として機能させるプログラムに関する。本発明は、そのようなプログラムを格納したコンピュータ読み取り可能な記憶媒体にも関する。 The present invention relates to an operation control method for controlling the operation of a drive unit such as a motor, an interactive device using such an operation control method, a program for causing a computer to execute the procedure of such an operation control method, and a computer The present invention relates to a program for realizing a function of an interactive device and a program for causing a computer to function as a means of an interactive device. The present invention also relates to a computer-readable storage medium storing such a program.
インタラクティブデバイスの一例であるロボットが人とインタラクションを行い人と共存するためには、多種多様の事象を検知及び認識して動作する必要がある。しかし、多種多様の全ての事象を認識してロボットの動作を決定する単一の動作モジュールを開発することは困難である。このため、複数の動作モジュールを開発し、動作モジュールを切り替えながらロボットを動作させる方法が提案されている(例えば、特許文献1,2)。このような提案方法を採用するロボットアーキテクチャの一例として、タスクの優先度を考慮に入れた並列的な分割処理方式であるサブサンプションアーキテクチャ(Subsumption Architecture)が知られている。
In order for a robot, which is an example of an interactive device, to interact with a person and coexist with the person, it is necessary to detect and recognize a wide variety of events. However, it is difficult to develop a single motion module that recognizes all of a wide variety of events and determines the motion of the robot. For this reason, a method of developing a plurality of operation modules and operating the robot while switching the operation modules has been proposed (for example,
各動作モジュールは、センサが検知した情報等に基づいてロボットの動作を決定し、ロボットの各モータに対する制御コマンドを出力する。しかし、異なる動作モジュールから同一モータに矛盾した制御コマンドを出力することがあるため、これらの矛盾する制御コマンドを調停する必要がある。 Each operation module determines the operation of the robot based on the information detected by the sensor and outputs a control command for each motor of the robot. However, since contradictory control commands may be output from the different operation modules to the same motor, it is necessary to arbitrate these contradictory control commands.
介護ロボットや教育ロボット等の、人とのインタラクションが重要な機能の1つであるコミュニケーションロボットでは、動作は生き物らしさ(即ち、機械的ではない動作)を演出するための仕草や人との触れ合いを表現するために、複数の動作モジュールからの制御コマンドを調停して人から見て自然な動作を表現することが望まれる。しかし、従来は、人から見てロボットが自然に動作を切り替えたり再開、或いは、人に違和感を与えないようにロボットが自然に動作を切り替えたり再開するのに適した制御コマンドの調停方式が存在しなかった。 In communication robots, such as nursing robots and educational robots, where interaction with humans is one of the important functions, the movement is a gesture to produce creature-likeness (ie, non-mechanical movement) and interaction with humans. In order to express it, it is desired to mediate control commands from a plurality of operation modules to express a natural operation from the viewpoint of a person. However, in the past, there has been a control command arbitration method that is suitable for the robot to naturally switch or resume operation from the viewpoint of the human, or for the robot to naturally switch or resume operation so as not to give the person a sense of incongruity. I didn't.
従来のインタラクティブデバイスでは、人から見て自然に、或いは、人に違和感を与えないように、動作を切り替えたり動作を再開することは難しいという問題があった。 The conventional interactive device has a problem that it is difficult to switch the operation or to resume the operation so as not to give a sense of incongruity to the person naturally or to the person.
そこで、本発明は、人から見て自然に、或いは、人に違和感を与えないように、動作を切り替えたり動作を再開することを可能とする動作制御方法、インタラクティブデバイス及びプログラムを提供することを目的とする。 Therefore, the present invention provides an operation control method, an interactive device, and a program that can switch an operation or resume an operation so as not to give a sense of incongruity to a person naturally or from a person. Objective.
本発明の一観点によれば、コンピュータにより複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドによりインタラクティブデバイスの複数の駆動部を動作させる動作制御方法であって、任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付ける手順と、各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出す手順と、各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順を前記コンピュータに実行させる動作制御方法が提供される。 According to an aspect of the present invention, there is provided an operation control method for operating a plurality of drive units of an interactive device by a command from the plurality of operation modules while switching the plurality of operation modules by a computer, which is generated by any operation module A command queue in which a plurality of commands belonging to the operation sequence are received for each of the plurality of drive units and in order of start times of the plurality of commands, and a command queue for each drive unit is stored in units of operation modules A procedure for retrieving a command queue command corresponding to the arbitrary operation module from the storage unit, sequence information including correspondence between information for identifying each operation sequence and start time of each operation sequence, and each operation module and each operation module Operational arbitration including priority mapping Operation control method for executing a procedure for controlling the driving unit in question executes a command taken out based on the distribution on the computer is provided.
本発明の一観点によれば、複数の駆動部と、複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドにより前記複数の駆動部を動作させるコマンド制御モジュールと、各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部を備え、前記コマンド制御モジュールは、任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付け、前記コマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出し、各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御するインタラクティブデバイスが提供される。 According to one aspect of the present invention, a plurality of drive units, a command control module that operates the plurality of drive units according to commands from the plurality of operation modules while switching the plurality of operation modules, and a command queue for each drive unit Includes a command queue storage unit stored in units of operation modules, and the command control module transmits a plurality of commands belonging to an operation sequence generated by an arbitrary operation module for each of the plurality of drive units, and A sequence including a plurality of commands received in the order of start times, taking out commands in the command queue corresponding to the arbitrary operation module from the command queue storage unit, and including correspondence between information for identifying each operation sequence and the start time of each operation sequence Information and superiority of each operation module and each operation module Interactive device that controls the drive unit in question executes a command taken out on the basis of the operation arbitration information including the degree of association is provided.
本発明の一観点によれば、コンピュータに、複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドによりインタラクティブデバイスの複数の駆動部を動作させるプログラムであって、任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付ける手順と、各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出す手順と、各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順を前記コンピュータに実行させるプログラムが提供される。 According to one aspect of the present invention, there is provided a program for causing a computer to operate a plurality of drive units of an interactive device in response to a command from the plurality of operation modules while switching the plurality of operation modules. A procedure for receiving a plurality of commands belonging to an operation sequence for each of the plurality of driving units and in order of start times of the plurality of commands, and a command queue storage in which a command queue for each driving unit is stored in units of operation modules A procedure for extracting a command queue corresponding to the arbitrary operation module from the unit, sequence information including information for identifying each operation sequence and correspondence between start times of each operation sequence, and priority of each operation module and each operation module Action arbitration information including degree association Program for executing a procedure for controlling the driving unit applicable by executing the command taken out on the basis of the computer is provided.
開示の動作制御方法、インタラクティブデバイス及びプログラムによれば、人から見て自然に、或いは、人に違和感を与えないように、動作を切り替えたり動作を再開することが可能となる。 According to the disclosed operation control method, interactive device, and program, it is possible to switch the operation or resume the operation so as not to give a sense of incongruity to the person naturally or from the viewpoint of the person.
開示の動作制御方法、インタラクティブデバイス及びプログラムでは、複数の動作モジュールを切り替えながら複数の動作モジュールからのコマンドによりインタラクティブデバイスの複数の駆動部を動作させる。任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、複数の駆動部毎に、且つ、複数のコマンドの開始時刻順に受け付け、各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から任意の動作モジュールに該当するコマンドキューのコマンドを取り出す。各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する。 In the disclosed operation control method, interactive device, and program, a plurality of drive units of the interactive device are operated by commands from the plurality of operation modules while switching the plurality of operation modules. A plurality of commands belonging to an operation sequence generated by an arbitrary operation module are received for each of the plurality of drive units and in the order of the start times of the plurality of commands, and a command queue for each drive unit is stored in units of operation modules. A command queue command corresponding to an arbitrary operation module is extracted from the command queue storage unit. Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module The corresponding drive unit is controlled.
以下に、開示の動作制御方法、インタラクティブデバイス及びプログラムの各実施例を図面と共に説明する。 Embodiments of the disclosed operation control method, interactive device, and program will be described below with reference to the drawings.
動作モジュールを切り替えながらロボットを動作させる方法において、各動作モジュールは、センサが検知した情報等に基づいてロボットの動作を決定し、ロボットの各モータに対する制御コマンドを出力する。しかし、異なる動作モジュールから同一モータに矛盾した制御コマンドを出力することがあるため、これらの矛盾する制御コマンドを調停する必要がある。そこで、例えば以下の如き方法1〜3の如き調停方法が考えられる。方法1は、制御コマンドを出力する動作モジュールが唯一となるように動作モジュールを切り替える。方法2は、モータ単位で優先度の高い制御コマンドが発行されれば優先度の低い制御コマンドを破棄して優先度の高い制御コマンドを実行する。方法3は、モータ単位で優先度の高い制御コマンドが発行されれば優先度の低い制御コマンドを保留して優先度の高い制御コマンドを実行し、優先度の高い制御コマンドの実行が終了した後で優先度の低い制御コマンドの実行を再開する。
In the method of operating a robot while switching operation modules, each operation module determines the operation of the robot based on information detected by a sensor and outputs a control command for each motor of the robot. However, since contradictory control commands may be output from the different operation modules to the same motor, it is necessary to arbitrate these contradictory control commands. Therefore, for example, the following arbitration methods such as the following
介護ロボットや教育ロボット等の、人とのインタラクションが重要な機能の1つであるコミュニケーションロボットでは、動作は生き物らしさ(即ち、機械的ではない動作)を演出するための仕草や人との触れ合いを表現するために、複数の動作モジュールからの制御コマンドを調停して人から見て自然な動作を表現することが望まれる。 In communication robots, such as nursing robots and educational robots, where interaction with humans is one of the important functions, the movement is a gesture to produce creature-likeness (ie, non-mechanical movement) and interaction with humans. In order to express it, it is desired to mediate control commands from a plurality of operation modules to express a natural operation from the viewpoint of a person.
本発明者は、人から見て自然な動作を実現するためには、以下のような要件r1〜r5を満たすことが望ましいことを見出した。要件r1は、ロボットが実行する1つの動作シーケンスの中で、各モータの動きが同期しているということである。この要件r1が満たされないと、例えばロボットの両手で何かをする仕草を表す動作シーケンスの動作が左右の手でバラバラに実行されて不自然になる可能性がある。要件r2は、ロボット内の各モータは可能な限り動作し続け、各モータの停止時間を少なくするということである。この要件r2が満たされないと、各モータの停止時間が長いために動作が機械的となり、生き物らしさが表現できない。要件r3は、ロボットが多様な動作が混在した状態でこれらの多様な動作を行うということである。要件r3が満たされないと、ロボットの動作パターンが限られてしまい、動作パターンが少ないおもちゃのように見えてしまう。要件r4は、ロボットが動作を実行するタイミングを適切に制御するということである。要件r4が満たされないと、ロボットの仕草等の表現動作が不自然になってしまう。例えば、ユーザに対する反応等のロボットの動作は直ちに実行しないと意味がなく、ロボットが提供するサービスが低下してしまう。要件r5は、ロボットの動作の停止や、再開が任意に制御可能であるということである。要件r5が満たされないと、ロボットの動作中に何かに気をとられて動作を止めたり、一瞬気をとられた後再開したりするといった、生き物らしい反応を表現することができない。 The present inventor has found that it is desirable to satisfy the following requirements r1 to r5 in order to realize a natural operation from the viewpoint of a person. The requirement r1 is that the movements of the motors are synchronized in one operation sequence executed by the robot. If this requirement r1 is not satisfied, for example, an operation sequence representing a gesture of doing something with both hands of the robot may be performed with the left and right hands apart and become unnatural. The requirement r2 is that each motor in the robot continues to operate as much as possible, and the stop time of each motor is reduced. If this requirement r2 is not satisfied, the operation time becomes mechanical because the stop time of each motor is long, and it is not possible to express the creature likeness. The requirement r3 is that the robot performs these various operations in a state where various operations are mixed. If the requirement r3 is not satisfied, the movement pattern of the robot is limited, and it looks like a toy with few movement patterns. The requirement r4 is to appropriately control the timing at which the robot executes the operation. If the requirement r4 is not satisfied, an expression operation such as a gesture of the robot becomes unnatural. For example, the robot operation such as reaction to the user is meaningless unless it is immediately executed, and the service provided by the robot is lowered. The requirement r5 is that the operation of the robot can be stopped and resumed arbitrarily. If the requirement r5 is not satisfied, it is not possible to express a creature-like reaction such as stopping the operation by taking care of something while the robot is operating, or restarting after taking a momentary attention.
上記の方法1〜3では、以下の表1に示すように、上記の要件r1〜r5を全て満たすことはできなかった。表1中、「○」印は要件が満たされることを示し、「△」印は要件が一部のみ満たされることを示し、「×」印は要件が満たされないことを示す。
In the
このように、方法1では、各動作モジュールが全てのモータを常に動かすような設計でない限り、停止しているモータが発生してしまう。又、各動作モジュールが用意した動作パターンがそのまま表現されるため、ロボットの動作が単調になってユーザに飽きられてしまう可能性がある。
As described above, in the
又、方法2では、優先度が高い制御コマンドが来た場合に優先度が低い制御コマンドは破棄されるため、動作の再開等ができない。例えば、第1のモータと第2のモータを使う第1の動作を実行中により優先度の高い第2のモータを使う第2の動作の制御コマンドを受け取り優先的に実行し、第2の動作が終了したときにまだ第1の動作が実行中であった場合に第1の動作は第1のモータだけで動作を継続することになり、動作が正しく再開できない。又、制御コマンドのキューに格納する時点で制御コマンドを破棄するか否かを選択することになり、優先度の動的変更に対応できない。
Further, in
更に、方法3では、各モータの時間的同期が保持できず、又、不適切なタイミングで各モータの動作を実行してしまう可能性がある。
Further, in the
以下に説明する本発明の各実施例では、異なる動作モジュールから同一モータに矛盾した制御コマンドが出力されても、上記の要件r1〜r5を全て満たすようにこれらの矛盾する制御コマンドを調停するものである。 In each embodiment of the present invention described below, even if contradictory control commands are output to the same motor from different operation modules, those contradictory control commands are arbitrated so as to satisfy all the above requirements r1 to r5. It is.
先ず、各実施例で用いるシステム構成を図1と共に説明する。図1は、ロボットシステムの一例を示すブロック図である。図1に示すロボットシステムは、複数の動作モジュール11−1〜11−N(Nは2以上の自然数)と、ロボット12を有する。ロボット12は、複数のセンサ121(1つのみ図示)、センサ情報通知モジュール122、モータコマンド制御モジュール123、及び駆動部を形成する複数のモータ124(1つのみ図示)を有する。各センサ121は、ロボットの動作又は状態、ロボットが周囲環境等を検出してセンサ情報を出力する。各モータ124は、アーム等のロボットの一部を駆動して動かす。この例では説明の便宜上、複数のセンサ121に対して1つのセンサ情報通知モジュール122が設けられており、複数のモータ124に対して1つのモータコマンド制御モジュール123が設けられているものとするが、M個(Mは2以上の自然数)のセンサ121に対してM個のセンサ情報通知モジュール122が設けられており、M個のモータ124に対してM個のモータコマンド制御モジュール123が設けられていても良い。
First, the system configuration used in each embodiment will be described with reference to FIG. FIG. 1 is a block diagram illustrating an example of a robot system. The robot system shown in FIG. 1 includes a plurality of motion modules 11-1 to 11 -N (N is a natural number of 2 or more) and a
センサ情報通知モジュール122は、各センサ121から出力されるセンサ情報を各動作モジュール11−1〜11−Nに通知する。予めどのセンサ情報をどの動作モジュールに通知するかをセンサ情報通知モジュール122に登録しておけば、各動作モジュール11−1〜11−Nに通知するセンサ情報を適宜選択出力することができる。尚、各センサ121の検出方法、出力するセンサ情報の種類、センサ情報のデータ構造等には、周知もものを使用可能であるため、本明細書ではこれらの説明を省略する。
The sensor
各動作モジュール11−1〜11−Nは各々の動作指針に従って互いに独立して動作しており、センサ情報を入力として各モータ124の動作を決定する。各動作モジュール11−1〜11−Nは、各モータ124の動作をモータコマンドとして決定し、例えばモータ124に対する目標角度(又は、目標位置)と動作時間(動作開始からモータ124の回転角度が目標角度に到達するまでの時間)によって表現する。決定したモータコマンドはモータコマンド制御モジュール123に通知され、モータコマンド制御モジュール123がモータ124を制御する。実際には、各動作モジュール11−1〜11−Nは、複数のモータ124に対するモータコマンドを発行することが一般的である。
Each operation module 11-1 to 11-N operates independently according to each operation guideline, and determines the operation of each
動作モジュール11−1〜11−Nは、センサ情報をトリガに動作するものであっても、自発的、或いは何らかの方法でユーザからの指示を受けて動作するものであっても良い。例えば、コミュニケーションロボットの場合、ある動作モジュール11−1は定期的に伸びをしたりあくびをするような動作を生成する一方、別の動作モジュール11−2では人を見つけたらその人の方を見て手を振る動作を生成する。 The operation modules 11-1 to 11-N may operate by using sensor information as a trigger, or may operate spontaneously or in response to an instruction from a user in some way. For example, in the case of a communication robot, one motion module 11-1 generates a motion that periodically stretches and yawns, while another motion module 11-2 looks at that person when it finds a person. To generate a wave motion.
本実施例では、このようなロボットシステムにおいて、複数の動作モジュール11−1〜11−Nの動作を以下に説明するように調停する。以下の説明では、便宜上センサ系の図示を省略する。 In the present embodiment, in such a robot system, the operations of the plurality of operation modules 11-1 to 11-N are arbitrated as described below. In the following description, illustration of the sensor system is omitted for convenience.
図2は、表1で特にコミュニケーションロボットの要件を一番満たしている方法2における調停を説明するブロック図である。図2中、図1と同一部分には同一符号を付し、その説明は省略する。図2に示すロボット12Aは、モータコマンド制御モジュール223及びロボット本体125を有する。モータコマンド制御モジュール223は、モータコマンド受信部231、動作調停情報管理部232、モータコマンドキュー格納部233−1〜233−N、及びモータコマンド制御部234を有する。ロボット本体125は、例えば熊のぬいぐるみで形成されており、複数のモータ124−1〜124−Nを有する。図2では、説明の便宜上、モータ124−1〜124−Nがロボット本体125の外側に図示されているが、実際にはロボット本体125内に設けられている。
FIG. 2 is a block diagram for explaining arbitration in
各動作モジュール11−1〜11−Nは、各々の動作指針に従って互いに独立して動作して各モータ124−1〜124−Nに対するモータコマンドを生成し、モータコマンド制御モジュール223に通知する。モータコマンド制御モジュール223では、モータコマンド受信部231がモータコマンドを受信する。モータコマンド受信部231は、動作調停情報管理部232が管理する動作調停情報の優先度を参照して、既にモータコマンドキュー格納部233−1〜233−N内に格納されたモータコマンドキューに存在するモータコマンドと新たに受信したモータコマンドの優先度を比較し、受信したモータコマンドの優先度の方が高ければ既に存在するモータコマンドをモータコマンドキューから削除して新たなモータコマンドを追加する。モータコマンド制御部234は、モータコマンドキュー格納部233−1〜233−Nに格納されたモータコマンドキューの各モータコマンドを実行して該当するモータ124−1〜124−Nを制御する。
The operation modules 11-1 to 11-N operate independently of each other according to their operation guidelines, generate motor commands for the motors 124-1 to 124-N, and notify the motor
これに対し、図3は、本発明の一実施例における調停を説明するブロック図である。図3中、図1と同一部分には同一符号を付し、その説明は省略する。図3に示すロボット12は、モータコマンド制御モジュール123及びロボット本体125を有する。モータコマンド制御モジュール123は、モータコマンド受信部31、動作調停情報管理部32、モータコマンドキュー格納部33−1〜33−N、モータコマンド制御部34、管理情報受信部35、及びシーケンス情報管理部36を有する。ロボット本体125は、例えば熊のぬいぐるみで形成されており、複数のモータ124−1〜124−Nを有する。動作制御方法は、複数の動作モジュール11−1〜11−Nを切り替えながらロボット12を動作させる。
On the other hand, FIG. 3 is a block diagram illustrating arbitration in an embodiment of the present invention. In FIG. 3, the same parts as those in FIG. The
モータコマンド制御モジュール123は、例えば記憶部とCPU(Central Processing Unit)等のプロセッサを有するコンピュータ(又は、コンピュータシステム)により形成可能である。この場合、記憶部にはCPUが実行するプログラムや、CPUが実行する演算の中間結果のデータ等を含む各種データが格納される。つまり、プログラムは、コンピュータにモータコマンド制御モジュール123内のモータコマンド受信部31、動作調停情報管理部32、モータコマンド制御部34、管理情報受信部35、及びシーケンス情報管理部36の機能を実現させる。又、記憶部は、モータコマンドキュー格納部33−1〜33−Nをも形成する。更に、記憶部は、上記プログラムを格納したコンピュータ読み取り可能な記憶媒体を形成しても良い。尚、モータコマンド制御モジュール123を形成するコンピュータは、図1に示すセンサ情報通知モジュール122を形成しても良い。つまり、モータコマンド制御モジュール123を形成するコンピュータは、センサ情報通知モジュール122を形成するコンピュータと同じであっても、異なるコンピュータであっても良い。
The motor
本実施例では、ロボット12の仕草等の一連の動作を示すモータコマンドの集合を動作シーケンスとして扱い、各モータコマンドは図4に示すように以下の情報を持つようにする。図4は、モータコマンドの情報を説明する図である。モータコマンドの情報は、モータを識別するための情報(モータID)、目標角度、動作シーケンス開始時刻からの相対時刻でモータコマンドの動作開始時刻と動作終了時刻、及びモータコマンドが所属する動作シーケンスを識別するための情報(シーケンスID)を含む。各モータ124−1〜124−Nのモータコマンドキューは、動作モジュール11−1〜11−Nの単位で、即ち、モータコマンドの送信元(命令者)単位でモータコマンドキュー格納部33−1〜33−Nに保持される。又、モータコマンドは、各モータ124−1〜124−N毎に開始時刻順に送られ、開始時刻の順番にモータコマンドキューに格納される。
In this embodiment, a set of motor commands indicating a series of operations such as gestures of the
動作調停情報管理部32は、動作モジュール11−1〜11−Nと優先度の対応付けを含む動作調停情報を管理する。動作モジュール11−1〜11−Nは、動作シーケンスに関連するモータコマンドを全てモータコマンド制御モジュール123に通知したら、シーケンスIDを管理情報受信部35を介してシーケンス情報管理部36に通知して動作シーケンスを登録する。シーケンス情報管理部36はシーケンス情報として、動作シーケンスの開始時刻を管理する(即ち、シーケンスIDと開始時刻の対応付けを保持する)。モータコマンド制御部34は、現在の時刻に実行するべきモータコマンドのうち、最も優先度の高い動作モジュールのモータコマンドを実行する。
The operation arbitration
本実施例では、現在時刻からモータコマンドの終了時刻までに目標角度まで到達するようにモータを制御する。又、モータコマンドキューに格納されているモータコマンドは、動作終了時刻が過ぎるまでは破棄しない。このような手順により、表1に示す全ての要件r1〜r5を満たすことができる。 In this embodiment, the motor is controlled so as to reach the target angle from the current time to the end time of the motor command. The motor command stored in the motor command queue is not discarded until the operation end time has passed. By such a procedure, all the requirements r1 to r5 shown in Table 1 can be satisfied.
図5は、本実施例におけるデータフローを説明する図である。又、モータコマンド、シーケンス情報、及び動作調停情報のデータ構造の例を夫々表2、表3、表4に示す。 FIG. 5 is a diagram for explaining the data flow in this embodiment. Examples of data structures of motor command, sequence information, and operation arbitration information are shown in Table 2, Table 3, and Table 4, respectively.
図5において、任意の動作モジュール11−i(i=2〜Nの任意の自然数)が複数のモータコマンドからなる動作シーケンスを生成する。動作モジュール11−iが生成した動作シーケンスに所属する全てのモータコマンドは、例えば表2に示す如きデータ構造を有し、モータコマンド制御モジュール123にモータ124−1〜124−N毎に、且つ、開始時刻順に通知される。モータコマンド制御モジュール123では、モータコマンド受信部31がモータコマンドを受け付け、該当するモータを識別するモータIDと送信元の動作モジュール(この場合は動作モジュール11−i)毎のモータコマンドキュー格納部233−iのモータコマンドキューにモータコマンドを振り分けてモータコマンドの開始時刻順(受け付けた順)に格納する。一方、管理情報受信部35は、シーケンスIDを受け付けて、シーケンス情報管理部36に通知する。
In FIG. 5, an arbitrary operation module 11-i (an arbitrary natural number of i = 2 to N) generates an operation sequence composed of a plurality of motor commands. All the motor commands belonging to the operation sequence generated by the operation module 11-i have a data structure as shown in Table 2, for example, and the motor
モータコマンド制御部34は、モータコマンドキューからモータコマンドを取り出し、シーケンス情報管理部36が管理している例えば表3に示す如きデータ構造を有するシーケンス情報(シーケンスIDと動作シーケンスの開始時刻の対応付け)及び動作調停情報管理部32が管理している動作調停情報(動作モジュールと優先度の対応付け)を必要に応じて参照しながら、上記の手順に従ったモータコマンドを該当するモータに送信する。表4は、動作調停情報のデータ構造の一例を示す。
The motor
次に、図3に示すモータコマンド制御部123の動作を、図6と共に説明する。図6は、本実施例におけるモータコマンド制御部123の動作を説明するフローチャートである。モータコマンド制御部123を形成するCPUは、例えば周期的に図6に示す動作制御処理を行うことでモータコマンド制御部123が実行する各手順を実行する。
Next, the operation of the motor
図6において、ステップS1では、任意の動作モジュール11−iからのシーケンスIDを受け付けた管理情報受信部35が現在時刻Tを例えばCPUの内部時計(又は、タイマー)から取得する。ステップS2では、管理情報受信部35がシーケンス情報管理部36に現在時刻Tを通知し、シーケンス情報管理部36は管理しているシーケンスIDの中に開始時刻が設定されていないシーケンスIDがあれば現在時刻Tを開始時刻として設定する。ステップS2の後、全てのモータ124−1〜124−Nに対して以下の処理を実行してモータ124−1〜124−Nを制御する。
In FIG. 6, in step S1, the management
ステップS3では、モータコマンド制御部34が1つのモータを選択してそのモータIDを決定する。ステップS4では、モータコマンド制御部34が動作調停情報管理部32から優先するべき1つの動作モジュール、即ち、未処理で一番優先度の高い動作モジュール名を取得する。ステップS5では、モータコマンド制御部34が実行するべきモータコマンドを出力した動作モジュールが取得できたか否かを判定し、判定結果がNOであると処理はステップS3へ戻る。ステップS5の判定結果がYESであると、ステップS6では、モータコマンド制御部34がモータIDと動作モジュール名を指定して該当するモータコマンドキュー格納部に格納されたモータコマンドキューからモータコマンドを1つ取得する。各モータコマンドキュー格納部233−1〜233−Nのモータコマンドキューには、データコマンド受信部31がモータコマンドを受け付け、該当するモータIDと送信元の動作モジュール毎のモータコマンドキューにモータコマンドを振り分けたモータコマンドの開始時刻順(受け付けた順)にモータコマンドが格納されている。
In step S3, the motor
ステップS7では、モータコマンド制御部34がモータIDと動作モジュール名を指定して該当するモータコマンドキュー格納部に格納されたモータコマンドキューからモータコマンドを1つ取得できたか否かを判定し、判定結果がNOであると処理はステップS4へ戻る。一方、ステップS7の判定結果がYESであると、ステップS8では、モータコマンド制御部34がシーケンス情報管理部36からモータコマンドのシーケンスIDを指定して動作シーケンスの開始時刻TSを取得する。ステップS9では、モータコマンド制御部34がT<TS+「相対動作終了時刻」であるか否かを判定する。ステップS9の判定結果がNOであると、ステップS10では、モータコマンド制御部34がモータコマンドをモータコマンドキューから削除し、処理はステップS6へ戻る。ステップS9の判定結果がYESであると、ステップS11では、モータコマンド制御部34がT>TS+「相対動作開始時刻」であるか否かを判定し、判定結果がNOであると処理はステップS4へ戻る。ステップS11の判定結果がYESであると、処理はステップS13へ進む。
In step S7, the motor
ステップS13では、モータコマンド制御部34がモータコマンドがカレントコマンド(現在のコマンド)と同じであるか否かを判定し、判定結果がYESであると処理は後述するステップS15へ進み、判定結果がNOであると処理はステップS13へ進む。ステップS13では、モータコマンド制御部34がカレントコマンドを更新する。ステップS14では、モータコマンド制御部34が、現在時刻TからTS+「相対動作終了時刻」までに目標角度に到達するように該当するモータを制御する。ステップS15では、モータコマンド制御部34が全てのモータ124−1〜124−Nに対する処理が終了したか否かを判定し、判定結果がNOであると処理はステップS3へ戻る。一方、ステップS15の判定結果がYESであると、ステップS16では、モータコマンド制御部34が一定時間待機した後、処理はステップS1へ戻る。
In step S13, the motor
このようにして、ステップS3で処理の対象となるモータが決定されると、ステップS4で未処理で一番優先度の高い動作モジュール名を取得する。このモータIDと動作モジュール名をステップS3で指定して、ステップS4でモータコマンドキューからモータコマンドを1つ取得する。該当する動作モジュールから該当するモータへのモータコマンドが送られていない場合には、該当するモータコマンドキューは空でありステップS7でモータコマンドが取得できないため、ステップS4で次に優先度の高い動作モジュールから探す。全ての優先度の動作モジュールを処理してもステップS5で処理するべきモータコマンドが見つからない場合には、ステップS5で次に実行するべき動作モジュールが見つからず、このモータの処理を終了して次のモータの処理を行う。 In this manner, when the motor to be processed is determined in step S3, the name of the unprocessed and highest priority operation module is acquired in step S4. The motor ID and operation module name are specified in step S3, and one motor command is acquired from the motor command queue in step S4. If a motor command is not sent from the corresponding operation module to the corresponding motor, the corresponding motor command queue is empty and the motor command cannot be acquired in step S7. Therefore, in step S4, the next highest priority operation is performed. Search by module. If the motor command to be processed is not found in step S5 even if all the priority operation modules have been processed, the operation module to be executed next is not found in step S5. Process the motor.
又、モータコマンドが所属する動作シーケンスのシーケンスIDを指定して、シーケンス情報管理部から、動作シーケンスの開始時間TSをステップS8で取得する。動作シーケンスの開始時刻と、モータコマンドが持つ相対動作終了時刻から、モータコマンドの動作終了時刻を計算し、ステップS9で現在時刻Tが既に動作終了時刻を過ぎている場合には、ステップS10でモータコマンドキューから該当するモータコマンドを削除し、ステップS8で次のモータコマンドを取得する。 Also, the sequence ID of the operation sequence to which the motor command belongs is specified, and the operation sequence start time TS is acquired from the sequence information management unit in step S8. The operation end time of the motor command is calculated from the start time of the operation sequence and the relative operation end time of the motor command. If the current time T has already passed the operation end time in step S9, the motor is determined in step S10. The corresponding motor command is deleted from the command queue, and the next motor command is acquired in step S8.
更に、動作シーケンスの開始時刻と、モータコマンドが持つ相対動作開始時刻から、モータコマンドの動作開始時刻をステップS11で計算する。現在時刻Tがまだ動作開始時刻に達していない場合には、この時間帯に、該当する動作モジュールから該当するモータへの動作指示が来ていないためステップS4で次に優先度の高い動作モジュールを探す。モータコマンドが実行するべきと決定した場合には、ステップS14でモータを制御する指示をモータに出力する。ただし、ステップS12で現在実行中のモータコマンド(カレントコマンド)と同じである場合には、モータへの指示を省略しても良い。ステップS12で現在実行中のモータコマンドと異なる場合には、ステップS13でカレントコマンドを新たなモータコマンドに更新し、ステップS14でモータを制御する指示をモータに出力する。モータへの指示は、現在時刻から動作終了時刻までに目標角度に到達するようにモータを制御する。 Furthermore, the operation start time of the motor command is calculated in step S11 from the start time of the operation sequence and the relative operation start time of the motor command. If the current time T has not yet reached the operation start time, an operation instruction from the corresponding operation module to the corresponding motor has not been received during this time period, so that the next highest priority operation module is selected in step S4. look for. If it is determined that the motor command should be executed, an instruction to control the motor is output to the motor in step S14. However, if it is the same as the motor command (current command) currently being executed in step S12, the instruction to the motor may be omitted. If it is different from the motor command currently being executed in step S12, the current command is updated to a new motor command in step S13, and an instruction to control the motor is output to the motor in step S14. The instruction to the motor controls the motor to reach the target angle from the current time to the operation end time.
次に、例えば上記実施例を採用したロボットシステムアーキテクチャの一例を、図7及び図8と共に説明する。図7は、ロボットシステムアーキテクチャの一例を示すブロック図であり、図8は、図7のロボットシステムアーキテクチャにおける調停を説明する図である。 Next, an example of a robot system architecture that employs the above embodiment will be described with reference to FIGS. FIG. 7 is a block diagram illustrating an example of a robot system architecture, and FIG. 8 is a diagram illustrating arbitration in the robot system architecture of FIG.
図7中、図1と同一部分には同一符号を付し、その説明は省略する。図7に示すロボットシステムアーキテクチャは、複数の動作モジュール11−1〜11−N、ロボット(又は、ロボットモジュール)12、複数のイベント検出モジュール15−1〜15−N、及び動作調停モジュール16がイベント配信システム17に接続された構成を有する。イベント検出モジュール15−1〜15−Nは、ロボット12が影響を受けるイベントを検出する。イベント配信システム17は、汎用サーバで形成可能である。
In FIG. 7, the same parts as those in FIG. In the robot system architecture shown in FIG. 7, a plurality of operation modules 11-1 to 11-N, a robot (or robot module) 12, a plurality of event detection modules 15-1 to 15-N, and an
尚、各モジュール11−1〜11−N,15−1〜15−N,16は、ロボット12内に設けられていても、イベント配信サーバ17が接続されているネットワーク上に設けられていても良い。又、ロボット12内の複数のセンサ121のうち、少なくとも一部のセンサ121はロボット12の外に設けられて外部接続された構成を用いることもできる。
Each module 11-1 to 11-N, 15-1 to 15-N, 16 may be provided in the
各モジュール11−1〜11−N,12,15−1〜15−N,16はイベント配信システム17を通して繋がっており、各動作モジュール11−1〜11−Nが検知した情報をイベントとして公開(publish)する。又、各モジュール11−1〜11−N,15−1〜15−N,16の処理に必要な情報は、イベント配信システム17に対して購読(subscribe)を要求することによりイベントの通知を受けることで取得可能である。又、各動作モジュール11−1〜11−Nは、イベントを受け取り、最終的にはモータコマンドを生成する。ロボット12内のモータコマンド制御モジュール123は、各動作モジュール11−1〜11−Nからのモータコマンドと、動作調停モジュール16からの調停の指針(又は、調停ルール)を受け取り、最終的なモータへの指令を決定する。イベント配信システム17は、例えばJMS(Java Messaging Service)等の周知技術を利用可能である。
The modules 11-1 to 11-N, 12, 15-1 to 15-N, and 16 are connected through the
各動作モジュールは、他の動作モジュールの動作を知る必要はなく(他の動作モジュールの動作結果等をイベントとして受け取っても良いが)、独立しているため、開発効率が高くなる。ただし、各動作モジュールは互いの動作を知らないため、矛盾するモータ指令を出すこともあるが、動作調停モジュール16が調停の指針をモータコマンド制御モジュール123に通知すれば良い。調停の指針の通知方法としては、動作モジュール毎の優先度を与え、モータコマンド制御モジュール123が優先度に応じて動作を変更するようにしても良い。優先度は、動作調停モジュール16により動的に変更可能である。このようなロボットシステムアーキテクチャを構成することで、各動作モジュール11−1〜11−Nの独立性が高まり、開発が容易になると共に、拡張性も向上する。
Each operation module does not need to know the operation of another operation module (the operation result of the other operation module or the like may be received as an event) and is independent. Therefore, the development efficiency increases. However, since each operation module does not know each other's operation, it may issue a contradictory motor command, but the
又、1つのイベント配信システム17に複数のロボットを接続しても良い。この場合、ロボット同士の掛け合い等、ロボット間の連携を取るような動作モジュールが実現可能となる。
A plurality of robots may be connected to one
図8は、説明の便宜上図7のロボット12内に3つのモータが設けられている場合の調停を説明する図である。図8中、細い実線の矢印は動作モジュールからのモータコマンドを示し、太い実線の矢印は実行されるモータコマンドを示し、破線の矢印は上記の方法2を採用した場合に実行されるモータコマンドを示す。又、この例では、優先度が動的にP1,P2,P3と3段階に変更されるものとする。
FIG. 8 is a diagram for explaining arbitration when three motors are provided in the
モータ124−1の場合、上記の方法2では動作モジュール11−2がモータコマンドを登録した時点では動作中の動作モジュール11−1の方が優先度が高く、動作モジュール11−2のモータコマンドは破棄される。このため、その後動作モジュール11−2の優先度が高くなった際に動作モジュール11−2の動作を実行できない。これに対し、本実施例では、適切に優先度によって動作を切り替えることができる。
In the case of the motor 124-1, in the
モータ124−2の場合、上記の方法2は動作モジュール11−3のモータコマンドを実行中に優先度の高い動作モジュール11−1のモータコマンドに上書きされ、動作モジュール11−3のモータコマンドが破棄される。その後動作モジュール11−1のモータコマンドが終了した後に、既にモータコマンドが破棄されてしまっているため、動作モジュール11−3のモータコマンドが実行できない。これに対し、本実施例では、適切に再開することができる。
In the case of the motor 124-2, the
モータ124−3の場合、上記の方法2では動作モジュール11−3からのモータコマンドは、既に優先度が高いモータコマンドの実行中のため破棄され、その後動作モジュール11−2からの動作コマンドが一瞬途切れるが、その間に、動作モジュール11−3のモータコマンドを実行することはできない。この様な場合には、ロボットの動きが一瞬停止することになり、不自然な動作となってしまう。これに対し、本実施例では、この様な間に優先度の低い動作を実行することができる。
In the case of the motor 124-3, in the
上記の如く、本実施例によれば、複数の動作モジュールからの動作シーケンスを自然に切り替えたり再開したりすることができる。又、各動作モジュールは独立して開発可能であり、開発効率を向上できる。この結果、より自然な動作を行うコミュニケーションロボットを効率よく開発できる。 As described above, according to the present embodiment, the operation sequence from a plurality of operation modules can be naturally switched or restarted. Further, each operation module can be developed independently, and the development efficiency can be improved. As a result, a communication robot that performs more natural operations can be efficiently developed.
例えば、ロボットが音楽に合わせて動作(ダンス)をしているときに、ユーザから話しかけられてユーザの相手をして、その後ダンスを再開するような動きを、音楽に合わせて動作する動作モジュールと、インタラクションを行う動作モジュールを夫々作成することにより、比較的簡単に実現できる。更に様々な動作モジュールを作成することにより、自然な動きを行うロボットの動作を効率よく実現できる。又、ロボットの周囲環境の状態やロボットとユーザ間のインタラクション(例えば、会話)の文脈等に合わせて動作モジュールの優先度を変更することにより、ロボットにより複雑な動作を自然に行わせることができる。 For example, when a robot is performing (dance) in accordance with music, an operation module that operates in accordance with music is a movement that is spoken by the user, interacts with the user, and then resumes dance. By creating each operation module that performs interaction, it can be realized relatively easily. Furthermore, by creating various motion modules, it is possible to efficiently realize the motion of the robot that performs natural motion. In addition, by changing the priority of the operation module according to the state of the surrounding environment of the robot and the context of the interaction between the robot and the user (for example, conversation), the robot can naturally perform complicated operations. .
次に、上記実施例の第1変形例を図9と共に説明する。図9は、第1変形例における調停を説明するブロック図である。図9中、図3と同一部分には同一符号を付し、その説明は省略する。 Next, a first modification of the above embodiment will be described with reference to FIG. FIG. 9 is a block diagram illustrating arbitration in the first modification. 9, parts that are the same as those shown in FIG. 3 are given the same reference numerals, and explanation thereof is omitted.
本変形例では、動作調停情報管理部32が管理する表4の動作調停情報を各時刻で動的に変更される。例えば、動作モジュール11−1〜11−Nの中に、ロボット12がユーザとのアイコンタクトを行う動作モジュール11−1と、ロボット12が眠そうな仕草等の自発的な振る舞いを行う動作モジュール11−2が含まれている場合、ロボット12とユーザとの間のインタラクション(例えば、会話)の文脈によってどちらを行うべきかを動作調停モジュール16が決定して、動作調停情報管理部32が管理している表4の動作調停情報の優先度を動的に変更することにより、ロボット12のより自然な動作の切り替えが実現可能となる。
In this modification, the operation arbitration information in Table 4 managed by the operation arbitration
次に、上記実施例の第2変形例を図10と共に説明する。図10は、動作調停情報管理部32が管理する動作調停情報を示す図である。
Next, a second modification of the above embodiment will be described with reference to FIG. FIG. 10 is a diagram illustrating the operation arbitration information managed by the operation arbitration
本変形例では、動作調停情報管理部32が管理する表4の動作調停情報を、動作調停モジュール16が図10に示すようにモータ単位でモジュール毎に管理する。つまり、モータ毎に優先度を変更することができ、モータIDと優先度を指定することで動作モジュールを取得することもできる。これにより、ロボット12のより細かな動作調停が可能となる。同じ動作シーケンスでも、例えばモータによって動作の重要度が異なる場合等、細かな制御が可能になる。尚、本変形例においても上記第1変形例と同様に動作調停情報を動的に変更する場合、より複雑な動作が生成できる一方、動作調停モジュール16自体はより複雑になる。
In this modification, the operation arbitration information in Table 4 managed by the operation arbitration
次に、上記実施例の第3変形例を、図11と共に説明する。図11は、第3変形例におけるモータコマンド制御部の動作を説明するフローチャートである。図11中、図6と同一ステップには同一符号を付し、その説明は省略する。 Next, a third modification of the above embodiment will be described with reference to FIG. FIG. 11 is a flowchart for explaining the operation of the motor command control unit in the third modification. In FIG. 11, the same steps as those in FIG. 6 are denoted by the same reference numerals, and the description thereof is omitted.
本変形例では、モータコマンド制御モジュール123内のモータコマンド制御部34がモータコマンドを実行する際に、モータ毎に角速度の限界値(最大角速度)を設定し、ロボット12の動作の切り替わりを人から見て自然となるように円滑に行わせる。モータコマンド制御部34内には、例えば表5の如き最大角速度を設定するテーブルが格納されている。
In this modification, when the motor
モータコマンド制御部34は、図6のステップS14の代わりに、図11のステップS21〜S23を行う。ステップS21は、ステップS13の後に行われる。ステップS21では、{「目標角度」−「現在角度」}/{TS+「相対動作終了時刻」−T}>「該当モータの最大角速度」であるか否かを判定する。ステップS21の判定結果がYESであるとであると、ステップS22では、現在時刻TからTS+相対動作終了時刻まで目標角度に向かって最大角速度で動作するように該当モータを制御する指示を出力する。一方、ステップS21の判定結果がNOであると、ステップS23では、現在時刻TからTS+相対動作終了時刻までに目標角度に到達するように該当モータを制御する指示を出力する。ステップS22又はステップS23の後、処理はステップS15へ進む。
The motor
動作シーケンスが切り替わる際に、モータの開始位置がわからないため、ロボットが急激な動作を行ってしまう場合がある。本変形例では、このような不都合を防ぐために、モータ毎に最大角速度を設定しておき、この最大角速度を超えない範囲で動作するように各モータを制御する。これにより、切り替わった直後のモータコマンドは該当モータを目標角度まで到達させずに処理が次のモータコマンドに進んでしまうこともあるが、そのような過渡期を経て最終的には切り替わった動作を行うことができ、ロボットの動作をより自然にを切り替えることができる。 When the operation sequence is switched, the robot may suddenly operate because the start position of the motor is not known. In this modification, in order to prevent such inconvenience, a maximum angular velocity is set for each motor, and each motor is controlled to operate within a range not exceeding the maximum angular velocity. As a result, the motor command immediately after switching may cause the motor to reach the target angle without proceeding to the target motor command, but the process may proceed to the next motor command. It is possible to switch the operation of the robot more naturally.
次に、上記実施例の第4変形例を、図12と共に説明する。図12は、第4変形例におけるモータコマンド制御部の動作を説明するフローチャートである。図12中、図11と同一ステップには同一符号を付し、その説明は省略する。 Next, the 4th modification of the said Example is demonstrated with FIG. FIG. 12 is a flowchart for explaining the operation of the motor command control unit in the fourth modification. In FIG. 12, the same steps as those in FIG. 11 are denoted by the same reference numerals, and the description thereof is omitted.
本変形例では、角速度の限界値(最大角速度)を動的に変更可能とする。最大角速度を変更することにより、ロボットに緩慢な動作(眠そうな動作)等を行わせ、ロボットの動作に変化をつけることができる。例えば、上記の表5のテーブルは動作調停情報管理部32が管理し、図9のように動作調停モジュール16が動作調停情報の最大角速度のテーブルを変更する。
In this modification, the limit value (maximum angular velocity) of the angular velocity can be dynamically changed. By changing the maximum angular velocity, it is possible to cause the robot to perform a slow motion (sleepy motion) or the like and change the robot motion. For example, the table in Table 5 is managed by the operation arbitration
モータコマンド制御部34は、図11のステップS12,S13の代わりに、図12のステップS31〜S33を行う。ステップS31は、ステップS11の判定結果がYESであると行われる。ステップS31では、動作調停情報管理部32のテーブルから該当モータの最大角速度を取得する。ステップS32では、モータコマンドが可憐とコマンドと同じ、且つ、最大角速度が変化していないか否かを判定する。ステップS32の判定結果がYESであると処理はステップS15へ進み、判定結果がNOであると処理はステップS33へ進む。ステップS33では、カレントコマンド及び最大角速度を更新し、処理はステップS21へ進む。
The motor
尚、ステップS32において、最大角速度が変化していないか否かを判定しなくても良い。この場合、変更した最大角速度が適用されるのは現在実行中のモータコマンドの動作が終了した後となる。 In step S32, it is not necessary to determine whether or not the maximum angular velocity has changed. In this case, the changed maximum angular velocity is applied after the operation of the motor command currently being executed is completed.
次に、上記実施例の第5変形例を表6及び図13と共に説明する。表6は、シーケンス情報のデータ構造の一例を示す。 Next, a fifth modification of the above embodiment will be described with reference to Table 6 and FIG. Table 6 shows an example of the data structure of the sequence information.
動作モジュールがシーケンス情報管理部36にシーケンスIDを通知する際に、動作シーケンスの相対時刻を指定し、シーケンス情報管理部36が動作シーケンスの開始時刻を決定する際に指定された相対時刻を減算することにより、指定した動作シーケンスを相対時刻から開始することができる。
When the operation module notifies the sequence
つまり、本変形例では、動作モジュールから動作シーケンス指定して、途中からの再生を指示する機能を持たせる。具体的には、シーケンス情報を動作モジュールがシーケンス情報管理部36に通知する際に、動作シーケンス開始場所(動作シーケンスの相対時刻)を同時に通知する。シーケンス情報管理部36では、表6の如きシーケンス情報を管理しており、動作シーケンス開始時刻を設定する際に、動作シーケンス開始場所(動作シーケンスの相対時刻)を減算した値を動作シーケンス開始時刻に設定する。その後は、上記実施例と同様に処理を進めるだけで、動作シーケンスの途中からの再生が可能となる。
That is, in this modified example, a function for designating an operation sequence from the operation module and instructing reproduction from the middle is provided. Specifically, when the operation module notifies the sequence information to the sequence
図13は、第5変形例におけるモータコマンド制御部の動作を説明するフローチャートである。図13中、図6と同一ステップには同一符号を付し、その説明は省略する。 FIG. 13 is a flowchart for explaining the operation of the motor command control unit in the fifth modification. In FIG. 13, the same steps as those in FIG. 6 are denoted by the same reference numerals, and the description thereof is omitted.
本変形例では、モータコマンド制御部34は、図6のステップS2の代わりに、図13のステップS41を行う。ステップS41は、ステップS1の後に行われる。ステップS41では、モータコマンド制御部34がシーケンス情報管理部36に現在時刻Tを通知し、シーケンス情報管理部36は管理しているシーケンスIDの中に開始時刻が設定されていないシーケンスIDがあれば「現在時刻T」−「動作シーケンス開始場所」を開始時刻として設定する。ステップS41の後、処理はステップS3へ進む。
In the present modification, the motor
次に、上記実施例の第6変形例を、図14と共に説明する。図14は、シーケンス情報管理部36に停止又は中断の指示があった場合の詳細な処理の一例を説明するフローチャートである。
Next, a sixth modification of the above embodiment will be described with reference to FIG. FIG. 14 is a flowchart for explaining an example of detailed processing when there is an instruction to stop or interrupt the sequence
動作モジュールが動作シーケンスを停止又は中断したい場合、動作モジュールはシーケンスIDを指定して、シーケンス情報管理部36に中断を指示する。シーケンス情報管理部36は、動作シーケンスの停止又は中断コマンドを受信すると、シーケンス情報管理部36が管理している動作シーケンスの開始時刻を0等のできる限り小さい値(できるだけ古い時刻)に変更することにより、動作シーケンスを中断することができる。モータコマンド制御部34は、上記ステップS8で、シーケンス開始時刻TSを取得する際に、古い時刻を受け取り、同一シーケンスのその後の処理はステップS9の判定結果がNOになるため実行しない。
When the operation module wants to stop or interrupt the operation sequence, the operation module designates the sequence ID and instructs the sequence
尚、動作シーケンスが中断されたか否かを示すフラグをシーケンス情報管理部36で管理し、モータコマンドの実行を決定する際に、このフラグを問い合わせることにより動作シーケンスを中断するようにしても良いことは言うまでもない。。
A flag indicating whether or not the operation sequence is interrupted may be managed by the sequence
図14において、ステップS51では、動作モジュールがシーケンスIDを指定して、モータコマンド制御モジュール123に停止を指示する。ステップS52では、指示を受け取ったシーケンス情報管理部36が、該当動作シーケンスの動作シーケンス開始時刻を上記の如くできるだけ古い時刻に変更する。
In FIG. 14, in step S51, the operation module designates a sequence ID and instructs the motor
上記実施例及び各変形例では、動作シーケンスを、個々のモータコマンド単位と、シーケンス情報に分けて通信しているが、動作シーケンスの通信方法はこれに限定されるものではない。つまり、図4の動作シーケンスの情報を一度のコマンドとして送り、モータコマンド受信部側で動作シーケンスを個々のモータコマンドとシーケンス情報に分けて格納するようにしても良い。 In the above-described embodiments and modifications, the operation sequence is communicated separately with each motor command unit in sequence information, but the communication method of the operation sequence is not limited to this. That is, the operation sequence information of FIG. 4 may be sent as a single command, and the operation sequence may be divided into individual motor commands and sequence information and stored on the motor command receiving side.
図15は、ロボットシステムの他の例を示すブロック図である。図15に示すロボットシステム52は、定型動作を行う動作モジュールであるアプリケーション51からのモータコマンドを受信する。ロボットシステム52は、生き物らしい振る舞いモジュール521、生き物らしい反応モジュール522、その他のモジュール523と、ロボット524を有する。その他のモジュール523には、例えば図7のイベント検出モジュール15−1〜15−Nや動作調停モジュール16等が含まれ、更にセンサ情報通知モジュール122等が含まれても良い。ロボット524は、モータコマンド制御モジュール525を有する。ロボット524は、上記いずれかの実施例又は変形例と同様の構成を有するものであり、センサ、センサ情報通知モジュール及びモータの図示は省略する。モータコマンド制御モジュール525は、モータコマンド制御モジュール123に相当する。
FIG. 15 is a block diagram illustrating another example of the robot system. A
本実施例では、ロボットに例えば体操動作のような定型動作を行わせるアプリケーション(又は、動作モジュール)51からのモータコマンドをモータコマンド制御モジュール525に入力すると、モジュール521〜523等からのモータコマンドと適切な調停が行われる。このため、アプリケーション51からのモータコマンドのみに基づくモータ制御を行ったのではロボット524動作が機械的な定型動作となるところが、アプリケーション51からのモータコマンドと生き物らしい(或いは、人らしい)動作を行わせるモジュール521〜523からのモータコマンドの調停を行うことで、ロボット524の定型動作を人から見て自然で違和感のない円滑な動作(生き物らしい、或いは、人らしい動作)に変換できる。従って、定型動作を行わせるアプリケーション(又は、動作モジュール)51が予め用意されているような場合に、アプリケーション51自体に変更を加えることなく、その定型動作を人から見て自然で違和感のない円滑な動作に変換することができる。
In this embodiment, when a motor command from an application (or operation module) 51 that causes a robot to perform a routine operation such as a gymnastic operation is input to the motor
上記各実施例及び変形例では、本発明がロボットに適用されているが、上記実施例は各種インタラクティブデバイスに適用可能であることは言うまでもない。例えば、インタラクティブデバイスには、各種電子装置や各種家庭用電気製品(所謂、家電)が含まれる。家電には、複数の駆動部により画面を水平面上で回転させたり垂直面に対してチルトさせたりして画面を視聴者の方向に向ける機能を備えたインタラクティブテレビジョン装置、複数の駆動部により送風方向や送風強度を利用者の位置や利用者の数に応じて制御する機能を備えたインタラクティブ空調機器(エアコン)等が含まれる。 In each of the above embodiments and modifications, the present invention is applied to a robot, but it goes without saying that the above embodiments can be applied to various interactive devices. For example, the interactive device includes various electronic devices and various household electric appliances (so-called home appliances). For home appliances, an interactive television device having a function of rotating the screen on a horizontal plane by a plurality of driving units or tilting the screen with respect to a vertical plane to direct the screen toward the viewer, and blowing air by the plurality of driving units. An interactive air conditioner (air conditioner) or the like having a function of controlling the direction and the blowing intensity according to the position of the user and the number of users is included.
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータにより複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドによりインタラクティブデバイスの複数の駆動部を動作させる動作制御方法であって、
任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付ける手順と、
各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出す手順と、
各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順
を前記コンピュータに実行させる、動作制御方法。
(付記2)
各コマンドの情報は、駆動部を識別するための情報、駆動部の目標位置、動作シーケンス開始時刻からの相対時刻でコマンドの動作開始時刻と動作終了時刻、及びコマンドが所属する動作シーケンスを識別するための情報を含み、
各コマンドは、各動作モジュールから各駆動部毎に開始時刻順に送られ、開始時刻の順番に該当するコマンドキューに格納される、付記1記載の動作制御方法。
(付記3)
現在時刻から各コマンドの終了時刻までに該当する駆動部が目標位置まで到達するように各駆動部を制御し、各コマンドキューに格納されている各コマンドは動作終了時刻が過ぎるまでは破棄しない、付記1又は2記載の動作制御方法。
(付記4)
前記動作調停情報を各時刻で動的に変更する手順、前記駆動部毎に優先度を変更する手順、及び前記駆動部の速度の限界値を動的に変更する手順のうち少なくとも1つの手順を前記コンピュータに更に実行させる、付記1乃至3のいずれか1項記載の動作制御方法。
(付記5)
前記任意の動作モジュールは、
前記シーケンス情報を通知する際に動作シーケンス開始場所を同時に通知し、
前記動作シーケンス開始時刻を設定する際に、前記動作シーケンス開始場所を減算した値を動作シーケンス開始時刻に設定する、付記1乃至4のいずれか1項記載の動作制御方法。
(付記6)
複数の駆動部と、
複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドにより前記複数の駆動部を動作させるコマンド制御モジュールと、
各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部を備え、
前記コマンド制御モジュールは、
任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付け、
前記コマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出し、
各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する、インタラクティブデバイス。
(付記7)
前記シーケンス情報を管理するシーケンス情報管理部と、
前記動作調停情報を管理する動作調停情報管理部を更に備えた、付記6記載のインタラクティブデバイス。
(付記8)
各コマンドの情報は、駆動部を識別するための情報、駆動部の目標位置、動作シーケンス開始時刻からの相対時刻でコマンドの動作開始時刻と動作終了時刻、及びコマンドが所属する動作シーケンスを識別するための情報を含み、
各コマンドは、各動作モジュールから各駆動部毎に開始時刻順に送られ、開始時刻の順番に該当するコマンドキューに格納される、付記6又は7記載のインタラクティブデバイス。
(付記9)
前記コマンド制御モジュールは、現在時刻から各コマンドの終了時刻までに該当する駆動部が目標位置まで到達するように各駆動部を制御し、各コマンドキューに格納されている各コマンドは動作終了時刻が過ぎるまでは破棄しない、付記6乃至8のいずれか1項記載のインタラクティブデバイス。
(付記10)
前記動作調停情報管理部内の前記動作調停情報を各時刻で動的に変更する動作調停モジュールを更に備えた、付記7項記載のインタラクティブデバイス。
(付記11)
前記駆動部毎に優先度を変更するように前記動作調停情報管理部内の前記動作調停情報を変更する動作調停モジュールを更に備えた、付記7記載のインタラクティブデバイス。
(付記12)
前記駆動部の速度の限界値を動的に変更するように前記動作調停情報管理部内の前記動作調停情報を変更する動作調停モジュールを更に備えた、付記7記載のインタラクティブデバイス。
(付記13)
前記任意の動作モジュールは、
前記シーケンス情報を通知する際に動作シーケンス開始場所を同時に通知し、
前記動作シーケンス開始時刻を設定する際に、前記動作シーケンス開始場所を減算した値を動作シーケンス開始時刻に設定する、付記6乃至12のいずれか1項記載のインタラクティブデバイス。
(付記14)
コンピュータに、複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドによりインタラクティブデバイスの複数の駆動部を動作させるプログラムであって、
任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付ける手順と、
各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出す手順と、
各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順
を前記コンピュータに実行させる、プログラム。
(付記15)
各コマンドの情報は、駆動部を識別するための情報、駆動部の目標位置、動作シーケンス開始時刻からの相対時刻でコマンドの動作開始時刻と動作終了時刻、及びコマンドが所属する動作シーケンスを識別するための情報を含み、
各コマンドは、各動作モジュールから各駆動部毎に開始時刻順に送られ、開始時刻の順番に該当するコマンドキューに格納される、付記14記載のプログラム。
(付記16)
現在時刻から各コマンドの終了時刻までに該当する駆動部が目標位置まで到達するように各駆動部を制御し、各コマンドキューに格納されている各コマンドは動作終了時刻が過ぎるまでは破棄しない、付記14又は15記載のプログラム。
(付記17)
前記動作調停情報を各時刻で動的に変更する手順、前記駆動部毎に優先度を変更する手順、及び前記駆動部の速度の限界値を動的に変更する手順のうち少なくとも1つの手順を前記コンピュータに更に実行させる、付記14乃至16のいずれか1項記載のプログラム。
(付記18)
前記任意の動作モジュールは、
前記シーケンス情報を通知する際に動作シーケンス開始場所を同時に通知し、
前記動作シーケンス開始時刻を設定する際に、前記動作シーケンス開始場所を減算した値を動作シーケンス開始時刻に設定する、付記14乃至17のいずれか1項記載のプログラム。
(付記19)
前記インタラクティブデバイスはロボットであり、
前記任意の動作モジュールは、該当する駆動部を制御して前記ロボットに定型動作を行わせるモジュールであり、
前記複数の動作モジュールのうち前記任意の動作モジュール以外の動作モジュールは、該当する駆動部を制御して前記ロボットに生き物らしい動作を行わせるモジュールであり、
前記動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順は、前記任意の動作モジュールのコマンドと前記任意の動作モジュール以外の動作モジュールのコマンドを前記動作調停情報に基づいて調停することにより、前記ロボットに定型動作を生き物らしく行わせる、付記14乃至18のいずれか1項記載のプログラム。
(付記20)
付記16乃至19のいずれか1項記載のプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
The following additional notes are further disclosed with respect to the embodiment including the above examples.
(Appendix 1)
An operation control method for operating a plurality of drive units of an interactive device by a command from the plurality of operation modules while switching a plurality of operation modules by a computer,
A procedure for receiving a plurality of commands belonging to an operation sequence generated by an arbitrary operation module for each of the plurality of driving units and in order of start times of the plurality of commands;
A procedure for taking out a command queue command corresponding to the arbitrary operation module from a command queue storage unit in which a command queue for each drive unit is stored in units of operation modules;
Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module An operation control method for causing a computer to execute a procedure for controlling a corresponding drive unit.
(Appendix 2)
The information of each command identifies information for identifying the drive unit, the target position of the drive unit, the operation start time and the operation end time of the command by the relative time from the operation sequence start time, and the operation sequence to which the command belongs. Contains information for
The operation control method according to
(Appendix 3)
Each drive unit is controlled so that the corresponding drive unit reaches the target position from the current time to the end time of each command, and each command stored in each command queue is not discarded until the operation end time has passed, The operation control method according to
(Appendix 4)
At least one of a procedure for dynamically changing the operation arbitration information at each time, a procedure for changing the priority for each driving unit, and a procedure for dynamically changing the speed limit value of the driving unit. The operation control method according to
(Appendix 5)
The optional operation module is:
When notifying the sequence information, the operation sequence start location is notified at the same time,
5. The operation control method according to
(Appendix 6)
A plurality of drive units;
A command control module for operating the plurality of drive units by a command from the plurality of operation modules while switching the plurality of operation modules;
A command queue storage unit in which a command queue for each drive unit is stored in units of operation modules,
The command control module is
A plurality of commands belonging to an operation sequence generated by an arbitrary operation module are received for each of the plurality of driving units and in order of start times of the plurality of commands,
Retrieve a command queue command corresponding to the arbitrary operation module from the command queue storage unit,
Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module An interactive device that controls the corresponding drive unit.
(Appendix 7)
A sequence information management unit for managing the sequence information;
The interactive device according to
(Appendix 8)
The information of each command identifies information for identifying the drive unit, the target position of the drive unit, the operation start time and the operation end time of the command by relative time from the operation sequence start time, and the operation sequence to which the command belongs. Contains information for
The interactive device according to
(Appendix 9)
The command control module controls each drive unit so that the corresponding drive unit reaches the target position from the current time to the end time of each command, and each command stored in each command queue has an operation end time. The interactive device according to any one of
(Appendix 10)
The interactive device according to
(Appendix 11)
The interactive device according to
(Appendix 12)
The interactive device according to
(Appendix 13)
The optional operation module is:
When notifying the sequence information, the operation sequence start location is notified at the same time,
The interactive device according to any one of
(Appendix 14)
A program for causing a computer to operate a plurality of drive units of an interactive device by a command from the plurality of operation modules while switching a plurality of operation modules.
A procedure for receiving a plurality of commands belonging to an operation sequence generated by an arbitrary operation module for each of the plurality of driving units and in order of start times of the plurality of commands;
A procedure for taking out a command queue command corresponding to the arbitrary operation module from a command queue storage unit in which a command queue for each drive unit is stored in units of operation modules;
Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module The program which makes the said computer perform the procedure which controls the applicable drive part.
(Appendix 15)
The information of each command identifies information for identifying the drive unit, the target position of the drive unit, the operation start time and the operation end time of the command by the relative time from the operation sequence start time, and the operation sequence to which the command belongs. Contains information for
The program according to
(Appendix 16)
Each drive unit is controlled so that the corresponding drive unit reaches the target position from the current time to the end time of each command, and each command stored in each command queue is not discarded until the operation end time has passed, The program according to
(Appendix 17)
At least one of a procedure for dynamically changing the operation arbitration information at each time, a procedure for changing the priority for each driving unit, and a procedure for dynamically changing the speed limit value of the driving unit. The program according to any one of
(Appendix 18)
The optional operation module is:
When notifying the sequence information, the operation sequence start location is notified at the same time,
18. The program according to any one of
(Appendix 19)
The interactive device is a robot;
The arbitrary operation module is a module that controls a corresponding driving unit to cause the robot to perform a standard operation,
An operation module other than the arbitrary operation module among the plurality of operation modules is a module that controls a corresponding drive unit to cause the robot to perform an operation like a living creature,
The procedure of executing the command extracted based on the operation arbitration information to control the corresponding drive unit is based on the command of the arbitrary operation module and the command of the operation module other than the arbitrary operation module based on the operation arbitration information. 19. The program according to any one of
(Appendix 20)
A computer-readable storage medium storing the program according to any one of
以上、開示の動作制御方法、インタラクティブデバイス及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。 While the disclosed operation control method, interactive device, and program have been described above by way of the embodiments, the present invention is not limited to the above embodiments, and various modifications and improvements can be made within the scope of the present invention. Needless to say.
11−1〜11−N 動作モジュール
12 ロボット
16 動作調停モジュール
31 モータコマンド受信部
32 動作調停情報管理部
33−1〜33−N モータコマンドキュー格納部
34 モータコマンド制御部
35 管理情報受信部
36 シーケンス情報管理部
121 センサ
122 センサ情報通知モジュール
123 モータコマンド制御モジュール
124,124−1〜124−N モータ
11-1 to 11-
Claims (6)
任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付ける手順と、
各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出す手順と、
各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順
を前記コンピュータに実行させる、プログラム。 A program for causing a computer to operate a plurality of drive units of an interactive device by a command from the plurality of operation modules while switching a plurality of operation modules.
A procedure for receiving a plurality of commands belonging to an operation sequence generated by an arbitrary operation module for each of the plurality of driving units and in order of start times of the plurality of commands;
A procedure for taking out a command queue command corresponding to the arbitrary operation module from a command queue storage unit in which a command queue for each drive unit is stored in units of operation modules;
Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module The program which makes the said computer perform the procedure which controls the applicable drive part.
各コマンドは、各動作モジュールから各駆動部毎に開始時刻順に送られ、開始時刻の順番に該当するコマンドキューに格納される、請求項1記載のプログラム。 The information of each command identifies information for identifying the drive unit, the target position of the drive unit, the operation start time and the operation end time of the command by the relative time from the operation sequence start time, and the operation sequence to which the command belongs. Contains information for
The program according to claim 1, wherein each command is sent from each operation module to each drive unit in order of start time and stored in a command queue corresponding to the order of start time.
前記任意の動作モジュールは、該当する駆動部を制御して前記ロボットに定型動作を行わせるモジュールであり、
前記複数の動作モジュールのうち前記任意の動作モジュール以外の動作モジュールは、該当する駆動部を制御して前記ロボットに任意の動作を行わせるモジュールであり、
前記動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順は、前記任意の動作モジュールのコマンドと前記任意の動作モジュール以外の動作モジュールのコマンドを前記動作調停情報に基づいて調停することにより、前記ロボットに定型動作を行わせる、請求項1乃至3のいずれか1項記載のプログラム。 The interactive device is a robot;
The arbitrary operation module is a module that controls a corresponding driving unit to cause the robot to perform a standard operation,
An operation module other than the arbitrary operation module among the plurality of operation modules is a module that controls the corresponding drive unit to cause the robot to perform an arbitrary operation.
The procedure of executing the command extracted based on the operation arbitration information to control the corresponding drive unit is based on the command of the arbitrary operation module and the command of the operation module other than the arbitrary operation module based on the operation arbitration information. The program according to any one of claims 1 to 3, wherein the program causes the robot to perform a standard operation by performing arbitration.
複数の動作モジュールを切り替えながら前記複数の動作モジュールからのコマンドにより前記複数の駆動部を動作させるコマンド制御モジュールと、
各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部を備え、
前記コマンド制御モジュールは、
任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付け、
前記コマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出し、
各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する、インタラクティブデバイス。 A plurality of drive units;
A command control module for operating the plurality of drive units by a command from the plurality of operation modules while switching the plurality of operation modules;
A command queue storage unit in which a command queue for each drive unit is stored in units of operation modules,
The command control module is
A plurality of commands belonging to an operation sequence generated by an arbitrary operation module are received for each of the plurality of driving units and in order of start times of the plurality of commands,
Retrieve a command queue command corresponding to the arbitrary operation module from the command queue storage unit,
Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module An interactive device that controls the corresponding drive unit.
任意の動作モジュールが生成した動作シーケンスに所属する複数のコマンドを、前記複数の駆動部毎に、且つ、前記複数のコマンドの開始時刻順に受け付ける手順と、
各駆動部に対するコマンドキューが動作モジュールの単位で格納されたコマンドキュー格納部から前記任意の動作モジュールに該当するコマンドキューのコマンドを取り出す手順と、
各動作シーケンスを識別する情報と各動作シーケンスの開始時刻の対応付けを含むシーケンス情報及び各動作モジュールと各動作モジュールの優先度の対応付けを含む動作調停情報に基づいて取り出したコマンドを実行して該当する駆動部を制御する手順
を前記コンピュータに実行させる、動作制御方法。 An operation control method for operating a plurality of drive units of an interactive device by a command from the plurality of operation modules while switching a plurality of operation modules by a computer,
A procedure for receiving a plurality of commands belonging to an operation sequence generated by an arbitrary operation module for each of the plurality of driving units and in order of start times of the plurality of commands;
A procedure for taking out a command queue command corresponding to the arbitrary operation module from a command queue storage unit in which a command queue for each drive unit is stored in units of operation modules;
Execute the command extracted based on the sequence information including the correspondence between the information identifying each operation sequence and the start time of each operation sequence, and the operation arbitration information including the correspondence between the priority of each operation module and each operation module An operation control method for causing a computer to execute a procedure for controlling a corresponding drive unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010105125A JP5445312B2 (en) | 2010-04-30 | 2010-04-30 | Operation control method, interactive device, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010105125A JP5445312B2 (en) | 2010-04-30 | 2010-04-30 | Operation control method, interactive device, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011233071A JP2011233071A (en) | 2011-11-17 |
JP5445312B2 true JP5445312B2 (en) | 2014-03-19 |
Family
ID=45322301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010105125A Expired - Fee Related JP5445312B2 (en) | 2010-04-30 | 2010-04-30 | Operation control method, interactive device, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5445312B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013145282A1 (en) * | 2012-03-30 | 2013-10-03 | 富士通株式会社 | Data processing device |
CN104272203B (en) * | 2012-05-11 | 2016-10-12 | 三菱电机株式会社 | Control device and control method |
JP5578220B2 (en) * | 2012-10-22 | 2014-08-27 | 株式会社安川電機 | Robot system |
JP2018102606A (en) * | 2016-12-27 | 2018-07-05 | 株式会社サテライトオフィス | Robot or voice-compatible electronic circuit module control system |
CN115951612B (en) * | 2023-01-06 | 2025-01-21 | 深圳市应和脑科学有限公司 | A synchronous control method of a biopotential signal acquisition system with different interface timing and an acquisition circuit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003266353A (en) * | 2002-03-18 | 2003-09-24 | Sony Corp | Robot device and control method therefor |
JP2003266352A (en) * | 2002-03-18 | 2003-09-24 | Sony Corp | Robot device and control method therefor |
JP2004291147A (en) * | 2003-03-26 | 2004-10-21 | Sony Corp | Robot's behavior control system |
JP4560078B2 (en) * | 2007-12-06 | 2010-10-13 | 本田技研工業株式会社 | Communication robot |
-
2010
- 2010-04-30 JP JP2010105125A patent/JP5445312B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011233071A (en) | 2011-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6448971B2 (en) | Interactive device | |
JP5445312B2 (en) | Operation control method, interactive device, and program | |
TWI683578B (en) | Video communication method and device, terminal and computer readable storage medium | |
CN104049743B (en) | For making touch feedback call synchronous system and method | |
US9158379B2 (en) | Haptic warping system that transforms a haptic signal into a collection of vibrotactile haptic effect patterns | |
EP3959598A1 (en) | Devices, methods, and user interfaces for adaptively providing audio outputs | |
JP2013532334A5 (en) | ||
JP2001229392A (en) | Rational architecture for executing conversational character with communication of small number of messages | |
KR20210010523A (en) | Coordination of execution of a series of actions requested to be performed through an automated assistant | |
AU2022200827B2 (en) | Method for capturing haptic content in multiple communication devices | |
Mayer et al. | User Interface Beaming--Seamless Interaction with Smart Things Using Personal Wearable Computers | |
JP2022518127A (en) | Resource scheduling methods and equipment, electronic devices and recording media | |
JP2007245317A (en) | Robot controller, program, and robot control method | |
US20230341941A1 (en) | Using a Haptic Effects Library to Determine Whether to Provide Predefined or Parametrically-Defined Haptic Responses, and Systems and Methods of Use Thereof | |
CN104272201A (en) | Time map making device, controller, mechanical element control system, time map making method, program, and information storage medium | |
JP2017035215A (en) | Information processor, information processing system, and character movement control program | |
JP2018021987A (en) | Conversation processing device and program | |
WO2002030630A1 (en) | Robot apparatus and robot apparatus motion control method | |
JP5834677B2 (en) | Interaction system, interactive system and program | |
JPWO2019146188A1 (en) | Information processing device and information processing method | |
JP7013613B1 (en) | Control system and control method for heterogeneous edge devices | |
EP4147830B1 (en) | Doppelganger tele-robotic system | |
Gal | Smart offices | |
JP4550278B2 (en) | Remote computer processing | |
CN105607885A (en) | Display controlling method and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130206 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131120 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5445312 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |