JP2004130428A - Robot device, action control method for robot device, recording medium and program - Google Patents

Robot device, action control method for robot device, recording medium and program Download PDF

Info

Publication number
JP2004130428A
JP2004130428A JP2002296786A JP2002296786A JP2004130428A JP 2004130428 A JP2004130428 A JP 2004130428A JP 2002296786 A JP2002296786 A JP 2002296786A JP 2002296786 A JP2002296786 A JP 2002296786A JP 2004130428 A JP2004130428 A JP 2004130428A
Authority
JP
Japan
Prior art keywords
frame
interpolation
external input
frames
joint angle
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.)
Withdrawn
Application number
JP2002296786A
Other languages
Japanese (ja)
Inventor
Hitoo Nagatsuka
永塚 仁夫
Yoshinori Kurata
倉田 宜典
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002296786A priority Critical patent/JP2004130428A/en
Publication of JP2004130428A publication Critical patent/JP2004130428A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)
  • Toys (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a robot device capable of improving interactiveness reflecting an external input on an action of an user's taste. <P>SOLUTION: An input from outside is detected by an external input detection part 31, and the number n of interpolation frames between a start key frame and an end key frame is decided by a part 101 for deciding the number of interpolation frames in accordance with the external input. A variation per frame is calculated based on the number n of interpolation frames and a difference between the two key frames in a joint value, and supplied to a joint angle calculating part 104 by a variation calculation part 103. A joint angle value of the current frame is calculated based on the variation per frame and supplied to and action control part 64 by the joint angle calculating port 104. A corresponding actuator Ai is operated by the action control part 64 in accordance with the joint angle value of the current frame. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明はロボット装置に関し、特に指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションを実行するロボット装置、ロボット装置の動作制御方法、記録媒体並びにプログラムに関する。
【0002】
【従来の技術】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の”ROBOTA(奴隷機械)”に由来すると言われている。わが国では、ロボットが普及し始めたのは1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット(industrial robot)であった。
【0003】
最近では、イヌやネコ、クマのように4足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、或いは、ヒトやサルなどの2足直立歩行を行う動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット(humanoid robot)など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越えなど、柔軟な歩行・走行動作を実現できるという点で優れている。
【0004】
アーム式ロボットのように、ある特定の場所に植設して用いるような据置きタイプのロボットは、部品の組立・選別作業など固定的・局所的な作業空間でのみ活動する。これに対し、移動式のロボットは、作業空間は非限定的であり、所定の経路上又は無経路上を自在に移動して、所定の若しくは任意の人的作業を代行したり、ヒトやイヌ或いはその他の生命体に置き換わる種々のサービスを提供することができる。
【0005】
脚式移動ロボットの用途の1つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。
【0006】
また、脚式移動ロボットの他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」或いは「エンターティンメント」という用途が挙げられる。この種のロボットは、ヒト或いはイヌ(ペット)、クマなどの比較的知性の高い脚式移動動物の動作メカニズムや四肢を利用した豊かな感情表現を忠実に再現する。また、予め入力された動作パターンを単に忠実に実行するだけではなく、ユーザ(或いは他のロボット)から受ける言葉や態度(「ほめる」とか「叱る」、「叩く」など)に対して動的に対応した、生き生きとした応答表現を実現することも要求される。
【0007】
従来の玩具機械は、ユーザ操作と応答特性との関係が固定的であり、玩具の動作をユーザの好みに合わせて変更することはできない。この結果、ユーザは同じ動作した繰り返さない玩具をやがては飽きてしまうことになる。
【0008】
これに対し、最近のエンターティンメントロボット等は、ユーザが編集したアクション(ACTION)を再生し、ユーザの好みに応じて行動することができるようになった(例えば、特許文献1参照)。一連のアクションを、例えばLEDの点灯、音声と共に構成する動き又は動作(モーション、MOTION)を、例えばパーソナルコンピュータなどで起動させたモーションエディタを用いて作成し完成させる。完成したモーションの他、編集された音声、編集されたLED点灯動作を含めたアクションに関するデータは、メモリカードに記憶される。このメモリカードをエンターティンメントロボットに装着する。そして、エンターティンメントロボットは、メモリカードに記憶されたモーションデータ等を用いてユーザの好みの行動を行う。
【0009】
【特許文献1】
特開平11−58274号公報
【0010】
【発明が解決しようとする課題】
ところで、これまで前記モーションエディタをCPUにて起動させて一つのモーションを作成する際には、最初のポーズに相当するキーフレームと、最後のポーズに相当するキーフレームとの間に、固定的に補間フレームの数を設定していたため、どのような場合でも同一速度のモーションとなってしまっていた。
【0011】
例えば、座っていずれかの前脚を上げるというモーションを作成した場合、予めキーフレーム間の補間フレーム数は固定的に設定していたので、どんな環境下でも、例えばユーザが近づいても、遠ざかっても同じ速度で前記モーションを行っていた。
【0012】
したがって、従来は、ユーザの好みの行動を実行させることができるが、ユーザが原因となる、又は他が原因となる外部入力をその行動に反映させるようなことはなく、インタラクション(interlocution)という面では物足りなかった。
【0013】
本発明は、前記実情に鑑みてなされたものであり、外部入力をユーザの好みの行動に反映させて、インタラクション性を高めることのできるロボット装置の提供を目的とする。
【0014】
また、外部入力をユーザの好みの行動に反映させて、ロボット装置のインタラクション性を高めることができるロボット装置の行動制御方法の提供を目的とする。
また、外部入力をユーザの好みの行動に反映させて、ロボット装置にインタラクション性を高めた行動を実行させることができるプログラムを記録した記録媒体の提供を目的とする。
【0015】
また、外部入力をユーザの好みの行動に反映させて、ロボット装置にインタラクション性を高めた行動を実行させることができるプログラムの提供を目的とする。
【0016】
【課題を解決するための手段】
本発明に係るロボット装置は、前記課題を解決するために、指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションを実行するロボット装置であって、外部からの入力を検出する外部入力検出手段と、前記外部入力検出手段により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定手段とを備え、前記補間フレーム数決定手段により決定された補間フレーム数に基づいて前記所望のモーションの対象となる関節の現在の関節角度値を計算しながら前記関節を動かすアクチュエータを動作させる。
【0017】
このため、本発明に係るロボット装置は、外部入力検出手段により検出された外部入力に応じて補間フレーム数決定手段が決定した補間フレーム数に基づいて所望のモーションの対象となる関節のアクチュエータを動作させる。
【0018】
また、本発明に係るロボット装置は、前記補間フレーム数決定手段により決定された補間フレーム数に基づいて前記所望のモーションの対象となる関節の現在の関節角度値を計算しながら前記関節を動かすアクチュエータを動作させるために、前記補間フレーム数決定手段により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差からフレーム毎の変化量を算出する変化量算出手段と、前記変化量算出手段によって算出されたフレーム毎の変化量から現在フレームの関節角度値を計算する関節角度計算手段と、前記関節角度計算手段によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御手段とを備える。
【0019】
このため、本発明に係るロボット装置は、外部入力検出手段により検出された外部入力に応じて補間フレーム数決定手段が開始キーフレームと終了キーフレーム間の補間フレーム数を決定し、変化量算出手段が補間フレーム数と二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出し、関節角度計算手段がフレーム毎の変化量から、現在フレームの関節角度値を計算し、動作制御手段が現在フレームの関節角度値にしたがってってアクチュエータを動作させる。
【0020】
本発明に係るロボット装置の動作制御方法は、前記課題を解決するために、指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションを実行するためのロボット装置の動作制御方法であって、外部からの入力を検出する外部入力検出工程と、前記外部入力検出工程により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定工程と、前記補間フレーム数決定工程により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出する変化量算出工程と、前記変化量算出工程によって算出されたフレーム毎の変化量から、現在フレームの関節角度値を計算する関節角度計算工程と、前記関節角度計算工程によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御工程とを備える。
【0021】
このため、本発明に係るロボット装置の動作制御方法は、外部入力検出工程により検出された外部入力に応じて補間フレーム数決定工程が開始キーフレームと終了キーフレーム間の補間フレーム数を決定し、変化量算出工程が補間フレーム数と二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出し、関節角度計算工程がフレーム毎の変化量から、現在フレームの関節角度値を計算し、動作制御工程が現在フレームの関節角度値にしたがってってアクチュエータを動作させる。
【0022】
また、本発明に係る記録媒体は、前記課題を解決するために、指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションをロボット装置に実行させるための動作制御プログラムを記録している記録媒体であって、前記動作制御プログラムは、外部からの入力を検出する外部入力検出工程と、前記外部入力検出工程により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定工程と、前記補間フレーム数決定工程により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出する変化量算出工程と、前記変化量算出工程によって算出されたフレーム毎の変化量から、現在フレームの関節角度値を計算する関節角度計算工程と、前記関節角度計算工程によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御工程とを備えてなるプログラムであり、このプログラムを記録している。
【0023】
本発明に係るプログラムは、前記課題を解決するために、指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションをロボット装置に実行させる動作制御のためのプログラムであって、外部からの入力を検出する外部入力検出工程と、前記外部入力検出工程により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定工程と、前記補間フレーム数決定工程により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出する変化量算出工程と、前記変化量算出工程によって算出されたフレーム毎の変化量から、現在フレームの関節角度値を計算する関節角度計算工程と、前記関節角度計算工程によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御工程とを備えてなる。
【0024】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。この実施の形態は、バッテリから電力の供給を受けたサーボモータにより駆動される4本の脚、首等を動かして行動するエンターティンメントロボット装置である。
【0025】
図1には、エンターティンメントロボット装置(以下、ロボットと記す)1の外観構成を示す。図1に示すように、ロボット1は、四つ足の例えば子ライオン形状のものとされており、胴体部ユニット2の前後左右に、それぞれ脚部ユニット3A,3B,3C,3Dが連結されるとともに、胴体部ユニット2の前端部と後端部に、それぞれ頭部ユニット4と尻尾部ユニット5が連結されている。
【0026】
尻尾部ユニット5は、胴体部ユニット2の上面に設けられたベース部から、2自由度をもって、湾曲又は揺動自在に引き出されている。
【0027】
このような外観構成を有するロボット1においては、例えば、脚部ユニット3A乃至3Dの関節の位置にそれぞれ設けられているサーボモータが駆動されて、各関節を所定角度だけ動かし、前脚を上下したり、後脚を上下しながら前進などの動作を行う。また、頭部ユニット4や、尻尾部ユニット5の各関節に設けられているサーボモータを所定角度だけ動かして、頭部をかしげたり、尻尾を振る動作を行う。
【0028】
このロボット1は、内部状況や外部状況を判断し、自律的に行動を制御することができる。このとき、このロボット1は、予め設定されているアクションを行う他、ユーザの編集により後から追加されたアクションも行うこともできる。ユーザにより編集されたアクションを実行するとき、ロボット1は本発明に基づいて特徴的な動作を行う。
【0029】
ユーザによるアクションの編集、特にモーションの編集は、ユーザによって指定された、開始のキーフレームと終了のキーフレームの間を補間フレームによって補間することによって行われる。ロボット1は、補間フレーム数nを、外部からの入力に基づいて可変に決定する。そして、決定された補間フレーム数nと、前記二つのキーフレームに基づいて前記サーボモータの駆動による各関節値の、各フレーム毎の変化量を算出し、現在のフレームの関節角度値を計算しながら、その関節角度値にしたがってって前記サーボモータを含めたアクチュエータを動作させる。このとき、開始キーフレームから終了キーフレームまでの前記補間フレームを含めた各フレームは、例えば16msecで再生される。もちろん、各フレームに相当するモーションも例えば16msecにて行われる。
【0030】
ロボット1は、図2に機能的に示すように、外部からの入力を外部入力検出部31にて検出し、その外部入力に応じて前記開始キーフレームと終了キーフレーム間の補間フレーム数nを補間フレーム数決定部101にて決定する。この補間フレーム数決定部101は、メモリ102にテーブルとして格納している入力検出値−補関フレーム数特性に基づいて例えば入力検出したユーザとの距離から補関フレーム数nを決定し、変化量算出部103に供給する。変化量算出部103は、前記補間フレーム数nと前記二つのキーフレーム間の関節角度値の差から、各フレーム毎の変化量を算出し、関節角度計算部104に供給する。関節角度計算部104は、前記フレーム毎の変化量から、現在のフレームの関節角度値を計算し、動作制御部64に供給する。動作制御部64は、前記現在フレームの関節角度値にしたがってって該当するアクチュエータAiを動作させる。
【0031】
ここでは、外部入力検出部31が、例えば距離センサ(Position Sensing Device:PSD)である位置検出センサから供給される信号に基づいて対象物までの距離を検出する位置検出部である場合の動作について概略的に説明する。例えば、メモリ102に格納されている距離−補間フレーム数特性が後述の図9に示すように、距離が長くなるほど補間フレーム数nがリニアに増えるものであるとき、つまり距離が短く(L)なるほど補間フレーム数がリニアに少なくなるときを挙げる。例えばユーザがロボット1に手を近づけるほど、補間フレーム数決定部101は補間フレーム数nを少ない値(n)に決定する。また、距離が長く(L)なるほど(L<L)、補間フレーム数nを大きな値(n)とする(n<n)。
【0032】
今、距離が短いとき(L)、補間フレーム数決定部101は、メモリ102のテーブルを参照して補間フレーム数nをnと決定する。すると、変化量算出部103は、予め指定された開始キーフレームFと、終了キーフレームF間の該当のアクチュエータの関節値の差θと、補間フレーム数nから、各フレーム毎の変化量Δθ=θ/n+1を算出し、関節角度計算部104に供給する。関節角度計算部104は、フレーム毎の変化量Δθから、現在のフレームの関節角度値θpを計算し、動作制御部64に供給する。動作制御部64は、現在フレームの関節角度値θpにしたがってって該当するアクチュエータAを動作させる。
【0033】
一方、距離が長いとき(L)、補間フレーム数決定部101は、メモリ102のテーブルを参照して補間フレーム数nをnと決定する。すると、変化量算出部103は、予め指定された開始キーフレームFと、終了キーフレームF間の該当のアクチュエータの関節値の差θと、補間フレーム数nから、各フレーム毎の変化量Δθ=θ/n+1を算出し、関節角度計算部104に供給する。関節角度計算部104は、フレーム毎の変化量Δθから、現在のフレームの関節角度値θpを計算し、動作制御部64に供給する。動作制御部64は、現在フレームの関節角度値θpにしたがってって該当するアクチュエータAを動作させる。
【0034】
ここで、n>nであるのでθ/n<θ/nとなり、さらに1フレームは16msecで再生されるので、距離が短いLのときの方が、長いLのときよりも、開始キーフレームFから終了フレームFまでの再生時間が短くなる。
【0035】
次に、ロボット1の内部構成について図3のブロック図を用いて説明する。胴体部ユニット2には、ロボット1の全体を制御するコントローラ10、ロボット1の動力源となるバッテリ11、並びにバッテリセンサ12、及び熱センサ13からなる内部センサ14などが格納されている。このコントローラ10には、基本的に、CPU(Central Processing Unit)10A、及びCPU10Aが各部を制御するための基本的な制御プログラムが記憶されているメモリ10Bが設けられている。また、メモリ10Bには、本発明のロボット装置の動作制御方法の具体例となる編集動作制御プログラムが格納されている。この編集動作制御プログラムについては詳細を後述するが、前記図2に示した機能ブロックを結果的に構成できるプログラムであり、前記開始キーフレームと終了キーフレームとの間の補間フレーム数nを決定し、決定された補間フレーム数nと、前記二つのキーフレームに基づいて前記サーボモータの駆動による各関節値の、各フレーム毎の変化量を算出し、現在のフレームの関節角度値を計算しながら、その関節角度値にしたがってって前記サーボモータを含めたアクチュエータを動作させるプログラムである。
【0036】
また、コントローラ10には、メモリカード10DのためのI/F10Cも設けられている。なお、メモリカード10Dには、前記開始キーフレームと終了キーフレームと、それらキーフレームのときの各アクチュエータの関節角度値等のモーションデータが記憶されている。
【0037】
図3に示すように、頭部ユニット4には、外部からの刺激を感知するセンサとしての、音を感知する「耳」に相当するマイクロフォン15、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどから構成され、光を感知する「目」に相当するカメラ16、及びユーザが触れることによる圧力等を感知する触覚に相当するタッチセンサ17が、それぞれ所定の位置に設けられている。また、頭部ユニット4には、対象物までの距離を測定するためのPSDである位置検出センサ18、及びロボット1の「口」に相当するスピーカ19が所定の位置に設置されている。
【0038】
脚部ユニット3A乃至3Dのそれぞれの関節部分、脚部ユニット3A乃至3Dのそれぞれと胴体部ユニット2の連結部分、頭部ユニット4と胴体部ユニット2の連結部分、並びに尻尾部ユニット5と胴体部ユニット2の連結部分などには、アクチュエータが設置されている。アクチュエータは、コントローラ10からの指示に基づいて各部を動作させる。
【0039】
図3の例においては、脚部ユニット3Aには、アクチュエータ3AA乃至3AAが設けられ、脚部ユニット3Bには、アクチュエータ3BA乃至3BAが設けられている。また、脚部ユニット3Cには、アクチュエータ3CA乃至3CAが設けられ、脚部ユニット3Dには、アクチュエータ3DA乃至3DAが設けられている。さらに、頭部ユニット4には、アクチュエータ4A乃至4Aが設けられており、尻尾部ユニット5には、アクチュエータ5Aがそれぞれ設けられている。
【0040】
以下、脚部ユニット3A乃至3Dに設けられているアクチュエータ3AA乃至3DA、頭部ユニット4に設けられているアクチュエータ4A乃至4A、及び尻尾部ユニット5に設けられているアクチュエータ5Aのそれぞれを個々に区別する必要がない場合、適宜、まとめて、アクチュエータ3AA乃至5Aと称する。
【0041】
さらに、脚部ユニット3A乃至3Dには、アクチュエータの他にスイッチ3AB乃至3DBが、ロボット1の足の裏に相当する場所に設置されている。そして、ロボット1が歩行したとき、スイッチ3AB乃至3DBが押下され、それを表わす信号がコントローラ10に入力されるようになされている。
【0042】
頭部ユニット4に設置されるマイクロフォン15は、ユーザからの発話を含む周囲の音声(音)を集音し、得られた音声信号をコントローラ10に出力する。カメラ16は、周囲の状況を撮像し、得られた画像信号を、コントローラ10に出力する。タッチセンサ17は、例えば、頭部ユニット4の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を圧力検出信号としてコントローラ10に出力する。位置検出センサ18は、例えば、赤外線を出射し、その反射光を受光したタイミングについての検出結果をコントローラ10に出力する。
【0043】
コントローラ10は、マイクロフォン15、カメラ16、タッチセンサ17、及び位置検出センサ18から与えられる音声信号、画像信号、圧力検出信号、距離信号等に基づいて、周囲の状況や、ユーザからの指令、ユーザとの距離、ユーザからの働きかけなどの有無を判断し、その判断結果に基づいて、ロボット1が次にとる行動を決定する。そして、コントローラ10は、その決定に基づいて、必要なアクチュエータを駆動させ、これにより、頭部ユニット4を上下左右に振らせたり、尻尾部ユニット5を動かせたり、脚部ユニット3A乃至3Dのそれぞれを駆動して、ロボット1を歩行させたり、座ったり、座った状態でいずれかの脚を挙げたり、或いは前脚を振るいわゆるバイバイなどの行動をとらせる。
【0044】
また、コントローラ10は、位置検出センサ18から与えられる信号に基づいて例えばユーザまでの距離や、ユーザの手までの距離を検出し、その検出結果に基づいて前記補間フレーム数nを決定し、決定した補間フレーム数nと、前記二つのキーフレームに基づいて前記サーボモータの駆動による各関節値の、各フレーム毎の変化量を算出し、現在のフレームの関節角度値を計算しながら、その関節角度値にしたがってって前記サーボモータを含めたアクチュエータを動作させる。
【0045】
その他にも、コントローラ10は、ロボット1の「目」の位置に設けられた、図示しないLEDを点灯、消灯又は点滅させるなどの処理を行う。
【0046】
図4は、図3のコントローラ10の基本的な機能的構成例を示すブロック図である。なお、図4に示す各機能は、メモリ10Bに記憶されている基本的な制御プログラムがCPU10Aにより実行されることで実現される。この基本的な制御プログラムに関連して起動されることになる、本発明の具体例である編集動作制御プログラムもCPU10Aにより実行されて行動管理部62の一部として前記図2に示した機能部ブロックが構成される。
【0047】
コントローラ10は、基本的に、外部からの入力等を検出するセンサ入力処理部31と、センサ入力処理部31により検出された情報等に基づいて、ロボット1を動作させる情報処理部32から構成されている。
【0048】
そして、センサ入力処理部31を構成する角度検出部41は、アクチュエータ3AA乃至5Aのそれぞれに設けられるモータが駆動されたとき、通知される情報に基づいて、その角度を検出する。角度検出部41により検出された角度情報は、情報処理部32の行動管理部62、及び音データ生成部66に出力される。
【0049】
音量検出部42は、マイクロフォン15から与えられる信号に基づいて、その音量を検出し、検出した音量情報を行動管理部62、及び音データ生成部66に出力する。
【0050】
音声認識部43は、マイクロフォン15から与えられる音声信号について音声認識を行う。そして、音声認識部43は、その音声認識結果としての、例えば、「歩け」、「伏せ」、「ボールを追いかけろ」等の指令その他を、音声認識情報として、本能・感情管理部61、行動管理部62、及び音データ生成部66に通知する。
【0051】
画像認識部44は、カメラ16から与えられる画像信号を用いて、画像認識を行う。そして、画像認識部44は、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直な、かつ、所定の高さ以上の平面」、さらには「肌色であるもの」等を検出したときには、「ボールがある」や、「壁がある」、「人間(ユーザ)がいる」等の画像認識結果を画像認識情報として、本能・感情管理部61、行動管理部62、及び音データ生成部66に通知する。
【0052】
圧力検出部45は、タッチセンサ17から与えられる圧力検出信号を処理する。そして、圧力検出部45は、その処理の結果、所定の閾値以上で、かつ、短時間の圧力を検出したときには、「叩かれた(しかられた)」と認識し、所定の閾値未満で、かつ、長時間の圧力を検出したときには、「撫でられた(ほめられた)」と認識して、その認識結果を、状態認識情報として、本能・感情管理部61、行動管理部62、及び音データ生成部66に通知する。
【0053】
位置検出部46は、位置検出センサ18から供給される信号に基づいて、所定の対象物までの距離を測定し、その距離情報を行動管理部62、及び音データ生成部66に通知する。例えば、位置検出部46は、目の前に手が差し出されたとき、その手までの距離や、画像認識部44により認識されたユーザやボールまでの距離等を検出する。
【0054】
スイッチ入力検出部47は、ロボット1の足の裏に相当する部分に設けられているスイッチ3AB乃至3DBからの入力を検出し、例えば、ロボット1が歩行している状態において、その歩を進めるタイミングや、ユーザにより足の裏が触られたことを本能・感情管理部61、及び行動管理部62に通知する。
【0055】
一方、情報処理部32を構成する本能・感情管理部61は、ロボット1の本能、及び感情を管理し、所定のタイミングで、ロボット1の本能を表わすパラメータや、感情を表わすパラメータを行動管理部62、及び音データ生成部66に出力する。
【0056】
図5は、図4の本能・感情管理部61の機能の例を模式的に示す図であり、図5に示すように、本能・感情管理部61は、ロボット1の感情を表現する感情モデル81と、本能を表現する本能モデル82を記憶し、管理している。
【0057】
感情モデル81は、例えば、「うれしさ」、「悲しさ」、「怒り」、「驚き」、「恐れ」、「嫌悪」等の感情の状態(度合い)を、所定の範囲(例えば、0乃至100等)の感情パラメータによってそれぞれ表し、音声認識部43、画像認識部44、及び圧力検出部45からの出力や時間経過等に基づいて、その値を変化させる。
【0058】
この例においては、感情モデル81は、「うれしさ」を表わす感情ユニット81A、「悲しさ」を表わす感情ユニット81B、「怒り」を表わす感情ユニット81C、「驚き」を表わす感情ユニット81D、「恐れ」を表わす感情ユニット81E、及び、「嫌悪」を表わす感情ユニット81Fから構成されている。
【0059】
本能モデル82は、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態(度合い)を、所定の範囲の本能パラメータによってそれぞれ表し、音声認識部43、画像認識部44、及び圧力検出部45等からの出力や時間経過等に基づいて、その値を変化させる。また、本能モデル82は、行動履歴に基づいて「運動欲」を表わすパラメータを高めたり、或いは、バッテリ残量に基づいて「食欲」を表わすパラメータを高めたりする。
【0060】
この例においては、本能モデル82は、「運動欲」を表わす本能ユニット82A、「愛情欲」を表わす本能ユニット82B、「食欲」を表わす本能ユニット82C、「好奇心」を表わす本能ユニット82D、及び「睡眠欲」を表わす本能ユニット82Eから構成されている。
【0061】
本能・感情管理部61は、このような感情ユニット81A乃至81Fと本能ユニット82A乃至82Eのパラメータを変化させることにより、ロボット1の感情と本能の状態を表現し、その変化をモデル化している。
【0062】
また、感情ユニット81A乃至81Fと本能ユニット82A乃至82Eのパラメータは、外部からの入力だけでなく、図の矢印で示すように、それぞれのユニット同士が相互に影響しあうことによっても変化される。
【0063】
例えば、「うれしさ」を表現する感情ユニット81Aと「悲しさ」を表現する感情ユニット81Bが相互抑制的に結合することにより、本能・感情管理部61は、ユーザにほめてもらったときには「うれしさ」を表現する感情ユニット81Aのパラメータを大きくするとともに、「悲しさ」を表現する感情ユニット81Bのパラメータを小さくするなどして、表現する感情を変化させる。
【0064】
また、感情モデル81を構成する各ユニット同士、及び本能モデル82を構成する各ユニット同士だけでなく、双方のモデルを超えて、それぞれのユニットのパラメータが変化される。
【0065】
例えば、図に示すように、本能モデル82の「愛情欲」を表わす本能ユニット82Bや、「食欲」を表わす本能ユニット82Cのパラメータの変化に応じて、感情モデル81の「悲しさ」を表現する感情ユニット81Bや「怒り」を表現する感情ユニット81Cのパラメータが変化される。
【0066】
具体的には、「食欲」を表わす本能ユニット82Cのパラメータが大きくなったとき、感情モデル81の「悲しさ」を表現する感情ユニット81Bや、「怒り」を表現する感情ユニット81Cのパラメータが大きくなる。
【0067】
このようにして本能・感情管理部61により管理される感情のパラメータ、又は本能のパラメータは、後述するように、例えば、所定の周期で計測され、行動管理部62、及び音データ生成部66に出力される。
【0068】
なお、より詳細には、感情モデル81や本能モデル82だけでなく、成長モデルが本能・感情管理部61に用意され、その成長段階によって、感情モデル81や本能モデル82の各ユニットのパラメータが変化される。この成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態(度合い)を、所定の範囲の値によってそれぞれ表し、音声認識部43、画像認識部44、及び圧力検出部45等からの出力や時間経過等に基づいて、その値を変化させる。
【0069】
なお、本能・感情管理部61には、音声認識部43、画像認識部44、及び圧力検出部45等から認識情報が供給される他に、行動管理部62から、ロボット1の現在、又は過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになされている。そして、本能・感情管理部61は、同一の認識情報等が与えられた場合であっても、行動情報により示されるロボット1の行動に応じて、異なる内部情報を生成する。
【0070】
例えば、ロボット1がユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという認識情報が本能・感情管理部61に供給される。このとき、本能・感情管理部61においては、「うれしさ」を表す感情ユニット81Aの値が増加される。
【0071】
図4の説明に戻り、行動管理部62は、音声認識部43、及び画像認識部44等から供給されてきた情報と、本能・感情管理部61から供給されてきたパラメータ、及び時間経過等に基づいて次の行動を決定し、決定した行動の実行を指示するコマンドを姿勢遷移管理部63に出力する。また、行動管理部62は、ロボット1に発話をさせるとき、或いは所定の動作に対応する音をスピーカ19から出力させるとき、音の出力を指示するコマンドを音声合成部65に出力する。
【0072】
また、行動管理部62は、位置検出部46から供給された、ユーザまでの距離や、ユーザの手までの距離を、前記図2に示した、補間フレーム数決定部101にて受け取り、補間フレーム数nを決定する。この補間フレーム数nを基に変化量算出部103にて変化量を算出し、関節角度計算部104にてさらに該当アクチュエータの関節角度を計算する。
【0073】
図6は、図4の行動管理部62の機能構成例を示す模式図である。行動管理部62は、行動モデルライブラリ91と行動選択部92から構成されており、行動モデルライブラリ91は、予め設定された条件(トリガ)に対応させて、図に示すように、各種の行動モデルを有している。
【0074】
図の例においては、行動モデルライブラリ91には、ボールを検出した場合にとる行動を示すボール対応行動モデル91A、ボールを見失った場合などにとる行動を示す自律検索行動モデル91B、上述した感情モデル81の変化を検出した場合にとる行動を示す感情表現行動モデル91Cが用意されている。また、障害物を検出した場合にとる行動を示す障害物回避行動モデル91D、転倒したことを検出した場合にとる行動を示す転倒復帰行動モデル91E、及びバッテリ残量が少なくなった場合にとる行動を示すバッテリ管理行動モデル91Fが用意されている。
【0075】
さらに、ユーザの編集により後から追加されたモーションに対応するエディットモーション対応行動モデル91Gも用意されている。このエディットモーション対応行動モデル91Gに対応する機能が前記図2に示した各機能ブロック図である。つまり、本発明のロボット装置の動作制御方法の具体例となる編集動作制御プログラムは、行動管理部62内のエディットモーション対応行動モデルに関する。なお、前記編集動作制御プログラムは、自律検索行動モデル91Bと関連してもよいし、その一部とされてもよい。
【0076】
そして、行動選択部92は、音声認識部43、画像認識部44、圧力検出部45、及び位置検出部46等から供給される情報と、本能・感情管理部61から供給される本能、感情を表わすパラメータ、及び時間経過等を参照し、ロボット1が次にとる行動を行動モデルライブラリ91に用意されている行動モデルから選択する。
【0077】
なお、行動選択部92は、現在のロボット1の状態を表わすノードから、どの状態を表わすノードに遷移するのかを、それぞれのノード間を結ぶアークに設定されている遷移確率に基づいて決定する、有限確率オートマトンを用いて選択する。この有限確率オートマトンを用いての選択については、後述する。
【0078】
以下には、開始キーフレームと終了キーフレームの間の補間フレーム数を、外部入力によって可変して決定し、それらの各フレームに応じて該当のアクチュエータを動かして、ユーザの所望の動作をインタラクション性を高めて実行するロボット1の動作の詳細について説明する。
【0079】
先ず、図7には、外部入力の処理の手順を示す。これまでは、外部入力検出の具体例として対象物までの距離を測定するためのPSDである位置検出センサ18からの信号から位置を検出する位置検出部46を挙げ、ユーザやユーザの手までの距離を外部入力としてきた。
【0080】
この他にも外部入力としては、マイクロフォン15が拾った例えばユーザによる手拍子による音を、音量検出部42で検出し、その音の強弱パターンの時間間隔をリズムとして検出してもよい。このリズムの速さに基づいて補間フレーム数nを決定して、この決定された補間フレーム数nと、前記二つのキーフレームに基づいて前記サーボモータの駆動による各関節値の、各フレーム毎の変化量を算出し、現在のフレームの関節角度値を計算しながら、その関節角度値にしたがってって前記サーボモータを含めたアクチュエータを動作させてもよい。
【0081】
例えば、リズムが遅いほど補間フレーム数nをリニア又はノンリニアに増やし、リズムが速いほど補間フレーム数nをリニア又はノンリニアに少なくすれば、リズムの速度にしたがってってロボット1の編集動作を可変させるという、インタラクション性を高めた動作を行わせることができる。
【0082】
また、カメラ16で検出し、画像認識部44が認識した、灯りの点滅の間隔を外部入力として捉え、その点滅の時間間隔に応じて補間フレーム数nを決定することもできる。さらには、尻尾部ユニット5をアナログスティックとして用い、ユーザが左右又は上下に速度を変えて動かしてスイッチ5Bを可変に作動させて、スイッチ入力検出部47を介してスイッチの切り換え速度を検出し、その切り換え速度に応じて補間フレーム数nを決定してもよい。
【0083】
例えば、切り換え速度が遅いほど補間フレーム数nをリニア又はノンリニアに増やし、切り換え速度が速いほど補間フレーム数nをリニア又はノンリニアに少なくすれば、切り換え速度に応じてロボット1に編集動作を可変に実行させるという、インタラクション性を高めた動作を行わせることができる。
【0084】
これらの各外部入力の種別は、新たにロボット1に設けた切り換えスイッチによって選択的に切り換えられてもよいし、或いはマイクロフォン15,音声認識部43を通して音声認識されて選択的に切り換えられてもよい。選択的に切り換えられた外部入力の種別は、コントローラ10によって判別される。
【0085】
なお、外部入力の種別に応じ、変数は、予め、図7に示すような処理手順により作成され、メモリ102に格納されている。先ず、外部入力の種別は、ステップS1にて、コントローラ10によれ判別され、距離、リズム、切り換え速度が可変速度パラメータに変換され、入力種別毎に変数としてメモリ102に保存されている。
【0086】
そして、コントローラ10は、メモリ10Bに格納された編集動作制御プログラムを逐次、ワークエリアとなるRAMに取り出して実行しながら、メモリカード10Dに格納されている前記モーションデータを、前記メモリ102に保存されている変数などを用いて演算していく。
【0087】
先ず、図8に示すように、ステップS11にてコマンドを受理するとコントローラ10はコマンドを解読して、行動管理部62の行動モデルライブラリにおいて行動選択部92に行動を選択させようとする。
【0088】
ステップS12にて、現在フレームが開始又は終了のキーフレームであるか否かをチェックする。ここでキーフレームであることを判別すれば(YES)、ステップS13に進む。
【0089】
ステップS13では、前記コマンドを解釈した結果、そのコマンドの指示する行動が外部可変再生を許可するものであるか否かを判別する。例えば、歩行動作等の、重心、4脚のバランス等を複雑に制御する必要のある動作では、可変再生が不適である。ここで、外部可変再生が可能(YES)であれば、行動管理部62においてエディットモーション対応行動モデル91Gが行動選択部92にて選択される。そして、ステップS14に進む。
【0090】
ステップS14ではユーザによって選択された外部入力の種別を判断する。その後、ステップS15において、該当する変数を前記図7の処理にてストアされた変数から取得し、この取得した変数により、検出入力に応じて補間フレーム数nを変化させる。
【0091】
次に、ステップS16では、補間フレーム数nと、既にユーザによって設定されている開始キーフレーム及び終了キーフレームの関節値の差から、フレーム毎の変化量を算出する。
【0092】
ステップS17では算出された変化量から、現在フレームの関節角度値を計算し、該当のアクチュエータに設定し、ロボットを動作させる。そして、ステップS18にて現在フレームを一つ進め、ステップS19にて次のフレームがなく、最終フレームであると判定するまでステップS12からの処理を繰り替える。
【0093】
なお、ステップS12にて現在フレームが前記二つのキーフレームでないと判定(NO)したときにはステップS17に進み、前回のステップS16にて算出された変化量を使用して、現在フレームの関節角度値を計算し、ロボットに設定して動作せせる。
【0094】
また、ステップS13にて外部可変再生が許可されていないコマンドであると判断したときには、ステップS14と、ステップS15を飛ばして、ステップS16では予め設定されている固有のフレーム毎の変化量を算出する。
【0095】
図9には、例えば距離−補間フレーム数特性を示す。変数は、本特性の関数値の基になっている。ここでは、距離が長くなるほど補間フレーム数nがリニアに増え、距離が短くなるほど補間フレーム数がリニアに少なくなる変数とされている。例えばユーザがロボット1に手を近づけるほど、補間フレーム数決定部101は補間フレーム数nを少ない値(n)に決定する。また、距離が長く(L)なるほど(L<L)、補間フレーム数nを大きな値(n)とする(n<n)。
【0096】
以下には図10〜図12を参照し、補間フレーム数nを1、2、5としたときの、開始キーフレームFから終了キーフレームFまでの再生時間(実行時間)の変化について説明する。なお、実施には、前記二つのキーフレーム間の補間フレーム数nは、数十フレームから数百フレームである。ここでは、説明の簡略化を図ったものである。
【0097】
今、ロボット1が座った状態で、右前脚を挙げるモーションを編集する。右前脚3Aの胴体部ユニット2側の関節J1は、開始キーフレームが0°であり、終了キーフレームが90°であるとする。また、右前脚3Aの肘関節J2は、開始キーフレームが0°であり、終了キーフレームが30°であるとする。
【0098】
例えば、位置検出部46がユーザの手が20cmの距離にあることを検出したとき、コントローラ10は図8に示す処理手順のステップS15により補間フレーム数nを1に決定したとする。この補間フレームを図10に示すようにFiとする。開始キーフレームから終了キーフレームまでの前記補間フレームを含めた各フレームは、例えば16msecで実行される。
【0099】
すると、図8のステップS16では、補間フレーム数nが1であり、二つのキーフレームの関節値の差がJ1で90°(=θJ)、J2で30°(=θJ)であるので、各フレーム毎のJ1とJ2の変化量ΔθJとΔθJを、
ΔθJ=θJ/2=45°
ΔθJ=θJ/2=15°とする。
【0100】
そして、ステップS17にて現在フレームの関節角度値を計算する。開始キーフレームのJ1、J2は共に0°であったので、補間フレームFiのときのJ1、J2は、0+ΔθJ=45°、0+ΔθJ=15°となる。この各節角度値をアクチュエータに設定してロボット1を動作させる。
【0101】
次に、ステップS18にて現在フレームが一つ進められ、ステップS19にて次のフレームがあると判断するので、ステップS12からの処理を繰り返す。そして、次のフレームは終了キーフレームFであるので、ステップS17に進んで算出された変化量ΔθJとΔθJを使用し、現在フレームの関節角度値をJ1=45°+ΔθJ=90°、J2=15°+ΔθJ=30のように計算し、該当するアクチュエータに設定してロボット1を動作させる。
【0102】
このとき、前述したように、各フレームは、例えば16msecで実行されるので、開始キーフレームFから終了キーフレームFまでは、補関フレーム数nのとき、
16msec×(n+1)
で表せるので、
補間フレーム数n=1であれば、16×2=32msecの時間がかかることになる。
【0103】
また、位置検出部46がユーザの手が30cmの距離にあることを検出したとき、コントローラ10は図8に示す処理手順のステップS15により補間フレーム数nを2に決定したとする。
【0104】
この補間フレームを図11に示すようにFi、Fiとする。ここでも、開始キーフレームから終了キーフレームまでの前記補間フレームを含めた各フレームは、例えば16msecで実行される。
【0105】
すると、図8のステップS16では、補間フレーム数nが2であり、二つのキーフレームの関節値の差がJ1で90°(=θJ)、J2で30°(=θJ)であるので、各フレーム毎のJ1とJ2の変化量ΔθJとΔθJを、
ΔθJ=θJ/3=30°
ΔθJ=θJ/3=10°とする。
【0106】
そして、ステップS17にて現在フレームの関節角度値を計算する。開始キーフレームのJ1、J2は共に0°であったので、補間フレームFiのときのJ1、J2は、0+ΔθJ=30°、0+ΔθJ=10°となる。この各節角度値をアクチュエータに設定してロボット1を動作させる。
【0107】
次に、ステップS18にて現在フレームが一つ進められ、ステップS19にて次のフレームがあると判断するので、ステップS12からの処理を繰り返す。そして、次のフレームは補間フレームFiであるので、ステップS17に進んで前回算出された変化量ΔθJとΔθJを使用し、現在フレームの関節角度値をJ1=30°+ΔθJ=60°、J2=10°+ΔθJ=20°のように計算し、該当するアクチュエータに設定してロボット1を動作させる。
【0108】
次に、ステップS18にて現在フレームがまた一つ進められ、ステップS19にて次のフレームがあると判断するので、ステップS12からの処理を繰り返す。そして、次のフレームは終了キーフレームFであるので、ステップS17に進んで算出された変化量ΔθJとΔθJを使用し、現在フレームの関節角度値をJ1=60°+ΔθJ=90°、J2=20°+ΔθJ=30°のように計算し、該当するアクチュエータに設定してロボット1を動作させる。
【0109】
このとき、前述したように、各フレームは、例えば16msecで実行されるので、開始キーフレームFから終了キーフレームFまでは、補関フレーム数nのとき、
16msec×(n+1)
で表せるので、
補間フレーム数n=2であれば、16×3=48msecの時間がかかることになる。
【0110】
また、位置検出部46がユーザの手が100cmの距離にあることを検出したとき、コントローラ10は図8に示す処理手順のステップS15により補間フレーム数nを5に決定したとする。
【0111】
この補間フレームを図12に示すようにFi、Fi、Fi、Fi、Fiとする。ここでも、開始キーフレームから終了キーフレームまでの前記補間フレームを含めた各フレームは、例えば16msecで実行される。
【0112】
すると、図8のステップS16では、補間フレーム数nが5であり、二つのキーフレームの関節値の差がJ1で90°(=θJ)、J2で30°(=θJ)であるので、各フレーム毎のJ1とJ2の変化量ΔθJとΔθJを、
ΔθJ=θJ/6=15°
ΔθJ=θJ/6=5°とする。
【0113】
そして、ステップS17にて現在フレームの関節角度値を計算する。開始キーフレームのJ1、J2は共に0°であったので、補間フレームFiのときのJ1、J2は、0+ΔθJ=15°、0+ΔθJ=5°となる。この各節角度値をアクチュエータに設定してロボット1を動作させる。
【0114】
次に、ステップS18にて現在フレームが一つ進められ、ステップS19にて次のフレームがあると判断するので、ステップS12からの処理を繰り返す。そして、次のフレームは補間フレームFiであるので、ステップS17に進んで前回算出された変化量ΔθJとΔθJを使用し、現在フレームの関節角度値をJ1=15°+ΔθJ=30°、J2=5°+ΔθJ=10°のように計算し、該当するアクチュエータに設定してロボット1を動作させる。
【0115】
次に、ステップS18にて現在フレームがまた一つ進められ、ステップS19にて次のフレームがあると判断するので、ステップS12からの処理を繰り返す。そして、次のフレームは補間フレームFiであるので、ステップS17に進んで前回算出された変化量ΔθJとΔθJを使用し、現在フレームの関節角度値をJ1=30°+ΔθJ=45°、J2=10°+ΔθJ=15°のように計算し、該当するアクチュエータに設定してロボット1を動作させる。
【0116】
ステップS18にて現在フレームを一つづつ進め、現在フレームが補間フレームFi,Fiであるとき、それぞれのJ1は60°、75°となり、それぞれのJ2は20°、25°となる。そして、最後に終了キーフレームFのときのJ1は90°、J2は30°となる。
【0117】
このとき、前述したように、各フレームは、例えば16msecで実行されるので、補間フレーム数n=5であれば、16×6=96msecの時間がかかることになる。
【0118】
前述したように、実際には、数十フレームから数百フレームをかけて、上記の動作は行われる。例えば、補間フレーム数nが99であるとき、16×100=1.6secの時間がかかる。
【0119】
このように、ロボット1は、ユーザの手との間の距離が、短いほど補間フレーム数nを小さく決定するので、開始キーフレームFから終了フレームFまでの再生時間を、前記距離が長いときよりも短時間にすることができる。これにより、ユーザとの距離が短いほど、ロボット1は動作を速くすることができるので、ロボット1は、外部入力をユーザの好みの行動に反映させて、インタラクション性を高めることができる。
【0120】
なお、前記動作例においては、前記距離−補間フレーム数特性の基になる変数を図7に示したように距離が増すほど補間フレーム数がリニアに増すようにしたが、図13に示すようにノンリニアにしてもよい。また、図14に示すように、距離が増すほど補間フレーム数がリニアに減少するようにしてもよい。前者の場合、距離が離れていくほど、補間フレーム数nの変化は少なくなり、よって動作の速さの違いがでなくなる。後者の場合は、距離が近いほど動作がゆっくりし、遠いほど動作が速くなる。
【0121】
次に、有限確率オートマトンを用いてのノード遷移の選択について図15、図16を参照して説明する。
【0122】
図15に示す有限確率オートマトンは、例えば、現在の状態がノード0(NODE)である場合、確率Pでノード1(NODE)に遷移し、確率Pでノード2(NODE)に遷移し、確率Pでノードn(NODE)に遷移することを示している。また、この有限確率オートマトンは、確率Pn−1でノード0(NODE)に遷移すること、すなわち、いずれのノードにも遷移しないことを示している。
【0123】
そして、行動モデルライブラリ91に規定されるそれぞれの行動モデルは、複数の状態を表わすノードから構成されており、それぞれのノードには、他のノードに遷移する確率が記述された状態遷移表が設定されている。
【0124】
図16は、行動モデルライブラリ91に規定される、所定の行動モデルに属するノード100(NODE100)の状態遷移表の例を示す図である。
【0125】
図16においては、他のノード(又は自らのノード)に遷移する条件としての入力イベントが「入力イベント名」の欄に記載されており、遷移する条件として規定される「入力イベント名」についての、さらなる条件が「データ名」、及び「データ範囲」の欄に記載されている。
図の例において、ID「1」が設定されている情報は、「ボールを検出した」(入力イベント名「BALL」)ことに関する情報が行動管理部62に通知され、かつ、検出されたボールの大きさが「0乃至1000」の範囲であるとき、「30パーセント」の確率でノード100からノード120に遷移することを示している。
【0126】
また、ID「2」が設定されている情報は、「頭を軽く叩かれた」(入力イベント名「PAT」)ことに関する情報が行動管理部62に通知されてきたとき、「40パーセント」の確率でノード100からノード150に遷移することを示している。
【0127】
また、ID「3」が設定されている情報は、「頭を強く叩かれた」(入力イベント名「HIT」)ことに関する情報が行動管理部62に通知されてきたとき、「20パーセント」の確率でノード100からノード150に遷移することを示している。
【0128】
さらに、ID「4」が設定されている情報は、「ユーザによって編集されたモーションを実行する」(入力イベント名「E MOTION」)ことに関する情報が行動管理部62に通知され、かつ、ユーザ又はユーザの手までの距離が「0〜20」の範囲であることが通知されてきたとき、「100パーセント」の確率でノード100からノード1600に遷移することを示している。
【0129】
ID「5」が設定されている情報は、「障害物を検出した」(入力イベント名「OBSTACLE」)ことに関する情報が行動管理部62に通知され、かつ、その障害物までの距離が「0乃至100」の範囲であることが通知されてきたとき、「100パーセント」の確率でノード100からノード1000に遷移することを示している。
【0130】
また、この例においては、音声認識部43や画像認識部44等からの入力がない場合であっても、感情モデル81や本能モデル82のパラメータに応じて他のノードに遷移するようになされている。
【0131】
例えば、ID「6」が設定されている情報は、感情モデル81の「うれしさ(JOY)」を表わす感情ユニット81Aのパラメータが「50乃至100」の範囲にあるとき、「5パーセント」の確率でノード120に遷移し、「30パーセント」の確率でノード150に遷移することを示している。
【0132】
ID「7」が設定されている情報は、感情モデル81の「驚き(SURPRISE)」を表わす感情ユニット81Dのパラメータが「50乃至100」の範囲にあるとき、「15パーセント」の確率でノード1000に遷移することを示しており、ID「8」が設定されている情報は、感情モデル81の「悲しみ(SUDNESS)」を表わす感情ユニット81Bのパラメータが「50乃至100」の範囲にあるとき、「50パーセント」の確率でノード120に遷移することを示している。
【0133】
また、図16の状態遷移表には、それぞれのノードに遷移したとき、そこで出力される行動が「出力行動」の欄に記述されており、例えば、ノード120に遷移したとき、そこで出力される行動は「ACTION1」であり、ノード150に遷移したとき、そこで出力される行動は「ACTION2」であり、ノード1000に遷移したとき、そこで出力される行動は「MOVE BACK」(後退)であるとされている。
【0134】
また、ノード1600に遷移したとき、そこで出力される行動は、「ACTION4」である。これを、例えば、前述したように、補間フレーム数nのときに座ってから右前脚を挙げるという動作にすればよい。この「ACTION4」の行動は、前記距離−補間フレーム数特性に応じて決定された補間フレーム数nによって、モーションスピードが決定される。つまり、ノード1600に遷移後、決定された補間フレーム数nによってモーションスピードをさらに変えることになる。本願発明では、例えばユーザ又はユーザの手までの距離にしたがってって補間フレーム数nを異ならせることにより、エディットモーションの速度を変えているためである。
【0135】
また、例えば、ID「9」が設定されている情報を入力イベント名「E MOTION2」にし、例えば手拍子のリズムを検出したときに「100パーセント」の確率でノード100からノード1200に遷移するようにすればよい。そして、ノード1200の行動「ACTION3」では、手拍子のリズムに合わせて首を振る動作を補間フレーム数nを変えながら、動作速度を変化させて行う。
【0136】
行動選択部92は、このような状態遷移表を参照することで状態を遷移させ、そのノードに設定されている行動を指示する情報を、本能・感情管理部61、姿勢遷移管理部63、及び音声合成部65にそれぞれ出力する。
【0137】
例えば、遷移したノードに規定されている行動が「座ってから補間フレーム数nにて右前脚を挙げる」である場合、行動選択部92は、それを指示するコマンドを姿勢遷移管理部63を介して制御部64に出力する。
【0138】
図4の説明に戻り、姿勢遷移管理部63は、行動管理部62から供給されるコマンドに基づいて、ロボット1の姿勢を現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これを制御部64に送出する。この制御部64は、図2に示した動作制御部64の機能を果たす。
【0139】
ここで、現在の姿勢から次に遷移可能な姿勢は、例えば、胴体や手や足の形状、重さ、各部の結合状態のようなロボット1の物理的形状と、関節が曲がる方向や角度のようなアクチュエータ3AA1乃至5Aの機構とによって決定される。
【0140】
なお、姿勢には、現在の姿勢から直接遷移可能な姿勢と、直接遷移できない姿勢がある。例えば、4本足のロボット1は、手足を大きく投げ出して寝転んでいる状態から、伏せた状態へ直接遷移することはできるが、立った状態へ直接遷移することはできず、一旦、手足を胴体近くに引き寄せて伏せた姿勢になり、それから立ち上がるという2段階の動作が必要である。また、安全に実行できない姿勢も存在する。例えば、ロボット1は、4本足で立っている姿勢から、両前足を挙げてバンザイをしようとすると、簡単に転倒してしまう。
【0141】
このため、姿勢遷移管理部63は、直接遷移可能な姿勢を予め登録しておき、行動管理部62から供給されるコマンドが、直接遷移可能な姿勢を示す場合には、その姿勢遷移情報を制御部64に送出する。
【0142】
一方、姿勢遷移情報が、直接遷移不可能な姿勢を示す場合には、姿勢遷移管理部63は、遷移可能な他の姿勢に一旦遷移した後に、目的の姿勢まで遷移させるような姿勢遷移情報を生成し、制御部64に送出する。これによりロボット1が、遷移不可能な姿勢を無理に実行しようとする事態や、転倒するような事態を回避することができる。
【0143】
制御部64は、姿勢遷移管理部63から供給されてきた姿勢遷移情報に基づいて、各部に設けられているアクチュエータ3AA1乃至5Aを駆動し、ロボット1の動作を制御する。
【0144】
次に、モーションの編集システムについて図17〜図23を用いて説明する。予め、ユーザによって、開始キーフレームと終了キーフレームが指定されると、それら二つのキーフレームはもちろん、それら二つのキーフレームのときの各アクチュエータの関節角度も設定される。これら編集におけるモーションデータは、図17の(a)に示すパーソナルコンピュータ110によってメモリカード111に書き込まれる。このメモリカード111は、ロボット1の例えば胴体部ユニット2に設けられているスロットに挿入され、メモリカードI/F10Cと接続する。
【0145】
なお、パーソナルコンピュータ110は、図18に示すように構成されており、モーション編集のためのプログラムをROM115又はHDD120に格納している。CPU112は、HDD120に格納されているOSを起動したのち、バス113を通じて前記モーション編集プログラムをROM115又はHDD120から取り出し、DRAM114を作業エリアにしながら逐次実行する。前記モーション編集プログラムの実行により、ディスプレイコントローラ116によって制御されるディスプレイ117には、後述の図19〜図23に示すような画像が表示され、その画像を用いてユーザがモーションの編集を行えるようになっている。もちろん、前記編集は、I/Oインターフェース121に接続されたキーボードや、マウス、ポインティングデバイスなどの操作部122を用いて行われる。また、メモリカード111は、メモリカードI/F118を介してCPU112に接続されており、前記操作部122を使ったユーザの編集操作によって指定された前記二つのキーフレーム等のモーションデータがその制御にしたがってって記憶される。なお、前記モーションデータは、通信I/F119を介した無線LANを通じてロボット1に送信されてもよい。
【0146】
モーションの編集は、アクションの編集の一部とされている。よって、アクションエディタが図19のように起動される。アクションの作成が選択された後、図20において“素材”からモーションの作成が選択されと、アクションネームACTION Nameや、File Nameをユーザに入力させる。
【0147】
この後、図21に示すアクションウィンドウが起動される。アクションウィンドウには、カレントタイム/フレーム表示201、トータルタイム/フレーム表示、カレントバー203、キーフレームチャンネル204等が表示される。そして、キーフレームチャンネル204には、図22に示すような開始キーフレームと、終了キーフレームが例えば予め格納されてサンプルファイルの中から、ユーザにより選択されて表示され、設定がなされる。この二つのキーフレーム間の補間フレーム数nをマニュアルにて設定するか、或いはここでは設定せず、前述したように外部入力検出に応じて変化させるかは図23に示すダイアログにてユーザにより選択される。
【0148】
もしも、図23に示すダイアログにて、「設定する」が選択された場合には、補間フレームを設定するための処理が、ダイアログなどによって案内され、ユーザが固定の補間フレーム数を設定することになる。
【0149】
また、「ここでは設定しない」が選択された場合には、モーション編集処理を終了し、前記モーションデータをメモリカード111に格納する。このメモリカード111が、図17に示したように、ロボット1に装着されると、メモリカードI/F10Cと接続する。そして、CPU10Aにて前記編集動作制御プログラムが実行されたときに、メモリカード111(図3におけるメモリカード10Dと同一である)から前記モーションデータが読み出され、前記メモリ102に保存されている変数を用いて補間フレーム数nが決定される(図8のステップS15)。この後、前記図8のステップS16以下の処理が行われることにより、決定された補間フレーム数nと、前記二つのキーフレームに基づいて前記サーボモータの駆動による各関節値の、各フレーム毎の変化量を算出し、現在のフレームの関節角度値を計算しながら、その関節角度値にしたがってって前記サーボモータを含めたアクチュエータが動作される。
【0150】
したがって、前記モーションの編集システムによって設定された開始フレーム、終了フレームと、それらの関節値の差を基にして、ロボット1は、外部入力をユーザの好みの行動に反映させて、インタラクション性を高めながら動作することができる。
【0151】
【発明の効果】
本発明に係るロボット装置は、外部入力検出手段により検出された外部入力に応じて補間フレーム数決定手段が決定した補間フレーム数に基づいて所望のモーションの対象となる関節のアクチュエータを動作させるので、外部入力をユーザの好みの行動に反映させて、インタラクション性を高めることができる。
【0152】
本発明に係るロボット装置の動作制御方法は、外部入力検出工程により検出された外部入力に応じて補間フレーム数決定工程が開始キーフレームと終了キーフレーム間の補間フレーム数を決定し、変化量算出工程が補間フレーム数と二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出し、関節角度計算工程がフレーム毎の変化量から、現在フレームの関節角度値を計算し、動作制御工程が現在フレームの関節角度値にしたがってってロボット装置のアクチュエータを動作させるので、外部入力をユーザの好みに応じてロボット装置の行動に反映させて、ロボット装置のインタラクション性を高めることができる。
【0153】
本発明に係る記録媒体は、ロボット装置の動作制御プログラムを記憶しているので、ロボット装置の外部入力をユーザの好みに応じてロボット装置の行動に反映させて、ロボット装置のインタラクション性を高めることができる。
【0154】
本発明に係るプログラムは、ロボット装置の外部入力をユーザの好みに応じてロボット装置の行動に反映させて、ロボット装置のインタラクション性を高めることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のエンタテインメントロボット装置の外観斜視図である。
【図2】ロボット装置の機能ブロック図である。
【図3】ロボット装置の内部構成図である。
【図4】コントローラの機能構成図である。
【図5】本能・感情管理部の機能例を模式的に示す図である。
【図6】行動管理部の機能例を模式的に示す図である。
【図7】外部入力の処理の手順を示すフローチャートである。
【図8】モーション再生処理の手順を示すフローチャートである。
【図9】距離−補間フレーム数特性の具体例を示す特性図である。
【図10】補間フレーム数n=1のときの再生例を示す図である。
【図11】補間フレーム数n=2のときの再生例を示す図である。
【図12】補間フレーム数n=5のときの再生例を示す図である。
【図13】距離−補間フレーム数特性の他の具体例を示す特性図である。
【図14】距離−補間フレーム数特性の他の具体例を示す特性図である。
【図15】有限オートマトンの例を示す図である。
【図16】状態の遷移確率の例を示す図である。
【図17】モーションの編集システムを説明するための図である。
【図18】パーソナルコンピュータの内部構成を示すブロック図である。
【図19】アクションエディタが起動されたときの画面表示例を示す図である。
【図20】モーション作成を選択する状態を示す画面表示例を示す図である。
【図21】アクションウィンドウを示す画面表示例を示す図である。
【図22】ユーザにより選択されてキーフレームチャンネル上に表示されるキーフレームを示す図である。
【図23】補間フレーム数nをマニュアルにて設定するか、或いは自動設定するのかをユーザに選択させるためのダイアログ表示例を示す図である。
【符号の説明】
1 エンタテインメントシステムロボット装置、10 コントローラ、10Bメモリ、10D メモリカード、18 位置検出センサ、31 外部入力検出部、46 位置検出部、62 行動管理部、64 動作制御部、101 補間フレーム数決定部、103 変化量算出部、104 関節角度計算部
[0001]
TECHNICAL FIELD OF THE INVENTION
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a robot apparatus, and more particularly to a robot apparatus that executes a desired motion by interpolating between a specified start key frame and an end key frame using an interpolation frame, a robot apparatus operation control method, a recording medium, and a program. About.
[0002]
[Prior art]
A mechanical device that performs a motion resembling a human motion using an electric or magnetic action is called a “robot”. It is said that the robot is derived from the Slavic word "ROBOTA (slave machine)". In Japan, robots began to spread from the late 1960's, but most of them were industrial robots (industrial robots) such as manipulators and transfer robots for the purpose of automation and unmanned production work in factories. Met.
[0003]
Recently, pet-type robots that mimic the body mechanism and behavior of four-legged animals such as dogs, cats, and bears, or the body mechanism and behavior of bipedal animals such as humans and monkeys that walk upright. Research and development on the structure of a legged mobile robot such as the "humanoid" or "humanoid" robot and stable walking control thereof have been progressing, and expectations for its practical use have been increasing. These legged mobile robots are unstable compared to crawler type robots, making posture control and walking control difficult.However, they are excellent in that they can realize flexible walking and running operations such as climbing stairs and climbing over obstacles. I have.
[0004]
A stationary robot, such as an arm-type robot, which is implanted and used in a specific place, operates only in a fixed and local work space such as assembling and sorting parts. On the other hand, the mobile robot has a work space that is not limited, and can move freely on a predetermined route or on a non-route to perform a predetermined or arbitrary human work, or perform a human or dog operation. Alternatively, various services that replace other living things can be provided.
[0005]
One of the uses of the legged mobile robot is to perform various difficult tasks in industrial activities and production activities. For example, maintenance work in nuclear power plants, thermal power plants, petrochemical plants, parts transfer and assembly work in manufacturing plants, cleaning in high-rise buildings, rescue work in fire spots and other dangerous and difficult work, etc. .
[0006]
Another application of the legged mobile robot is not the work support described above, but a life-based type, that is, a “symbiosis” with humans or “entertainment”. This type of robot faithfully reproduces the movement mechanism of a relatively intelligent legged moving animal such as a human, dog (pet), or bear and rich emotional expression using limbs. In addition to not only faithfully executing a motion pattern input in advance, but also dynamically responding to words and attitudes (such as "praise", "scratch", and "slap") received from a user (or another robot). It is also required to realize a corresponding and lively response expression.
[0007]
In the conventional toy machine, the relationship between the user operation and the response characteristic is fixed, and the operation of the toy cannot be changed according to the user's preference. As a result, the user eventually gets tired of the non-repeating toy that performs the same operation.
[0008]
In contrast, recent entertainment robots and the like can play back an action (ACTION) edited by a user and act according to the user's preference (for example, see Patent Document 1). A series of actions are created and completed using, for example, a motion editor activated by a personal computer or the like, for example, a motion or an operation (motion, motion) that is configured together with lighting of an LED and sound. In addition to the completed motion, the data related to the action including the edited voice and the edited LED lighting operation is stored in the memory card. This memory card is mounted on the entertainment robot. Then, the entertainment robot performs a user's favorite action using the motion data or the like stored in the memory card.
[0009]
[Patent Document 1]
JP-A-11-58274
[0010]
[Problems to be solved by the invention]
By the way, when a motion is created by activating the motion editor by the CPU so far, a key frame corresponding to the first pose and a key frame corresponding to the last pose are fixedly provided. Because the number of interpolation frames was set, the motion was the same speed in any case.
[0011]
For example, when creating a motion of sitting and raising one of the front legs, the number of interpolation frames between key frames is fixed beforehand, so that under any environment, for example, even if the user approaches or moves away The motion was performed at the same speed.
[0012]
Therefore, conventionally, a user's favorite action can be performed, but an external input caused by the user or other causes is not reflected in the action, and an interaction (interaction) is performed. Then it was not enough.
[0013]
The present invention has been made in view of the above-mentioned circumstances, and an object of the present invention is to provide a robot device capable of reflecting an external input to a user's favorite behavior and improving the interaction.
[0014]
It is another object of the present invention to provide a behavior control method for a robot device that can enhance the interaction of the robot device by reflecting an external input to a user's favorite behavior.
It is another object of the present invention to provide a recording medium on which a program capable of causing a robot apparatus to execute an action with enhanced interaction by reflecting an external input to a user's favorite action is recorded.
[0015]
It is another object of the present invention to provide a program that allows an external input to be reflected in a user's favorite action and causes the robot apparatus to execute an action with enhanced interaction.
[0016]
[Means for Solving the Problems]
The robot apparatus according to the present invention is a robot apparatus that performs a desired motion by interpolating between a specified start key frame and an end key frame by an interpolation frame in order to solve the above-described problem. External input detection means for detecting an external input, and interpolation frame number determination means for determining the number of interpolation frames between the key frames in accordance with the external input detected by the external input detection means, the interpolation frame An actuator for moving the joint is operated while calculating a current joint angle value of the joint to be subjected to the desired motion based on the number of interpolation frames determined by the number determining means.
[0017]
Therefore, the robot apparatus according to the present invention operates the actuator of the joint to be a target of a desired motion based on the number of interpolation frames determined by the number of interpolation frames determined in response to the external input detected by the external input detection means. Let it.
[0018]
In addition, the robot apparatus according to the present invention is an actuator that moves the joint while calculating a current joint angle value of the joint to be the target of the desired motion based on the number of interpolation frames determined by the interpolation frame number determination unit. A change amount calculating means for calculating a change amount for each frame from a difference between the number of interpolation frames determined by the interpolation frame number determining means and a joint value between the two key frames; Means for calculating the joint angle value of the current frame from the amount of change for each frame calculated by the means; and operating the corresponding actuator in accordance with the joint angle value of the current frame calculated by the joint angle calculation means. Operation control means for performing the operation.
[0019]
For this reason, in the robot apparatus according to the present invention, the interpolation frame number determination means determines the number of interpolation frames between the start key frame and the end key frame according to the external input detected by the external input detection means, and the change amount calculation means Calculates the amount of change for each frame from the difference between the number of interpolated frames and the joint value between the two key frames, and the joint angle calculation means calculates the joint angle value of the current frame from the amount of change for each frame, and performs motion control. Means actuate the actuator according to the joint angle value of the current frame.
[0020]
In order to solve the above-mentioned problem, the operation control method of the robot apparatus according to the present invention interpolates between a designated start key frame and an end key frame by an interpolation frame to execute a desired motion. An operation control method for a robot device, comprising: an external input detecting step of detecting an external input; and an interpolating frame for determining the number of interpolated frames between the key frames according to the external input detected by the external input detecting step. A number determination step, a change amount calculation step of calculating a change amount for each frame from a difference between the number of interpolation frames determined by the interpolation frame number determination step and a joint value between the two key frames, and the change amount calculation A joint angle calculating step of calculating a joint angle value of a current frame from a change amount for each frame calculated in the step, and the joint angle calculating step Therefore comprising an operation control step of operating the appropriate actuator I in accordance with the calculated current joint angle values of the frame.
[0021]
For this reason, the operation control method of the robot apparatus according to the present invention, in the interpolation frame number determination step according to the external input detected in the external input detection step determines the number of interpolation frames between the start key frame and the end key frame, The change amount calculation step calculates the change amount for each frame from the difference between the number of interpolation frames and the joint value between the two key frames, and the joint angle calculation step calculates the joint angle value of the current frame from the change amount for each frame. Then, the operation control step operates the actuator according to the joint angle value of the current frame.
[0022]
Further, in order to solve the above problem, the recording medium according to the present invention interpolates between a specified start key frame and an end key frame by an interpolation frame, and causes the robot apparatus to execute a desired motion. A recording medium recording the operation control program, wherein the operation control program comprises: an external input detection step of detecting an external input; and the key according to an external input detected by the external input detection step. An interpolated frame number determining step of determining an interpolated frame number between frames, and calculating a change amount for each frame from a difference between the interpolated frame number determined in the interpolated frame number determining step and a joint value between the two key frames. Calculating the joint angle value of the current frame from the change amount for each frame calculated in the change amount calculating step. A joint angle calculation step, and an operation control step of operating a corresponding actuator according to the joint angle value of the current frame calculated in the joint angle calculation step. I have.
[0023]
According to an embodiment of the present invention, there is provided a program for interpolating between a specified start key frame and an end key frame using an interpolation frame, and controlling the robot apparatus to execute a desired motion. An external input detection step of detecting an external input, and an interpolation frame number determination step of determining the number of interpolation frames between the key frames according to the external input detected by the external input detection step, A change amount calculation step of calculating a change amount for each frame from the difference between the number of interpolation frames determined in the interpolation frame number determination step and the joint value between the two key frames; and a change amount calculation step. A joint angle calculating step of calculating a joint angle value of the current frame from the amount of change for each frame, and the joint angle calculating step. Operating the appropriate actuator I in accordance with the calculated current joint angle values of the frame formed by a motion control step.
[0024]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. This embodiment is an entertainment robot apparatus that moves and moves four legs, a neck, and the like driven by a servo motor supplied with power from a battery.
[0025]
FIG. 1 shows an external configuration of an entertainment robot device (hereinafter, referred to as a robot) 1. As shown in FIG. 1, the robot 1 has a four-legged shape, for example, a lion shape, and leg units 3A, 3B, 3C, and 3D are connected to the front, rear, left, and right of the body unit 2, respectively. At the same time, a head unit 4 and a tail unit 5 are connected to a front end and a rear end of the body unit 2, respectively.
[0026]
The tail unit 5 is drawn out from a base provided on the upper surface of the body unit 2 so as to bend or swing freely with two degrees of freedom.
[0027]
In the robot 1 having such an external configuration, for example, servomotors provided at the positions of the joints of the leg units 3A to 3D are driven to move each joint by a predetermined angle and move the front leg up and down. The user performs an operation such as moving forward while raising and lowering the rear leg. In addition, a servo motor provided at each joint of the head unit 4 and the tail unit 5 is moved by a predetermined angle to perform an operation of shaking the head and waving the tail.
[0028]
The robot 1 can judge an internal situation and an external situation, and can control an action autonomously. At this time, the robot 1 can perform an action set in advance, and can also perform an action added later by editing by the user. When performing the action edited by the user, the robot 1 performs a characteristic operation based on the present invention.
[0029]
The editing of the action by the user, particularly the editing of the motion, is performed by interpolating between the start key frame and the end key frame specified by the user with the interpolation frame. The robot 1 variably determines the number n of interpolation frames based on an external input. Then, based on the determined number n of the interpolation frames and the two key frames, the amount of change in each joint value by driving the servo motor is calculated for each frame, and the joint angle value of the current frame is calculated. The actuator including the servomotor is operated according to the joint angle value. At this time, each frame including the interpolation frame from the start key frame to the end key frame is reproduced at, for example, 16 msec. Of course, the motion corresponding to each frame is also performed at, for example, 16 msec.
[0030]
As shown functionally in FIG. 2, the robot 1 detects an external input by the external input detecting unit 31, and calculates the number of interpolation frames n between the start key frame and the end key frame according to the external input. The number is determined by the interpolation frame number determination unit 101. The number-of-interpolated-frames determining unit 101 determines the number n of supplementary frames based on, for example, the distance from the input-detected user based on the input detection value-number of supplementary frames stored in the memory 102 as a table. This is supplied to the calculation unit 103. The change amount calculation unit 103 calculates a change amount for each frame from the difference between the number of interpolation frames n and the joint angle value between the two key frames, and supplies the calculated change amount to the joint angle calculation unit 104. The joint angle calculation unit 104 calculates a joint angle value of the current frame from the change amount for each frame, and supplies the calculated joint angle value to the operation control unit 64. The operation control unit 64 operates the corresponding actuator Ai according to the joint angle value of the current frame.
[0031]
Here, an operation in a case where the external input detection unit 31 is a position detection unit that detects a distance to an object based on a signal supplied from a position detection sensor that is, for example, a distance sensor (Position Sensing Device: PSD). A brief description will be given. For example, when the distance-interpolation frame number characteristic stored in the memory 102 is such that the number n of interpolation frames increases linearly as the distance increases, as shown in FIG. 1 The case where the number of interpolated frames becomes linearly smaller becomes true. For example, as the user moves his hand closer to the robot 1, the interpolation frame number determination unit 101 sets the interpolation frame number n to a smaller value (n 1 ). In addition, the distance is long (L 2 ) Indeed (L 1 <L 2 ), The number of interpolation frames n is set to a large value (n 2 ) And (n) 1 <N 2 ).
[0032]
Now, when the distance is short (L 1 ), The number-of-interpolated-frames determination unit 101 refers to the table in the memory 102 to determine the number n of interpolated frames by n. 1 Is determined. Then, the change amount calculation unit 103 outputs the start key frame F specified in advance. s And the end key frame F e Between the joint values of the corresponding actuators between θ and the number of interpolation frames n 1 From the change amount Δθ for each frame 1 = Θ / n 1 +1 is calculated and supplied to the joint angle calculation unit 104. The joint angle calculation unit 104 calculates the change amount Δθ for each frame. 1 From the joint angle value θp of the current frame 1 Is calculated and supplied to the operation control unit 64. The operation control unit 64 calculates the joint angle value θp of the current frame. 1 Actuator A corresponding to i To work.
[0033]
On the other hand, when the distance is long (L 2 ), The number-of-interpolated-frames determination unit 101 refers to the table in the memory 102 to determine the number n of interpolated frames by n. 2 Is determined. Then, the change amount calculation unit 103 outputs the start key frame F specified in advance. s And the end key frame F e Between the joint values of the corresponding actuators between θ and the number of interpolation frames n 2 From the change amount Δθ for each frame 2 = Θ / n 2 +1 is calculated and supplied to the joint angle calculation unit 104. The joint angle calculation unit 104 calculates the change amount Δθ for each frame. 2 From the joint angle value θp of the current frame 2 Is calculated and supplied to the operation control unit 64. The operation control unit 64 calculates the joint angle value θp of the current frame. 2 Actuator A corresponding to i To work.
[0034]
Where n 2 > N 1 Therefore, θ / n 2 <Θ / n 1 Since one frame is reproduced at 16 msec, the distance L is short. 1 Is longer L 2 Start key frame F s To end frame F e Playback time is shortened.
[0035]
Next, the internal configuration of the robot 1 will be described with reference to the block diagram of FIG. The body unit 2 stores a controller 10 for controlling the entire robot 1, a battery 11 serving as a power source of the robot 1, an internal sensor 14 including a battery sensor 12 and a heat sensor 13, and the like. The controller 10 basically includes a CPU (Central Processing Unit) 10A and a memory 10B in which a basic control program for the CPU 10A to control each unit is provided. The memory 10B stores an editing operation control program which is a specific example of the operation control method of the robot apparatus of the present invention. Although the editing operation control program will be described in detail later, the editing operation control program is a program that can eventually constitute the functional blocks shown in FIG. 2, and determines the number n of interpolation frames between the start key frame and the end key frame. Calculating the change amount of each joint value by driving the servo motor for each frame based on the determined number n of the interpolation frames and the two key frames, while calculating the joint angle value of the current frame. And a program for operating an actuator including the servomotor according to the joint angle value.
[0036]
Further, the controller 10 is also provided with an I / F 10C for the memory card 10D. The memory card 10D stores the start key frame, the end key frame, and motion data such as the joint angle value of each actuator at the time of the key frame.
[0037]
As shown in FIG. 3, the head unit 4 includes a microphone 15 corresponding to an “ear” for sensing sound, a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide) as a sensor for sensing an external stimulus. A camera 16 corresponding to an “eye” that senses light, and a touch sensor 17 corresponding to a tactile sense that senses pressure or the like caused by touching by a user. I have. Further, the head unit 4 is provided with a position detection sensor 18 which is a PSD for measuring a distance to an object, and a speaker 19 corresponding to a “mouth” of the robot 1 at predetermined positions.
[0038]
Joint portions of the leg units 3A to 3D, connection portions of the leg units 3A to 3D and the body unit 2, connection portions of the head unit 4 and the body unit 2, and tail units 5 and the body portion An actuator is installed at a connection portion of the unit 2 or the like. The actuator operates each unit based on an instruction from the controller 10.
[0039]
In the example of FIG. 3, the leg unit 3A includes an actuator 3AA. 1 To 3AA k Are provided, and the leg unit 3B includes an actuator 3BA. 1 Or 3BA k Is provided. The leg unit 3C includes an actuator 3CA. 1 To 3CA k Is provided, and the leg unit 3D includes an actuator 3DA 1 Or 3DA k Is provided. Further, the head unit 4 includes an actuator 4A 1 To 4A L Are provided, and the tail unit 5 is provided with an actuator 5A.
[0040]
Hereinafter, the actuator 3AA provided in the leg units 3A to 3D 1 Or 3DA k , Actuator 4A provided in head unit 4 1 To 4A L When it is not necessary to distinguish each of the actuators 5A provided in the tail unit 5 from each other, the actuators 3AA 1 To 5A.
[0041]
Further, in the leg units 3A to 3D, switches 3AB to 3DB are installed at locations corresponding to the soles of the robot 1 in addition to the actuators. When the robot 1 walks, the switches 3AB to 3DB are depressed, and a signal representing the depression is input to the controller 10.
[0042]
The microphone 15 installed in the head unit 4 collects surrounding sounds (sounds) including utterances from the user, and outputs the obtained sound signals to the controller 10. The camera 16 captures an image of the surroundings, and outputs an obtained image signal to the controller 10. The touch sensor 17 is provided, for example, on the upper part of the head unit 4 and detects a pressure received by a physical action such as “stroke” or “hit” from the user, and uses the detection result as a pressure detection signal. Output to the controller 10. The position detection sensor 18 emits, for example, infrared light and outputs a detection result about the timing of receiving the reflected light to the controller 10.
[0043]
The controller 10 controls the surrounding conditions, commands from the user, and the user based on audio signals, image signals, pressure detection signals, distance signals, and the like provided from the microphone 15, the camera 16, the touch sensor 17, and the position detection sensor 18. The robot 1 determines the next action to be taken by the robot 1 based on the determination result. Then, based on the determination, the controller 10 drives necessary actuators, thereby swinging the head unit 4 up and down, left and right, moving the tail unit 5, and moving each of the leg units 3A to 3D. To cause the robot 1 to walk, sit down, raise one of the legs while sitting, or take a so-called by-by action such as swinging the front leg.
[0044]
Further, the controller 10 detects, for example, the distance to the user or the distance to the hand of the user based on the signal given from the position detection sensor 18, and determines the number of interpolation frames n based on the detection result. Based on the number n of the interpolated frames and the two key frames, the amount of change in each joint value by driving the servo motor for each frame is calculated, and the joint angle value of the current frame is calculated. The actuator including the servomotor is operated according to the angle value.
[0045]
In addition, the controller 10 performs processing such as turning on, off, or blinking an LED (not shown) provided at the position of the “eye” of the robot 1.
[0046]
FIG. 4 is a block diagram illustrating a basic functional configuration example of the controller 10 of FIG. Note that the functions shown in FIG. 4 are realized by the CPU 10A executing a basic control program stored in the memory 10B. The editing operation control program, which is a specific example of the present invention, which is started in connection with the basic control program, is also executed by the CPU 10A and functions as a part of the behavior management unit 62 shown in FIG. A block is configured.
[0047]
The controller 10 basically includes a sensor input processing unit 31 that detects an external input and the like, and an information processing unit 32 that operates the robot 1 based on information and the like detected by the sensor input processing unit 31. ing.
[0048]
Then, the angle detection unit 41 configuring the sensor input processing unit 31 includes the actuator 3AA 1 When the motor provided for each of the first through fifth motors is driven, the angle is detected based on the notified information. The angle information detected by the angle detection unit 41 is output to the behavior management unit 62 of the information processing unit 32 and the sound data generation unit 66.
[0049]
The volume detector 42 detects the volume based on the signal given from the microphone 15 and outputs the detected volume information to the behavior manager 62 and the sound data generator 66.
[0050]
The voice recognition unit 43 performs voice recognition on a voice signal given from the microphone 15. Then, the voice recognition unit 43 uses the instinct / emotion management unit 61 and the behavior management, as voice recognition information, for example, commands such as “walk”, “down”, “follow the ball” and the like as voice recognition results. Notifying unit 62 and sound data generation unit 66.
[0051]
The image recognition section 44 performs image recognition using an image signal provided from the camera 16. Then, as a result of the processing, the image recognizing unit 44 obtains, for example, a “red round object”, a “plane that is perpendicular to the ground and has a height equal to or higher than a predetermined height”, and a “skin color”. Is detected, image recognition results such as “there is a ball”, “there is a wall”, “there is a human (user)” are used as image recognition information, and the instinct / emotion management unit 61, the behavior management unit 62, and The sound data generation unit 66 is notified.
[0052]
The pressure detector 45 processes a pressure detection signal provided from the touch sensor 17. Then, as a result of the processing, when detecting a pressure that is equal to or more than a predetermined threshold value and for a short time, the pressure detection unit 45 recognizes that “hit” has been detected, and if the pressure is less than the predetermined threshold value, When a long-term pressure is detected, it is recognized as “stroke (praised)”, and the recognition result is used as state recognition information as an instinct / emotion management unit 61, a behavior management unit 62, and a sound. The data generation unit 66 is notified.
[0053]
The position detection unit 46 measures a distance to a predetermined target based on a signal supplied from the position detection sensor 18 and notifies the behavior management unit 62 and the sound data generation unit 66 of the distance information. For example, when a hand is put in front of the eyes, the position detection unit 46 detects the distance to the hand, the distance to the user or the ball recognized by the image recognition unit 44, and the like.
[0054]
The switch input detection unit 47 detects an input from the switches 3AB to 3DB provided in a portion corresponding to the sole of the robot 1 and, for example, a timing at which the robot 1 walks while walking. Also, the instinct and emotion management unit 61 and the behavior management unit 62 are notified that the sole of the foot is touched by the user.
[0055]
On the other hand, an instinct and emotion management unit 61 constituting the information processing unit 32 manages the instinct and emotion of the robot 1 and, at a predetermined timing, a parameter indicating the instinct of the robot 1 and a parameter indicating emotion are stored in the behavior management unit. 62 and a sound data generation unit 66.
[0056]
FIG. 5 is a diagram schematically illustrating an example of the function of the instinct / emotional management unit 61 in FIG. 4. As shown in FIG. 5, the instinct / emotional management unit 61 includes an emotion model expressing the emotion of the robot 1. 81 and an instinct model 82 expressing instinct are stored and managed.
[0057]
The emotion model 81 sets the emotion state (degree) such as “joy”, “sadness”, “anger”, “surprise”, “fear”, and “disgust” in a predetermined range (for example, 0 to 100), and their values are changed based on outputs from the voice recognition unit 43, the image recognition unit 44, and the pressure detection unit 45, the passage of time, and the like.
[0058]
In this example, the emotion model 81 includes an emotion unit 81A representing “joy”, an emotion unit 81B representing “sadness”, an emotion unit 81C representing “anger”, an emotion unit 81D representing “surprise”, and a “fear”. ”And an emotion unit 81F representing“ disgust ”.
[0059]
The instinct model 82 expresses the state (degree) of desire by instinct such as “appetite”, “sleep desire”, and “exercise desire” with a predetermined range of instinct parameters, respectively, and includes a voice recognition unit 43 and an image recognition unit. The value is changed based on the output from the pressure detection unit 44, the pressure detection unit 45, and the like, the passage of time, and the like. Further, the instinct model 82 increases a parameter indicating “appetite” based on the action history, or increases a parameter indicating “appetite” based on the remaining battery level.
[0060]
In this example, the instinct model 82 includes an instinct unit 82A representing “exercise desire”, an instinct unit 82B representing “appetite”, an instinct unit 82C representing “appetite”, an instinct unit 82D representing “curiosity”, and It is composed of an instinct unit 82E representing “sleep desire”.
[0061]
The instinct / emotional management unit 61 expresses the emotions of the robot 1 and the state of the instinct by changing the parameters of the emotion units 81A to 81F and the instinct units 82A to 82E, and models the change.
[0062]
Further, the parameters of the emotion units 81A to 81F and the instinct units 82A to 82E are changed not only by input from the outside but also by mutual influence of the units as shown by arrows in the figure.
[0063]
For example, when the emotion unit 81A expressing “joy” and the emotion unit 81B expressing “sadness” are connected in a mutually suppressive manner, the instinct / emotion management unit 61 sets “ The emotion to be expressed is changed by increasing the parameter of the emotion unit 81A expressing "sadness" and decreasing the parameter of the emotion unit 81B expressing "sadness".
[0064]
Further, not only the units constituting the emotion model 81 and the units constituting the instinct model 82 but also the parameters of each unit are changed over both models.
[0065]
For example, as shown in the figure, “sadness” of the emotion model 81 is expressed according to a change in the parameters of the instinct unit 82B representing “affection and desire” of the instinct model 82 and the instinct unit 82C representing “appetite”. The parameters of the emotion unit 81B and the emotion unit 81C expressing "anger" are changed.
[0066]
Specifically, when the parameter of the instinct unit 82C representing “appetite” increases, the parameter of the emotion unit 81B expressing “sadness” of the emotion model 81 and the parameter of the emotion unit 81C expressing “anger” increase. Become.
[0067]
The parameters of the emotion or the parameters of the instinct managed by the instinct / emotion management unit 61 in this manner are measured at a predetermined cycle, for example, as described later, and are transmitted to the behavior management unit 62 and the sound data generation unit 66. Is output.
[0068]
More specifically, in addition to the emotion model 81 and the instinct model 82, a growth model is prepared in the instinct and emotion management unit 61, and the parameters of each unit of the emotion model 81 and the instinct model 82 change depending on the growth stage. Is done. In this growth model, for example, the state of growth (degree) such as “childhood”, “adolescence”, “mature”, “elderly”, etc. is represented by a value in a predetermined range, and the speech recognition unit 43, The value is changed based on the output from the image recognition unit 44 and the pressure detection unit 45, the passage of time, and the like.
[0069]
The instinct / emotion management unit 61 is supplied with recognition information from the voice recognition unit 43, the image recognition unit 44, the pressure detection unit 45, and the like. , Specifically, for example, behavior information indicating the content of the behavior such as “walking for a long time” is supplied. Then, even when the same recognition information or the like is given, the instinct / emotion management unit 61 generates different internal information according to the behavior of the robot 1 indicated by the behavior information.
[0070]
For example, when the robot 1 greets the user and is stroked by the user, the behavior information that the robot 1 greets the user and the recognition information that the head is stroked are supplied to the instinct / emotion management unit 61. You. At this time, in the instinct / emotion management unit 61, the value of the emotion unit 81A representing “joy” is increased.
[0071]
Returning to the description of FIG. 4, the behavior management unit 62 stores the information supplied from the voice recognition unit 43 and the image recognition unit 44, the parameters supplied from the instinct / emotional management unit 61, the time lapse, and the like. The next action is determined based on the determined action, and a command for instructing execution of the determined action is output to the posture transition management unit 63. In addition, when causing the robot 1 to speak or to output a sound corresponding to a predetermined operation from the speaker 19, the behavior management unit 62 outputs a command to output a sound to the voice synthesis unit 65.
[0072]
The behavior management unit 62 receives the distance to the user and the distance to the hand of the user supplied from the position detection unit 46 in the interpolation frame number determination unit 101 shown in FIG. Determine the number n. A change amount is calculated by the change amount calculation unit 103 based on the number of interpolation frames n, and a joint angle of the corresponding actuator is further calculated by the joint angle calculation unit 104.
[0073]
FIG. 6 is a schematic diagram illustrating a functional configuration example of the behavior management unit 62 in FIG. The behavior management unit 62 includes a behavior model library 91 and a behavior selection unit 92. The behavior model library 91, as shown in FIG. have.
[0074]
In the example shown in the figure, the behavior model library 91 includes a ball-corresponding behavior model 91A indicating an action to be taken when a ball is detected, an autonomous search behavior model 91B indicating an action to be taken when a ball is lost, and the above-described emotion model An emotion expression behavior model 91C indicating an action to be taken when a change of 81 is detected is prepared. Also, an obstacle avoidance behavior model 91D indicating an action to be taken when an obstacle is detected, a fall return behavior model 91E indicating an action to be taken when a fall is detected, and an action to be taken when the remaining battery power is low. Is prepared.
[0075]
Further, an edit motion corresponding behavior model 91G corresponding to the motion added later by the editing of the user is prepared. The functions corresponding to the edit motion corresponding behavior model 91G are the respective functional block diagrams shown in FIG. That is, the editing operation control program, which is a specific example of the operation control method of the robot apparatus of the present invention, relates to an edit motion-compatible behavior model in the behavior management unit 62. The editing operation control program may be related to the autonomous search behavior model 91B or may be a part thereof.
[0076]
Then, the action selecting unit 92 compares the information supplied from the voice recognition unit 43, the image recognition unit 44, the pressure detection unit 45, the position detection unit 46, and the like, and the instinct and emotion supplied from the instinct and emotion management unit 61. The next action to be taken by the robot 1 is selected from the action models prepared in the action model library 91 by referring to the parameters, the elapsed time, and the like.
[0077]
In addition, the action selection unit 92 determines, from the node representing the current state of the robot 1, a transition to a node representing which state based on the transition probability set for the arc connecting the nodes. Select using a finite probability automaton. The selection using this finite probability automaton will be described later.
[0078]
In the following, the number of interpolated frames between the start key frame and the end key frame is variably determined by an external input, and the corresponding actuator is moved according to each of those frames, so that the desired operation of the user can be performed in an interactive manner. The details of the operation of the robot 1 that executes the process by increasing the value will be described.
[0079]
First, FIG. 7 shows a procedure of an external input process. Heretofore, as a specific example of the external input detection, a position detection unit 46 that detects a position from a signal from the position detection sensor 18 which is a PSD for measuring a distance to a target object is given. Distance has been used as an external input.
[0080]
In addition to this, as an external input, the sound picked up by the microphone 15 due to, for example, clapping by the user may be detected by the volume detection unit 42, and the time interval of the pattern of the sound may be detected as a rhythm. The number n of interpolation frames is determined based on the speed of the rhythm, and the joint number n determined by driving the servo motor based on the determined number n of interpolation frames and the two key frames is determined for each frame. The actuator including the servomotor may be operated according to the joint angle value while calculating the change amount and calculating the joint angle value of the current frame.
[0081]
For example, if the number of interpolation frames n is linearly or non-linearly increased as the rhythm is slower, and the number of interpolation frames n is linearly or non-linearly decreased as the rhythm is faster, the editing operation of the robot 1 is changed according to the speed of the rhythm. In addition, an operation with enhanced interaction can be performed.
[0082]
Alternatively, the blinking interval of the light detected by the camera 16 and recognized by the image recognizing unit 44 may be taken as an external input, and the number n of interpolation frames may be determined according to the blinking time interval. Further, using the tail unit 5 as an analog stick, the user changes the speed to the left or right or up and down to operate the switch 5B variably, and detects the switching speed of the switch via the switch input detection unit 47, The number n of interpolation frames may be determined according to the switching speed.
[0083]
For example, if the number n of interpolation frames is increased linearly or non-linearly as the switching speed is slow, and the number n of interpolation frames is linearly or non-linearly decreased as the switching speed is fast, the robot 1 can variably execute an editing operation according to the switching speed. That is, an operation of increasing the interaction can be performed.
[0084]
The type of each of these external inputs may be selectively switched by a switch newly provided in the robot 1, or may be selectively switched by voice recognition through the microphone 15 and the voice recognition unit 43. . The type of the external input selectively switched is determined by the controller 10.
[0085]
Variables are created in advance according to the processing procedure shown in FIG. 7 and stored in the memory 102 according to the type of external input. First, the type of external input is determined by the controller 10 in step S1, and the distance, rhythm, and switching speed are converted into variable speed parameters, and are stored in the memory 102 as variables for each input type.
[0086]
The controller 10 sequentially retrieves the editing operation control program stored in the memory 10B into the RAM serving as a work area, and executes the editing operation control program, while storing the motion data stored in the memory card 10D in the memory 102. Calculations are performed using the variables that are used.
[0087]
First, as shown in FIG. 8, when a command is received in step S11, the controller 10 decodes the command and causes the action selecting unit 92 to select an action in the action model library of the action management unit 62.
[0088]
In step S12, it is checked whether the current frame is a start or end key frame. If it is determined that the frame is a key frame (YES), the process proceeds to step S13.
[0089]
In step S13, as a result of interpreting the command, it is determined whether or not the action indicated by the command permits external variable reproduction. For example, in an operation such as a walking operation that requires complicated control of the center of gravity, balance between the four legs, and the like, the variable reproduction is not suitable. Here, if the external variable reproduction is possible (YES), the action management unit 62 selects the edit motion-compatible action model 91G by the action selection unit 92. Then, the process proceeds to step S14.
[0090]
In step S14, the type of the external input selected by the user is determined. After that, in step S15, the corresponding variable is obtained from the variable stored in the processing of FIG. 7, and the number n of the interpolation frames is changed according to the detected input using the obtained variable.
[0091]
Next, in step S16, the amount of change for each frame is calculated from the difference between the number of interpolation frames n and the joint value of the start key frame and the end key frame already set by the user.
[0092]
In step S17, the joint angle value of the current frame is calculated from the calculated change amount, set to the corresponding actuator, and the robot is operated. Then, the current frame is advanced by one in step S18, and the process from step S12 is repeated until it is determined in step S19 that there is no next frame and that the frame is the last frame.
[0093]
When it is determined in step S12 that the current frame is not the two key frames (NO), the process proceeds to step S17, and the joint angle value of the current frame is calculated using the amount of change calculated in the previous step S16. Calculate, set and operate the robot.
[0094]
If it is determined in step S13 that the command does not permit external variable reproduction, steps S14 and S15 are skipped, and in step S16, a predetermined amount of change for each unique frame is calculated. .
[0095]
FIG. 9 shows, for example, a distance-interpolation frame number characteristic. The variables are the basis for the function values of this property. Here, it is a variable that the number of interpolation frames n increases linearly as the distance increases, and the number of interpolation frames decreases linearly as the distance decreases. For example, as the user moves his hand closer to the robot 1, the interpolation frame number determination unit 101 sets the interpolation frame number n to a smaller value (n 1 ). In addition, the distance is long (L 2 ) Indeed (L 1 <L 2 ), The number of interpolation frames n is set to a large value (n 2 ) And (n) 1 <N 2 ).
[0096]
Hereinafter, referring to FIGS. 10 to 12, the start key frame F when the number of interpolation frames n is 1, 2, and 5 will be described. s To end key frame F e The change in the reproduction time (execution time) up to this point will be described. In practice, the number n of interpolation frames between the two key frames is several tens to several hundreds of frames. Here, the description is simplified.
[0097]
Now, with the robot 1 sitting, a motion for raising the right front leg is edited. Assume that the joint key J1 of the right front leg 3A on the body unit 2 side has a start key frame of 0 ° and an end key frame of 90 °. The elbow joint J2 of the right front leg 3A has a start key frame of 0 ° and an end key frame of 30 °.
[0098]
For example, it is assumed that when the position detection unit 46 detects that the user's hand is at a distance of 20 cm, the controller 10 determines the number n of interpolation frames to be 1 in step S15 of the processing procedure illustrated in FIG. This interpolated frame is transformed into Fi as shown in FIG. 1 And Each frame including the interpolation frame from the start key frame to the end key frame is executed at, for example, 16 msec.
[0099]
Then, in step S16 in FIG. 8, the number n of interpolation frames is 1, and the difference between the joint values of the two key frames is 90 ° (= θJ) at J1. 1 ), 30 ° at J2 (= θJ 2 ), The change amount ΔθJ between J1 and J2 for each frame. 1 And ΔθJ 2 To
ΔθJ 1 = ΘJ 1 / 2 = 45 °
ΔθJ 2 = ΘJ 2 / 2 = 15 °.
[0100]
Then, in step S17, the joint angle value of the current frame is calculated. Since the start key frames J1 and J2 were both 0 °, the interpolation frame Fi 1 J1 and J2 at the time of are 0 + ΔθJ 1 = 45 °, 0 + ΔθJ 2 = 15 °. The robot 1 is operated by setting these nodal angle values in the actuator.
[0101]
Next, in step S18, the current frame is advanced by one, and in step S19, it is determined that there is a next frame. Therefore, the processing from step S12 is repeated. And the next frame is the end key frame F e Therefore, the process proceeds to step S17, and the calculated change amount ΔθJ 1 And ΔθJ 2 , And set the joint angle value of the current frame to J1 = 45 ° + ΔθJ. 1 = 90 °, J2 = 15 ° + ΔθJ 2 = 30, and the robot is operated by setting the corresponding actuator.
[0102]
At this time, as described above, since each frame is executed at, for example, 16 msec, the start key frame F s To end key frame F e Up to the number of supplementary frames n,
16msec × (n + 1)
Can be expressed as
If the number of interpolation frames n = 1, it takes 16 × 2 = 32 msec.
[0103]
It is assumed that when the position detection unit 46 detects that the user's hand is at a distance of 30 cm, the controller 10 determines the number n of interpolation frames to be 2 in step S15 of the processing procedure illustrated in FIG.
[0104]
This interpolated frame is represented by Fi as shown in FIG. 1 , Fi 2 And Here, each frame including the interpolation frame from the start key frame to the end key frame is executed at, for example, 16 msec.
[0105]
Then, in step S16 of FIG. 8, the number n of interpolation frames is 2, and the difference between the joint values of the two key frames is 90 ° (= θJ) at J1. 1 ), 30 ° at J2 (= θJ 2 ), The change amount ΔθJ between J1 and J2 for each frame. 1 And ΔθJ 2 To
ΔθJ 1 = ΘJ 1 / 3 = 30 °
ΔθJ 2 = ΘJ 2 / 3 = 10 °.
[0106]
Then, in step S17, the joint angle value of the current frame is calculated. Since the start key frames J1 and J2 were both 0 °, the interpolation frame Fi 1 J1 and J2 at the time of are 0 + ΔθJ 1 = 30 °, 0 + ΔθJ 2 = 10 °. The robot 1 is operated by setting these nodal angle values in the actuator.
[0107]
Next, in step S18, the current frame is advanced by one, and in step S19, it is determined that there is a next frame. Therefore, the processing from step S12 is repeated. And the next frame is the interpolation frame Fi 2 Therefore, the process proceeds to step S17 to calculate the change amount ΔθJ calculated last time. 1 And ΔθJ 2 Is used to calculate the joint angle value of the current frame as J1 = 30 ° + ΔθJ 1 = 60 °, J2 = 10 ° + ΔθJ 2 = 20 °, and set the corresponding actuator to operate the robot 1.
[0108]
Next, the current frame is advanced by one in step S18, and it is determined in step S19 that there is a next frame. Therefore, the processing from step S12 is repeated. And the next frame is the end key frame F e Therefore, the process proceeds to step S17, and the calculated change amount ΔθJ 1 And ΔθJ 2 Is used to calculate the joint angle value of the current frame as J1 = 60 ° + ΔθJ. 1 = 90 °, J2 = 20 ° + ΔθJ 2 = 30 °, and set the corresponding actuator to operate the robot 1.
[0109]
At this time, as described above, since each frame is executed at, for example, 16 msec, the start key frame F s To end key frame F e Up to the number of supplementary frames n,
16msec × (n + 1)
Can be expressed as
If the number of interpolation frames n = 2, it takes 16 × 3 = 48 msec.
[0110]
It is also assumed that when the position detection unit 46 detects that the user's hand is at a distance of 100 cm, the controller 10 determines the number n of interpolation frames to be 5 in step S15 of the processing procedure shown in FIG.
[0111]
This interpolated frame is represented by Fi as shown in FIG. 1 , Fi 2 , Fi 3 , Fi 4 , Fi 5 And Here, each frame including the interpolation frame from the start key frame to the end key frame is executed at, for example, 16 msec.
[0112]
Then, in step S16 in FIG. 8, the number n of interpolation frames is 5, and the difference between the joint values of the two key frames is 90 ° (= θJ) at J1. 1 ), 30 ° at J2 (= θJ 2 ), The change amount ΔθJ between J1 and J2 for each frame. 1 And ΔθJ 2 To
ΔθJ 1 = ΘJ 1 / 6 = 15 °
ΔθJ 2 = ΘJ 2 / 6 = 5 °.
[0113]
Then, in step S17, the joint angle value of the current frame is calculated. Since the start key frames J1 and J2 were both 0 °, the interpolation frame Fi 1 J1 and J2 at the time of are 0 + ΔθJ 1 = 15 °, 0 + ΔθJ 2 = 5 °. The robot 1 is operated by setting these nodal angle values in the actuator.
[0114]
Next, in step S18, the current frame is advanced by one, and in step S19, it is determined that there is a next frame. Therefore, the processing from step S12 is repeated. And the next frame is the interpolation frame Fi 2 Therefore, the process proceeds to step S17 to calculate the change amount ΔθJ calculated last time. 1 And ΔθJ 2 , And set the joint angle value of the current frame to J1 = 15 ° + ΔθJ. 1 = 30 °, J2 = 5 ° + ΔθJ 2 = 10 °, and the robot is operated by setting the corresponding actuator.
[0115]
Next, the current frame is advanced by one in step S18, and it is determined in step S19 that there is a next frame. Therefore, the processing from step S12 is repeated. And the next frame is the interpolation frame Fi 3 Therefore, the process proceeds to step S17 to calculate the change amount ΔθJ calculated last time. 1 And ΔθJ 2 Is used to calculate the joint angle value of the current frame as J1 = 30 ° + ΔθJ 1 = 45 °, J2 = 10 ° + ΔθJ 2 = 15 °, and set the corresponding actuator to operate the robot 1.
[0116]
In step S18, the current frame is advanced one by one, and the current frame is interpolated frame Fi. 4 , Fi 5 , Each J1 is 60 ° and 75 °, and each J2 is 20 ° and 25 °. And finally, the end key frame F e In this case, J1 is 90 ° and J2 is 30 °.
[0117]
At this time, as described above, each frame is executed at, for example, 16 msec. Therefore, if the number of interpolation frames n = 5, it takes 16 × 6 = 96 msec.
[0118]
As described above, the above operation is actually performed over several tens to several hundred frames. For example, when the number of interpolation frames n is 99, it takes 16 × 100 = 1.6 sec.
[0119]
In this manner, the robot 1 determines the number n of interpolation frames to be smaller as the distance between the robot 1 and the user's hand becomes shorter. s To end frame F e Can be made shorter than when the distance is long. As a result, the shorter the distance from the user, the faster the robot 1 can move. Therefore, the robot 1 can reflect the external input on the user's favorite behavior and enhance the interaction.
[0120]
In the above-described operation example, the variable that is the basis of the distance-interpolated frame number characteristic is set so that the number of interpolated frames increases linearly as the distance increases, as shown in FIG. 7, but as shown in FIG. It may be non-linear. Further, as shown in FIG. 14, the number of interpolation frames may linearly decrease as the distance increases. In the former case, as the distance increases, the change in the number n of the interpolated frames decreases, and the difference in the operation speed disappears. In the latter case, the operation is slower as the distance is shorter, and the operation is faster as the distance is longer.
[0121]
Next, selection of a node transition using a finite probability automaton will be described with reference to FIGS.
[0122]
In the finite probability automaton shown in FIG. 15, for example, the current state is node 0 (NODE 0 ), The probability P 1 And node 1 (NODE 1 ) And the probability P 2 And node 2 (NODE 2 ) And the probability P n And node n (NODE n ). The finite probability automaton has a probability P n-1 At node 0 (NODE 0 ), That is, no transition to any node.
[0123]
Each behavior model defined in the behavior model library 91 is composed of nodes representing a plurality of states, and each node has a state transition table in which the probability of transition to another node is set. Have been.
[0124]
FIG. 16 is a diagram illustrating an example of a state transition table of a node 100 (NODE 100) belonging to a predetermined behavior model, defined in the behavior model library 91.
[0125]
In FIG. 16, an input event as a condition for transition to another node (or its own node) is described in the column of “input event name”. Further conditions are described in the columns of “data name” and “data range”.
In the example of the figure, the information in which the ID “1” is set is notified to the action management unit 62 of information relating to “ball detected” (input event name “BALL”), and When the size is in the range of “0 to 1000”, it indicates that transition from the node 100 to the node 120 is made with a probability of “30%”.
[0126]
Further, the information to which the ID “2” is set is “40%” when the action management unit 62 is notified of information relating to “the head was tapped lightly” (input event name “PAT”). A transition from the node 100 to the node 150 is indicated with a probability.
[0127]
The information to which the ID “3” is set is “20%” when the action management unit 62 is notified of the information regarding “the head was hit hard” (input event name “HIT”). A transition from the node 100 to the node 150 is indicated with a probability.
[0128]
Further, the information to which the ID “4” is set is notified to the action management unit 62 of information relating to “execute a motion edited by the user” (input event name “E MOTION”), and When it is notified that the distance to the user's hand is in the range of “0 to 20”, it indicates that the node 100 transitions to the node 1600 with a probability of “100%”.
[0129]
In the information to which the ID “5” is set, information relating to “detected an obstacle” (input event name “OBSTACLE”) is notified to the behavior management unit 62, and the distance to the obstacle is “0”. When it is notified that the value is in the range from "100" to "100", it indicates that transition from the node 100 to the node 1000 has a probability of "100%".
[0130]
Further, in this example, even if there is no input from the voice recognition unit 43, the image recognition unit 44, or the like, transition to another node is made according to the parameters of the emotion model 81 and the instinct model 82. I have.
[0131]
For example, when the parameter of the emotion unit 81A representing “joy (JOY)” of the emotion model 81 is in the range of “50 to 100”, the information to which the ID “6” is set has a probability of “5%”. Indicates that a transition is made to the node 120, and a transition is made to the node 150 with a probability of “30%”.
[0132]
The information to which the ID “7” is set indicates that the node 1000 has a probability of “15%” when the parameter of the emotion unit 81D representing “Surprise” of the emotion model 81 is in the range of “50 to 100”. The information in which the ID “8” is set indicates that the parameter of the emotion unit 81B representing “sadness (SUDNESS)” of the emotion model 81 is in the range of “50 to 100”. The transition to the node 120 is shown with a probability of “50%”.
[0133]
In the state transition table of FIG. 16, an action output at the time of transition to each node is described in the column of “output action”. For example, when the state transitions to the node 120, the action is output there. The action is “ACTION1”, the action output at the time of transition to the node 150 is “ACTION2”, and the action output at the time of transition to the node 1000 is “MOVE BACK” (retreat). Have been.
[0134]
Further, when the transition has been made to the node 1600, the action output there is “ACTION4”. This may be, for example, an operation of sitting and raising the right front leg when the number of interpolation frames is n, as described above. In the action of "ACTION4", the motion speed is determined by the number n of interpolation frames determined according to the distance-interpolation frame number characteristic. That is, after the transition to the node 1600, the motion speed is further changed according to the determined number n of interpolation frames. This is because, in the present invention, for example, the speed of the edit motion is changed by changing the number n of interpolation frames according to the distance to the user or the hand of the user.
[0135]
Further, for example, the information in which the ID “9” is set is set to the input event name “E MOTION2”. For example, when the clapping rhythm is detected, the node 100 transitions from the node 100 to the node 1200 with a probability of “100%”. do it. In the action “ACTION3” of the node 1200, the motion of shaking the head in accordance with the rhythm of clapping is performed by changing the operation speed while changing the number of interpolation frames n.
[0136]
The action selecting unit 92 changes the state by referring to such a state transition table, and transmits information indicating an action set to the node to the instinct / emotion management unit 61, the posture transition management unit 63, and the The data is output to the voice synthesizer 65.
[0137]
For example, when the action specified for the transitioned node is “raise the right front leg with the number of interpolation frames n after sitting”, the action selection unit 92 sends a command to instruct the command via the posture transition management unit 63. And outputs it to the control unit 64.
[0138]
Returning to the description of FIG. 4, the posture transition management unit 63 generates posture transition information for transitioning the posture of the robot 1 from the current posture to the next posture based on the command supplied from the behavior management unit 62. Are sent to the control unit 64. The control unit 64 fulfills the function of the operation control unit 64 shown in FIG.
[0139]
Here, the posture that can be changed next from the current posture is, for example, the physical shape of the robot 1 such as the shape and weight of the body, hands and feet, the connection state of each part, and the directions and angles at which the joints bend. It is determined by the mechanism of the actuators 3AA1 to 5A.
[0140]
The posture includes a posture that can directly transition from the current posture and a posture that cannot directly transition. For example, the four-legged robot 1 can directly transition from a state in which the limbs are thrown out and lying down to a prone state, but cannot directly transition to a standing state. It is necessary to perform a two-stage operation of pulling close to the prone position and then standing up. There are also postures that cannot be safely executed. For example, the robot 1 easily falls down when trying to banzai with both front legs raised from a standing posture with four legs.
[0141]
For this reason, the posture transition management unit 63 pre-registers a posture to which a direct transition is possible, and controls the posture transition information when a command supplied from the behavior management unit 62 indicates a posture to which a direct transition is possible. To the section 64.
[0142]
On the other hand, when the posture transition information indicates a posture that cannot be directly transited, the posture transition management unit 63 temporarily changes the posture to another transmissible posture, and then transmits posture transition information that causes a transition to a target posture. Generate it and send it to the control unit 64. Thus, it is possible to avoid a situation where the robot 1 forcibly executes an untransitionable posture or a situation where the robot 1 falls down.
[0143]
The control unit 64 drives the actuators 3AA1 to 5A provided in each unit based on the posture transition information supplied from the posture transition management unit 63, and controls the operation of the robot 1.
[0144]
Next, a motion editing system will be described with reference to FIGS. When the start key frame and the end key frame are designated by the user in advance, not only the two key frames but also the joint angles of the actuators at the two key frames are set. The motion data in these edits is written to the memory card 111 by the personal computer 110 shown in FIG. The memory card 111 is inserted into a slot provided in, for example, the body unit 2 of the robot 1, and is connected to the memory card I / F 10C.
[0145]
The personal computer 110 is configured as shown in FIG. 18, and stores a program for motion editing in the ROM 115 or the HDD 120. After activating the OS stored in the HDD 120, the CPU 112 takes out the motion editing program from the ROM 115 or the HDD 120 via the bus 113, and sequentially executes the motion editing program while using the DRAM 114 as a work area. By executing the motion editing program, an image as shown in FIGS. 19 to 23 described later is displayed on the display 117 controlled by the display controller 116 so that the user can edit the motion using the image. Has become. Of course, the editing is performed using the operation unit 122 such as a keyboard, a mouse, and a pointing device connected to the I / O interface 121. The memory card 111 is connected to the CPU 112 via the memory card I / F 118, and the motion data such as the two key frames specified by the user's editing operation using the operation unit 122 is used for the control. Therefore, it is stored. Note that the motion data may be transmitted to the robot 1 through a wireless LAN via a communication I / F 119.
[0146]
Editing the motion is part of editing the action. Therefore, the action editor is activated as shown in FIG. After creation of an action is selected, if creation of a motion is selected from “Material” in FIG. 20, the user is prompted to input an action name ACTION Name and a File Name.
[0147]
Thereafter, an action window shown in FIG. 21 is activated. In the action window, a current time / frame display 201, a total time / frame display, a current bar 203, a key frame channel 204, and the like are displayed. In the key frame channel 204, a start key frame and an end key frame as shown in FIG. 22, for example, are stored in advance and selected and displayed by a user from a sample file, and settings are made. Whether the number n of the interpolation frames between the two key frames is set manually or not set here and is changed according to the detection of the external input as described above is selected by the user in the dialog shown in FIG. Is done.
[0148]
If “set” is selected in the dialog shown in FIG. 23, a process for setting an interpolation frame is guided by a dialog or the like, and the user sets a fixed number of interpolation frames. Become.
[0149]
If “not set here” is selected, the motion editing process is terminated and the motion data is stored in the memory card 111. When the memory card 111 is mounted on the robot 1 as shown in FIG. 17, the memory card 111 is connected to the memory card I / F 10C. When the editing operation control program is executed by the CPU 10A, the motion data is read out from the memory card 111 (same as the memory card 10D in FIG. 3), and the variables stored in the memory 102 are read out. Is used to determine the number n of interpolation frames (step S15 in FIG. 8). Thereafter, by performing the processing of step S16 and subsequent steps in FIG. 8, the determined number of interpolation frames n and the joint value of each joint by driving the servo motor based on the two key frames are calculated for each frame. While calculating the amount of change and calculating the joint angle value of the current frame, the actuator including the servomotor is operated according to the joint angle value.
[0150]
Therefore, based on the start frame and the end frame set by the motion editing system and the difference between their joint values, the robot 1 reflects the external input on the user's favorite action, and enhances the interaction. Can work while.
[0151]
【The invention's effect】
Since the robot apparatus according to the present invention operates the actuator of the joint to be the target of the desired motion based on the number of interpolation frames determined by the number of interpolation frames determining means according to the external input detected by the external input detecting means, The external input can be reflected in the user's favorite behavior to enhance the interaction.
[0152]
In the operation control method of the robot apparatus according to the present invention, the interpolation frame number determination step determines the number of interpolation frames between the start key frame and the end key frame according to the external input detected in the external input detection step, and calculates a change amount. The process calculates the amount of change for each frame from the difference between the number of interpolated frames and the joint value between the two key frames, and the joint angle calculation process calculates the joint angle value of the current frame from the amount of change for each frame. Since the control process operates the actuator of the robot device according to the joint angle value of the current frame, the interaction of the robot device can be enhanced by reflecting the external input to the behavior of the robot device according to the user's preference. .
[0153]
Since the recording medium according to the present invention stores the operation control program of the robot device, it is possible to reflect the external input of the robot device on the behavior of the robot device according to the user's preference, thereby improving the interaction property of the robot device. Can be.
[0154]
The program according to the present invention can enhance the interaction of the robot device by reflecting the external input of the robot device in the behavior of the robot device according to the user's preference.
[Brief description of the drawings]
FIG. 1 is an external perspective view of an entertainment robot device according to an embodiment of the present invention.
FIG. 2 is a functional block diagram of the robot device.
FIG. 3 is an internal configuration diagram of the robot device.
FIG. 4 is a functional configuration diagram of a controller.
FIG. 5 is a diagram schematically illustrating a functional example of an instinct / emotional management unit.
FIG. 6 is a diagram schematically illustrating a function example of an action management unit;
FIG. 7 is a flowchart illustrating a procedure of an external input process.
FIG. 8 is a flowchart illustrating a procedure of a motion reproduction process.
FIG. 9 is a characteristic diagram showing a specific example of a distance-interpolation frame number characteristic.
FIG. 10 is a diagram illustrating a reproduction example when the number of interpolation frames n = 1.
FIG. 11 is a diagram illustrating a reproduction example when the number of interpolation frames n = 2.
FIG. 12 is a diagram illustrating a reproduction example when the number of interpolation frames n = 5.
FIG. 13 is a characteristic diagram showing another specific example of the distance-interpolation frame number characteristic.
FIG. 14 is a characteristic diagram showing another specific example of the distance-interpolation frame number characteristic.
FIG. 15 is a diagram illustrating an example of a finite state automaton.
FIG. 16 is a diagram illustrating an example of a state transition probability.
FIG. 17 is a diagram for explaining a motion editing system.
FIG. 18 is a block diagram illustrating an internal configuration of a personal computer.
FIG. 19 is a diagram illustrating a screen display example when an action editor is activated.
FIG. 20 is a diagram showing a screen display example showing a state of selecting motion creation.
FIG. 21 is a diagram illustrating a screen display example showing an action window.
FIG. 22 is a diagram showing a key frame selected by a user and displayed on a key frame channel.
FIG. 23 is a diagram showing a dialog display example for allowing the user to select whether the number of interpolation frames n is set manually or automatically.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Entertainment system robot apparatus, 10 controller, 10B memory, 10D memory card, 18 position detection sensor, 31 external input detection section, 46 position detection section, 62 action management section, 64 operation control section, 101 interpolation frame number determination section, 103 Change amount calculation unit, 104 Joint angle calculation unit

Claims (9)

指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して所望のモーションを実行するロボット装置であって、
外部からの入力を検出する外部入力検出手段と、
前記外部入力検出手段により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定手段とを備え、
前記補間フレーム数決定手段により決定された補間フレーム数に基づいて前記所望のモーションの対象となる関節の現在の関節角度値を計算しながら前記関節を動かすアクチュエータを動作させることを特徴とするロボット装置。
A robot device that executes a desired motion by interpolating between a specified start key frame and an end key frame by an interpolation frame,
External input detection means for detecting external input,
Interpolation frame number determination means for determining the number of interpolation frames between the key frames according to the external input detected by the external input detection means,
A robot apparatus that operates an actuator that moves the joint while calculating a current joint angle value of the joint to be subjected to the desired motion based on the number of interpolation frames determined by the interpolation frame number determination unit. .
前記外部入力検出手段は、外部に存在する所定の対象物との距離を検出することを特徴とする請求項1記載のロボット装置。2. The robot apparatus according to claim 1, wherein the external input detecting means detects a distance from a predetermined object existing outside. 前記フレーム数決定手段は、前記外部入力検出手段による入力種別に応じて該当する変数を取得し、取得した変数により補間フレーム数を変化させることを特徴とする請求項1記載のロボット装置。2. The robot apparatus according to claim 1, wherein the frame number determination unit acquires a corresponding variable according to an input type by the external input detection unit, and changes the number of interpolation frames according to the acquired variable. 前記補間フレーム数決定手段により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差からフレーム毎の変化量を算出する変化量算出手段と、前記変化量算出手段によって算出されたフレーム毎の変化量から現在フレームの関節角度値を計算する関節角度計算手段と、前記関節角度計算手段によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御手段とを備えることを特徴とする請求項1記載のロボット装置。Change amount calculating means for calculating a change amount for each frame from the difference between the number of interpolation frames determined by the interpolation frame number determining means and the joint value between the two key frames; and a frame calculated by the change amount calculating means. Joint angle calculating means for calculating the joint angle value of the current frame from the amount of change for each, and operation control means for operating the corresponding actuator according to the joint angle value of the current frame calculated by the joint angle calculating means. The robot device according to claim 1, further comprising: 指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションを実行するためのロボット装置の動作制御方法であって、
外部からの入力を検出する外部入力検出工程と、
前記外部入力検出工程により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定工程と、
前記補間フレーム数決定工程により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出する変化量算出工程と、
前記変化量算出工程によって算出されたフレーム毎の変化量から、現在フレームの関節角度値を計算する関節角度計算工程と、
前記関節角度計算工程によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御工程と
を備えることを特徴とするロボット装置の動作制御方法。
An operation control method of a robot device for executing a desired motion by interpolating between a specified start key frame and an end key frame by an interpolation frame,
An external input detection step of detecting an external input,
An interpolation frame number determining step of determining the number of interpolation frames between the key frames according to the external input detected by the external input detection step,
A change amount calculation step of calculating a change amount for each frame from a difference between the number of interpolation frames determined in the interpolation frame number determination step and a joint value between the two key frames;
A joint angle calculating step of calculating a joint angle value of the current frame from the change amount for each frame calculated by the change amount calculating step;
An operation control step of operating a corresponding actuator according to the joint angle value of the current frame calculated in the joint angle calculation step.
前記外部入力検出工程は、外部に存在する所定の対象物との距離を検出することを特徴とする請求項5記載のロボット装置の動作制御方法。6. The operation control method for a robot device according to claim 5, wherein the external input detecting step detects a distance to a predetermined target object existing outside. 前記フレーム数決定工程は、前記外部入力検出工程による入力種別に応じて該当する変数を取得し、取得した変数により補間フレーム数を変化させることを特徴とする請求項5記載のロボット装置の動作制御方法。The operation control of the robot apparatus according to claim 5, wherein in the frame number determining step, a variable corresponding to an input type in the external input detecting step is obtained, and the number of interpolation frames is changed by the obtained variable. Method. 指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションをロボット装置に実行させるための動作制御プログラムを記録している記録媒体であって、
前記動作制御プログラムは、
外部からの入力を検出する外部入力検出工程と、
前記外部入力検出工程により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定工程と、
前記補間フレーム数決定工程により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出する変化量算出工程と、
前記変化量算出工程によって算出されたフレーム毎の変化量から、現在フレームの関節角度値を計算する関節角度計算工程と、
前記関節角度計算工程によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御工程と
を備えてなるプログラムであり、このプログラムを記録していることを特徴とする記録媒体。
A recording medium that records an operation control program for causing a robot device to execute a desired motion by interpolating between a specified start key frame and an end key frame by an interpolation frame,
The operation control program includes:
An external input detection step of detecting an external input,
An interpolation frame number determining step of determining the number of interpolation frames between the key frames according to the external input detected by the external input detection step,
A change amount calculation step of calculating a change amount for each frame from a difference between the number of interpolation frames determined in the interpolation frame number determination step and a joint value between the two key frames;
A joint angle calculating step of calculating a joint angle value of the current frame from the change amount for each frame calculated by the change amount calculating step;
An operation control step of operating a corresponding actuator in accordance with the joint angle value of the current frame calculated in the joint angle calculation step, wherein the program is recorded. Medium.
指定された開始のキーフレームと終了のキーフレームの間を補間フレームによって補間して、所望のモーションをロボット装置に実行させる動作制御のためのプログラムであって、
外部からの入力を検出する外部入力検出工程と、
前記外部入力検出工程により検出された外部入力に応じて前記キーフレーム間の補間フレーム数を決定する補間フレーム数決定工程と、
前記補間フレーム数決定工程により決定された補間フレーム数と前記二つのキーフレーム間の関節値の差から、フレーム毎の変化量を算出する変化量算出工程と、
前記変化量算出工程によって算出されたフレーム毎の変化量から、現在フレームの関節角度値を計算する関節角度計算工程と、
前記関節角度計算工程によって計算された現在フレームの関節角度値にしたがってって該当するアクチュエータを動作させる動作制御工程と
を備えてなることを特徴とするプログラム。
A program for operation control that causes the robot apparatus to execute a desired motion by interpolating between a specified start key frame and end key frame by an interpolation frame,
An external input detection step of detecting an external input,
An interpolation frame number determining step of determining the number of interpolation frames between the key frames according to the external input detected by the external input detection step,
A change amount calculation step of calculating a change amount for each frame from a difference between the number of interpolation frames determined in the interpolation frame number determination step and a joint value between the two key frames;
A joint angle calculating step of calculating a joint angle value of the current frame from the change amount for each frame calculated by the change amount calculating step;
An operation control step of operating a corresponding actuator according to the joint angle value of the current frame calculated in the joint angle calculation step.
JP2002296786A 2002-10-09 2002-10-09 Robot device, action control method for robot device, recording medium and program Withdrawn JP2004130428A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002296786A JP2004130428A (en) 2002-10-09 2002-10-09 Robot device, action control method for robot device, recording medium and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002296786A JP2004130428A (en) 2002-10-09 2002-10-09 Robot device, action control method for robot device, recording medium and program

Publications (1)

Publication Number Publication Date
JP2004130428A true JP2004130428A (en) 2004-04-30

Family

ID=32286649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002296786A Withdrawn JP2004130428A (en) 2002-10-09 2002-10-09 Robot device, action control method for robot device, recording medium and program

Country Status (1)

Country Link
JP (1) JP2004130428A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7432718B2 (en) 2005-11-10 2008-10-07 Sony Corporation Electronic device and method of controlling same
WO2015141893A1 (en) * 2014-03-19 2015-09-24 주식회사 로보티즈 Apparatus and method for editing and playing back robot motion, and computer-readable recording medium therefor
JP2015229230A (en) * 2014-06-06 2015-12-21 シャープ株式会社 robot
US10366499B2 (en) 2016-09-23 2019-07-30 Robotis Co., Ltd. Device, method, and computer-readable recording medium for editing and playing robot motion
CN115273515A (en) * 2022-06-23 2022-11-01 智道网联科技(北京)有限公司 Vehicle turning navigation picture display method, apparatus and computer-readable storage medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7432718B2 (en) 2005-11-10 2008-10-07 Sony Corporation Electronic device and method of controlling same
WO2015141893A1 (en) * 2014-03-19 2015-09-24 주식회사 로보티즈 Apparatus and method for editing and playing back robot motion, and computer-readable recording medium therefor
KR101572042B1 (en) 2014-03-19 2015-11-25 (주)로보티즈 Device, method and computer-readable recording medium for editing and playing robot motion
JP2015229230A (en) * 2014-06-06 2015-12-21 シャープ株式会社 robot
US10366499B2 (en) 2016-09-23 2019-07-30 Robotis Co., Ltd. Device, method, and computer-readable recording medium for editing and playing robot motion
CN115273515A (en) * 2022-06-23 2022-11-01 智道网联科技(北京)有限公司 Vehicle turning navigation picture display method, apparatus and computer-readable storage medium
CN115273515B (en) * 2022-06-23 2024-05-07 智道网联科技(北京)有限公司 Method, apparatus and readable storage medium for displaying navigation screen at turning position of vehicle

Similar Documents

Publication Publication Date Title
JP3714268B2 (en) Robot device
US7076334B2 (en) Robot apparatus and method and system for controlling the action of the robot apparatus
WO2001039932A1 (en) Robot apparatus, control method thereof, and method for judging character of robot apparatus
WO2003097308A1 (en) Robot device and robot control method
WO2002076686A1 (en) Action teaching apparatus and action teaching method for robot system, and storage medium
KR20030007533A (en) Operational control method, program, and recording media for robot device, and robot device
WO2000068879A1 (en) Robot device, its control method, and recorded medium
JP2002301674A (en) Leg type moving robot, its motion teaching method and storage medium
JP2003039363A (en) Robot device, action learning method therefor, action learning program thereof, and program recording medium
JP2001191281A (en) Editing device, editing method, and storage medium
JP2002239963A (en) Robot device and its action control method, program, and recoding medium of robot device
JP2003159674A (en) Robot system, external force detecting method and program for the system, and calibration method and program for the system
JP2004298975A (en) Robot device and obstacle searching method
JP2004130428A (en) Robot device, action control method for robot device, recording medium and program
JP2002059384A (en) Learning system and learning method for robot
JP2003340760A (en) Robot device and robot control method, recording medium and program
JP2003136439A (en) Robot device, and method and program for controlling gait of robot device
JP4016316B2 (en) Robot apparatus, robot control method, recording medium, and program
JP2001157980A (en) Robot device, and control method thereof
JP2001154707A (en) Robot device and its controlling method
JP2001105363A (en) Autonomous behavior expression system for robot
JP4379052B2 (en) Moving object detection apparatus, moving object detection method, and robot apparatus
JP2003071765A (en) Robot device and input method therefor
JP2002346958A (en) Control system and control method for legged mobile robot
JP2004130426A (en) Robot device and its operation control method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110