JP2009262279A - ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム - Google Patents

ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム Download PDF

Info

Publication number
JP2009262279A
JP2009262279A JP2008115316A JP2008115316A JP2009262279A JP 2009262279 A JP2009262279 A JP 2009262279A JP 2008115316 A JP2008115316 A JP 2008115316A JP 2008115316 A JP2008115316 A JP 2008115316A JP 2009262279 A JP2009262279 A JP 2009262279A
Authority
JP
Japan
Prior art keywords
program
robot
command
event
shared
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
Application number
JP2008115316A
Other languages
English (en)
Inventor
Hiroshi Kato
大志 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008115316A priority Critical patent/JP2009262279A/ja
Publication of JP2009262279A publication Critical patent/JP2009262279A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】共有プログラムデータベースからプログラムを検索する際に、簡単な操作でプログラムを取得できるロボットプログラム共有システムを提供する。
【解決手段】ロボット200の、所定の事象を検知するイベント入力部205と、イベント入力部205で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成するコマンド生成部206と、プログラム取得指令を生成した場合に、イベント入力部205で検知した事象に応じて共有プログラムデータベース100から所定のプログラムを検索してダウンロードするプログラム検索部212と、プログラム実行指令を生成した場合に、ロボット200に格納しているプログラムを実行するプログラム実行部204と、を備える。特に、イベント入力部205は、動作を表す明示的な言語の媒介によらない事象を検知する。
【選択図】図2

Description

本発明はロボットプログラム共有システムに関し、特に、娯楽用や教育用のパーソナルロボットにおけるロボットプログラム共有システムに関する。
ロボットにおけるプログラミングは、限られた制約のもとで行う必要があり、通常深い知識が必要となる。例えば、モータ制御における排他処理や、複数のモータを制御する際の並列処理など、専門的な知識なくしてプログラミングを行うことは困難である。そこで、他人が作成したプログラムを参照したり、改変したりできるロボットプログラム共有システムが必要となる。
複数のロボットが一つの共有プログラムデータベースを介してプログラムを共有することで、無駄な開発を省くことができ、開発の効率化が期待できる。ロボットプログラム共有システムの一例が、特許文献2に記載されている。特許文献2の技術は、作業ロボットなどのロボット装置についてユーザが作成したプログラムを、ロボット装置のメーカ側で管理するサーバでプログラムリストとして登録できるようにし、他のユーザに対して閲覧可能に表示させる。希望するプログラムをダウンロード可能とすることで、プログラムを共有してコストの低減を図る。
特許文献3には、ユーザがロボットの動作プログラムを作成するための技術が記載されている。特許文献3の技術では、ユーザは、動作プログラム開発手段を備えているネットワーク上のサイトの自己が持っているロボットと同一のロボットをネットワークを介して遠隔操作し、これにより、ロボットの動作をプログラム化し、得られた動作プログラムをユーザの情報端末にダウンロードした後、自己が持っているロボットに移植する。
特許文献4には、対人用のパーソナル、パートナロボットのためのネットワークロボットの機能提供システムの技術が記載されている。特許文献4の技術では、ネットワークロボットにおいて、内部情報取得手段により取得された内部情報は、情報送信手段により暗号化されて外部サーバに送信される。外部サーバにおいては、この暗号化されて送信された内部情報が、情報受信手段により受信されて復号化される。この内部情報は、情報評価手段により評価されてネットワークロボットに必要な追加機能が特定される。そして、プログラム抽出手段によりこの追加機能を実現するための追加プログラムが管理用データベースから抽出される。この追加プログラムは、プログラム送信手段により暗号化されてネットワークロボットに送信される。
特許文献5には、人間との対話や人間の問いかけに対する動作を自然に行うことのできるロボットの技術が記載されている。特許文献5の技術では、ロボットは、相方の言動を認識する相方言動認識部と、観客の状態を認識する観客状態認識部と、ロボットと相方との対話における相方の言動およびロボットの言動を記述したシナリオを記憶するシナリオ記憶部と、シナリオ記憶部を参照して、ロボットの発話および動作を決定して、ロボットに当該発話および動作を実行させる全体制御部と、を含む。全体制御部は、シナリオ記憶部を参照して、観客の状態を考慮するか否かを判断し、その判断に基づき、観客の状態を考慮する必要がある場合、観客状態認識部の認識結果を考慮して、ロボットの発話および動作を決定する。
特許文献8には、産業用ロボットの動作を修正変更するための技術が記載されている。特許文献8の技術は、産業用ロボットに設置したセンサからの信号を処理してメッセージを送出するセンサ処理モジュールのメッセージにより、共有データエリアに書き込んだロボット動作モジュールの優先順位を変更すること、もしくは、ロボット動作モジュールと並行に動作するロボット作業評価モジュール5による評価メッセージにより、共有データエリアに書き込んだロボット動作モジュールの優先順位を変更することにより、産業用ロボットの動作を停止することなくロボット作業動作を修正変更自在とする。
その他、特許文献1には、圧力センサシート上に加えられた圧力値に基づいて算出した特徴量と、行動主体の触行動との関係を学習データとして格納し、行動主体の触行動を識別することが記載されている。特許文献6には、スクリプトプログラムの設定やロード、実行指示などのために用意された所定のニーモニックを認識し、そのニーモニックのパラメータで指示されたスクリプトプログラムを実行することが記載されている。
また、特許文献7には、与えられた入出力例題仕様から類似プログラムを検索し、制約条件を求めて、類似プログラムをプログラムの典型的な構造を表現した内部構造に変換することが記載されている。特許文献7ではさらに、内部構造のうち共通制約に関連した部分を抽出し、類似した以外の部分を修正してコードを出力する。
特開2001−141580号公報 特開2002−123394号公報 特開2003−16203号公報 特開2005−319526号公報 特開2005−335053号公報 特開2006−18697号公報 特開平05−53780号公報 特開平07−261820号公報
図9に示すように、関連する技術のロボットプログラム共有システムは、共有プログラムデータベース100と、コマンド入力部301と、共有プログラム登録検索部302と、プログラム修正部303と、プログラム実行部304とから構成されている。このような構成を有する従来のロボットプログラム共有システムは次のように動作する。
共有プログラムデータベース100はユーザが作成したプログラムを格納する。コマンド入力部301はキーボードやマウスなどでユーザからコマンドを受け付ける。受け付けたコマンドが、プログラムの登録や検索であった場合は、共有プログラム登録検索部302がプログラムの登録や検索を実施する。例えば、プログラムの登録コマンドは、「登録ボタン」を押すで実現する。例えば、プログラムの検索コマンドは、検索条件をキーワードで指定し、結果リストから選択することで実現する。
受け付けたコマンドが、プログラムの修正であった場合は、プログラム修正部303がプログラムの修正を実施する。例えば、プログラムの修正コマンドは、キーボードでテキストを編集し、「修正ボタン」を押すことで実現する。
共有プログラム登録検索部302がプログラムを検索し、対象が一つに絞り込まれた際には、絞り込まれたプログラムを共有プログラムデータベース100からダウンロードしプログラム実行部304に送る。プログラム修正部303がプログラムを修正した際には、修正されたプログラムをプログラム実行部304に送る。プログラム実行部304はプログラムが送られると、そのプログラムを必要に応じてコンパイルなどの前処理を行い、実行する。
工業用ロボットにおいては、作業を着実に実行することがロボットの使命であり、プログラミングの仕様は明確である。一方、娯楽用や教育用に開発されたパーソナルロボットにおいては、いかに人間とコミュニケーションするかなど考慮する必要があり、プログラミングに豊かな発想が必要である。パーソナルロボットのプログラミングにおいて少数の専門家に閉じてプログラミングを行うことは、十分に豊かな発想を生み出すことは期待できない。
関連する技術のロボットプログラム共有システムにおいては、プログラムを共有することで、専門家の間での協調開発は実現しているが、パーソナルロボットに求められる豊かな発想を支援するためには、専門家だけではなくより多くのユーザに参加してもらうことが重要である。プログラミングができる専門家は、その他のユーザを含めた総数からするとほんの一部であり、豊かな発想を促すことができないことが懸念される。そこで、専門家でないユーザも開発に参加できるようなシステムが望まれるが、そのためには簡単な操作で開発に貢献できることが必要である。 開発への貢献は、通常はプログラムを新規に作成したり、既存のプログラムを修正し、新しいプログラムを共有プログラムデータベースに登録することで実現できるが、ユーザがより簡単に開発に貢献できるようにするためには次のような問題がある。
第1の問題点は、既存のプログラムの取得に関する。共有プログラムデータベースからプログラムを検索するには複雑な検索条件を指定し、検索結果から最終的に一つに絞り込まなければならない。専門家でないユーザは検索条件の指定や検索結果の複雑な絞り込みの実行が困難であるという問題があった。
第2の問題点は、プログラムに対するフィードバックに関する。プログラムを実行してロボットを使用するユーザは、そのプログラムに対する意見や感情を持っているが、それを検知して共有プログラムデータベースにフィードバックして協調開発を促進する方法がないという問題があった。
本発明は上述のような課題に鑑みてなされたものであり、その目的は、協調開発に参加できるユーザをプログラミングできる専門家に留めず、その他のユーザも開発に貢献できるように、共有プログラムデータベースからプログラムを検索する際に、簡単な操作でプログラムを取得できるロボットプログラム共有システムを提供することである。
本発明の第1の観点に係るロボットは、
ロボットの、所定の事象を検知する事象検知手段と、
前記事象検知手段で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成手段と、
前記指令手段で前記プログラム取得指令を生成した場合に、前記検知手段で検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得手段と、
前記指令手段で前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行手段と、
を備えることを特徴とする。
本発明の第2の観点に係るロボットプログラム共有システムは、
ロボットの動作プログラムを格納する共有プログラムデータベースと、
前記共有プログラムデータベースに格納された動作プログラムを実行することによって動作するロボットであって、
前記ロボットの、所定の事象を検知する事象検知手段と、
前記事象検知手段で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成手段と、
前記指令手段で前記プログラム取得指令を生成した場合に、前記検知手段で検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得手段と、
前記指令手段で前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行手段と、
を備えるロボットと、
を備えることを特徴とする。
本発明の第3の観点に係るロボットプログラム共有方法は、
ロボットの、所定の事象を検知する事象検知ステップと、
前記事象検知ステップで所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成ステップと、
前記指令ステップで前記プログラム取得指令を生成した場合に、前記検知ステップで検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得ステップと、
前記指令ステップで前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行ステップと、
を備えることを特徴とする。
本発明の第4の観点に係るプログラムは、コンピュータを、
ロボットの、所定の事象を検知する事象検知手段と、
前記事象検知手段で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成手段と、
前記指令手段で前記プログラム取得指令を生成した場合に、前記検知手段で検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得手段と、
前記指令手段で前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行手段
として機能させることを特徴とする。
本発明のロボットおよびロボットプログラム共有システムによれば、ロボットのユーザがプログラムを検索する際に、簡単な操作でプログラムを取得して実行させることができる。その理由は、共有プログラムデータベースからプログラムをダウンロードする際に、ロボットの状態に応じて自動的にプログラムを検索するためである。
図1は、本発明の実施の形態に係るロボットプログラム共有システムの構成例を示す概念図である。図1に示すように、複数のロボット200が一つの共有プログラムデータベース100を介してプログラムを共有する。複数のロボット200は、ネットワークNを経由して共有プログラムデータベース100からプログラムをダウンロードし、また、プログラムその他のデータをアップロードする。
ネットワークNは、特に限定しない。ネットワークNは、例えば、無線LANとそれが接続するインターネットまたはイントラネットである。共有プログラムデータベース100とロボット200とは常に接続していなくてもよい。プログラムを検索してダウンロードし、また、プログラムその他のデータをアップロードするときにネットワークNを介して接続すればよい。
共有プログラムデータベース100は、ApacheなどのWebサーバ上でPerl CGI(Practical Extraction and Report Language Common Gateway Interface)などを用いて構築されたデータベース、もしくは、MySQL(登録商標)などの RDBMS(Relational Data Base Management System)で構築されたデータベースである。共有プログラムデータベース100は登録コマンドや検索コマンドを受け付け、ロボット200からのネットワーク越しのデータベース操作を可能にする。また、共有プログラムデータベース100には認証や権限管理などの機構が導入されていてもよい。
ロボット200は複数のセンサをもつロボットで、特に、ユーザの対話を考慮した擬人化できるロボットである。ロボット200はハードウエアで実現されていてもよいが、ソフトウエアで制御できるように、汎用のパソコンをベースにしたものでもよい。
(実施の形態1)
図2は、本発明の実施の形態1に係るロボットプログラム共有システムの構成例を示すブロック図である。ロボットプログラム共有システムは、共有プログラムデータベース100と、ネットワークNで接続するロボット200とから構成されている。図2では、ロボット200を1台で代表して示す。共有プログラムデータベース100は、プログラムを格納するデータベースで、ロボット200からのプログラムのアップロードや、ロボット200へのプログラムのダウンロードを受け付ける。
ロボット200は、イベント入力部205と、コマンド生成部206と、プログラム実行部204と、プログラム検索部212と、プログラム格納部201と、通信部210とから構成されている。イベント入力部205は、センサやOS(Operating System)からイベントを取得し、コマンド生成部206に伝達する。例えば、イベントには、ロボットのタッチセンサイベントや、 OSのタイマイベントなどがある。
ロボット200のセンサは、例えば、接触センサ、圧力センサ、変位センサ、音響センサ(マイク)もしくは画像センサ(撮像装置)、またはそれらの任意の組み合わせを用いることができる。接触センサは、ロボット200のユーザが接触したことを検知する。圧力センサは、例えば、ロボット200の頭部、腕などに設置され、ユーザが圧力をかけたことを検知する。変位センサは、ロボット200の関節などに設置され、ユーザによって、ロボット200の部位が動かされたことを検知する。音響センサはマイクであって、ユーザが発する音声や動作音を検知する。画像センサ(撮像装置)は、ユーザの姿勢、動作、顔などを撮影する。撮影した画像データからユーザの表情を認識する。
本発明では、イベントはロボットの動作を表す言語を媒介としないものをいう。ここで、ロボットの動作を表す言語を媒介にするとは、例えば、ユーザの音声による動作指令、動作を表す文字情報の入力、動作を表す文字が記載されたスイッチの操作などをいう。本発明はそれらの動作を表す言語によらないイベントを対象とする。ただし、動作を表す言語を媒介とするものと、本発明でいうイベントとを組み合わせて用いることを排除するものではない。
コマンド生成部206は、イベントを受け取り、一定のルールににマッチした場合に、プログラム実行部204またはプログラム検索部212にコマンドを発行する。コマンド生成部206が用いるルールは、イベントのパターンをコマンドに変換するルールであり、例えば、ある特定のタッチセンサを同時にタッチした場合に格納しているプログラムのうち、所定のプログラムを実行するといったプログラム実行コマンドを発行する。また、一定時間タッチセンサがタッチを検知しなかった場合に、現在実行中のプログラムの一部もしくは全部を置き換えるまたはそれに追加するために、共有プログラムデータベース100からプログラムを取得するといったプログラム検索コマンドを発行する、などがある。
プログラム格納部201は、ロボット200(のプログラム実行部204)が実行するプログラムを格納する。プログラム格納部201は、複数のプログラムを格納する場合がある。
プログラム実行部204は、プログラム格納部201に格納されているプログラムを実行する。プログラム実行部204は、コマンド生成部206から指示されたプログラムを選択して実行する。実行しているプログラムは、プログラム実行部204が保持していてもよい。
プログラム検索部212は、コマンド生成部206からのプログラム検索コマンドを受け付け、通信部210を介して、ネットワークN経由で共有プログラムデータベース100を検索する。そして、検索したプログラムをネットワークN経由でダウンロードし、プログラム格納部201に格納する。
プログラム検索コマンドは、共有プログラムデータベース100に格納されているプログラムを一意に決定する検索式を含む場合と、複数の候補に絞り込み、それら複数の候補から適宜選択する場合とがある。複数の候補から選択する方法として、ランダムに選ぶ方法、ヒットした順に選択する方法、過去に選択したプログラムを排除する方法、イベント入力部205で取得したイベントによって、なんらかの順序をつけて選択する方法などが考えられる。
通常は、ロボット200は、プログラムを検索してダウンロードしたのち、そのプログラムを実行する。その場合、コマンド生成部はプログラム実行部204に取得したプログラムの実行指示を伝達する。
図3は、実施の形態1に係るロボットのプログラム検索実行処理の動作の一例を示すフローチャートである。図3のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。イベント入力部205は、ロボットのセンサやOSから任意のイベントを受信する(ステップS11)。イベントはある時間範囲において複数受信する場合もあるが、以降、イベントの集合も単にイベントと呼ぶ。
コマンド生成部206は、受信したイベントから予め定められた変換ルールによって、コマンドを生成する(ステップS12)。
プログラムの検索コマンドを生成するトリガーとしては、ユーザの意図によりセンサが活性化(作動)する(イベントが発生する)場合と、ユーザの意図によらずにセンサが活性化される(イベントが発生する)場合とがある。ユーザの意図によらないイベントの例としては、しばらくユーザが何も操作しない、ユーザがじっと見つめている、同じ操作ばかり繰り返している、などがあり、主に、ユーザが退屈であることを察知してプログラムを共有プログラムデータベース100からダウンロードして刺激を与える目的がある。プログラムの検索に関する検索式としては、ランダムにプログラムを選択する、最もよくダウンロードされているプログラムを選択する、人気のあるプログラム10件からランダムに1件選択する、ユーザの知人が登録したプログラムを選択する、などがある。
選択しようとするプログラムがすでにプログラム格納部201に格納されている場合は、そのプログラムを選択してプログラム実行コマンドを発行する。
コマンド生成部206が検索コマンドを生成した場合は(ステップS13;YES)、プログラム登録検索部212は、共有プログラムデータベース100からプログラムをダウンロードして、プログラム実行部204が実行中の、もしくは、ロボット200が保持しているプログラムを置き換える(ステップS14)。プログラム検索コマンドを生成していない場合は(ステップS13;NO)、プログラムの検索・ダウンロードを行わない。
コマンド生成部206がプログラム実行コマンドを生成した場合は(ステップS15;YES)、プログラム実行部204は指定されたプログラムを実行する。その際、プログラム実行部204にそのプログラムを保持していなければ、プログラム格納部201からロードして実行する。一般的には、プログラムを検索したときに、続けてダウンロードしたプログラムを実行する。プログラムをダウンロードしておいて、何らかの条件(イベント発生)が生じたときに実行してもよい。その場合は、コマンド生成(ステップS12)からステップS14をスキップしてプログラム実行(ステップS16)を行うことになる。
以上説明したように、実施の形態1のロボットおよびロボットプログラム共有システムによれば、ロボットのユーザがプログラムを検索する際に、簡単な操作でプログラムを取得して実行させることができる。また、ロボットが相対するユーザの状況に合わせて、プログラムを選択して実行することができる。
(実施の形態2)
図4は、本発明の実施の形態2に係るロボットプログラム共有システムの構成例を示すブロック図である。実施の形態2のロボットは、実施の形態1の構成に加えて、プログラムの変更と登録の処理を行う。図4に示すように、実施の形態2のロボット200は、プログラム変更部203を備える。また、プログラム検索部212に代えて、プログラム登録検索部202を備える。さらに、パラメータ設定部207とプログラム類似判定部208を備える。
実施の形態2のコマンド生成部206は、プログラム検索とプログラム実行のコマンドに加えて、プログラム変更コマンドとプログラム登録コマンドを生成する。実施の形態2においても、イベントはロボットの動作を表す言語を媒介としない。例えば、ユーザの音声による動作指令、文字情報の入力、文字が記載されたスイッチの操作などによらないイベントを対象とする。
プログラム変更部203は、コマンド生成部206からのプログラム変更コマンドを受け付け、プログラム実行部204が実行しているプログラムを修正し、プログラム実行部204に修正したプログラムの実行指示を伝達する。実行しているプログラムは、プログラム実行部204が保持していてもよいし、プログラム格納部(図示せず)を別途用意してもよい。
プログラムを変更する内容を決定するには、ロボット200が備える各種センサ、例えば、静電容量を検知するタッチセンサを用いる。例えば、センサAをタッチした後にセンサBをタッチすることで、プログラムの末尾に「前進する」というステートメントを追加することができる。これは、イベント入力部205がセンサ情報を取得し、コマンド生成部206がプログラム変更コマンドを生成し、プログラム変更部203がプログラムに修正(ステートメントを追記)することで実現する。さらに、変更したプログラムをプログラム実行部204が実行することで、ユーザはその挙動を即座に確認することができる。
イベント入力として、センサをタッチするタイミングも情報として用いることができる。例えば、センサAをタッチした後にセンサBとセンサCを50ミリ秒以内にタッチすることで、コマンドを生成するようなこともできる。より複雑な例としては、プログラムに、「センサXが有効化された場合に、動作Yを実行する」という条件を追加することもできる。このような条件の具体例としては、「頭をタッチされたら、上を向く」、「左方向から音が聞こえたら、左を向く」、「『ありがとう』という声を認識したら、『どういたしまして』と発話する」、「ユーザの顔が幸せそうだったら、頬を光らせる」、などがある。
プログラム登録検索部202は、コマンド生成部206からのプログラム登録コマンドまたはプログラム検索コマンドを受け付ける。プログラム登録コマンドであれば、プログラム実行部204が実行しているプログラムを共有プログラムデータベース100に登録する。プログラム検索コマンドの場合は、実施の形態1のプログラム検索部212と同様の動作を行う。
プログラムの登録に関する単純な一つの例は、プログラム変更部203がプログラムを変更する度にプログラムの登録することである。場合によっては、プログラムの変更の大きさを考慮し、大規模な変更であった場合にプログラムの登録をする。
プログラム類似判定部208は、プログラム登録検索部202から類似判定を依頼された際に、プログラムの類似度を計算し、結果をプログラム登録検索部202に返す。プログラムの類似度の計算は、例えば、プログラムを木構造で表現したときのも最も大きく一致する部分木のノードの数とすることによって行う。
プログラム類似判定部208を用いると、現在実行中のプログラムと共通部分があるプログラムを検索しユーザを困惑させないようにする、もしくくは逆に、現在実行中のプログラムと共通部分がなるプログラムを検索しユーザを刺激し発想を促す、といったことができる。
プログラム実行部204が一度に実行できるプログラムは1つであるため、プログラム登録検索部202が検索するプログラムは1つである必要がある、もしくは、複数ダウンロードした場合には1つに絞り込む必要がある。1つに絞り込むには、ランダムに選択したり、順位づけをして選択したりする方法がある。選択されたものと、選択されなかったものは記憶し、以降の検索においてプログラムを重複して実行することを避けることができる。プログラムを検索して実行すると、それまで実行中のプログラムが消去されてしまう場合には、検索前に常に登録するようにすることで、プログラムの消失を回避することができる。
実施の形態2では、パラメータ設定部207をさらに備える。パラメータ設定部207はイベント入力部205からイベントを受け取り、受け取ったイベントがパラメータ設定コマンドに相当する場合は、プログラムのパラメータをイベントにより更新し、プログラム変更部203にプログラムパラメータ変更を指示する。設定するパラメータは、例えば、ロボットの心地よい首を傾げる角度であり、ユーザの肯定表現や否定表現により強化学習などによりパラメータを調整する。
パラメータ設定部207はロボット200が備える各種センサを用いてプログラム中のパラメータを設定する。例えば、ロボットがユーザにとって心地よく首を傾げる仕草のプログラムを作成する場合に、首を傾ける角度はパラメータとしておき、プログラム実行時のユーザの反応によってパラメータを設定する。ユーザの反応とは、タッチセンサによる明示的なものや、ユーザの表情の変化による非明示的なものがある。パラメータの設定は、単純には、ランダムにパラメータを変化させたのち、ユーザが肯定的に反応したものの平均値を用いることで実現する。パラメータは複数ある場合もあり、例えば、首を傾ける角度に加えて、首を傾ける速度も考慮する。複雑なパラメータの設定には強化学習なども用いることもできる。
図5は、実施の形態2に係るプログラムの変更・登録を伴うロボットの動作の一例を示すフローチャートである。実施の形態1と同様に、イベント入力部205は、ロボットのセンサやOSから任意のイベントを受信する(ステップS21)。コマンド生成部206は、受信したイベントから予め定められた変換ルールによって、コマンドを生成する(ステップS22)。コマンド生成部206は、プログラム検索コマンドとプログラム実行コマンドの生成に加えて、プログラム変更コマンドとプログラム登録コマンドを生成する場合がある。
プログラム検索コマンドの場合(ステップS23、ステップS24)については、実施の形態1(図3のステップS13、ステップS14)と同様である。プログラム検索ダウンロード(ステップS24)において、検索コマンドがプログラムの類似度を利用するものであった場合は、プログラム登録検索部202はプログラム類似判定部208に2つのプログラムを与え類似度の計算をさせ、その類似度を用いて取得するプログラムを絞り込む。場合によっては、プログラム類似判定部208が提供する機能は、プログラムデータベース100に備えられていてもよい。
コマンド生成部206がプログラム変更コマンドを生成した場合は(ステップS25;YES)、プログラム変更部203は、プログラム実行部204が実行中の、もしくは、ロボット200が保持しているプログラムを変更する(ステップS26)。その後、変更したプログラムを実行する際は(ステップS30)、それまでの実行状態、例えば、グローバル変数の値など、を引き継いでもよい。プログラム変更コマンドでない場合は(ステップS25;NO)、プログラムの変更を行わない。
コマンド生成部206がプログラム登録コマンドを生成した場合は(ステップS27;YES)、プログラム登録検索部202は、プログラム実行部204が実行中の、もしくは、ロボット200が保持しているプログラムを共有プログラムデータベース100にアップロードして登録する(ステップS28)。
実施の形態2のロボットによれば、ロボットのユーザが簡単な操作でプログラムを変更して実行させることができる。また、ロボットが相対するユーザの状況に合わせて、プログラムを変更して実行することができる。また、変更したプログラムを共有プログラムデータベースに登録することができる。その結果、ロボットプログラムの開発に専門家だけではなくより多くのユーザに参加してもらうことができる。
また、本実施の形態では、パラメータ設定部207がイベント入力部205から入力されたイベントをもとにパラメータを設定するため、ユーザが明示的にプログラミングすることなくして、プログラムのパラメータを調整することができる。これにより、ロボットの動作がよりユーザの主観に合い、自然な動作となることが期待できる。
(実施の形態3)
図6は、本発明の実施の形態3に係るロボットプログラム共有システムの構成例を示すブロック図である。実施の形態3のロボットは、実施の形態2の構成に加えて、ロボットプログラムに関する投票を行う。図6に示すように、実施の形態3のロボット200は、プログラム投票部209をさらに備える。
実施の形態3のコマンド生成部206は、プログラム検索、プログラム実行、プログラム変更およびプログラム登録のコマンドに加えて、プログラム投票コマンドを生成する。
プログラム投票部209はイベント入力部205からイベントを受け取り、そのイベントから肯定表現や否定表現があれば、判別する。例えば、ロボットを見ているユーザが嬉しそうな顔をしていたり、ロボットを触るなどしてより多くのフィードバックを受けた場合には、肯定表現とみなしたり、逆にロボットを見ているユーザが不安そうな顔をしていたり、ロボットを触ろうとしないなどフィードバックを得られない場合には、否定表現とみなしたりする。
プログラム投票部209は、判別できた肯定表現や否定表現を実行中のプログラムの投票情報として共有プログラムデータベース100に登録する。投票情報はプログラム全体に対するものだけでなく、プログラムの部分に対するものもあり得る。場合によっては、ユーザに明示的に投票の機能を知らせておく、例えば、あるセンサを所定の時間(例えば数秒以上)活性化(作動)させると肯定表現とする、ということも可能である。
プログラムに投票する場合は、ロボット200が備える各種センサを用いる。プログラムの投票は、ユーザの意図によるものとユーザの意図によらないものがある。ユーザの意図によるものとは、予め定められた投票に関するセンサを有効化することであり、例えば、右手を握手したらプラス評価、左手を握手したらマイナス評価、などとしたり、「へぇ」ボタンと呼ばれるようなセンサを有効化した回数により評価値を定めるなどとする。
ユーザの意図によらないものとは、ユーザの感情を認識して投票情報としてフィードバックするもので、例えば、プログラム実行後、ユーザが嬉しそうな顔をしていたらプラス評価、悲しそうな顔をしていたらマイナス評価、としたり、プログラムの構造を変えずに拡充する方向に修正していったらプラス評価、プログラムの構造を壊し作り変えるように修正していったらマイナス評価、とするなどがある。
プログラム投票部209は実行中のプログラムに対する投票情報(プラス評価やマイナス評価や得点など)を共有プログラムデータベース100に登録する。この際に、投票の根拠や時刻、プログラムの実行箇所などより詳細な情報を付加情報として登録することもできる。
共有プログラムデータベース100は登録された投票情報をもとに検索することを可能にする。すなわち、プログラム登録検索部202が検索コマンドを実行するときに、投票情報を用いることができる。これにより、例えば、最も人気のあるプログラムをダウンロードする、などの検索コマンドを実行することができる。
図7は、実施の形態3に係るプログラム投票処理を伴うロボットの動作の一例を示すフローチャートである。図7において、イベント取得(ステップS31)から、プログラム実行(ステップS40)までの処理は、図5のステップS21ないしステップS30と同様である。ただし、コマンド生成(ステップS32)では、プログラム投票コマンドを生成する場合がある。
プログラム投票部209は、受信したイベントから、ユーザが肯定表現をしているか否定表現をしているか、すなわち、プログラム投票コマンドに該当するか判別する。肯定表現、否定表現の判別は、ユーザの感情を推定することにより判別したり、予め直感的なセンサを割り当てることにより判別する。予め直感的なセンサを割り当てとは、例えば、ロボットの頭を撫でると肯定表現とみなす、などである。
コマンド生成部206は、プログラム投票部209の判別結果を受けて、プログラム投票コマンドを生成してもよい。プログラム投票コマンドに該当する場合は(ステップS41;YES)、投票情報、すなわち、肯定情報もしくは否定情報、を共有プログラムデータベース100に登録する(ステップS42)。
なお、プログラム変更処理(ステップS36)で、パラメータ設定部207がイベントに基づいてプログラムのパラメータを設定する場合、プログラム投票部209が認識する肯定表現、否定表現とは別のものにするか、同じものである場合は、直前の動作との対応、もしくは、継続的な肯定表現、否定表現であるかによって区別する。
以上説明したとおり、実施の形態3に係るロボット200によれば、プログラムの修正を伴うことなく、ユーザのフィードバックを得ることができることにある。その理由は、プログラム投票部209がイベント入力部205から受け取ったイベントをもとに投票情報を共有プログラムデータベース100に登録するためである。
本実施の形態では、プログラム投票部209がイベント入力部205から入力されたイベントをもとに投票情報を共有プログラムデータベース100に登録するため、ユーザがロボットとの自然な操作の中で投票できるという効果がある。また、投票情報が共有プログラムデータベース100に集約することで、評価の高いプログラムを推定でき、評価の高いプログラムを組み合わせることでより評価の高くなるプログラムを合成することも期待できる。
図8は、図2、図4または図6に示すロボットプログラム共有システムにおけるロボット200のハードウェア構成の一例を示すブロック図である。ロボット200は、図8に示すように、制御部11、主記憶部12、外部記憶部13、操作部14、表示部15、入出力部16及び送受信部17を備える。主記憶部12、外部記憶部13、操作部14、表示部15、入出力部16及び送受信部17はいずれも内部バス10を介して制御部11に接続されている。
制御部11はCPU(Central Processing Unit)等から構成され、外部記憶部13に記憶されている制御プログラム20に従って、ロボット200のプログラムを検索、変更、登録もしくは実行の処理、またはプログラム投票の処理を実行する。
主記憶部12はRAM(Random-Access Memory)等から構成され、外部記憶部13に記憶されている制御プログラム20をロードし、制御部11の作業領域として用いられる。
外部記憶部13は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random-Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、前記の処理を制御部11に行わせるためのプログラムを予め記憶し、また、制御部11の指示に従って、このプログラムが記憶するデータを制御部11に供給し、制御部11から供給されたデータを記憶する。図2、図4または図6のプログラム格納部201は、外部記憶部13に構成される。
操作部14はキーボード及びマウスなどのポインティングデバイス等と、キーボード及びポインティングデバイス等を内部バス10に接続するインターフェース装置から構成されている。操作部14を介して、ロボット200の起動、停止、動作モードの設定などが入力され、制御部11に供給される。
表示部15は、CRT(Cathode Ray Tube)又はLCD(Liquid Crystal Display)などから構成され、ロボット200の動作状況などを表示する。
入出力部16は、各種のセンサ18およびアクチュエータ19と接続するシリアルインタフェースまたはパラレルインタフェースから構成されている。ロボット200のセンサ18は、例えば、接触センサ、圧力センサ、変位センサ、音響センサ(マイク)もしくは画像センサ(撮像装置)、またはそれらの任意の組み合わせである。制御部11は入出力部16を介して、各センサ18から検知したデータを入力する。アクチュエータ19の変位をセンサ信号として入力してもよい。制御部11は、入出力部16を介して、アクチュエータ19に指令してロボット200の動作を制御する。
送受信部17は、ネットワークNに接続する網終端装置または無線通信装置、及びそれらと接続するシリアルインタフェース又はLAN(Local Area Network)インタフェースから構成されている。送受信部17は、ネットワークを介して、共有プログラムデータベース100からプログラムを検索してダウンロードし、変更したプログラムおよび投票情報を送信する。
図2、図4または図6のイベント入力部205、コマンド生成部206、プログラム実行部204、プログラム検索部212、プログラム格納部201、通信部210、プログラム変更部203、プログラム登録検索部202、パラメータ設定部207、プログラム類似判定部208およびプログラム投票部209の処理は、制御プログラム20が、制御部11、主記憶部12、外部記憶部13、操作部14、表示部15、入出力部16及び送受信部17などを資源として用いて処理することによって実行する。
本発明の好適な変形として、以下の構成が含まれる。
本発明の第1の観点に係るロボットについて、好ましくは、
前記事象検知手段は、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする。
好ましくは、前記事象検知手段は、接触センサ、圧力センサ、変位センサ、音響センサもしくは画像センサ、またはそれらの任意の組み合わせを備え、前記ロボットに相対するユーザの動作によって引き起こされる前記接触センサ、圧力センサ、変位センサ、音響センサまたは画像センサの信号を検知することを特徴とする。
好ましくは、前記指令生成手段は、さらに、プログラム変更指令またはプログラム登録指令のいずれかを含む指令を生成し、
前記指令手段で前記プログラム変更指令を生成した場合に、該ロボットに格納しているプログラムに、前記検知手段で検知した事象に応じて所定の変更を加える変更手段と、
前記指令手段でプログラム登録指令を生成した場合に、格納しているプログラムを前記共有プログラムデータベースに登録する登録手段と、
を備える。
好ましくは、前記指令生成手段は、さらに、プログラム投票指令を生成し、
前記指令手段で前記プログラム投票指令を生成した場合に、前記検知手段で検知した事象に応じて、該ロボットに格納しているプログラムに関して、前記ロボットに相対する者の意見または感情を表す投票情報を生成して、前記共有プログラムデータベースに登録する投票手段を備える。
好ましくは、前記取得手段は、任意の2つのプログラムの類似性を数値化する類似判定手段を含み、該類似判定手段で数値化した類似性に基づいて前記共有プログラムデータベースから所定のプログラムを検索してダウンロードすることを特徴とする。
好ましくは、前記変更手段は、前記検知手段で検知した事象に基づいて、該ロボットに格納しているプログラムのパラメータを設定する学習手段を含む。
本発明の第2の観点に係るロボットプログラム共有システムについて、好ましくは、
前記ロボットの前記事象検知手段は、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする。
好ましくは、前記ロボットの前記事象検知手段は、接触センサ、圧力センサ、変位センサ、音響センサもしくは画像センサ、またはそれらの任意の組み合わせを備え、前記ロボットに相対するユーザの動作によって引き起こされる前記接触センサ、圧力センサ、変位センサ、音響センサまたは画像センサの信号を検知することを特徴とする。
好ましくは、前記ロボットの前記指令生成手段は、さらに、プログラム変更指令またはプログラム登録指令のいずれかを含む指令を生成し、
前記指令手段で前記プログラム変更指令を生成した場合に、該ロボットに格納しているプログラムに、前記検知手段で検知した事象に応じて所定の変更を加える変更手段と、
前記指令手段で前記プログラム登録指令を生成した場合に、格納しているプログラムを前記共有プログラムデータベースに登録する登録手段と、
を備えることを特徴とする。
好ましくは、前記ロボットの前記指令生成手段は、さらに、プログラム投票指令を生成し、
前記指令手段で前記プログラム投票指令を生成した場合に、前記検知手段で検知した事象に応じて、該ロボットに格納しているプログラムに関して、前記ロボットに相対する者の意見または感情を表す投票情報を生成して、前記共有プログラムデータベースに登録する投票手段を備える。
好ましくは、前記ロボットの前記取得手段は、任意の2つのプログラムの類似性を数値化する類似判定手段を含み、該類似判定手段で数値化した類似性に基づいて前記共有プログラムデータベースから所定のプログラムを検索してダウンロードすることを特徴とする。
好ましくは、前記ロボットの前記変更手段は、前記検知手段で検知した事象に基づいて、該ロボットに格納しているプログラムのパラメータを設定する学習手段を含む。
本発明の第3の観点に係るロボットプログラム共有方法について、好ましくは、
前記事象検知ステップは、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする。
好ましくは、前記事象検知ステップは、前記ロボットに相対するユーザの動作によって引き起こされる接触センサ、圧力センサ、変位センサ、音響センサまたは画像センサの信号を検知することを特徴とする。
好ましくは、前記指令生成ステップは、さらに、プログラム変更指令またはプログラム登録指令のいずれかを含む指令を生成し、
前記指令ステップで前記プログラム変更指令を生成した場合に、該ロボットに格納しているプログラムに、前記検知ステップで検知した事象に応じて所定の変更を加える変更ステップと、
前記指令ステップで前記プログラム登録指令を生成した場合に、格納しているプログラムを前記共有プログラムデータベースに登録する登録ステップと、
を備えることを特徴とする。
好ましくは、前記指令生成ステップは、さらに、プログラム投票指令を生成し、
前記指令ステップで前記プログラム投票指令を生成した場合に、前記検知ステップで検知した事象に応じて、該ロボットに格納しているプログラムに関して、前記ロボットに相対する者の意見または感情を表す投票情報を生成して、前記共有プログラムデータベースに登録する投票ステップを備える。
好ましくは、前記取得ステップは、任意の2つのプログラムの類似性を数値化する類似判定ステップを含み、該類似判定ステップで数値化した類似性に基づいて前記共有プログラムデータベースから所定のプログラムを検索してダウンロードすることを特徴とする。
好ましくは、前記変更ステップは、前記検知ステップで検知した事象に基づいて、該ロボットに格納しているプログラムのパラメータを設定する学習ステップを含む。
本発明の第4の観点に係るプログラムについて、好ましくは、
前記事象検知手段は、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする。
以上説明したように、本発明の共同編集支援システムによる第1の効果は、参加者の明示的な指示なくして、共同編集の調整に関係する参加者を提示することができることにある。これにより例えば、電子メーリングリストへの購読や電子掲示板の確認は不要になり、参加者の手間を軽減することができる。その理由は、参加者の操作履歴をもとに参加者の絞り込み、参加者の明示的な指示を必要としないためである。
第2の効果は、ファイルより小さい単位で、共同編集の調整に関係する参加者を提示することができることにある。これにより例えば、大きなファイルを編集する場合でも、そのファイルの部分で関係参加者を絞り込めるようになり、他の部分の関係のない参加者と無駄な連絡をとる必要がなくなる。その理由は、参加者の操作履歴を細かく記録し、ファイルの部分についてその参加者を絞り込むためである。
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
制御部11、主記憶部12、外部記憶部13、送受信部17、内部バス10などから構成されるプログラム共有システムのためのロボットプログラム処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するロボット200を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでロボット200を構成してもよい。
また、ロボット200の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
本発明によれば、複数人による、また、専門領域を越えた協調によるロボットのプログラム開発といった用途に適用できる。また、ロボットを用いた学習や教育といった用途にも適用可能である。
本発明の実施の形態に係るロボットプログラム共有システムの構成例を示す概念図である。 本発明の実施の形態1に係るロボットプログラム共有システムの構成例を示すブロック図である。 実施の形態1に係るロボットのプログラム検索実行処理の動作の一例を示すフローチャートである。 本発明の実施の形態2に係るロボットプログラム共有システムの構成例を示すブロック図である。 実施の形態2に係るプログラムの変更・登録を伴うロボットの動作の一例を示すフローチャートである。 本発明の実施の形態3に係るロボットプログラム共有システムの構成例を示すブロック図である。 実施の形態3に係るプログラム投票処理を伴うロボットの動作の一例を示すフローチャートである。 本発明の実施の形態に係るロボットの物理的構成の例を示すブロック図である。 関連する技術のロボットプログラム共有システムの構成を示すブロック図である。
符号の説明
11 制御部
12 主記憶部
13 外部記憶部
16 入出力部
17 送受信部
18 センサ
19 アクチュエータ
20 制御プログラム
100 共有プログラムデータベース
200 ロボット
201 プログラム格納部
202 プログラム登録検索部
203 プログラム変更部
204 プログラム実行部
205 イベント入力部
206 コマンド生成部
207 パラメータ設定部
208 プログラム類似判定部
209 プログラム投票部
210 通信部
N ネットワーク

Claims (23)

  1. ロボットの、所定の事象を検知する事象検知手段と、
    前記事象検知手段で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成手段と、
    前記指令手段で前記プログラム取得指令を生成した場合に、前記検知手段で検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得手段と、
    前記指令手段で前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行手段と、
    を備えることを特徴とするロボット。
  2. 前記事象検知手段は、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする請求項1に記載のロボット。
  3. 前記事象検知手段は、接触センサ、圧力センサ、変位センサ、音響センサもしくは画像センサ、またはそれらの任意の組み合わせを備え、前記ロボットに相対するユーザの動作によって引き起こされる前記接触センサ、圧力センサ、変位センサ、音響センサまたは画像センサの信号を検知することを特徴とする請求項1または2に記載のロボット。
  4. 前記指令生成手段は、さらに、プログラム変更指令またはプログラム登録指令のいずれかを含む指令を生成し、
    前記指令手段で前記プログラム変更指令を生成した場合に、該ロボットに格納しているプログラムに、前記検知手段で検知した事象に応じて所定の変更を加える変更手段と、
    前記指令手段でプログラム登録指令を生成した場合に、格納しているプログラムを前記共有プログラムデータベースに登録する登録手段と、
    を備えることを特徴とする請求項1ないし3のいずれか1項に記載のロボット。
  5. 前記指令生成手段は、さらに、プログラム投票指令を生成し、
    前記指令手段で前記プログラム投票指令を生成した場合に、前記検知手段で検知した事象に応じて、該ロボットに格納しているプログラムに関して、前記ロボットに相対する者の意見または感情を表す投票情報を生成して、前記共有プログラムデータベースに登録する投票手段を備える
    ことを特徴とする請求項1ないし4のいずれか1項に記載のロボット。
  6. 前記取得手段は、任意の2つのプログラムの類似性を数値化する類似判定手段を含み、該類似判定手段で数値化した類似性に基づいて前記共有プログラムデータベースから所定のプログラムを検索してダウンロードすることを特徴とする請求項1ないし5のいずれか1項に記載のロボット。
  7. 前記変更手段は、前記検知手段で検知した事象に基づいて、該ロボットに格納しているプログラムのパラメータを設定する学習手段を含むことを特徴とする請求項1ないし6のいずれか1項に記載のロボット。
  8. ロボットの動作プログラムを格納する共有プログラムデータベースと、
    前記共有プログラムデータベースに格納された動作プログラムを実行することによって動作するロボットであって、
    前記ロボットの、所定の事象を検知する事象検知手段と、
    前記事象検知手段で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成手段と、
    前記指令手段で前記プログラム取得指令を生成した場合に、前記検知手段で検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得手段と、
    前記指令手段で前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行手段と、
    を備えるロボットと、
    を備えることを特徴とするロボットプログラム共有システム。
  9. 前記ロボットの前記事象検知手段は、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする請求項8に記載のロボットプログラム共有システム。
  10. 前記ロボットの前記事象検知手段は、接触センサ、圧力センサ、変位センサ、音響センサもしくは画像センサ、またはそれらの任意の組み合わせを備え、前記ロボットに相対するユーザの動作によって引き起こされる前記接触センサ、圧力センサ、変位センサ、音響センサまたは画像センサの信号を検知することを特徴とする請求項8または9に記載のロボットプログラム共有システム。
  11. 前記ロボットの前記指令生成手段は、さらに、プログラム変更指令またはプログラム登録指令のいずれかを含む指令を生成し、
    前記指令手段で前記プログラム変更指令を生成した場合に、該ロボットに格納しているプログラムに、前記検知手段で検知した事象に応じて所定の変更を加える変更手段と、
    前記指令手段で前記プログラム登録指令を生成した場合に、格納しているプログラムを前記共有プログラムデータベースに登録する登録手段と、
    を備えることを特徴とする請求項8ないし10のいずれか1項に記載のロボットプログラム共有システム。
  12. 前記ロボットの前記指令生成手段は、さらに、プログラム投票指令を生成し、
    前記指令手段で前記プログラム投票指令を生成した場合に、前記検知手段で検知した事象に応じて、該ロボットに格納しているプログラムに関して、前記ロボットに相対する者の意見または感情を表す投票情報を生成して、前記共有プログラムデータベースに登録する投票手段を備える
    ことを特徴とする請求項8ないし11のいずれか1項に記載のロボットプログラム共有システム。
  13. 前記ロボットの前記取得手段は、任意の2つのプログラムの類似性を数値化する類似判定手段を含み、該類似判定手段で数値化した類似性に基づいて前記共有プログラムデータベースから所定のプログラムを検索してダウンロードすることを特徴とする請求項8ないし12のいずれか1項に記載のロボットプログラム共有システム。
  14. 前記ロボットの前記変更手段は、前記検知手段で検知した事象に基づいて、該ロボットに格納しているプログラムのパラメータを設定する学習手段を含むことを特徴とする請求項8ないし13のいずれか1項に記載のロボットプログラム共有システム。
  15. ロボットの、所定の事象を検知する事象検知ステップと、
    前記事象検知ステップで所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成ステップと、
    前記指令ステップで前記プログラム取得指令を生成した場合に、前記検知ステップで検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得ステップと、
    前記指令ステップで前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行ステップと、
    を備えることを特徴とするロボットプログラム共有方法。
  16. 前記事象検知ステップは、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする請求項15に記載のロボットプログラム共有方法。
  17. 前記事象検知ステップは、前記ロボットに相対するユーザの動作によって引き起こされる接触センサ、圧力センサ、変位センサ、音響センサまたは画像センサの信号を検知することを特徴とする請求項15または16に記載のロボットプログラム共有方法。
  18. 前記指令生成ステップは、さらに、プログラム変更指令またはプログラム登録指令のいずれかを含む指令を生成し、
    前記指令ステップで前記プログラム変更指令を生成した場合に、該ロボットに格納しているプログラムに、前記検知ステップで検知した事象に応じて所定の変更を加える変更ステップと、
    前記指令ステップで前記プログラム登録指令を生成した場合に、格納しているプログラムを前記共有プログラムデータベースに登録する登録ステップと、
    を備えることを特徴とする請求項15ないし17のいずれか1項に記載のロボットプログラム共有方法。
  19. 前記指令生成ステップは、さらに、プログラム投票指令を生成し、
    前記指令ステップで前記プログラム投票指令を生成した場合に、前記検知ステップで検知した事象に応じて、該ロボットに格納しているプログラムに関して、前記ロボットに相対する者の意見または感情を表す投票情報を生成して、前記共有プログラムデータベースに登録する投票ステップを備える
    ことを特徴とする請求項15ないし18のいずれか1項に記載のロボットプログラム共有方法。
  20. 前記取得ステップは、任意の2つのプログラムの類似性を数値化する類似判定ステップを含み、該類似判定ステップで数値化した類似性に基づいて前記共有プログラムデータベースから所定のプログラムを検索してダウンロードすることを特徴とする請求項15ないし19のいずれか1項に記載のロボットプログラム共有方法。
  21. 前記変更ステップは、前記検知ステップで検知した事象に基づいて、該ロボットに格納しているプログラムのパラメータを設定する学習ステップを含むことを特徴とする請求項15ないし20のいずれか1項に記載のロボットプログラム共有方法。
  22. コンピュータを、
    ロボットの、所定の事象を検知する事象検知手段と、
    前記事象検知手段で所定の条件に適合する事象を検知した場合に、その条件に応じて、プログラム取得指令またはプログラム実行指令のいずれかを含む指令を生成する指令生成手段と、
    前記指令手段で前記プログラム取得指令を生成した場合に、前記検知手段で検知した事象に応じて共有プログラムデータベースから所定のプログラムを検索してダウンロードする取得手段と、
    前記指令手段で前記プログラム実行指令を生成した場合に、該ロボットに格納しているプログラムを実行する実行手段
    として動作させることを特徴とするプログラム。
  23. 前記事象検知手段は、動作を表す明示的な言語の媒介によらない所定の事象を検知することを特徴とする請求項22に記載のプログラム。
JP2008115316A 2008-04-25 2008-04-25 ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム Pending JP2009262279A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008115316A JP2009262279A (ja) 2008-04-25 2008-04-25 ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008115316A JP2009262279A (ja) 2008-04-25 2008-04-25 ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2009262279A true JP2009262279A (ja) 2009-11-12

Family

ID=41388773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008115316A Pending JP2009262279A (ja) 2008-04-25 2008-04-25 ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2009262279A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013063489A (ja) * 2011-09-16 2013-04-11 Fujitsu Ltd インタラクションシステム、インタラクティブシステム及びプログラム
WO2013150597A1 (ja) * 2012-04-02 2013-10-10 株式会社安川電機 ロボットシステム及びロボット制御装置
WO2013150599A1 (ja) * 2012-04-02 2013-10-10 株式会社安川電機 ロボットシステム及び作業設備
CN104898470A (zh) * 2015-04-01 2015-09-09 湖北骐通智能科技股份有限公司 机器人示教数据生成系统和方法
JP2017030135A (ja) * 2015-07-31 2017-02-09 ファナック株式会社 ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法
CN107921639A (zh) * 2015-08-25 2018-04-17 川崎重工业株式会社 多个机器人系统间的信息共享系统及信息共享方法
CN108908336A (zh) * 2018-07-20 2018-11-30 珠海智新自动化科技有限公司 一种机械手命令生成方法及系统
US10717196B2 (en) 2015-07-31 2020-07-21 Fanuc Corporation Machine learning device, robot system, and machine learning method for learning workpiece picking operation
US10807235B2 (en) 2015-07-31 2020-10-20 Fanuc Corporation Machine learning device, robot controller, robot system, and machine learning method for learning action pattern of human
JP2022507142A (ja) * 2018-11-21 2022-01-18 アマゾン テクノロジーズ インコーポレイテッド ロボティクスアプリケーション開発のための方法及びシステム
US11836577B2 (en) 2018-11-27 2023-12-05 Amazon Technologies, Inc. Reinforcement learning model training through simulation

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553780A (ja) * 1991-08-28 1993-03-05 Nec Corp プログラム自動合成装置
JPH07213753A (ja) * 1994-02-02 1995-08-15 Hitachi Ltd パーソナルロボット装置
JPH07261820A (ja) * 1994-03-25 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 産業用ロボット作業のソフトウェア構成方法及び制御装置
JPH11175132A (ja) * 1997-12-15 1999-07-02 Omron Corp ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
JP2000006068A (ja) * 1998-06-25 2000-01-11 Nippon Telegr & Teleph Corp <Ntt> ヒューマン・ロボットコラボレーション制御方法と装置及びプログラムを記録した記録媒体
JP2001141580A (ja) * 1999-11-17 2001-05-25 Nippon Telegr & Teleph Corp <Ntt> 個別適応可能な触行動識別装置および記録媒体
JP2001142862A (ja) * 1999-11-12 2001-05-25 Sony Corp 情報通信ロボット装置、情報通信方法および情報通信ロボットシステム
JP2002123394A (ja) * 2000-10-16 2002-04-26 Denso Corp ロボット装置のプログラム登録システム
JP2003016203A (ja) * 2001-06-27 2003-01-17 Casio Comput Co Ltd 動作プログラム作成システム、動作プログラム作成方法及び動作プログラム販売システム、動作プログラム販売方法及び動作プログラム販売サーバ装置
JP2003200370A (ja) * 2001-11-05 2003-07-15 Samsung Electronics Co Ltd オブジェクトの成長制御システム及びオブジェクトの成長制御方法
JP2003255991A (ja) * 2002-03-06 2003-09-10 Sony Corp 対話制御システム、対話制御方法及びロボット装置
JP2004237432A (ja) * 2003-02-07 2004-08-26 Navigation Networks:Kk インターネットを使ったロボット用プログラムおよびコンテンツを含むロボット番組の配信方法
JP2004249447A (ja) * 2003-02-18 2004-09-09 Navigation Networks:Kk インターネットを使ったロボット用プログラムおよびコンテンツを含むロボット番組の配信方法
JP2004330361A (ja) * 2003-05-08 2004-11-25 Japan Science & Technology Agency 隠れマルコフモデルによる運動データの認識・生成方法、それを用いた運動制御方法及びそのシステム
JP2005500912A (ja) * 2001-02-27 2005-01-13 アンソロトロニックス インコーポレイテッド ロボット装置および無線通信システム
JP2005078456A (ja) * 2003-09-01 2005-03-24 Sony Corp コンテンツ提供システム
JP2005202609A (ja) * 2004-01-14 2005-07-28 Sony Corp コンテンツ管理装置及び方法並びにロボット装置及びその制御方法
JP2005297095A (ja) * 2004-04-07 2005-10-27 Sony Corp ロボット装置及びその動作比較方法
JP2005319526A (ja) * 2004-05-07 2005-11-17 Fujitsu Ltd ネットワークロボットの機能提供システム
JP2005335053A (ja) * 2004-04-28 2005-12-08 Nec Corp ロボット、ロボット制御装置およびロボットの制御方法
JP2005342873A (ja) * 2004-06-07 2005-12-15 Sony Corp ロボット装置及びその動作制御方法
JP2006018697A (ja) * 2004-07-02 2006-01-19 Okuma Corp スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置
JP2006293442A (ja) * 2005-04-05 2006-10-26 Sony Corp 情報処理装置および方法、並びにプログラム
JP2006338219A (ja) * 2005-06-01 2006-12-14 National Institute Of Advanced Industrial & Technology 無線タグによるロボットプログラム更新方法及びシステム

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553780A (ja) * 1991-08-28 1993-03-05 Nec Corp プログラム自動合成装置
JPH07213753A (ja) * 1994-02-02 1995-08-15 Hitachi Ltd パーソナルロボット装置
JPH07261820A (ja) * 1994-03-25 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 産業用ロボット作業のソフトウェア構成方法及び制御装置
JPH11175132A (ja) * 1997-12-15 1999-07-02 Omron Corp ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
JP2000006068A (ja) * 1998-06-25 2000-01-11 Nippon Telegr & Teleph Corp <Ntt> ヒューマン・ロボットコラボレーション制御方法と装置及びプログラムを記録した記録媒体
JP2001142862A (ja) * 1999-11-12 2001-05-25 Sony Corp 情報通信ロボット装置、情報通信方法および情報通信ロボットシステム
JP2001141580A (ja) * 1999-11-17 2001-05-25 Nippon Telegr & Teleph Corp <Ntt> 個別適応可能な触行動識別装置および記録媒体
JP2002123394A (ja) * 2000-10-16 2002-04-26 Denso Corp ロボット装置のプログラム登録システム
JP2005500912A (ja) * 2001-02-27 2005-01-13 アンソロトロニックス インコーポレイテッド ロボット装置および無線通信システム
JP2003016203A (ja) * 2001-06-27 2003-01-17 Casio Comput Co Ltd 動作プログラム作成システム、動作プログラム作成方法及び動作プログラム販売システム、動作プログラム販売方法及び動作プログラム販売サーバ装置
JP2003200370A (ja) * 2001-11-05 2003-07-15 Samsung Electronics Co Ltd オブジェクトの成長制御システム及びオブジェクトの成長制御方法
JP2003255991A (ja) * 2002-03-06 2003-09-10 Sony Corp 対話制御システム、対話制御方法及びロボット装置
JP2004237432A (ja) * 2003-02-07 2004-08-26 Navigation Networks:Kk インターネットを使ったロボット用プログラムおよびコンテンツを含むロボット番組の配信方法
JP2004249447A (ja) * 2003-02-18 2004-09-09 Navigation Networks:Kk インターネットを使ったロボット用プログラムおよびコンテンツを含むロボット番組の配信方法
JP2004330361A (ja) * 2003-05-08 2004-11-25 Japan Science & Technology Agency 隠れマルコフモデルによる運動データの認識・生成方法、それを用いた運動制御方法及びそのシステム
JP2005078456A (ja) * 2003-09-01 2005-03-24 Sony Corp コンテンツ提供システム
JP2005202609A (ja) * 2004-01-14 2005-07-28 Sony Corp コンテンツ管理装置及び方法並びにロボット装置及びその制御方法
JP2005297095A (ja) * 2004-04-07 2005-10-27 Sony Corp ロボット装置及びその動作比較方法
JP2005335053A (ja) * 2004-04-28 2005-12-08 Nec Corp ロボット、ロボット制御装置およびロボットの制御方法
JP2005319526A (ja) * 2004-05-07 2005-11-17 Fujitsu Ltd ネットワークロボットの機能提供システム
JP2005342873A (ja) * 2004-06-07 2005-12-15 Sony Corp ロボット装置及びその動作制御方法
JP2006018697A (ja) * 2004-07-02 2006-01-19 Okuma Corp スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置
JP2006293442A (ja) * 2005-04-05 2006-10-26 Sony Corp 情報処理装置および方法、並びにプログラム
JP2006338219A (ja) * 2005-06-01 2006-12-14 National Institute Of Advanced Industrial & Technology 無線タグによるロボットプログラム更新方法及びシステム

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013063489A (ja) * 2011-09-16 2013-04-11 Fujitsu Ltd インタラクションシステム、インタラクティブシステム及びプログラム
US9662789B2 (en) 2012-04-02 2017-05-30 Kabushiki Kaisha Yaskawa Denki Robot system and robot controller
WO2013150597A1 (ja) * 2012-04-02 2013-10-10 株式会社安川電機 ロボットシステム及びロボット制御装置
WO2013150599A1 (ja) * 2012-04-02 2013-10-10 株式会社安川電機 ロボットシステム及び作業設備
CN104220219A (zh) * 2012-04-02 2014-12-17 株式会社安川电机 机器人系统及作业设备
CN104245245A (zh) * 2012-04-02 2014-12-24 株式会社安川电机 机器人系统及机器人控制装置
US20150019012A1 (en) * 2012-04-02 2015-01-15 Kabushiki Kaisha Yaskawa Denki Robot system and work facility
JPWO2013150597A1 (ja) * 2012-04-02 2015-12-14 株式会社安川電機 ロボットシステム及びロボット制御装置
JPWO2013150599A1 (ja) * 2012-04-02 2015-12-14 株式会社安川電機 ロボットシステム及び作業設備
CN104898470B (zh) * 2015-04-01 2017-09-15 湖北骐通智能科技股份有限公司 机器人示教数据生成系统和方法
CN104898470A (zh) * 2015-04-01 2015-09-09 湖北骐通智能科技股份有限公司 机器人示教数据生成系统和方法
US11780095B2 (en) 2015-07-31 2023-10-10 Fanuc Corporation Machine learning device, robot system, and machine learning method for learning object picking operation
JP2017030135A (ja) * 2015-07-31 2017-02-09 ファナック株式会社 ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP2017064910A (ja) * 2015-07-31 2017-04-06 ファナック株式会社 ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法
US10717196B2 (en) 2015-07-31 2020-07-21 Fanuc Corporation Machine learning device, robot system, and machine learning method for learning workpiece picking operation
US10807235B2 (en) 2015-07-31 2020-10-20 Fanuc Corporation Machine learning device, robot controller, robot system, and machine learning method for learning action pattern of human
CN113199483A (zh) * 2015-07-31 2021-08-03 发那科株式会社 机器人系统、机器人的控制方法、机器学习装置及机器学习方法
US11904469B2 (en) 2015-07-31 2024-02-20 Fanuc Corporation Machine learning device, robot controller, robot system, and machine learning method for learning action pattern of human
CN107921639A (zh) * 2015-08-25 2018-04-17 川崎重工业株式会社 多个机器人系统间的信息共享系统及信息共享方法
EP3342553A4 (en) * 2015-08-25 2019-08-07 Kawasaki Jukogyo Kabushiki Kaisha SYSTEM FOR THE COMMON USE OF INFORMATION AND METHOD FOR THE JOINT USE OF INFORMATION BETWEEN SEVERAL ROBOTIC SYSTEMS
US10806534B2 (en) 2015-08-25 2020-10-20 Kawasaki Jukogyo Kabushiki Kaisha Information sharing system and method of sharing information between a plurality of robot systems
CN107921639B (zh) * 2015-08-25 2021-09-21 川崎重工业株式会社 多个机器人系统间的信息共享系统及信息共享方法
CN108908336A (zh) * 2018-07-20 2018-11-30 珠海智新自动化科技有限公司 一种机械手命令生成方法及系统
JP7252332B2 (ja) 2018-11-21 2023-04-04 アマゾン テクノロジーズ インコーポレイテッド ロボティクスアプリケーション開発のための方法及びシステム
JP2022507142A (ja) * 2018-11-21 2022-01-18 アマゾン テクノロジーズ インコーポレイテッド ロボティクスアプリケーション開発のための方法及びシステム
US11836577B2 (en) 2018-11-27 2023-12-05 Amazon Technologies, Inc. Reinforcement learning model training through simulation

Similar Documents

Publication Publication Date Title
JP2009262279A (ja) ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム
CN106873773B (zh) 机器人交互控制方法、服务器和机器人
KR102106193B1 (ko) 로봇의 대화를 관리하기 위한 방법 및 시스템
CN107430502B (zh) 由帮助信息动态推断用于软件应用的语音命令
KR20210010501A (ko) 멀티-어시스턴트 환경의 특성에 따른 어시스턴트 응답성 조정
US20140038489A1 (en) Interactive plush toy
KR102001293B1 (ko) 로봇 상의 소프트웨어 애플리케이션 실행하기
US20210260478A1 (en) Object control method and apparatus, storage medium, and electronic apparatus
JP6891601B2 (ja) ロボットの制御プログラム、ロボット装置、及びロボットの制御方法
WO2015136970A1 (ja) 制御装置及び制御システム
CN114998491B (zh) 数字人驱动方法、装置、设备及存储介质
JP2017170537A (ja) ロボット制御プログラム生成システム
WO2018000266A1 (zh) 一种机器人交互内容的生成方法、系统及机器人
JP5493785B2 (ja) 気分転換支援装置、気分転換支援方法およびプログラム
JP4634352B2 (ja) 遠隔デバイス操作システム及び遠隔デバイス操作用サーバ
US9607573B2 (en) Avatar motion modification
US20230039469A1 (en) System, apparatus, and method for controlling devices based on multimedia
US20210298989A1 (en) Browser-based haptic stimulation control
KR101591867B1 (ko) 음성명령 조합 기능을 갖는 인터랙티브 보드 및 이의 운용방법
JP7152908B2 (ja) 仕草制御装置及び仕草制御プログラム
JP2011108052A (ja) コミュニケーション支援装置、コミュニケーション支援方法およびプログラム
JP5491955B2 (ja) ネットワークシステム、シナリオ記述ファイル管理装置制御プログラム及びユーザ指示認識装置制御プログラム
JP2016540524A (ja) プログラム、記録媒体、情報処理装置及び制御方法
JP4068087B2 (ja) ロボット、ロボット行動計画実行装置、および、行動計画実行プログラム
KR20050120389A (ko) 클라이언트 단말기상에서 사용자와 캐릭터 사이에 다중 대화를 제공하기위한 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120524

A131 Notification of reasons for refusal

Effective date: 20120612

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20120809

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Effective date: 20130305

Free format text: JAPANESE INTERMEDIATE CODE: A02