JP2006088328A - Communication robot and its development supporting device - Google Patents
Communication robot and its development supporting device Download PDFInfo
- Publication number
- JP2006088328A JP2006088328A JP2005286752A JP2005286752A JP2006088328A JP 2006088328 A JP2006088328 A JP 2006088328A JP 2005286752 A JP2005286752 A JP 2005286752A JP 2005286752 A JP2005286752 A JP 2005286752A JP 2006088328 A JP2006088328 A JP 2006088328A
- Authority
- JP
- Japan
- Prior art keywords
- behavior
- module
- robot
- action
- rule
- 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.)
- Pending
Links
Images
Abstract
Description
この発明はコミュニケーションロボットおよびその開発支援装置に関し、特にたとえば、特定状況における行動をモジュール化した行動モジュールを複数規定し、その行動モジュールの基本的な実行順序に関する規則を複数規定し、その複数の規則に基づいて複数の行動モジュールを実行することによって、コミュニケーション行動を取るコミュニケーションロボットおよびそのようなコミュニケーションロボットを開発するための開発支援装置に関する。 The present invention relates to a communication robot and its development support device, and in particular, for example, defines a plurality of behavior modules obtained by modularizing behavior in a specific situation, defines a plurality of rules regarding the basic execution order of the behavior modules, and the plurality of rules. The present invention relates to a communication robot that takes a communication action by executing a plurality of action modules based on the above and a development support apparatus for developing such a communication robot.
従来、ロボットの行動をソフトウェアモジュール化し、これを実行する技術は存在している(たとえば非特許文献1参照)。
従来のロボットでは、単調でない行動を実現するためには、ランダムな要素に基づいて行動モジュールを実行する必要があったので、そのロボット自身が過去に取って来た行動と矛盾する行動が生じてしまうおそれがあった。一方、矛盾がないように行動モジュールを起動することは、逆に行動の単調さを招くこととなってしまう。たとえば、実行する行動モジュールを予めすべて決めてしまうと、状況に拘らず決まりきった単調な行動となってしまう。このような行動の有り様は、一定範囲の環境内で予め定められた動作をする産業用ロボットとしては適当であるが、人間と多様なコミュニケーションを取るコミュニケーションロボットとしては適しているとは言い難い。 In order to realize a non-monotonous behavior in a conventional robot, it was necessary to execute a behavior module based on a random element, so that behavior that contradicts the behavior that the robot itself has taken in the past has occurred. There was a risk of it. On the other hand, starting the behavior module so that there is no contradiction results in a monotonous behavior. For example, if all the action modules to be executed are determined in advance, it becomes a monotonous action that is determined regardless of the situation. Such behavior is suitable as an industrial robot that performs a predetermined operation within a certain range of environment, but is not suitable as a communication robot that performs various communications with humans.
また、多数のモジュールが存在するロボットを開発する際に、既存のモジュール間の関係性を表現するような手段は無く、その関係を把握することは困難であった。したがって、既に実装したモジュールが有している関係を把握することなく、新たなモジュールの関係を考案して入力したり、既存の関係を変更したりせねばならず、開発が困難であった。なお、単にプログラム入力手段のみを視覚化したグラフィカルなプログラム手法は一般的にあるが、このようなグラフィカルプログラム手法においても多数のモジュール間の関係は把握できない。 Further, when developing a robot having a large number of modules, there is no means for expressing the relationship between existing modules, and it is difficult to grasp the relationship. Therefore, it is difficult to develop a new module relationship without having to grasp the relationship that the already installed module has, and to change the existing relationship. In general, there is a graphical program method in which only the program input means is visualized, but even in such a graphical program method, the relationship between a large number of modules cannot be grasped.
それゆえに、この発明の主たる目的は、単調でなくかつ矛盾の無いコミュニケーション行動を取ることができる、コミュニケーションロボットを提供することである。 Therefore, a main object of the present invention is to provide a communication robot that can take communication actions that are not monotonous and consistent.
この発明の他の目的は、多数のモジュール間の関係を簡単に把握できる、コミュニケーションロボットの開発支援装置を提供することである。 Another object of the present invention is to provide a communication robot development support device that can easily grasp the relationship between a large number of modules.
第1の発明は、特定状況における行動をモジュール化した複数の行動モジュールおよび行動モジュールの基本的な実行順序を規定した複数の規則を備え、複数の規則に基づいて複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットであって、複数の行動モジュールを格納する行動モジュール記憶手段、複数の規則を格納する規則記憶手段、行動モジュールの実行履歴と複数の規則とを比較して、実行履歴に該当する規則および次に実行可能な行動モジュールの候補を選出する候補選出手段、候補選出手段によって選出された候補から、次に実行する行動モジュールを選択する次行動選択手段、および次行動選択手段によって選択された行動モジュールを実行する行動モジュール実行手段を備える、コミュニケーションロボットである。 A first invention includes a plurality of behavior modules obtained by modularizing behavior in a specific situation, and a plurality of rules that define a basic execution order of the behavior modules, and the plurality of behavior modules are executed based on the plurality of rules. A communication robot that takes communication action by an action module storage means for storing a plurality of action modules, a rule storage means for storing a plurality of rules, and comparing an execution history of the action modules with a plurality of rules. Candidate selecting means for selecting a candidate corresponding to a rule corresponding to the above and a next executable action module, a next action selecting means for selecting an action module to be executed next from candidates selected by the candidate selecting means, and a next action selecting means Action module execution means for executing the action module selected by Obtain, it is a communication robot.
第2の発明は、特定状況における行動をモジュール化した複数の行動モジュールおよび複数の行動モジュールの基本的な実行順序を規定した複数の規則を備え、複数の規則に基づいて複数の行動モジュールを実行することによってコミュニケーション行動を取るコミュニケーションロボットを開発するためのコミュニケーションロボット開発支援装置であって、複数の行動モジュール間の関係を視覚化する視覚化画面を表示する画面表示手段、複数の行動モジュールをそれぞれ表わす画像の視覚化画面上における配置を、複数の行動モジュール間の関係の強さに基づいて算出する配置算出手段、指定される検索状況と複数の規則とを比較して、検索状況に該当する規則を選出する検索手段、複数の行動モジュールをの画像の表示形態を、検索状況および検索手段の処理による検索結果に基づいて、区別して設定する表示形態設定手段、および算出された配置および設定された表示形態に基づいて、複数の行動モジュールの画像を視覚化画面上に表示する行動モジュール表示手段を備える、コミュニケーションロボット開発支援装置である。 The second invention includes a plurality of behavior modules obtained by modularizing behavior in a specific situation, and a plurality of rules that define a basic execution order of the plurality of behavior modules, and the plurality of behavior modules are executed based on the plurality of rules. A communication robot development support device for developing a communication robot that takes communication action by performing screen display means for visualizing a relationship between a plurality of action modules, and a plurality of action modules respectively An arrangement calculating means for calculating the arrangement of the image to be displayed on the visualization screen based on the strength of the relationship between the plurality of behavior modules, and comparing the specified search situation with a plurality of rules, and corresponding to the search situation Search means for selecting rules, search for image display form of multiple behavior modules Display mode setting means for setting differently based on the situation and the search result by the processing of the search means, and displaying images of a plurality of behavior modules on the visualization screen based on the calculated arrangement and the set display form It is a communication robot development support apparatus provided with the action module display means to do.
第1の発明のコミュニケーションロボットは、複数の行動モジュールおよび行動モジュールの基本的な実行順序に関する複数の規則を備えている。行動モジュールは、たとえば、この行動モジュールを実行する前提条件,ロボットの行動を提示する指示部およびロボットの行動に対する人間の反応を認識する認識部を備えていて、前提条件を満足する場合のみ指示部が実行されて、その後認識部が実行される。このロボットでは、ロボットが現在まで行ってきたコミュニケーション行動の履歴に基づいて、次に実行する行動モジュールが選択されて実行される。つまり、候補選択手段によって、行動モジュールの実行履歴と格納されている複数の規則とが比較され、実行履歴に該当する規則が選出される。また、規則には、基本的に、特定の状況において次に行う行動モジュールが規定されており、この規定された行動モジュールが、次に実行可能な行動モジュールの候補として選出される。そして、次行動選択手段によって、選出された候補から次に実行する行動モジュールが選択される。たとえば、実行中であった行動モジュールの結果に適合する行動モジュールが選出され、かつ、行動モジュールに規定されている前提条件を満足するものが選出される。このようにして、実行履歴に基づいて選択された行動モジュールが行動モジュール実行手段によって実行される。 The communication robot of the first invention includes a plurality of behavior modules and a plurality of rules concerning the basic execution order of the behavior modules. The behavior module includes, for example, a precondition for executing this behavior module, an instruction unit for presenting the robot behavior, and a recognition unit for recognizing a human reaction to the robot behavior, and only when the precondition is satisfied Is executed, and then the recognition unit is executed. In this robot, an action module to be executed next is selected and executed based on a history of communication actions that the robot has performed so far. That is, the candidate selecting means compares the execution history of the behavior module with a plurality of stored rules, and selects a rule corresponding to the execution history. The rule basically defines the action module to be performed next in a specific situation, and the specified action module is selected as a candidate of the next executable action module. Then, the next action selection means selects the action module to be executed next from the selected candidates. For example, a behavior module that matches the result of the behavior module that was being executed is selected, and one that satisfies the preconditions defined in the behavior module is selected. In this way, the behavior module selected based on the execution history is executed by the behavior module execution means.
また、規則には優先順位がそれぞれ設定されていてもよい。この場合には、複数の規則が競合するときに、この優先順位に従って、適用する規則を選択することができる。 Moreover, the priority may be set to each rule. In this case, when a plurality of rules conflict, the rule to be applied can be selected according to this priority.
第2の発明の開発支援装置では、画面表示手段によって、ロボットに実装される複数の行動モジュール間の関係を視覚化する視覚化画面が表示される。この視覚化画面には、複数の行動モジュールをそれぞれ表わす画像(アイコン)が表示される。視覚化にあたっては、配置算出手段によって、行動モジュール間の関係の強さに基づいて、各行動モジュールの画像の配置が算出される。これによって、たとえば行動モジュールどうしを結び付ける規則が多く規定されているほど、関係が強くなり、視覚化画面では近くに配置される。また、表示形態設定手段によって、各行動モジュールの画像の表示形態が区別して設定される。この表示形態を区別にあたっては、指定される検索状況および検索手段による検索結果に基づいた設定がなされる。この検索手段によって、開発者であるユーザによって指定された状況に該当する規則が選出される。たとえば、この装置では、3つの検索モードを有していて、現在検索モードを選択することによって現在の状態を指定状況とした検索を行うことができ、また過去検索モードを選択することによって履歴における過去の時点の状態を指定状況とした検索を行うことができ、また、文字検索モードを選択することによって、任意の状況を入力して指定することができる。検索手段では、各検索モードでの指定状況に該当する規則が選出されることによって、その状況の次に実行可能な行動モジュールの候補が選出される。この検索手段によって、各行動モジュールが、検索モードごとの着目時点の行動モジュールに対してどのような関係性にあるか、つまり、過去に実行したものに相当するか、あるいは、次に実行するものに相当するかが明らかになる。各行動モジュールはこのような各検索モードの検索結果に基づく関係、つまり、検索モードごとの着目時点の行動モジュールに対する各行動モジュールの関係に従って区別される。たとえば、着目時点の行動モジュールには赤色で矩形状の現在アイコンが設定され、着目時点よりも過去の行動モジュールには青色で矩形状の過去アイコンが設定され、着目時点の次に実行可能な行動モジュールには緑色で矩形状の次アイコンが設定され、また、着目時点の行動モジュールに関係のない行動モジュールには灰色で小さい正方形の無関係アイコンが設定される。このようにして、行動モジュール表示手段によって、各行動モジュールの画像が算出された配置および設定された表示形態を有するようにして、視覚化画面上に表示され、各行動モジュールの関係が視覚化される。 In the development support device of the second invention, the screen display means displays a visualization screen for visualizing the relationship between the plurality of behavior modules mounted on the robot. Images (icons) representing a plurality of behavior modules are displayed on this visualization screen. In visualization, the arrangement of the image of each behavior module is calculated by the arrangement calculation means based on the strength of the relationship between the behavior modules. As a result, for example, the more rules that connect the behavior modules, the stronger the relationship and the closer they are arranged on the visualization screen. Further, the display form setting unit distinguishes and sets the display form of the image of each behavior module. In distinguishing the display forms, settings are made based on the designated search situation and the search result by the search means. By this search means, a rule corresponding to the situation designated by the user who is the developer is selected. For example, this apparatus has three search modes. By selecting the current search mode, a search can be performed with the current state as the designated status, and in the history by selecting the past search mode. A search can be performed with the state at a past point in time as a specified status, and an arbitrary status can be input and specified by selecting a character search mode. In the search means, a rule corresponding to a specified situation in each search mode is selected, and a candidate of an action module that can be executed next to the situation is selected. By this search means, each behavior module has a relationship with the behavior module at the time of interest in each search mode, that is, corresponds to what has been executed in the past, or what is executed next It becomes clear whether it corresponds to. Each behavior module is distinguished according to the relationship based on the search result of each search mode, that is, the relationship of each behavior module to the behavior module at the time of interest for each search mode. For example, a red and rectangular current icon is set for the action module at the point of interest, and a blue and rectangular past icon is set for the action module past the point of interest. A green and rectangular next icon is set for the module, and a gray and small square irrelevant icon is set for the action module not related to the action module at the time of interest. In this manner, the behavior module display means displays the behavior module images on the visualization screen so as to have the calculated arrangement and the set display form, and the relationship between the behavior modules is visualized. The
また、検索結果表示手段によって、検索手段によって選出された検索結果、すなわち、指定状況に該当する規則をたとえば検索画面等に表示するようにしてもよい。この場合、開発者は規則の内容も画面で確認できる。 Further, the search result display means may display the search result selected by the search means, that is, the rule corresponding to the specified situation, for example, on a search screen. In this case, the developer can also check the contents of the rules on the screen.
また、実行情報受信手段によって、ロボットにおける行動モジュールの実行に関する情報を受信するようにしてもよい。つまり、現在検索モードおよび過去検索モードでの視覚化にあたって必要となる情報(ロボットの実行履歴情報ならびに履歴に基づいて選出された規則および次に実行可能な行動モジュール)がロボットにおける行動の選択処理において得られるので、この情報をロボットから送信させるようにして、開発支援装置では検索処理を省略するようにする。 Further, the execution information receiving means may receive information related to the execution of the behavior module in the robot. In other words, the information necessary for visualization in the current search mode and the past search mode (robot execution history information, rules selected based on the history and the next executable action module) are used in the action selection process in the robot. Since this information is obtained, this information is transmitted from the robot so that the development support apparatus omits the search process.
また、規則を編集(新規作成、修正または削除等)する入力手段を備える場合には、開発者は、視覚化画面を参照して行動モジュールの関係を把握しながら編集作業を行うことができる。この入力手段で編集した規則を登録することによって、規則を更新することができる。開発支援装置では、編集後の規則に基づいた各行動モジュールの関係を視覚化することができる。 In addition, when an input means for editing a rule (new creation, correction, deletion, etc.) is provided, the developer can perform an editing operation while grasping the relationship of the behavior modules with reference to the visualization screen. The rule can be updated by registering the rule edited by this input means. The development support apparatus can visualize the relationship between the behavior modules based on the edited rules.
また、入力手段よって編集した規則に関する編集情報を編集情報送信手段によって、ロボットへ送信するようにしてもよい。この場合には、ロボットでは、編集情報に従って規則が更新され、以後の行動選択処理が編集後の規則に基づいて選択されることとなる。 Further, editing information relating to the rules edited by the input means may be transmitted to the robot by the editing information transmitting means. In this case, in the robot, the rule is updated according to the editing information, and the subsequent action selection process is selected based on the edited rule.
第1の発明によれば、実際の行動モジュールの実行履歴、すなわち、ロボットと人間とのコミュニケーション活動の履歴に基づいて、次に実行可能な行動モジュールが選択されて実行される。したがって、単調でなく、しかも、矛盾の無いコミュニケーション行動を取ることができる。 According to the first invention, the next executable action module is selected and executed based on the actual action module execution history, that is, the history of communication activities between the robot and the human. Therefore, it is possible to take communication actions that are not monotonous and consistent.
第2の発明によれば、モジュール間の関係を視覚化によって直感的に把握することができる。したがって、これら複数の行動モジュール間の関係を把握しながら、たとえば状況に矛盾がなく調和したコミュニケーション行動を実現するように、既存の規則を修正または削除したり、新たな規則を作成したりすることができる。 According to the second invention, the relationship between modules can be intuitively grasped by visualization. Therefore, while grasping the relationship between these multiple action modules, for example, modify or delete existing rules or create new rules so as to realize harmonized communication behavior without any contradiction in the situation. Can do.
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。 The above object, other objects, features and advantages of the present invention will become more apparent from the following detailed description of embodiments with reference to the drawings.
図1を参照して、この実施例のコミュニケーションロボット(以下、単に「ロボット」ということがある。)10は、人間とコミュニケーションすることを目的とした相互作用指向のコミュニケーションロボットである。コミュニケーションロボット開発支援装置(以下、単に「開発支援装置」ということがある。)12は、このようなコミュニケーションロボット10を開発するためのものである。
Referring to FIG. 1, a communication robot (hereinafter, simply referred to as “robot”) 10 of this embodiment is an interaction-oriented communication robot for the purpose of communicating with a human. A communication robot development support device (hereinafter, simply referred to as “development support device”) 12 is for developing such a
開発支援装置12は、たとえばパーソナルコンピュータ(PC)またはワークステーション等のコンピュータで構成されており、たとえば図2に示すようにCPU14を含む。CPU14にはバス16を介してメモリ18,ハードディスク装置(HDD)20,液晶ディスプレイまたはCRT等の表示装置22,マウスおよびキーボード等の入力装置24および通信回路26が接続されている。主記憶装置としてのHDD20には、この開発支援処理を実行するためのプログラムが格納されており、また、表示装置22に表示される画面データ等の各種データも記憶されている。また、HDD20には、ロボット10に格納されているものと同じ後述の行動モジュールおよびエピソード・ルールのデータが格納される。メモリ18はたとえばRAM等であって、ワーキングメモリやバッファメモリとして使用される。ユーザである開発者は入力装置24を操作することによって、画面上の各種ボタンないし設定を選択ないし入力する。通信回路26は通信インタフェースであって、これによって開発支援装置12はネットワークを介してまたは直接にロボット10との間でデータ通信可能にされる。なお、開発支援装置12とロボット10とは有線で接続されてもよいが、ロボット10の行動を阻害しないように無線LAN等で無線通信するのが望ましい。無線LANの種類およびモード等は種々のものが適用可能であり、たとえば電波方式,IrDA赤外線方式,Bluetooth方式等であってよく、またアドホックモードまたはインフラストラクチャモードを問わない。
The
ここで、まず、この開発するロボット10について説明する。コミュニケーションロボット10は、文字通り、人間とコミュニケーションすることを目的とした相互作用指向のロボットであり、特定タスクを制限されたエリアで実行する産業用ロボットのようなタスク指向のロボットとは異なる。このようなロボット10は人間と多様なコミュニケーション行動を取るために、様々な状況における多数の相互作用的な行動を備えるようにされる。このような行動はモジュール化され、「行動モジュール」として実行される。また、各行動の実行順序が規則(「エピソード・ルール」と呼ぶ。)として多数規定され、長期的に首尾一貫した前後関係または調和した状況を維持しているコミュニケーション行動が実現される。つまり、ロボット10は行動モジュールを順次実行し、行動モジュールの実行順序はエピソード・ルールによって導かれる。
Here, first, the
さらに行動モジュールおよびエピソード・ルールについて詳しく説明する。行動モジュールは、図3に示すように、前提条件部,指示部および認識部を含む。行動モジュールを実行する際には、まず、前提条件部が実行されることによって、ロボット10は、その行動モジュールが実行可能な状況であるかどうかを確認する。たとえば、天気情報をインタネットから検索することによって天気についての行動を取ることを実現する行動モジュールは、ロボット10がインタネット接続可能でない場合には、実行可能ではなく、前提条件を満足しない。前提条件を満足する場合には、次に指示部を実行する。これにより、ロボット10は人間と相互作用する行動を取り、具体的には発声および身ぶり等を用いて所定の行動を人間に提示する。人間はこのようなロボット10の行動に対して何らかの反応をするであろう。たとえば、握手の行動モジュールでは、ロボット10は「握手しよう」と言ってその手を差し出す。この場合、その人がロボット10の行為に反応するときはその人は自分の手をロボット10の手の周囲に伸ばすであろう。したがって、認識部は、ロボット10の提示した行動に対して取ると予想される幾つかの人間の反応を認識するように設定される。このように、行動モジュールは特定の状況を生み出し、その後その特定状況下における人間の行動を認識することができる。行動モジュールは特定状況における対話的かつ反応的な行動としての作用−反作用ペアを実現する。
In addition, the behavior module and episode rules will be described in detail. The behavior module includes a precondition section, an instruction section, and a recognition section, as shown in FIG. When executing an action module, first, the precondition section is executed, so that the
この実施例のロボット10では、たとえば100を超える行動モジュールが設定され、たとえば「HELLO」(こんにちはの挨拶をして、返答を認識する),「AKUSHU」(「握手しよう」と言って手を差し出して、握手されたか認識する),「ZYAN」(「じゃんけんしよう」と言って手を出して、その周囲を凝視して人が手を出したかを認識する),「HUG」(だっこする),「FROM」(「何処から来たの」と聞いて、場所の名前を認識する)「BYE」(バイバイと言う),「TURN」(肩を叩かれたときに肩を叩いた人の方を向く),「PATROL」(パトロールといって歩き回る)等のフレンドリな行動や、「P_EYE」(目を擦るポーズ(まね)をする),「P_HEAD」(頭を掻くポーズをする)等の人間に似た特に何もしないでいる行動や、「EXPLORE」(周囲を巡回して調査する)等の日常的な仕事のような行動等を含む。
In the
行動モジュールの推移ないし遷移は、図4に示すように、順次的な遷移および反応的な遷移を含み、また、反応的モジュールが稼動される場合もある。ロボット10は現在の行動モジュールの指示部を実行した後、認識部を実行することによって人間の反応を認識する。その後、ロボット10は、現在の行動モジュールの実行を終了し、認識結果に相当する結果値を記録して、次の実行可能な行動モジュールに推移する(図4(A))。次の実行可能な行動モジュールは、現在の行動モジュールの結果値および行動モジュール実行の履歴によって決定される。この順次的な遷移はエピソード・ルールによって導かれる。また、コミュニケーションにはこのような順次的な遷移によっては解決されない問題すなわち妨害や逸脱がある。たとえば、ある人たちが話をしていて電話が鳴ったときには彼らは会話を止めて電話に応えるであろう。このような妨害および逸脱は反応的遷移および反応的モジュールによって取り扱われる。反応的遷移が現在の状況に対して決められていてかつ対応する次の行動モジュールの前提条件を満足する場合、ロボット10は現在の行動モジュールの実行を止めてすぐに次の行動モジュールに遷移する(図4(B))。この反応的な遷移もエピソード・ルールによって導かれる。一方、反応的モジュールが稼動されるときには、ロボット10は現在の行動モジュールの実行を止めず、これと並行して反応的モジュールを実行する(図4(C))。たとえば、ロボット10が人と話をしていて人がロボット10の腕に触れたとき、ロボット10は反応的モジュールを実行することによって触れられた部分を凝視して(眼球部ないし頭部を触れられた部分に向けて)、そのことに気付いていることを知らせる。
The transition or transition of the behavior module includes a sequential transition and a reactive transition, as shown in FIG. 4, and the reactive module may be activated. The
エピソード・ルールは、行動モジュールの基本的な実行順序に関する規則である。基本的な実行順序とは短期的な行動の遷移ないし推移であることを意味し、たとえば数個程度の行動モジュールの繋がりないし関係であり得るが、長期(たとえば一日中)やすべての行動の推移を定めたものではない。つまり、人間の行動について、たとえば挨拶したら握手するなど、ある程度の行動の短い繋がりあるいは順序付けを定めることが可能であるが、まる一日中の行動のすべてを予め定めることは不可能であり、エピソード・ルールとしてはこのような短い繋がりないし順序付けを規定する。エピソード・ルールは、基本的には、有る状況(履歴)において次に実行する行動モジュールが規定される。また、エピソード・ルールは、次の行動モジュールの実行を抑制するための否定の規則を含む。たとえば、ロボット10が人に何処から来たのか尋ねてその数分後にその人に同じ質問をしてしまう場合等は、状況が調和しておらず矛盾していて不適切であるので、このような不適切な行動の推移はエピソード・ルールによって抑制される。
Episodic rules are rules related to the basic execution order of behavior modules. The basic execution order means a short-term behavior transition or transition, which may be, for example, a connection or relationship of several behavior modules, but a long-term (for example all day) or transition of all behaviors. It is not defined. In other words, it is possible to determine a short connection or ordering of a certain amount of behavior, such as shaking hands when greeting, but it is impossible to predetermine all the behaviors of the whole day, and episode rules As such, this short connection or ordering is prescribed. The episode rule basically defines an action module to be executed next in a certain situation (history). The episode rule includes a negative rule for suppressing execution of the next behavior module. For example, if the
エピソード・ルールは、次に示すような所定の文法に従って記述される。なお、各行動モジュールはモジュールID(Module ID)と呼ばれる独自の識別子を有している。まず、「<ModuleID=result value>」は行動モジュールの実行履歴と結果値を参照するための規則である。「<ModuleID1=result value 1><ModuleID2=result value 2>…」は前に実行された行動モジュールの順序を参照する規則を意味している。「<…>|<…>」は実行された行動モジュールの選択的グループ(“OR”)を意味している。「(…)」は行動モジュール,行動モジュールの順序または行動モジュールの選択的グループからなるブロックを意味する。「(…){n,m}」はn回以上m回以下のブロックの繰返しを意味し、同様に「(…)*」は0回以上の繰返し、「(…)+」は1回以上の繰返しを意味する。また、「!」によって全エピソード・ルールの否定が指定される。たとえば「!<…>…<…>NextModuleID」は、このエピソード・ルールが「<…>…<…>」によって指定される現在の状況に調和するときNextModuleIDが実行されないことを意味する。また、モジュールIDおよび結果値の否定は「^」によって指定される。
Episodic rules are described according to a predetermined grammar as shown below. Each behavior module has a unique identifier called a module ID. First, “<ModuleID = result value>” is a rule for referring to the execution history and result value of the behavior module. “<ModuleID1 =
この実施例では、たとえば880を超えるエピソード・ルールが設定されていて、たとえば「<HELLO>AKUSHU」(挨拶をしたら、握手する),「<TURN>AKUSHU」(肩を叩かれたら、握手する)「<AKUSHU=成功>ZYAN」(握手してもらえたら、じゃんけんする),「<AKUSHU=失敗>BYE」(握手してもらえなかったら、バイバイという),「<TURN><AKUSHU=成功>HUG」(肩を叩かれた後に、握手してもらえたら、だっこする),「!<TURN><AKUSHU=失敗>HELLO」(肩を叩かれた後に、握手してもらえなかったとき、あいさつをしない),「<^HELLO><AKUSHU=失敗><HELLO>ZYAN」(あいさつ以外の行動モジュールをして、握手してもらえなかった後に、あいさつしたら、じゃんけんする),「!<FROM>(<^BYE>)+FROM」(何処から来たのか聞いて、バイバイ以外の行動モジュールを1回以上繰り返しているとき、何処から来たのとは聞かない)等を含む。なお、上記エピソード・ルールの例では結果値を「成功」または「失敗」と記述しているが、これらは実際には所定の数値に置き換えて記述される。 In this embodiment, for example, more than 880 episode rules are set, for example, “<HELLO> AKUSHU” (shake a handshake when greeting), “<TURN> AKUSHU” (shake a handshake when you hit the shoulder) “<AKUSHU = Success> ZYAN” (If you get a handshake, you'll be Janken), “<AKUSHU = Failure> BYE” (If you don't get a handshake, it ’s called Bye Bye), “<TURN> <AKUSHU = Success> HUG” (If you get a handshake after being hit by the shoulder, I will do it), “! <TURN> <AKUSHU = failure> HELLO” (If you do not get a handshake after being hit by your shoulder, do not greet) , “<^ HELLO> <AKUSHU = failure> <HELLO> ZYAN” (Because you don't have a handshake after doing an action module other than the greeting, if you say hello, you'll be confused), “! <FROM> (<^ BYE >) + FROM ”(Listing where you came from and repeating the action module other than bye-bye more than once When, including asked not), etc. and came from where. In the example of the episode rule, the result value is described as “success” or “failure”, but these are actually described by being replaced with predetermined numerical values.
エピソード・ルールは、行動モジュール間の遷移を制御することによって、ロボット10を人間との相互作用の新たなエピソードに導く。ロボット10では、どの行動モジュールを次に実行すべきか決定するために、すべてのエピソード・ルールが行動モジュールの実行履歴と比較される。ロボット10は、現在の行動モジュールの実行中に比較を実行して、次に実行可能な行動モジュールのリストを作成する。現在の行動モジュールの実行の後、ロボット10はリスト中の各行動モジュールの前提条件を確認する。前提条件が満足される場合、その行動モジュールに推移する。エピソード・ルールは優先順位を有していて、幾つかのエピソード・ルールが競合する場合には、より高い優先順位を有するエピソード・ルールが適用される。
Episodic rules guide
図5は行動モジュールの推移の一例を示している。初期状態として、ロボット10は「EXPLORE」によって環境を調査している。このとき、人間がロボットの肩に触れると、この状況に一致するエピソード・ルール1が適用されて、このエピソード・ルール1に従った反応的遷移が生じる。このエピソード・ルール1は、「EXPLOREが妨害されたとき、TURNを実行する」ことを規定している。ロボット10は「TURN」を実行することによって、その人の方を向く。この指示部の行為の結果が成功、つまりたとえばその人を認識できたとき、この状況に一致するエピソード・ルール2が適用される。このエピソード・ルール2は、「TURNが成功したら、GREETを実行する」ことを規定している。ロボット10は「GREET」を実行することによって、その人に挨拶し始める。そして、図5では、「GREET」の次に実行する行動モジュールを決定する際に、複数のエピソード・ルールが競合する一例が示される。つまり、行動モジュールの実行履歴と全エピソード・ルールとが比較される。行動モジュールの実行履歴とは、過去に実行した行動モジュールとその結果値,および現在実行中の行動モジュールのことであり、この比較によって、現在の状況に適合するエピソード・ルール3,4および5が選出される。ここで、エピソード・ルール3は「GREETが反応なしの結果に終わるとき、BYEを実行する」ことを規定し、エピソード・ルール4は「TURNが成功した後、GREETを実行したら(その結果がいずれであっても)、AKUSHUを実行する」ことを規定し、エピソード・ルール5は「EXPLOREが妨害された後、AKUSHU以外の行動モジュールを1回以上5回以下繰返しているとき、BYEを実行しない」ことを規定している。つまり、「BYE」がエピソード・ルール3によって選択される次に実行可能なモジュールの候補であり、「AKUSHU」がエピソード・ルール4によって選択される次実行可能モジュールの候補であり、エピソード・ルール5は「BYE」への遷移を抑制する。この場合、競合する各エピソード・ルールの優先順位に従って、適用するエピソード・ルールが決定されて、次に実行する行動モジュールが決定される。たとえばエピソード・ルール5の優先順位がエピソード・ルール3のそれよりも高い場合には、「BYE」は次に実行される行動モジュールではなくなる。なお、さらに優先順位が同一となるときは、次実行モジュールはたとえばランダムで決定する。
FIG. 5 shows an example of behavior module transition. As an initial state, the
このロボット10の多様なコミュニケーション行動を行うためのソフトウェア面の構成の説明をしたが、以下には、ロボット10のハードウェア面の構成を説明する。
Although the configuration of the software surface for performing various communication actions of the
図6を参照して、ロボット10は、台車28を含み、この台車28の下面には、このロボット10を自律移動させる車輪30が設けられる。この車輪30は、車輪モータ(図7において参照番号「86」で示す。)によって駆動され、台車28すなわちロボット10を前後左右任意の方向に動かすことができる。なお、図示しないが、この台車28の前面には、衝突センサ(図7において、参照番号「94」で示す。)が取り付けられ、この衝突センサは、台車28への人や他の障害物の接触を検知する。そして、ロボット10の移動中に障害物との接触を検知すると、直ちに車輪30の駆動を停止してロボット10の移動を急停止させて衝突を未然に防ぐ。
With reference to FIG. 6, the
なお、ロボット10の背の高さは、この実施例では、人、特に子供に威圧感をあたえることがないように、100cm程度とされている。ただし、この背の高さは任意に変更可能である。
In this embodiment, the height of the
台車28の上には、多角形柱のセンサ取付パネル32が設けられ、このセンサ取付パネル32の各面には、超音波距離センサ34が取り付けられる。この超音波距離センサ34は、取付パネル32すなわちロボット10の周囲の主として人との間の距離を計測するものである。
A polygonal column
台車28の上には、さらに、下部が上述の取付パネル32に囲まれて、ロボット10の胴体が直立するように取り付けられる。この胴体は下部胴体36と上部胴体38とから構成され、これら下部胴体36および上部胴体38は、連結部40によって、連結される。連結部40には、図示しないが、昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体38の高さすなわちロボット10の高さを変化させることができる。昇降機構は、後述のように、腰モータ(図7において参照番号「84」で示す。)によって駆動される。上で述べたロボット10の身長100cmは、上部胴体38をそれの最下位置にしたときの値である。したがって、ロボット10の身長は100cm以上にすることができる。
On the
上部胴体38のほぼ中央には、1つの全方位カメラ42と、1つのマイク44とが設けられる。全方位カメラ42は、ロボット10の周囲を撮影するもので、後述の眼カメラ64と区別される。マイク44は、周囲の音、とりわけ人の声を取り込む。
One
上部胴体38の両肩には、それぞれ、肩関節46Rおよび46Lによって、上腕48Rおよび48Lが取り付けられる。肩関節46Rおよび46Lは、それぞれ3軸の自由度を有する。すなわち、肩関節46Rは、X軸,Y軸およびZ軸のそれぞれの軸廻りにおいて上腕48Rの角度を制御できる。Y軸は、上腕48Rの長手方向(または軸)に並行な軸であり、X軸およびZ軸は、そのY軸に、それぞれ異なる方向から直交する軸である。肩関節46Lは、A軸,B軸およびC軸のそれぞれの軸廻りにおいて上腕48Lの角度を制御できる。B軸は、上腕48Lの長手方向(または軸)に並行な軸であり、A軸およびC軸は、そのB軸に、それぞれ異なる方向から直交する軸である。
上腕48Rおよび48Lのそれぞれの先端には、肘関節50Rおよび50Lを介して、前腕52Rおよび52Lが取り付けられる。肘関節50Rおよび50Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕52Rおよび52Lの角度を制御できる。
なお、上腕48Rおよび48Lならびに前腕52Rおよび52L(いずれも図6)の変位を制御するX,Y,X,W軸およびA,B,C,D軸では、「0度」がホームポジションであり、このホームポジションでは、上腕48Rおよび48Lならびに前腕52Rおよび52Lは下方向に向けられる。
In the X, Y, X, W axes and the A, B, C, D axes that control the displacement of the
また、図示しないが、上部胴体38の肩関節46Rおよび46Lを含む肩の部分や上述の上腕48Rおよび48Lならびに前腕52Rおよび52Lには、それぞれ、タッチセンサが設けられていて、これらのタッチセンサは、人がロボット10のこれらの部位に接触したかどうかを検知する。これらのタッチセンサも図7において参照番号92で包括的に示す。
Although not shown, touch sensors are provided on the shoulder portion of the
前腕52Rおよび52Lのそれぞれの先端には、手に相当する球体54Rおよび54Lがそれぞれ固定的に取り付けられる。なお、この球体54Rおよび54Lに代えて、この実施例のロボット10と異なり指の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
なお、ロボット10の形状・寸法等は適宜に設定されるが、他の実施例では、たとえば、上部胴体38は、前面,背面,右側面,左側面,上面および底面を含み、右側面および左側面は表面が斜め前方に向くように形成してもよい。つまり、前面の横幅が背面の横幅よりも短く、上部胴体38を上から見た形状が台形になるように形成されてもよい。このような場合、肩関節46Rおよび46Lは、右側面および左側面に、その表面が左右両側面とそれぞれ平行である左右の支持部を介して取り付けられる。そして、上腕48Rおよび上腕48Lの回動範囲は、これら左右側面または支持部の表面(取り付け面)によって規制され、上腕48Rおよび48Lは取り付け面を超えて回動することはない。しかし、左右側面の傾斜角,B軸とY軸との間隔,上腕48Rおよび48Lの長さ,ならびに前腕52Rおよび52Lの長さ等を適宜に設定すれば、上腕48Rおよび48Lは前方を越えてより内側まで回動できるので、たとえW軸およびD軸による腕の自由度がなくてもロボット10の腕は前方で交差できる。したがって、腕の自由度が少ない場合でも正面に位置する人と抱き合うなどの密接なコミュニケーション(たとえば「HUG」の行動モジュール等)を図ることができる。
Although the shape, dimensions, etc. of the
上部胴体38の中央上方には、首関節56を介して、頭部58が取り付けられる。この首関節56は、3つの自由度を有し、S軸,T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上に向かう軸であり、T軸およびU軸は、それぞれ、このS軸に対して異なる方向で直交する軸である。頭部58には、人の口に相当する位置に、スピーカ60が設けられる。スピーカ60は、ロボット10が、それの周囲の人に対して音声または声によってコミュニケーションを図るために用いられる。ただし、スピーカ60は、ロボット10の他の部位たとえば胴体に設けられてもよい。
A
また、頭部58には、目に相当する位置に眼球部62Rおよび62Lが設けられる。眼球部62Rおよび62Lは、それぞれ眼カメラ64Rおよび64Lを含む。なお、右の眼球部62Rおよび左の眼球部62Lをまとめて眼球部62といい、右の眼カメラ64Rおよび左の眼カメラ64Lをまとめて眼カメラ64ということもある。眼カメラ64は、ロボット10に接近した人の顔や他の部分ないし物体等を撮影してその映像信号を取り込む。
The
なお、上述の全方位カメラ42および眼カメラ64のいずれも、たとえばCCDやCMOSのように個体撮像素子を用いるカメラであってよい。
Note that each of the
たとえば、眼カメラ64は眼球部62内に固定され、眼球部62は眼球支持部(図示せず)を介して頭部58内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部58に対して設定される軸であり、α軸は頭部58の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部58の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部58がホームポジションにあるとき、α軸はS軸に平行し、β軸はU軸に平行するように設定されている。このような頭部58において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部62ないし眼カメラ64の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
For example, the
なお、眼カメラ64の変位を制御するα軸およびβ軸では、「0度」がホームポジションであり、このホームポジションでは、図6に示すように、眼カメラ64のカメラ軸は頭部58の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
In the α axis and β axis that control the displacement of the
図6に示すロボット10の制御系の構成が図7のブロック図に示される。図7に示すように、このロボット10は、全体の制御のためにマイクロコンピュータまたはCPU66を含み、このCPU66には、バス68を通して、メモリ70,モータ制御ボード72,センサ入力/出力ボード74および音声入力/出力ボード76が接続される。
The configuration of the control system of the
メモリ70は、図示しないが、ROMやRAMを含み、ROMにはこのロボット10の制御プログラムが予め書き込まれているとともに、複数の行動モジュールのデータ,複数のエピソード・ルールのデータや、各行動モジュールの実行の際にスピーカ60から発生すべき音声または声の音声データ,所定の身ぶりを示すための角度データ等が格納されている。RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用され得る。
The
モータ制御ボード72は、たとえばDSP(Digital Signal Processor)で構成され、各腕や頭部および眼球部等の各軸モータを制御する。すなわち、モータ制御ボード72は、CPU66からの制御データを受け、右肩関節46RのX,YおよびZ軸のそれぞれの角度を制御する3つのモータと右肘関節50Rの軸Wの角度を制御する1つのモータとの計4つのモータ(図7ではまとめて、「右腕モータ」として示す。)78の回転角度を調節する。また、モータ制御ボード72は、左肩関節46LのA,BおよびC軸のそれぞれの角度を制御する3つのモータと左肘関節50LのD軸の角度を制御する1つのモータとの計4つのモータ(図4ではまとめて、「左腕モータ」として示す。)80の回転角度を調節する。モータ制御ボード72は、また、頭部58のS,TおよびU軸のそれぞれの角度を制御する3つのモータ(図4ではまとめて、「頭部モータ」として示す。)82の回転角度を調節する。モータ制御ボード72は、また、腰モータ84、および車輪30を駆動する2つのモータ(図4ではまとめて、「車輪モータ」として示す。)86を制御する。
The
さらに、モータ制御ボード72は、右眼球部62Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図7ではまとめて、「右眼球モータ」として示す。)88の回転角度を調節し、また、左眼球部62Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図4ではまとめて、「左眼球モータ」として示す。)90の回転角度を調節する。
Furthermore, the
なお、この実施例の上述のモータは、車輪モータ86を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ86と同様に、直流モータであってよい。
The above-described motors of this embodiment are stepping motors or pulse motors for simplifying the control except for the
センサ入力/出力ボード74も、同様に、DSPで構成され、各センサやカメラからの信号を取り込んでCPU66に与える。すなわち、超音波距離センサ34の各々からの反射時間に関するデータがこのセンサ入力/出力ボード74を通して、CPU66に入力される。また、全方位カメラ42からの映像信号が、必要に応じてこのセンサ入力/出力ボード74で所定の処理が施された後、CPU66に入力される。眼カメラ64からの映像信号も、同様にして、CPU66に与えられる。なお、この図7では、図6で説明したタッチセンサは、まとめて「タッチセンサ92」として表され、それらのタッチセンサ92からの信号がセンサ入力/出力ボード74を介して、CPU66に与えられる。
Similarly, the sensor input /
スピーカ60には音声入力/出力ボード76を介して、CPU66から、合成音声データが与えられ、それに応じて、スピーカ60からはそのデータに従った音声または声が出力される。そして、マイク44からの音声入力が、音声入力/出力ボード76を介して、CPU66に取り込まれる。
The synthesized sound data is given to the
通信LANボード96も、同様に、DSPで構成され、CPU66から送られた送信データを無線装置98に与え、無線装置98から送信データを送信させる。また、通信LANボード96は無線装置98を介してデータを受信し、受信データをCPU66に与える。この通信LANボード96および無線装置98によって、ロボット10はこの開発支援装置12または有線LANのアクセスポイント等と無線通信を行うことができ、また完成後には他のロボット10等とも無線通信を行うことができる。
Similarly, the
ロボット10は、左右の腕部分,頭部58および眼球部62等の動きを制御することによって所定の身ぶりを示し、またスピーカ60から音声を出力することによって発声して、行動モジュールの指示部を実行する。そして、ロボット10は、カメラ42,眼カメラ64,マイク44およびタッチセンサ92等を用いて、行動モジュールの認識部の実行、すなわち人の反応の認識を行う。
The
開発支援装置12(図1)は、上述のような行動モジュールおよびエピソード・ルールを基本的構成とするロボット10の開発に役立つものである。開発支援装置12は、行動モジュールの視覚化機能,エピソード・ルールの検索機能,およびエピソード・ルールの入力機能を主に備えている。
The development support apparatus 12 (FIG. 1) is useful for developing the
すなわち、開発支援装置12は、多数の行動モジュールの実行およびこれら行動モジュール間の複雑な関係を視覚化する機能を有しており、この視覚化機能によって、多数のモジュール間の関係を大局的にかつ簡単に把握することが可能となる。また、開発支援装置12は、実装されたエピソード・ルールを検索する機能を有し、検索条件に基づいて、該当するエピソード・ルールおよび次に実行可能な行動モジュールの候補が選出される。また、開発支援装置12は、エピソード・ルールを入力する機能、つまり、既存のエピソード・ルールを修正し、また、新たなエピソード・ルールを作成する機能を有し、この入力機能によって、開発者はロボット10の行動を制御するエピソード・ルールの開発を行うことができる。具体的には、既存のエピソード・ルールを部分修正したり、否定のエピソード・ルールを作成したりすることで、ロボット12の行動を完成させる場合に特に役立つであろう。
That is, the
開発支援装置12では、開発支援処理が開始されると、たとえば図12に示すようなメイン画面が表示装置22に表示される。このメイン画面は、行動モジュールの関係が表示される視覚化画面100を備える。図12の視覚化画面100には初期状態が示されており、行動モジュールの矩形状のアイコン画像が整列して表示されている。
In the
また、図12の画面右側には、実装されている行動モジュールのリストや内容説明等が表示されるモジュール画面等が、境界部分の切換ボタンによって表示/非表示の切換可能に設けられる。 In addition, on the right side of the screen in FIG. 12, a module screen or the like on which a list of installed behavior modules, a description of contents, and the like are displayed can be switched between display and non-display by a boundary switching button.
さらに、メイン画面は、たとえば図13に示すように、検索結果が表示される検索画面102を備える。なお、検索画面102も境界部分の切換ボタンによって表示/非表示の切換可能であり、図12では検索画面102は非表示状態である。
Furthermore, the main screen includes a
検索画面102には、検索結果に従って、すなわち検索条件に該当するエピソード・ルールの文が該当数とともに表示される。検索モードとしては現在検索,過去検索および文字検索の3つのタイプを備えている。検索タイプは、検索画面102上部に設けられた現在検索ボタン104,過去検索ボタン106および文字検索ボタン108によって選択できる。なお、通常は現在検索が選択されている。
On the
視覚化画面100には、各検索タイプに応じた検索結果に基づいて、各行動モジュールの関係が図式的に視覚化されて表示される。つまり、各行動モジュールはアイコン化され、行動モジュールのアイコン画像が視覚化画面100に表示される。各アイコンの配置は全行動モジュールの関係性を考慮して設定される。また、各アイコンの表示形態は、検索モードごとの着目時点に対する各行動モジュールの関係に従って区別して設定される。
On the
図13の視覚化画面100では、現在検索モードにおける一例が示されている。行動モジュールのアイコンは、各行動モジュール間の関係の力に基づいて配置される。行動モジュール間の関係の強さは、行動モジュールどうしを結び付ける関係(エピソード・ルール)が多く規定されているほど強くなり、視覚化画面100において互いに接近して現れることとなる。2つの行動モジュール間の関係の力は、ばねモデル方式として知られる次の式(数1)によって算出される。
The
[数1]
Fij=Kij・Dij−R・Dij -7
ここで、iとjはそれぞれ1つの行動モジュールであり、Fij,DijおよびKijはそれぞれ行動モジュールiとjとの間に働く力,距離およびばね定数である。また、Rは反発力のための定数である。
[Equation 1]
F ij = K ij · D ij -R · D ij -7
Here, i and j are each one behavior module, and F ij , D ij and K ij are the force, distance and spring constant acting between the behavior modules i and j, respectively. R is a constant for repulsive force.
そして、各行動モジュールの位置は、すべての行動モジュールにおいてFijが釣り合うように収束計算することによって算出される。 The position of each behavior module is calculated by performing convergence calculation so that F ij is balanced in all behavior modules.
また、各行動モジュールのアイコンの表示形態は、たとえば色,形状および大きさ等を検索モードごとの着目時点に対する関係性に従って異ならせて設定される。 In addition, the display form of the icon of each behavior module is set, for example, by changing the color, shape, size, and the like according to the relationship to the point of interest for each search mode.
現在検索は現在の状態を調査するものであるから、その着目時点は現在である。したがって、現在検索では、現在実行中の行動モジュールに対する関係性によって表示形態が区別される。現在実行中の行動モジュールのアイコンには、「現在アイコン」が使用される。たとえば、現在アイコンは赤色に彩色され、矩形状で、かつ、大きく設定される。また、現在の行動モジュールよりも過去に実行した行動モジュールのアイコンには、「過去アイコン」が使用される。たとえば、過去アイコンは青色に彩色され、矩形状で、かつ、現在アイコンよりも小さい中程度の大きさに設定される。さらに、過去アイコンと現在アイコンとは、実行順序に従って、たとえば黄色い連結線で連結される。また、検索の結果得られる次に実行可能な行動モジュールの候補のアイコンには、「次アイコン」が使用される。たとえば、次アイコンは緑色に彩色され、矩形状で、かつ、現在アイコンと同程度に大きく設定される。なお、この例では、これら過去,現在および次アイコン枠内には行動モジュールのID(ModuleID)が表示されている。また、着目時点である現在の行動モジュールとは直接の関係のない残りの行動モジュールのアイコンには、「無関係アイコン」が使用される。無関係アイコンは灰色に彩色され、正方形で、かつ、非常に小さく設定される。 Since the current search is to investigate the current state, the point of interest is now. Therefore, in the current search, the display form is distinguished by the relationship with the currently executing action module. The “current icon” is used as the icon of the action module currently being executed. For example, the current icon is colored red, rectangular, and large. Also, “past icon” is used as the icon of the action module executed in the past than the current action module. For example, the past icon is colored blue, is rectangular, and is set to a medium size that is smaller than the current icon. Further, the past icon and the current icon are connected by, for example, a yellow connecting line according to the execution order. Further, “next icon” is used as an icon of a candidate for a next executable action module obtained as a result of the search. For example, the next icon is colored green, is rectangular, and is set as large as the current icon. In this example, the behavior module ID (ModuleID) is displayed in the past, present, and next icon frames. In addition, an “irrelevant icon” is used for the icons of the remaining behavior modules that are not directly related to the current behavior module at the time of interest. Irrelevant icons are colored gray, square, and very small.
なお、図13,14および15の視覚化画面100では、現在アイコンには参照符号Gを、過去アイコンには参照符号Kを付している。また、参照符号を付してない矩形状のアイコンは、次アイコンである。
In addition, in the
現在検索処理は、ロボット10で行われる次実行モジュールの決定処理と同様のものであるため、この実施例では、ロボット10から行動モジュールの実行履歴,該当エピソード・ルールおよび次実行可能モジュールのデータを現状情報として受信するようにしている。行動モジュールの実行履歴データは、過去に実行した行動モジュールとそれらの結果値、および現在実行中の行動モジュールを含む。具体的には、この処理では、行動モジュールの実行履歴と全エピソード・ルールとが比較されて、該当するエピソード・ルールが選出されるとともに、選出されたエピソード・ルールに基づいて、次に実行可能な行動モジュールの候補が選出される。このようにして取得した検索結果すなわち現状情報に従って、各行動モジュールの表示形態が設定されて、アイコンが視覚化画面100に表示され、また、検索画面102にも、検索結果に従った該当エピソード・ルールが表示される。
Since the current search process is the same as the process for determining the next execution module performed by the
図14は、図13の状態からロボット10が次の行動に移った後の状態を示している。つまり、図14では、図13の次実行可能モジュール候補の中から1つの次実行モジュールが選択され実行された後の現在検索の結果が示される。具体的には、図13で現在の行動モジュールとして現在アイコン(参照符号G)で表示されていた行動モジュール(「ASOBO」)が、図14では過去の行動モジュールの1つとして過去アイコン(参照符号K)で表示され、図13で次実行可能モジュールの1つとして次アイコンで表示されていた行動モジュール(「T_TSU」)が、図14では現在の行動モジュールとして現在アイコン(参照符号G)で表示されるとともに、これら変更のあった現在アイコンと過去アイコン(「ASOBO」と「T_TSU」)とが図14では新たに連結線で連結される。また、この状態における新たな次実行可能モジュールの候補が次アイコンで表示される。また、検索画面102も更新され、新たな該当エピソード・ルールが表示される。
FIG. 14 shows a state after the
過去検索は、現在までの実行履歴における過去のある時点の状態を検索するものである。過去検索では、過去の行動モジュールが指定される。つまり、たとえば、過去側に移動させる“<”ボタン(戻ボタン)110および現在側に移動させる“>”ボタン(進ボタン)112をクリックし、または検索ナンバ入力欄114に過去をたどる数を直接入力することによって、どれだけ過去にたどるかを指定することができる。そして、過去の時点における現状情報が既に現在検索処理において取得(この実施例ではロボット10から受信)されているので、過去検索処理としては、指定された過去の時点の現状情報を参照すればよい。これによって表示に必要なデータを取得できる。
The past search is a search for a state at a certain point in the past in the execution history up to now. In the past search, a past action module is specified. That is, for example, the “<” button (return button) 110 to be moved to the past side and the “>” button (decimal button) 112 to be moved to the current side are clicked, or the number of the past is directly entered in the search
過去検索は履歴中のある過去の状態を調査するものであるから、その着目時点は指定される過去の時点である。したがって、過去検索では、指定される過去の行動モジュールに対する関係性によって表示形態が区別される。つまり、たとえば、指定された過去の行動モジュールは、過去検索における言わば「現在の行動モジュール」に相当し、その指定された過去の行動モジュールよりも前に実行した行動モジュールは、言わば「過去に実行した行動モジュール」に相当する。したがって、過去検索の視覚化においては、指定した過去の行動モジュールが現在アイコンに設定され、その指定過去モジュールよりも前に実行した行動モジュールが過去アイコンに設定され、検索の結果得られる次に実行可能な行動モジュールの候補が次アイコンに設定され、残りの行動モジュールが無関係アイコンに設定されて、それぞれ視覚化画面102に表示されることとなる。検索画面102には、同様に該当エピソード・ルールが表示される。
Since the past search is for investigating a past state in the history, the time point of interest is the designated past time point. Therefore, in the past search, the display form is distinguished by the relationship with the specified past action module. That is, for example, the specified past action module corresponds to the “current action module” in the past search, and the action module executed before the specified past action module is, for example, “executed in the past”. Corresponding to the “action module”. Therefore, in past search visualization, the specified past action module is set as the current icon, the action module executed before the specified past module is set as the past icon, and the next execution obtained as a result of the search is executed. The possible behavior module candidates are set as the next icon, and the remaining behavior modules are set as the irrelevant icons, and each is displayed on the
文字検索は、任意の状況におけるロボット10の状態を調査するものである。文字検索では、図15に示すように、状況入力欄116に直接入力することによって、状況を指定できる。そして、指定状況を検索条件とした検索が行われる。つまり、文字検索処理では、入力した状況と実装されている全エピソード・ルールとが比較され、該当するエピソード・ルールが選出されるとともに、該当エピソード・ルールに基づいて次実行可能モジュールの候補が選出される。なお、図15では、指定状況として、「<TURN=1><AKUSHU=1>」が入力欄116に入力されている。
The character search is to investigate the state of the
文字検索モードでは、指定状況の次に実行可能な行動モジュールの候補が選出されるので、その注目時点は指定された状況における最後の行動モジュールの時点である。したがって、文字検索では、指定状況の最後の行動モジュールに対する関係性によって表示形態が区別される。つまり、たとえば、指定状況のうち最後の行動モジュールは、言わば「現在の行動モジュール」に相当し、入力状況のうち最後の行動モジュール以前の行動モジュールは、言わば「過去に実行した行動モジュール」に相当する。したがって、文字検索の視覚化においては、入力状況のうちの最後の行動モジュール(この例では「AKUSHU」)が現在アイコン(参照符号G)に設定され、入力状況のうちの最後以外の行動モジュール(この例では「TURN」)が過去アイコン(参照符号K)に設定され、検索の結果得られた次実行可能モジュールの候補が次アイコンに設定され、残りの行動モジュールが無関係アイコンに設定されて、それぞれ視覚化画面100に表示される。また、検索画面102には、同様に該当エピソード・ルールが表示される。
In the character search mode, action module candidates that can be executed next to the designated situation are selected, and the attention time point is the time of the last action module in the designated situation. Therefore, in the character search, the display form is distinguished by the relationship with the last action module in the specified situation. In other words, for example, the last action module in the specified situation is equivalent to the “current action module”, and the action module before the last action module in the input situation is equivalent to the “action module executed in the past”. To do. Therefore, in the visualization of the character search, the last action module (in this example, “AKUSHU”) in the input situation is set to the current icon (reference symbol G), and the action module other than the last in the input situation ( In this example, “TURN”) is set as the past icon (reference symbol K), the next executable module candidate obtained as a result of the search is set as the next icon, and the remaining behavior modules are set as the irrelevant icons. Each is displayed on the
なお、図15の画面右側には、コントロール画面が表示されている。このコントロール画面では各種の視覚化に関する設定を行えるようになっている。たとえば、行動モジュールのIDのアイコンへの表示、拡大表示、位置計算および検索エピソード・ルールの表示条件等の設定を行える。 A control screen is displayed on the right side of the screen in FIG. In this control screen, various settings related to visualization can be made. For example, display of behavior module IDs on icons, enlarged display, position calculation, search episode / rule display conditions, and the like can be set.
このように、開発者は、現在検索モードによって、実際にロボット10に行動を取らせながらそのコミュニケーションの状態および推移等をリアルタイムで視覚的に把握することができる。また、過去検索モードによって、ロボット10が現在までに行った行動を振り返って確認することができる。また、文字検索モードによって、全エピソード・ルールの中から調査したい状況に該当するエピソード・ルールを確認できる。このような視覚化の結果を利用して、開発者はロボット10の行動の推移にたとえば矛盾や不調和があって修正や変更等の必要性を感じた場合等には、入力画面を開いて、既に登録されているエピソード・ルールを修正したり、あるいは新たなエピソード・ルールを作成したりすることによって、全体的に調和した行動をとるロボット10に仕上げていくことができる。
In this way, the developer can visually grasp the communication state and transition in real time while actually causing the
入力画面は、検索画面102に表示されたエピソード・ルールをたとえばダブルクリック等で選択し、または検索画面102に設けられた“エピソード作成”ボタン118を選択すること等によって、メイン画面とは別ウィンドウで表示される。この入力画面によって、ユーザは、エピソード・ルールの編集作業(修正、新規作成、削除等)を行うことができる。
The input screen is a window that is different from the main screen by selecting the episode / rule displayed on the
入力画面は、たとえば図16に示すように、エピソード・ルール文表示欄120,編集画面122および操作画面124を備える。エピソード・ルール文表示欄120は、登録欄120aおよび編集欄120bを含み、登録欄120aには編集のために選択された既に登録されているエピソード・ルール文が表示され、編集欄120bには編集中の状態のエピソード・ルール文が表示される。編集画面122には、編集中のエピソード・ルールが図式的に表示される。
The input screen includes, for example, an episode / rule
図16では、IDナンバが451の「<MANUAL=255>CHARGE1」というエピソード・ルールが選択された場合の入力画面の一例が示されている。編集欄120bからわかるように、「<MANUAL=255>」と「CHARGE1」との間に行動モジュール枠を追加しようとしている。編集画面122では、行動モジュールまたはそのブロックは四角形のアイコンで表示され、それらは矢印のアイコンで繋げられており、このような視覚化によってエピソード・ルールの構造が容易に把握され得る。
FIG. 16 shows an example of the input screen when the episode rule “<MANUAL = 255> CHARGE1” with the ID number 451 is selected. As can be seen from the
操作画面124には、エピソード・ルールの編集のための各種操作ボタン等が設けられる。たとえば、過去挿入ボタン126によれば、選択されている行動モジュールの過去側に行動モジュール枠(「<>」)を追加挿入でき、また、次挿入ボタン128によれば、選択されている行動モジュールに対して次の行動モジュール枠を追加挿入できる。また、展開ボタン130によれば、編集画面122で選択されているアイコンがブロックであるとき、このブロック内の構成を一列下側に展開表示することができる(図17)。図17に示すように、展開されているブロックは元の列では開かれた本のアイコンで表示される。また、削除ボタン132では、選択されている行動モジュールを削除できる。また、ブロック化ボタン134では、選択されている行動モジュールをブロック化(「(…)」)できる。
The
さらに、操作画面124には、実装されている行動モジュールのIDおよびその結果値のリストがそれらの内容説明とともに表示される参照/説明欄が設けられる。また、ブロックおよび結果値の否定(「^」)やブロックの繰返し等の編集設定欄も設けられる。この編集設定欄において、行動モジュール,結果値,ブロックおよび結果値の否定,ブロックの繰返し等を適宜指定することによって、編集画面122で選択されている行動モジュール枠にその指定した内容を入力することができる。また、既に行動モジュールおよび結果値等が入力されている行動モジュール枠ないしブロックが選択された場合には、それらのIDや内容等が設定欄に表示される。また、操作画面124では、図示は省略されるが、否定(「!」)のエピソード・ルールの指定,および優先順位の設定等も行うことができる。
Further, the
このような操作画面124を操作して、編集したエピソード・ルール文は編集欄120bに表示される。新規登録ボタン136を選択することによって、作成したエピソード・ルールを新規に登録することができる。また、修正登録ボタン138によれば、編集したエピソード・ルールを既存のエピソード・ルールと置き換えて登録することができる。また、登録削除ボタン140によれば、登録欄120aに表示されている選択したエピソード・ルールの登録を削除することができる。この実施例では、エピソード・ルールの新規登録,修正登録または登録削除等の編集に関するデータは編集情報(入力情報)として作成されてロボット10へ送信される。そして、ロボット10では入力情報に従ってエピソード・ルールが処理され、格納される。また、終了ボタン142によってこの入力画面を閉じることができる。
By operating such an
具体的には、開発支援装置12のCPU14は、図8および図9に示すフロー図に従って開発支援処理を実行する。
Specifically, the
処理が開始されると、CPU14は、まず、ステップS1で、HDD20から起動指示データを読み出して通信回路26に与える。これによって、ロボット10に起動指示データが送信される。開発中のロボット10はこの指示データに応じて起動され活動を開始する。ロボット10はたとえば図10および図11に示すフロー図に従って動作する。このロボット10の動作については後述する。
When the process is started, the
次に、ステップS3では、CPU14はHDD20からメイン画面データおよび行動モジュールのデータ等を読み出して表示装置22にたとえば図12に示すようなメイン画面を表示する。図12の視覚化画面100では、初期状態として、全行動モジュールがそれらの関係の強さに関係なく縦横に整列させて配置される。
Next, in step S <b> 3, the
続くステップS5,S7およびS9で、検索モードの種類が判断される。初期状態では現在検索モードが選択されている。検索モードは、図13に示すように、それぞれの検索ボタン104,106および108で選択可能である。なお、ステップS5〜S9で“NO”のとき、つまり、他のボタンが選択されたとき等には、図9のステップS29へ進む。
In subsequent steps S5, S7 and S9, the type of search mode is determined. In the initial state, the search mode is currently selected. The search mode can be selected by each
現在検索ボタン104が選択されている場合には、ステップS5で“YES”と判断して、ステップS11でロボット10から現状情報データが送信されてきたかどうかを判断する。現在検索処理は、ロボット10において実行される次行動モジュールの選択処理(図10のステップS75およびS77)と同様な処理であるため、この実施例では、ロボット10側の処理で得られるモジュールの実行履歴,該当エピソード・ルールおよび次実行可能モジュールの候補を現状情報としてロボット10から送信させ、開発支援装置12では現在検索処理を省略している。ステップS11で“NO”であれば、ステップS5に戻る。ステップS11で“YES”であれば、続くステップS13で、受信した現状情報をHDD20に格納する。ステップS13の処理を終了すると、ステップS19へ進む。
If the
一方、過去検索ボタン106が選択された場合には、ステップS7で“YES”と判断し、続くステップS15で過去検索処理を実行する。具体的には、過去検索では、たとえば、戻りボタン110または進みボタン112、あるいは検索ナンバ入力欄114に入力された数によって過去の時点が指定されるので、この指定された過去における現状情報を、HDD20に格納されている現状情報から取得する。なお、過去検索は、ロボット10が行ってきた行動を振り返って調査・確認するためのものであるので、指定される時点の現状情報が無い場合等にはたとえばエラー表示等を行うようにする。ステップS15の処理を終了すると、ステップS19へ進む。
On the other hand, if the
他方、文字検索ボタン108が選択された場合には、ステップS9で“YES”と判断し、続くステップS17で文字検索処理を実行する。具体的には、文字検索では、状況入力欄116に調査したい状況が指定されるので、この指定された状況を検索条件とした検索処理が実行される。すなわち、指定状況とエピソード・ルールとを比較して、該当するエピソード・ルールを選出するとともに、選出されたエピソード・ルールに規定される次の行動モジュールを、入力された状況の次に実行可能な行動モジュール候補として選出する。ステップS17の処理を終了すると、ステップS19へ進む。
On the other hand, if the
そして、ステップS13,S15またはS17の処理を終了すると、続くステップS19で、各行動モジュールのアイコンの表示形態の設定を処理する。 When the process of step S13, S15 or S17 is completed, the setting of the icon display form of each behavior module is processed in the subsequent step S19.
ここで、現在検索モードの場合には、ステップS13で格納した現状情報を参照してこれに基づいて表示形態の設定を行い、過去検索モードの場合には、ステップS15で取得した指定時点の現状情報を参照してこれに基づいて設定を行う。また、文字検索モードの場合には、表示形態の設定前に、指定状況のうちの最後の行動モジュールを「現在の行動モジュール」として設定し、指定状況のうち最後の行動モジュール以外の行動モジュールを「過去の行動モジュール」として設定しておく。そして、表示形態設定では、現在の行動モジュールに現在アイコンを設定し、過去の行動モジュールに過去アイコンを設定し、次実行可能モジュールの候補に次アイコンを設定する。また、残りの行動モジュールに無関係アイコンを設定する。さらに、実行順序に従って過去アイコン間および過去アイコンと現在アイコンとの間に連結線を設定する。 Here, in the case of the current search mode, the current state information stored in step S13 is referred to, and the display form is set based on the current state information. In the case of the past search mode, the current state at the specified time acquired in step S15. Refer to the information and make settings based on this. In the character search mode, before setting the display mode, the last action module in the specified situation is set as the “current action module”, and the action modules other than the last action module in the specified situation are set. Set as “Past Action Module”. In the display mode setting, the current icon is set for the current action module, the past icon is set for the past action module, and the next icon is set for the next executable module candidate. In addition, irrelevant icons are set for the remaining behavior modules. Further, connection lines are set between past icons and between past icons and current icons according to the execution order.
続いて、ステップS21で、行動モジュールの配置算出処理が必要であるかどうかを判断する。配置算出が必要となるのは、最初の表示の場合およびエピソード・ルールの更新(新規登録,修正登録または削除)があった後の最初の表示の場合である。つまり、エピソード・ルールの更新があったときは各行動モジュールの関係性が変わってしまうので配置が変わるおそれがある。したがって、これらの場合にはステップS21で“YES”と判断し、ステップS23で配置算出を処理してからステップS25へ進む。 Subsequently, in step S21, it is determined whether or not an action module arrangement calculation process is necessary. Arrangement calculation is required for the first display and for the first display after episode rule update (new registration, modification registration or deletion). That is, when the episode / rule is updated, the relationship between the behavior modules is changed, so that the arrangement may be changed. Therefore, in these cases, “YES” is determined in the step S21, the arrangement calculation is processed in a step S23, and then the process proceeds to the step S25.
ステップS23では、実装されている全行動モジュールの間の関係の強さに基づいて、各行動モジュールの配置が算出し、配置データをHDD20に格納する。上述のように、各行動モジュールの位置は、すべての行動モジュールにおいて数1で示されたFijが釣り合うように収束計算することによって算出される。
In step S <b> 23, the placement of each behavior module is calculated based on the strength of the relationship between all the behavior modules installed, and the placement data is stored in the
一方、ステップS21で“NO”であれば、つまり、配置算出が必要ない場合には、既に算出された配置データ利用すればよいのでそのままステップS25へ進む。 On the other hand, if “NO” in the step S21, that is, if the arrangement calculation is not necessary, the arrangement data already calculated may be used, and the process proceeds to the step S25 as it is.
続いて、ステップS25で、検索の結果得られた該当エピソード・ルールのデータの文および該当数等を検索画面102に表示する。また、ステップS27で、ステップS23で算出した配置およびステップS19で設定した表示形態に従って、各行動モジュールのアイコンを視覚化画面100に表示する。これらの処理によって、それぞれの検索モードでの検索結果がメイン画面の検索画面102および視覚化画面100に表示される。
Subsequently, in step S25, the sentence of the corresponding episode / rule data obtained as a result of the search, the number of hits, and the like are displayed on the
たとえば、現在検索においては、図13に示すようなロボット10の現在の状態が示される。そして、ロボット10において、現在実行中の行動モジュールの実行が終了して、次実行可能モジュールの候補から次に実行する行動モジュールが選択され、その実行が開始されると、ロボット10から新たな現状情報が送信されてくる。開発支援装置12では、ステップS11からの視覚化処理が繰返され、たとえば図14に示すような次の現状情報に基づく視覚化がなされることとなる。このように、現在検索では、ロボット10のコミュニケーション行動、つまり、現在までの行動履歴,現在の行動および次に実行する行動モジュールの候補や現在の状態に該当するエピソード・ルール等をリアルタイムで逐一把握することができる。したがって、現在検索では、実際のロボット10の行動を直接および画面を通して観察することができ、ロボット10の行動の一貫性や調和性などを総合的に判断することができる。
For example, in the current search, the current state of the
また、過去検索では、現在までに実行されたロボット10の行動の詳細を事後的に確認することができる。つまり、過去の行動モジュールないし時点ごとに、その時点までの履歴,その時点の実行中の行動モジュールおよびその次に実行可能な行動モジュール候補やその時点の状態に該当するエピソード・ルールを振り返って視覚的に把握することができる。
In the past search, details of the action of the
また、文字検索では、入力指定された状況ごとにその検索条件に適合する検索結果が視覚化される(図15)。したがって、開発中のロボット10のエピソード・ルールの実装状態、すなわち、開発中のロボット10が指定される特定の状況に対してどのような状態であるかを確認することができる。
In the character search, a search result that matches the search condition is visualized for each input specified situation (FIG. 15). Therefore, it is possible to check the episode rule implementation state of the
このようにして、開発者は、たとえば開発中のロボット10に実装しているエピソード・ルールの編集の必要性を判断することができる。たとえば、視覚化画面100では各行動モジュールの配置が関係の強さに基づいて算出されるので、過去の行動モジュール,現在の行動モジュールおよび次の行動モジュール間の距離や方向等を基に、その状況におけるロボット10の行動の適合性を判断してもよい。
In this way, the developer can determine the necessity of editing the episode rule implemented in the
ステップS27の処理を終了し、または、ステップS5,S7およびS9で“NO”の場合には、図9のステップS29へ進む。 If the process of step S27 is completed or if “NO” in steps S5, S7, and S9, the process proceeds to step S29 of FIG.
ステップS29では、エピソード・ルールの入力(編集)が選択されたかどうかを判断する。つまり、たとえば、検索画面102のエピソード・ルール文が選択されたとき、またはエピソード・ルール作成ボタン118が選択されたとき等は、ステップS29で“YES”と判断し、次のステップS31で、入力画面(図16)のデータをHDD20から読み出して表示装置22に表示する。これにより、入力画面はメイン画面上に別ウィンドウで表示され、開発者は視覚化画面100を参照しながらエピソード・ルールの編集作業を行うことができる。
In step S29, it is determined whether episode rule input (edit) has been selected. That is, for example, when an episode / rule sentence on the
この入力画面では、上述のように、開発者は、エピソード・ルールの編集作業をすることができる。つまり、たとえば行動モジュールの枠を適宜挿入したり、ブロック化したり、行動モジュール,結果値,否定,繰り返し等を設定したりして、エピソード・ルールの新規作成,修正または削除等の編集をすることができる。このようなエピソード・ルール入力があったときは、続くステップS33以降の処理を実行する。ステップS33では開発者の入力画面に設けられた各種操作ボタン126〜134および設定等に対する操作に応じてそれぞれのエピソード・ルールの編集処理を実行する。
On this input screen, as described above, the developer can edit episodes and rules. In other words, for example, the action module frame is inserted or blocked as appropriate, and the action module, result value, negation, repetition, etc. are set, and new episode rules are created, modified, or deleted. Can do. When there is such an episode / rule input, the subsequent processing from step S33 is executed. In step S33, each episode / rule editing process is executed in accordance with
続いて、編集の登録があった場合には、つまり、新規登録ボタン136,修正登録ボタン138および登録削除ボタン140が選択された場合には、ステップS35で“YES”と判断して、ステップS37へ進む。一方、登録が無い場合には、ステップS35で“NO”と判断して、図8のステップS5へ戻って処理を繰返す。
Subsequently, when editing is registered, that is, when the
ステップS37では、編集されたエピソード・ルールの情報に従って、記憶されているエピソード・ルールのデータを更新する。新規登録の場合には作成されたエピソード・ルールのデータを新たに追加する。修正登録の場合には元のエピソード・ルールを修正されたエピソード・ルールのデータに置き換え、また、登録削除の場合にはそのエピソード・ルールのデータを削除する。そして、ステップS39で、編集情報データを通信回路26に与えてロボット10に送信する。編集情報は、たとえば、新規,修正または削除に関する情報およびエピソード・ルールの識別子を備えていて、さらに、新規および修正の場合には作成されたエピソード・ルールを備えている。ロボット10ではこの編集情報を受信して、これに応じてその記憶装置に格納されているエピソード・ルールのデータを更新する。したがって、これ以降は、ロボット10では、編集されたエピソード・ルールに基づいて処理が行われることとなる。
In step S37, the stored episode rule data is updated according to the edited episode rule information. In the case of new registration, newly created episode rule data is added. In the case of correction registration, the original episode rule is replaced with the corrected episode rule data, and in the case of registration deletion, the episode rule data is deleted. In step S39, the editing information data is provided to the
また、ステップS29で“NO”であれば、ステップS41で終了であるかどうかを判断する。つまり、メイン画面の図示しない終了メニューが選択された場合には“YES”と判断し、続くステップS43で終了処理を実行して、この開発支援処理を終了する。なお、この終了処理でロボット10に終了指示データを送信して、ロボット10の動作を終了させるようにしてもよい。
If “NO” in the step S29, it is determined whether or not the process is ended in a step S41. That is, if an end menu (not shown) on the main screen is selected, it is determined to be “YES”, an end process is executed in the subsequent step S43, and this development support process is ended. In this end process, the end instruction data may be transmitted to the
この開発支援装置12によれば、多数のモジュール間の関係を視覚的に把握することができる。したがって、たとえば状況に矛盾がなく調和したコミュニケーション行動を実現するように、既存のエピソード・ルールを修正または削除したり、新たなエピソード・ルールを作成したりすることができる。
According to the
なお、上述の実施例では、現在検索処理がロボット10において実行される次行動モジュールの選択処理(図10のステップS75およびS77)と同様な処理であるため、この処理で得られるデータを利用すべく、必要データを現状情報としてロボット10から送信させるようにしているが、現在検索処理をこの開発支援装置12側で行うようにしてもよいのはもちろんである。
In the above-described embodiment, the current search process is the same process as the next action module selection process (steps S75 and S77 in FIG. 10) executed in the
また、上述の実施例で示された各画面は一例であって適宜変更可能であるのは言うまでもない。 Needless to say, each screen shown in the above-described embodiment is an example and can be changed as appropriate.
このようにして開発されるロボット10は、複数の行動モジュールおよび複数のエピソード・ルールを有していて、実際に取って来た行動すなわち行動モジュールの実行履歴と、実装されているエピソード・ルールとを比較することによって、次に実行する行動モジュールを選択するようにしている。また、開発中のロボット10は、開発支援装置12から送信されるエピソード・ルールの編集情報を受信して、この編集情報に従って、実装しているエピソード・ルールのデータを更新することができる。また、開発支援装置12における現在検索および過去検索のための現状情報、すなわち、行動モジュールの実行履歴,現在状態に該当するエピソード・ルールおよび次に実行可能な行動モジュールの候補に関するデータを開発支援装置12へ送信することができる。
The
具体的には、ロボット10はたとえば図10および図11に示すフロー図に従って処理を実行する。ロボット10が起動されると、まず、ステップS61で、メモリ70から最初に行う所定の行動モジュールを読み出して選択する。この最初の行動モジュールは、たとえば上述した「EXPLORE」のように周囲環境を調査するもの等が設定され得る。
Specifically, the
次に、ステップS63では、選択された行動モジュールの実行を開始する。つまり、メモリ70から選択された行動モジュールのデータを読み出して、まず、その指示部(図3)に規定される行動を行う。たとえば、発声を伴う行動モジュールであれば、音声データを音声入出力ボード76に与える。また、身振りを伴う行動モジュールであれば、その行動を行うためのモータ制御データをモータ制御ボード72に与える。これによって、スピーカ60からその音声が出力され、また、各モータが駆動されてその行動(ジェスチャ)が行われる。そして、次に、行動モジュールの認識部を実行して、ロボット10の行動に対する人間の反応を認識し、または、人間と交流するものでない自己完結的な行動の場合はその所定の行動の達成を認識するようにしている。つまり、各センサまたはマイク44あるいは図示しないタイマ等から得られる情報を解析して、認識部に規定された予想結果値に一致する結果を認識したかどうかを判断する。また、反応的モジュール(図4(C))の稼動に合う中断ないし逸脱を認識した場合には、反応的モジュールの実行をする。
Next, in step S63, execution of the selected behavior module is started. That is, the data of the selected action module is read from the
なお、ロボット10は認識部に規定された予想結果を認識したときにその実行中の行動モジュールから次の行動モジュールに移行することとなるが、これらの処理はステップS81以降で処理している。この実施例のロボット10では、ステップS63で行動モジュールの実行を開始するとともに、ステップS65からステップS81の処理を並行して処理している
つまり、ステップS65では、終了であるかどうかを判断する。たとえば、開発中であれば開発支援装置12から終了指示があったか、あるいは、ロボット10を停止させるための終了ボタンが押されたかどうか等を判断する。ステップS65で“YES”であれば、続くステップS67で終了処理を実行して、ロボット10の動作処理を終了する。この終了処理ではロボット12の体の各部位をそれぞれのホームポジションに戻すようにしてもよい。
Note that when the
ステップS65で“NO”であれば、ステップS69で、開発支援装置12からの編集情報が無線LAN等を通して送信されてきたかどうかを判断する。上述したように、開発支援装置12ではエピソード・ルールの編集を入力画面で行うことができ、この編集されたエピソード・ルールのデータが送信される。ステップS69で“YES”であれば、続くステップS71でこの編集情報を受信してメモリ70に書き込み、ステップS73では、この編集情報に従って、メモリ70に格納されているエピソード・ルールのデータを更新する。つまり、新規登録データの場合にはそのエピソード・ルールをメモリ70に格納されているエピソード・ルールのデータに新たに追加する。修正登録データの場合にはメモリ70に格納されているエピソード・ルールのうちの該当するエピソード・ルールを受信した修正エピソード・ルールのデータに置き換える。また、登録削除データの場合にはメモリ70に格納されているエピソード・ルールのデータから削除対象のエピソード・ルールを削除する。このステップS69からS73の処理によって、ロボット10では、編集されたエピソード・ルールのデータが実装(格納)されることとなり、これ以降は編集後のエピソード・ルールに基づいて処理が実行される。
If “NO” in the step S65, it is determined whether or not the editing information from the
ステップS69で“NO”であれば、ステップS75およびS77で、次に実行可能な行動モジュール候補の選出処理を実行する。具体的には、ステップS75で、これまでの行動モジュールの実行履歴をエピソードとしてメモリ70に記憶する。エピソードすなわち行動モジュールの実行履歴のデータは、過去に実行してきた行動モジュールおよびそれらの結果値のデータならびに現在実行中の行動モジュールのデータを含む。そして、続くステップS77では、記憶したエピソードと、メモリ70に実装されている全エピソード・ルールとを比較して、このエピソードに該当するエピソード・ルールを選出するとともに、選出された該当エピソード・ルールに規定されている行動モジュールを次に実行可能な行動モジュールの候補として選出する。このようにして、現在の行動モジュールの実行中に、次に実行可能な行動モジュールの候補が選出される。
If “NO” in the step S69, a next executable action module candidate selection process is executed in the steps S75 and S77. Specifically, in step S75, the execution history of the behavior module so far is stored in the
続くステップS79で、開発中の視覚化のための現状情報データを通信LANボード96に与えて無線装置98を通して開発支援装置12へ送信する。この処理は、上述のように、ロボット10の次行動の選出のための処理で得られるデータを開発支援装置12の視覚化に利用するためのものである。この実施例では、現状情報は、行動モジュールの実行履歴,選出された該当エピソード・ルールおよび次実行可能行動モジュールの候補のデータを含む。開発支援装置12では、この現状情報を受信して、上述したような各検索モードでの視覚化が行われることとなる。
In subsequent step S79, the current status information data for visualization under development is given to the
そして、ステップS81では、行動モジュールの実行を終了するかどうかを判断する。つまり、行動モジュールの認識部に規定された予想結果値に一致する結果を、各種センサおよびスピーカ60等で認識したかどうかを判断する。ステップS81で“YES”であれば、図11のステップS83へ進んで、次に実行する行動モジュールを選択する処理を実行する。
In step S81, it is determined whether to end the execution of the behavior module. That is, it is determined whether or not a result that matches the expected result value defined in the recognition unit of the behavior module is recognized by various sensors and the
ステップS83では、認識した結果値をメモリ70に記憶する。この結果値は、行動モジュールの実行履歴データに使用される。
In step S83, the recognized result value is stored in the
続くステップS85では、ステップS77で選出されたエピソード・ルールおよび次実行可能行動モジュール候補の中から、認識された結果値を満足するエピソード・ルールを選出するとともに、前提条件が満足されている行動モジュールを選出する。エピソード・ルールは、現在実行中の行動モジュールが所定の結果値(図5のエピソード・ルール2では「成功」のみ)で終了したときに実行する行動モジュールが基本的に規定されているので、認識した結果値に基づいて、選出されているエピソード・ルールの適正を判断する必要がある。また、前提条件には、上述したようなインタネット接続可能であるかどうか等があるので、このような設備面での条件が整っているかも判断される。また、たとえば図5の行動モジュール「TURN」では、人が肩に触れることが前提条件であるので、認識した結果値からも前提条件が判断される。
In the subsequent step S85, the episode module that satisfies the recognized result value is selected from the episode rule and the next executable action module candidate selected in step S77, and the behavior module that satisfies the preconditions is selected. Is elected. The episode rule is basically defined as the action module to be executed when the currently executing action module ends with a predetermined result value (only “success” in
そして、ステップS87では、結果値および前提条件を満足するエピソード・ルールおよび行動モジュールの候補が無いかどうかが判断される。ステップS87で“YES”であれば、続くステップS89で、所定の行動モジュールをメモリ70から読み出して選出する。つまり、ロボット10は、行動モジュールの実行履歴との比較から選出される次実行可能な行動モジュールの候補中に、結果値または前提条件を満足する行動モジュールが全く無い場合に実行するための行動モジュールを有している。このような行動モジュールには、たとえば「停止状態」を実現するような特定の行動モジュールが設定される。ステップS89の処理を終了すると、ステップS95へ進む。
In step S87, it is determined whether there are any episode rule and behavior module candidates that satisfy the result value and the precondition. If “YES” in the step S87, a predetermined behavior module is read from the
また、ステップS87で“NO”であれば、つまり、満足する行動モジュールがある場合には、続くステップS91で、複数のエピソード・ルールが競合するかどうかを判断する。つまり、適用されるエピソード・ルールが複数存在するかを判断する。ステップS91で“YES”であれば、ステップS93で、エピソード・ルールの優先順位に基づいて、適用するエピソード・ルールを選出し、この優先順位の高いエピソード・ルールに基づいて、次に実行する行動モジュールを選出する。なお、競合するエピソード・ルールの優先順位が同じ場合には、適用するエピソード・ルールをたとえばランダムに選出するようにする。また、優先順位の高いエピソード・ルールが否定のエピソード・ルールであり、かつ、競合するエピソード・ルールの次行動モジュールの実行を否定するものである場合には、ステップS87と同様に、選出する行動モジュールが無い場合に相当するので、ステップS89と同様にして、このような場合に実行するための所定の行動モジュールを選出するようにする。 If “NO” in the step S87, that is, if there is a satisfactory behavior module, it is determined whether or not a plurality of episode rules conflict in a succeeding step S91. That is, it is determined whether there are a plurality of applied episode rules. If “YES” in the step S91, an episode rule to be applied is selected based on the priority order of the episode rules in a step S93, and an action to be executed next based on the episode rule having the higher priority order. Select a module. When the priority order of competing episode rules is the same, the episode rules to be applied are selected at random, for example. If the high priority episode rule is a negative episode rule and the execution of the next action module of the competing episode rule is denied, the action to be selected is the same as in step S87. Since this corresponds to the case where there is no module, a predetermined behavior module to be executed in such a case is selected in the same manner as in step S89.
そして、ステップS91で“NO”であれば、つまり、エピソード・ルールが競合しない場合であれば、あるいは、ステップS89またはS93の処理を終了すると、続くステップS95で、選出した行動モジュールを次に実行する行動モジュールとして選択(決定)する。ステップS95の処理を終了すると、図10のステップS63に戻り、処理が繰返される。したがって、ロボット10では、ステップS95で選択された次の行動モジュールの実行が開始される。このようにして、ロボット10は、実行履歴と矛盾しない行動モジュールを順次実行して、人間とコミュニケーションを取ることができる。
If “NO” in the step S91, that is, if the episode rule does not conflict, or if the process of the step S89 or S93 is finished, the selected action module is executed next in the step S95. Select (determine) as the action module to perform. When the process of step S95 is completed, the process returns to step S63 of FIG. 10, and the process is repeated. Therefore, in the
この実施例のロボット10によれば、実際の行動モジュールの実行履歴すなわちロボット10と人間とのコミュニケーションの履歴に基づいて、次に実行する行動モジュールが選択されて実行される。したがって、決まりきった単調な行動になるようなことはなく、ロボット10の現状と調和した矛盾の無いコミュニケーション行動を取ることができる。
According to the
また、新たな行動モジュールおよびエピソード・ルールを、たとえば開発支援装置12を用いて、逐次的に追加していくことによって、大規模な行動パターンを備えたコミュニケーションロボット10を実現することができる。
Further, the
なお、図10では、開発中の処理を含んだフロー図を示しているが、この開発支援装置12を用いて開発した後の完成されたロボット10では、たとえば開発時にのみ必要な処理(ステップS69からS73およびステップS79等)を処理しないまたは備えないようにしてもよい。
FIG. 10 shows a flowchart including the process under development. However, in the completed
10 …コミュニケーションロボット
12 …コミュニケーションロボット開発支援装置
14 …CPU
18 …メモリ
20 …HDD
22 …表示装置
24 …入力装置
26 …通信回路
66 …CPU
70 …メモリ
72 …モータ制御ボード
74 …センサ入出力ボード
76 …音声入出力ボード
10 ...
18 ...
22 ...
70 ...
Claims (7)
前記複数の行動モジュールを格納する行動モジュール記憶手段、
前記複数の規則を格納する規則記憶手段、
前記行動モジュールの実行履歴と前記複数の規則とを比較して、前記実行履歴に該当する前記規則および次に実行可能な前記行動モジュールの候補を選出する候補選出手段、
前記候補選出手段によって選出された前記候補から、次に実行する前記行動モジュールを選択する次行動選択手段、および
前記次行動選択手段によって選択された前記行動モジュールを実行する行動モジュール実行手段を備える、コミュニケーションロボット。 A plurality of behavior modules that modularize the behavior in a specific situation, and a plurality of rules that define a basic execution order of the behavior modules, and the communication behavior by executing the plurality of behavior modules based on the plurality of rules A communication robot that takes
Behavior module storage means for storing the plurality of behavior modules;
Rule storage means for storing the plurality of rules;
Candidate selection means for comparing the execution history of the behavior module and the plurality of rules to select the rule corresponding to the execution history and the candidate of the next executable behavior module;
A next action selecting means for selecting the next action module to be executed next from the candidates selected by the candidate selecting means; and an action module executing means for executing the action module selected by the next action selecting means, Communication robot.
前記次行動選択手段は、適用可能な前記規則が複数競合するときにそれぞれの前記優先順位に基づいて適用する前記規則を選択する優先選択手段を含む、請求項1記載のコミュニケーションロボット。 Each of the plurality of rules has a priority order,
The communication robot according to claim 1, wherein the next action selection unit includes a priority selection unit that selects the rule to be applied based on each priority when the plurality of applicable rules conflict.
前記複数の行動モジュール間の関係を視覚化する視覚化画面を表示する画面表示手段、
前記複数の行動モジュールをそれぞれ表わす画像の前記視覚化画面上における配置を、前記複数の行動モジュール間の関係の強さに基づいて算出する配置算出手段、
指定される検索状況と前記複数の規則とを比較して、前記検索状況に該当する前記規則を選出する検索手段、
前記複数の行動モジュールの前記画像の表示形態を、前記検索状況および前記検索手段の処理による検索結果に基づいて、区別して設定する表示形態設定手段、および
算出された前記配置および設定された前記表示形態に基づいて、前記複数の行動モジュールの前記画像を前記視覚化画面上に表示する行動モジュール表示手段を備える、コミュニケーションロボット開発支援装置。 A plurality of behavior modules obtained by modularizing behavior in a specific situation, and a plurality of rules that define a basic execution order of the plurality of behavior modules, and executing the plurality of behavior modules based on the plurality of rules. A communication robot development support device for developing a communication robot that takes communication action,
Screen display means for displaying a visualization screen for visualizing relationships between the plurality of behavior modules;
An arrangement calculating means for calculating the arrangement of the images representing the plurality of behavior modules on the visualization screen based on the strength of the relationship between the plurality of behavior modules;
A search means for comparing the specified search situation with the plurality of rules and selecting the rule corresponding to the search situation;
Display mode setting means for distinguishing and setting the display mode of the images of the plurality of behavior modules based on the search status and a search result by the processing of the search means, and the calculated arrangement and the set display A communication robot development support device comprising behavior module display means for displaying the images of the plurality of behavior modules on the visualization screen based on a form.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005286752A JP2006088328A (en) | 2005-09-30 | 2005-09-30 | Communication robot and its development supporting device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005286752A JP2006088328A (en) | 2005-09-30 | 2005-09-30 | Communication robot and its development supporting device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002281625A Division JP4059742B2 (en) | 2002-09-26 | 2002-09-26 | Communication robot |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006088328A true JP2006088328A (en) | 2006-04-06 |
Family
ID=36229773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005286752A Pending JP2006088328A (en) | 2005-09-30 | 2005-09-30 | Communication robot and its development supporting device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006088328A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010110864A (en) * | 2008-11-06 | 2010-05-20 | Nec Corp | Robot system and method and program for activating communication |
-
2005
- 2005-09-30 JP JP2005286752A patent/JP2006088328A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010110864A (en) * | 2008-11-06 | 2010-05-20 | Nec Corp | Robot system and method and program for activating communication |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4271193B2 (en) | Communication robot control system | |
KR101106002B1 (en) | Apparatus and method for generating behaviour in an object | |
Bhuiyan et al. | A gesture controlled user interface for inclusive design and evaluative study of its usability | |
Breazeal et al. | Teaching and working with robots as a collaboration | |
KR101169674B1 (en) | Telepresence robot, telepresence system comprising the same and method for controlling the same | |
JP4639343B2 (en) | Robot remote control system | |
JP6361213B2 (en) | Robot control apparatus, robot, robot system, teaching method, and program | |
JP5070441B2 (en) | Robot remote control system | |
JP4059742B2 (en) | Communication robot | |
US20100169797A1 (en) | User Interface for Orienting New Users to a Three Dimensional Computer-Generated Virtual Environment | |
Rea et al. | Still not solved: A call for renewed focus on user-centered teleoperation interfaces | |
CN107798733A (en) | Display system, mobile information apparatus, wearable type terminal and method for information display | |
WO2022134702A1 (en) | Action learning method and apparatus, storage medium, and electronic device | |
JP5181541B2 (en) | Robot system, editor terminal, and editor program | |
JP2007160427A (en) | Robot control system | |
JP2018144228A (en) | Robot control apparatus, robot, robot system, teaching method, and program | |
Mahadevan et al. | Generative expressive robot behaviors using large language models | |
JP2006088328A (en) | Communication robot and its development supporting device | |
JP5429461B2 (en) | Communication robot development support device | |
JP5419007B2 (en) | Communication robot development support device | |
Alves-Oliveira et al. | Flex-SDK: An open-source software development kit for creating Social Robots | |
Rea | Now you’re teleoperating with power: learning from video games to improve teleoperation interfaces | |
JP2006123153A (en) | Development support device and development support program for communication robot | |
Brageul et al. | An intuitive interface for a cognitive programming by demonstration system | |
JP2021064299A (en) | Control system, terminal device, control method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090616 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091118 |