(57)【要約】【課題】  複数の動作指示部から視認に適したものを選択して、選択された動作指示部の指示に従って動作を変更する移動ロボットにおいて、動作指示部を切換える首振り動作を自然で滑らかな動作で実現することが可能な技術を提供する。【解決手段】  視認する動作指示部を切換える際に、頭部の回転の速度の時系列を設定して、その頭部の回転の速度の時系列に基づいて頭部を回転させるアクチュエータを駆動する。アクチュエータを駆動している間も、目標とする頭部の回転角を逐次計算して、頭部の回転の速度の時系列を逐次更新する。【選択図】  図１
2006123128.tif 000002
【特許請求の範囲】
【請求項１】
複数の表示箇所で同一の指示を表示している環境において、移動しながらいずれかの指示を視認し、視認した指示に従ってその後の動作を変える移動式ロボットであり、
継続的に撮影を続けるカメラと、
そのカメラを搭載している頭部と、
その頭部を胴体部に対して所定範囲内で回転させるアクチュエータと、
そのアクチュエータを制御するアクチュエータ制御部と、
を備え、
そのアクチュエータ制御部は、
（１）いずれかの表示箇所がカメラ視野内にあるときは、その表示箇所をカメラ視野内に維持するようにアクチュエータを制御し、
（２）その表示箇所をカメラ視野内に維持できなくなるときは、
（２−１）他の一つの表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を計算し、
（２−２）前記他の一つの表示箇所がカメラ視野内に入るまで胴体部に対して頭部を回転させるために必要な頭部の回転速度に関する時系列データを計算し、
（２−３）計算した前記時系列データに基づいてアクチュエータを制御し、
（２−４）計算した前記時系列データに基づいてアクチュエータを制御している間に、前記他の一つの表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を逐次計算し、逐次計算した頭部の回転角に基づいて前記回転速度に関する時系列データを逐次更新する、
ことを特徴とする移動式ロボット。
【請求項２】
前記アクチュエータ制御部は、前記（２−１）の他の一つの表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角の計算において、
（２−１−１）他の表示箇所毎に、その表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を計算し、
（２−１−２）計算した回転角が、前記所定範囲の中央角に最も近い表示箇所を前記他の一つの表示箇所として選択する
ことを特徴とする請求項１の移動式ロボット。
【請求項３】
前記の回転速度に関する時系列データは、回転速度が一定の期間を備えており、
前記の時系列データの逐次更新処理では、逐次計算する頭部の回転角に基づいて、回転速度が一定の期間の持続時間を調整する、
ことを特徴とする請求項１または２の移動式ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動しながら指示を視認し、視認した指示に従ってその後の動作を変更する移動式ロボットに関する。
【背景技術】
【０００２】
本発明者らは、指揮者の指揮に合わせて動作（例えば移動速度や楽器演奏速度）を変えるロボットを開発している。そのロボットは、指揮者を撮影し続けるカメラを頭部に搭載している。ロボットが方向を変えながら移動する際には、頭部を回転させて指揮者を撮影し続ける。移動するロボットが指揮者に背を向ける方位となっても、頭部を後方に回転することによってカメラ視野内に指揮者を維持することができる。
【０００３】
しかしながら、上記のように頭部を後方にまで回転させるロボットの動作は、極めて不自然である。ヒトを模して作られたヒューマノイドロボットの場合、頭部を後方にまで回転させる動作は、見ている者に奇異な印象を与えかねない。ロボットの頭部は、後方まで回転させることなく、左右方向それぞれについて回転限界を持つことが望ましい。
【０００４】
ロボットの頭部が回転限界を持つ場合、カメラが指揮者を撮影し続けることは、ロボットの動作に対して大きな制約となる。ロボットは指揮者に背を向けないように移動しなければならず、実現できる移動パターンに制約が課せられる。
【０００５】
そこで指揮者の指揮を再現する指揮再現装置を用いて、ロボットの移動パターンの制約を取り除く手法が提案されている。特許文献１には、この手法を適用した移動ロボットが開示されている。なお特許文献１は未だ公開されていないことに留意されたい。この手法を用いる場合、ロボットは指揮者と指揮再現装置を含む複数の動作指示部から視認に適した動作指示部を選択し、選択した動作指示部を視認しながら移動する。そのロボットは、動作指示部を視認し続けることによって頭部の回転限界を超えてしまう場合には、視認する動作指示部を切換える。視認する動作指示部の切換えは、目標とするカメラ角度を算出し、その目標カメラ角度まで頭部を回転させることによって行う。回転動作が終了した時点で、ロボットは頭部の回転限界を超えることなく視認することが可能な動作指示部を視認することができる。
動作指示部を視認することができれば、例えばロボットと動作指示部との相対位置関係を利用したフィードバックや視覚的フィードバックを利用することによって、頭部の回転角を微調整しながら、動作指示部を撮影し続けることができる。
【特許文献１】特願２００３−１６４８８８号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
視認する動作指示部の切換えの際には、頭部を急激に回転させることなく、なめらかに動作させることが好ましい。急激な頭部の回転動作は見るものに不自然な印象を与える。さらに急激な頭部の回転動作は、頭部の回転機構に大きな負荷をかけ、回転機構を損傷させる場合がある。回転機構に対して大きな負荷をかけない、自然で滑らかな動作で頭部の回転運動を実現させたい。
また頭部を回転させている間も、ロボットは立ち止まることなく、移動を継続することが望ましい。このような場合、動作指示部を切換えるために頭部を回転している間に、ロボットの移動によって、ロボットと動作指示部との相対位置関係が変化する。頭部を回転している間に、ロボットから見た動作指示部の相対位置が変化している場合であっても、自然で滑らかな動作で、動作指示部の方向にカメラを向けるように頭部を回転させる技術が要望される。
【０００７】
本発明では上記課題を解決する。本発明は、複数の動作指示部から視認に適したものを選択し、選択した動作指示部の指示に従ってその後の動作を変更する移動ロボットにおいて、動作指示部を切換えるための首振り動作を自然で滑らかな動作で実現することが可能な技術を提供する。
【課題を解決するための手段】
【０００８】
本発明で具現化されるロボットは、指揮再現装置等を利用することによって複数の表示箇所（動作指示部）で同一の指示を表示している環境で用いられる。本発明の移動式ロボットは、移動しながらいずれかの指示を視認し、視認した指示に従ってその後の動作を変える。
本発明のロボットは、継続的に撮影を続けるカメラと、そのカメラを搭載している頭部と、その頭部を胴体部に対して所定範囲内で回転させるアクチュエータと、そのアクチュエータを制御するアクチュエータ制御部を備えている。
そのアクチュエータ制御部は、
（１）いずれかの表示箇所がカメラ視野内にあるときは、その表示箇所をカメラ視野内に維持するようにアクチュエータを制御し、
（２）その表示箇所をカメラ視野内に維持できなくなるときは、
（２−１）他の一つの表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を計算し、
（２−２）前記他の一つの表示箇所がカメラ視野内に入るまで胴体部に対して頭部を回転させるために必要な頭部の回転速度に関する時系列データを計算し、
（２−３）計算した前記時系列データに基づいてアクチュエータを制御し、
（２−４）計算した前記時系列データに基づいてアクチュエータを制御している間に、前記他の一つの表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を逐次計算し、逐次計算した頭部の回転角に基づいて前記回転速度に関する時系列データを逐次更新することを特徴とする。
前記した所定範囲の中央角とは、ロボットの胴体部に対する頭部の左方向の回転限界と右方向の回転限界の中央に位置する角をいい、人であれば胴体の真正面を頭部が向いているときの回転角をいう。通常はこれをゼロ度とし、それから右向きと左向きに角度を測定することが多い。
【０００９】
上記のロボットによると、いずれかの表示箇所（例えば実際の指揮棒）がカメラ視野内にあるときには、その表示箇所をカメラ視野内に維持するように頭部を回転させる。この制御によると、頭部を回転限界を超えて回転させることが必要となり、その表示箇所をカメラ視野内に維持できなくなるときには、他の一つの表示箇所（例えば指揮再現装置）をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を計算する。上記のロボットは前記の他の一つの表示箇所をカメラ視野内に入れるまで頭部を回転させるのに必要な頭部の回転速度に関する時系列データを計算する。頭部の回転速度の時系列データは、例えば台形速度曲線や、Ｓ字速度曲線を利用して計算する。計算した回転速度に関する時系列データに基づいてアクチュエータを駆動すると、ロボットの頭部は自然で滑らかな動作で回転し、前記の他の一つの表示箇所がカメラ視野内へ入った状態を得る。
アクチュエータを駆動している間にも、上記のロボットは前記の他の一つの表示箇所をカメラ視野内へ入れるために必要な頭部の回転角を逐次計算しており、計算した回転角に基づいて回転速度の時系列データを更新している。アクチュエータは、逐次更新される頭部の回転速度に関する時系列データに基づいて、頭部を回転させる。このようにアクチュエータを駆動することによって、頭部を回転している間のロボットの移動や外乱の作用によって、ロボットと表示箇所の相対位置関係が変化しても、自然で滑らかな動作で頭部を回転させて、前記の他の一つの表示箇所をカメラ視野内へ入れることができる。
【００１０】
上記のロボットでは、前記アクチュエータ制御部は、前記（２−１）の他の一つの表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角の計算において、
（２−１−１）他の表示箇所毎に、その表示箇所をカメラ視野内に入れるために必要な胴体部に対する頭部の回転角を計算し、
（２−１−２）計算した回転角が、前記所定範囲の中央角に最も近い表示箇所を前記他の一つの表示箇所として選択する、ことが望ましい。
【００１１】
上記のようにすると、３以上の表示箇所が同一の指示を表示する環境において、カメラ視野内に維持していた表示箇所がカメラ視野内に維持できなくなるときに、他の表示箇所のうちで視認に適したものを、他の一つの表示箇所として選択することができる。
他の一つの表示箇所として、頭部の可動範囲の中央値に最も近いものを選択することによって、ロボットは首振り動作後に胴体部の正面に近い方向に頭部を向けることが可能となる。
前記の他の一つの表示箇所をカメラ視野内に入れた状態で、頭部が胴体部の正面に近い方向を向いていることによって、その後は表示箇所をカメラ視野内に維持し続けることが容易となる。ロボットの首振り動作の頻度を低減することができる。
【００１２】
上記のロボットでは、回転速度が一定の期間を備えている回転速度に関する時系列データを計算し、その時系列データの逐次更新処理では、逐次計算する頭部の回転角に基づいて、回転速度が一定の期間の持続時間を調整することが好ましい。
【００１３】
上記のようにすると、少ない計算負荷で自然で滑らかな頭部の回転動作を実現することができる。
【発明の効果】
【００１４】
上記のロボットによると、視認する表示箇所を切換えるためにする頭部の回転動作を、自然で無理のない動作で実現することができる。
上記のロボットによると、視認する表示箇所を切換えるために頭部を回転させている間に、ロボットの移動や外乱の作用によって、目標カメラ角度が変化していても、自然な動作を維持しながら表示箇所の切換えを行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を具現化した実施例について図面を参照して説明する。
【実施例】
【００１６】
（第１実施例）  図面を参照して、本発明に係る実楽器演奏ロボット１０を説明する。図１は、実楽器演奏ロボット１０が進行する様子を平面的に見た図である。実楽器演奏ロボット１０は、会場２の中を進行しながら太鼓６０を演奏する（太鼓６０を叩く）。会場２には、指揮台２００が設置されている。指揮者２０２は、指揮台２００の上で指揮棒２３０を振って指揮をする。指揮棒２３０の先端には赤くて丸い部材２３２が組み付けられている。図１では、指揮者２０２を極めて簡略化して示している。会場２には、さらに、指揮者２０２が行なう指揮を再現する指揮再現装置３００、４００、５００が設置されている。図示されないが、指揮再現装置３００、４００、５００はそれぞれ指揮者２０２を撮影するカメラを備えている。指揮再現装置３００は、指揮を再現して表示する面３２０が、指揮台２００の方向を向くように設置されている。指揮台２００と指揮再現装置３００は、会場２を挟んだ両側に配置されている。指揮再現装置４００と指揮再現装置５００は、指揮を再現して表示する面４２０、５２０が互いに対向するように設置されている。指揮再現装置４００と指揮再現装置５００は、指揮台２００と指揮再現装置３００とは異なる位置で、会場２を挟んだ両側に設置されている。会場２は、４箇所の表示箇所で同一の指示が表示される環境におかれている。
【００１７】
ロボット１０は、ヒトの頭（顔）を模してつくられた頭部４０と、ヒトの胴体を模してつくられた胴体部７０と、車輪２２，２２等を有しており、太鼓６０を保持している。ロボット１０の詳しい構成は後で説明する。このロボット１０は、指揮台２００と指揮再現装置３００との間に設定された略円弧状の移動ルート（位置Ａ→位置Ｂ→位置Ｃ→…）を進行しながら太鼓６０を演奏する。
指揮再現装置３００、４００、５００は、カメラで撮影した指揮者２０２の動きを表示部３２０、４２０、５２０に表示することによって、指揮者２０２が行なう指揮を再現する。
【００１８】
まず、ロボット１０の構成について詳しく説明する。図２に、ロボット１０の正面図を示している。ロボット１０は、ヒトを模してつくられたヒューマノイドロボットといえる。
ロボット１０は、車輪２２，２２を回転させることによって自身を進行させる。このロボット１０は、ヒトが行進しながら太鼓を演奏する（叩く）ように、移動しながら太鼓６０を演奏する。
胴体部７０は略直方体形状を有している。胴体部７０には、ロボット１０の動作を統括的に制御する制御部９０と、頭部４０を回転させるモータ５２等が収納されている。
胴体部７０には、アーム（腕）３０ａ，３０ｂが接続されている。以下では、アーム３０ａを右アームといい、アーム３０ｂを左アームという。右アーム３０ａは、上腕部３２ａと下腕部３４ａとを有している。上腕部３２ａの一端が胴体部７０に揺動自在に取り付けられている。上腕部３２ａの他端には、関節３８ａによって下腕部３４ａが連結されている。下腕部３４ａは、関節３８ａを支点として揺動可能である。この関節３８ａはヒトの肘関節に相当する。下腕部３４ａの一端には、太鼓６０を叩く撥３６ａが固定されている。上腕部３２ａの内部には、下腕部３４ａを揺動させるアクチュエータ３５ａ（例えばソレノイドやモータ）が設けられている。このアクチュエータ３５ａは、制御部９０から出力される制御信号に基づいて駆動される。左アーム３０ｂは、右アーム３０ａと同様の構成をしている。即ち、左アーム３０ｂは、上腕部３２ｂと下腕部３４ｂを有する。下腕部３４ｂは、肘関節３８ｂを支点として揺動可能である。下腕部３４ｂの一端には撥３６ｂが固定されている。また、上腕部３２ｂ内には、下腕部３４ｂを揺動させるアクチュエータ３５ｂが設けられている。
【００１９】
頭部４０は、略直方体形状を有している。頭部４０には、ヒトの目を模してつくられた２つの孔４０ａ，４０ｂが設けられている。孔４０ａが左目に相当し、孔４０ｂが右目に相当する。孔４０ａには、継続的に撮影し続けるビデオカメラ４２のレンズが臨んでいる。
頭部４０と胴体部７０の間には首部５０が設けられている。首部５０は、略円柱形状を有している。首部５０は、胴体部７０に対して左右方向に回転可能（回転軸は符号Ｃ１で示している）に支持されている。首部５０（及びそれに固定されている頭部４０）は、胴体部７０に対して回転限界を有している（この点は後で説明する）。首部５０が回転することによって、ヒトが首を振って横を向くように、ロボット１０の頭部４０が横を向くことになる。首部５０を回転させるモータ５２は、制御部９０から出力される制御信号に基づいて駆動される。モータ５２の回転方向によって、頭部４０が右を向いたり左を向いたりする。
【００２０】
図３を参照して、頭部４０の回転限界について説明しておく。図３（ａ）は、頭部４０が正面を向いているロボット１０を平面的に見た図である。即ち、胴体部７０が向いている方向（胴体部７０の方向と簡単にいう場合がある）と、頭部４０が向いている方向（即ちカメラ４２の撮影方向）とが一致している。図３（ａ）の右方に示す２つの矢印は、太い矢印が胴体部７０の方向を示しており、細い矢印がカメラ４２の撮影方向を示している。胴体部７０の方向を基準としたカメラ４２の撮影方向（胴体部７０に対する頭部４０の回転角）を「カメラ角度」ということにすると、図３（ａ）の場合のカメラ角度はゼロである。
図３（ｂ）は、胴体部７０に対して頭部４０が９０°右方向を向いているロボット１０を平面的に見た図である。本実施例の場合、この状態が、頭部４０の右方向の回転限界として設定されている（限界角度は任意に設定される）。この場合のカメラ角度は９０°（こちらの方向を正とする）である。
図３（ｃ）は、胴体部７０に対して頭部４０が９０°左方向を向いているロボット１０を平面的に見た図である。本実施例の場合、この状態が、頭部４０の左方向の回転限界として設定されている（限界角度は任意に設定される）。この場合のカメラ角度はマイナス９０°（こちらの方向を負とする）である。
【００２１】
図４に、ロボット１０の制御部９０の概略構成を示す。制御部９０は、ＣＰＵ１０１とＲＯＭ１０２とＲＡＭ１０３とＩ／Ｏ１１０等から構成される。ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、及びＩ／Ｏ１１０のそれぞれは、バス１０５によって相互に通信可能に接続されている。ＣＰＵ１０１は、ＲＯＭ１０２に格納されている制御プログラムに従って各種信号の出力制御を実行する。ＲＯＭ１０２に格納されているプログラムの中には、カメラ４２が撮影した画像を解析する処理や、その解析結果に基づいてモータ５２を駆動する処理等を実行するためのプログラムが含まれる。また、ＲＯＭ１０２には、指揮台２００の位置（座標）と、指揮再現装置３００、４００、５００の位置（座標）と、ロボット１０の進行ルート等が記憶されている。ＲＡＭ１０３は、ワークメモリとして使用されるメイン記憶素子であり、各処理の実行に応じて種々の情報を記憶する。具体的には、上記したカメラ角度（胴体部７０に対する頭部４０の回転角）や、ロボット１０の現在位置等を記憶する。なお、ロボット１０の現在位置がわかれば、その現在位置とＲＯＭ１０２に記憶されている進行ルートから、胴体部７０がどの方向を向いているのかがわかる。
【００２２】
Ｉ／Ｏ１１０には、カメラ４２と移動機構２０（車輪２２，２２を回転させる機構）とモータ５２とアクチュエータ３５ａ，３５ｂが接続されている。カメラ４２で撮影された画像データはＩ／Ｏ１１０に送られる。Ｉ／Ｏ１１０は、送られてくる画像データを制御部９０が処理可能なデータ形式に変換し、その変換された画像データをＣＰＵ１０１等に送る。移動機構２０は、ＣＰＵ１０１がＩ／Ｏ１１０を介して出力した信号を入力し、入力された信号に基づいて車輪２２，２２を回転させる。モータ５２は、ＣＰＵ１０１がＩ／Ｏ１１０を介して出力した信号を入力し、その信号に基づいて駆動される。これにより首部５０（及び頭部４０）が回転する。各アクチュエータ３５ａ，３５ｂは、ＣＰＵ１０１がＩ／Ｏ１１０を介して出力した信号を入力し、その信号に基づいて駆動される。これにより太鼓６０が叩かれることになる。
【００２３】
続いて、指揮再現装置３００、４００、５００の構成について説明する。指揮再現装置３００、４００、５００は、それぞれ同様の構成を備えている。以下では指揮再現装置３００について説明する。図５に、指揮再現装置３００のシステム構成を簡単に示している。指揮再現装置３００は、継続的に撮影し続けることができるビデオカメラ３４０と制御部３３０と表示部３２０等を有している。
制御部３３０は、ＣＰＵ３０１とＲＯＭ３０２とＲＡＭ３０３とＩ／Ｏ３１０等を有している。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、及びＩ／Ｏ３１０は、バス３０５によって相互に通信可能に接続されている。ＣＰＵ３０１は、ＲＯＭ３０２に格納されている制御プログラムに従って各種信号の出力制御を実行する。ＲＯＭ３０２に格納されているプログラムの中には、カメラ３４０が撮影した画像を解析する処理や、その解析結果に基づいて表示部３２０に画像を表示する処理等を実行するためのプログラムが含まれる。ＲＡＭ３０３は、各処理の実行に応じて種々の情報を記憶する。
Ｉ／Ｏ３１０には、カメラ３４０と表示部３２０が接続されている。カメラ３４０で撮影された画像データはＩ／Ｏ３１０に送られる。Ｉ／Ｏ３１０は、送られてくる画像データを制御部３３０が処理可能なデータ形式に変換する。変換された画像データはＣＰＵ３０１等に取り込まれる。
表示部３２０は、縦と横のそれぞれの長さが１ｍに設定されている。
指揮再現装置３００は、表示部３２０上に指揮者２００が行う指揮を同一スケールでリアルタイムに再現する。
以下では、指揮者２０２、指揮再現装置３００、４００、５００を、動作指示部と表現する。
【００２４】
以下では、ロボット１０の制御部９０が実行する処理を説明する。図８から図１１は、制御部９０が実行する処理のフローチャートである。ここでは本発明に関連する処理を中心に説明する。ロボット自身が移動する処理については特に詳しく説明しないが、ＲＯＭ１０２に記憶されているルートをロボット１０が進行するように、制御部９０によって移動機構２０が制御される。しかも、指揮者２０２が指揮棒２３０を速く振ると（即ちテンポが速いと）、ロボット１０が高速で進行するように移動機構２０が制御される（テンポについては後で詳しく説明する）。逆に、指揮者２０２が指揮棒２３０をゆっくり振ると（即ちテンポが遅いと）、ロボット１０が低速で進行するように移動機構２０が制御される。
【００２５】
まず、図８を参照して、制御部９０が実行するメイン処理について説明する。制御部９０は、自己位置を記憶する処理を実行する（図８のステップＳ２）。この処理は、予め設定されたルートから現在の位置（座標）を計算し、その座標をＲＡＭ１０３に記憶することによって実行する。このステップＳ２の処理を実行する毎に自己位置が更新されていくことになる。なお、ステップＳ２の処理では、現在の胴体部７０の方向を算出して記憶する処理と、現在の頭部４０の胴体部７０に対する回転角（カメラ角度）を計測して記憶する処理もあわせて実行する。
ステップＳ２の処理を実行するとステップＳ４に進む。ステップＳ４では、目標カメラ角度を計算して頭部を回転させる処理（以下では頭部回転処理という）を実行する。
【００２６】
図９はステップＳ４で実施する頭部回転処理の詳細を示している。
頭部回転処理が開始すると、ステップＳ１０２では、ロボット１０が首振り動作をしているか否かを判断する。本明細書で首振り動作とは、ロボット１０が視認する動作指示部（表示箇所）を変更する際に、頭部を回転させる動作のことを言う。ロボットが首振り動作をしている場合（ステップＳ１０２でＹＥＳの場合）、処理はステップＳ１２４へ進み、首振り動作を継続する。首振り動作の詳細については、後述する。ロボットが首振り動作をしていない場合（ステップＳ１０２でＮＯの場合）、処理はステップＳ１０８へ進む。
ステップＳ１０８では、現在撮影対象としている動作指示部（表示箇所）についての目標カメラ角度を算出する。目標カメラ角度は、ＲＯＭ１０２に記憶された動作指示部の位置と、ＲＡＭ１０３に記憶された自己位置と、ＲＡＭ１０３に記憶された胴体部７０の方向とから算出する。
ステップＳ１１０では、ステップＳ１０８で算出された目標カメラ角度が、頭部４０の可動範囲内（−９０°から９０°の範囲内）にあるか否かを判断する。算出された目標カメラ角度が頭部４０の可動範囲内にある場合（ステップＳ１１０でＹＥＳの場合）、撮影する動作指示部を切換える必要はないと判断して、処理はステップＳ１１２へ進む。算出された目標カメラ角度が頭部４０の可動範囲内にない場合（ステップＳ１１０でＮＯの場合）、撮影する動作指示部を切換える必要があると判断して、処理はステップＳ１１４へ進む。
ステップＳ１１２では、現在撮影対象としている動作指示部に対して、頭部を追従させるための軌道を作成する。動作指示部に頭部を追従させる軌道としては、例えば現在のカメラ角度からステップ１０８で算出された目標カメラ角度へ直線的に増加するカメラ角度の時系列を設定してもよいし、Ｓ字状に単調増加（または減少）するカメラ角度の時系列を設定してもよい。現在撮影対象としている動作指示部に対して頭部を追従させる軌道を作成すると、処理はステップＳ１２８へ進み、モータ５２を駆動させる。
【００２７】
ステップＳ１１４では、現在撮影している動作指示部（表示箇所）以外の動作指示部について、撮影するための目標カメラ角度を計算する。各動作指示部の目標カメラ角度は、ＲＯＭ１０２に記憶された各動作指示部の位置と、ＲＡＭ１０３に記憶された自己位置と、ＲＡＭ１０３に記憶された胴体部７０の方向とから算出する。
ステップＳ１１６では、ステップＳ１１４で計算された目標カメラ角度が最も０度に近い（すなわち、ロボット１０から見た方向が、ロボット１０の胴体部７０の方向に近い）動作指示部を選択し、撮影対象とする動作指示部として設定する。
ステップＳ１１８では、撮影対象として設定された動作指示部を撮影するための目標カメラ角度を、頭部４０が向くべき目標カメラ角度として更新する。
ステップＳ１２０では、撮影する動作指示部を切換えるための首振り動作の軌道を作成する。首振り動作の軌道は、ロボットが目標カメラ角度にカメラを向ける動きが、自然で滑らかなものとなるように、設定される。作成された首振り動作の軌道は、ロボットのカメラ角度の時系列データで表現される。更新された首振り動作の軌道は、ＲＡＭ１０３に記憶される。
【００２８】
以下では、ステップＳ１２０における首振り動作の軌道の作成について説明する。
首振り動作の軌道は、モータ５２を駆動することによって実現されるべきカメラ角度の時系列データとして計算される。上記のカメラ角度の時系列データは、カメラ角度の時間変化率（角速度）の時系列に基づいて計算される。カメラ角度の角速度は、ロボットの頭部が自然で滑らかな動作で回転し、回転を終了した時点で目標カメラ角度が実現されるように計算される。
図６は作成される首振り動作の軌道を示している。（ａ）のグラフでは、カメラ角度の角速度の時系列データを実線で示している。（ｂ）のグラフでは、カメラ角度の時系列的変化を実線で示している。
【００２９】
図６の（ａ）のグラフに示すように、カメラ角度の角速度の時系列データは、略台形の形状をしている。上記のカメラ角度の角速度の時系列データは、始動相、定常相、停止相を備えている。
始動相では、カメラ角度の角速度は緩やかに増加していく。カメラ角度の角速度は、初期角速度ω０から開始して、滑らかに増加し、最大角速度ωｍａｘに到達する。始動相における角速度の時系列は、その分布形状が予め定められており、ロボット４０の運用中に変化することはない。
定常相では、カメラ角度の角速度は一定の最大値ωｍａｘを維持する。定常相の開始から継続時間Ｌが経過するまで、カメラ角度の角速度は一定の角速度ωｍａｘを維持し続ける。
停止相では、カメラ角度の角速度は緩やかに減少していく。カメラ角度の角速度は、角速度の最大値ωｍａｘから開始して、滑らかに減少し、角速度０に到達する。停止相における角速度の時系列は、その分布形状が予め定められており、ロボット４０の運用中に変化することはない。
上記した始動相と定常相と停止相との組み合わせによって、カメラ角度の角速度の時系列データが構成される。
【００３０】
首振り動作をしている間の任意の時刻におけるカメラ角度は、上記のカメラ角度の角速度の時系列を積分することによって計算することができる。上記の角速度の時系列でカメラを回転させた場合、首振り動作の終了時点におけるカメラ角度θｅは、次式で与えられる。
θｅ＝θ０＋θ１＋θ２＋θ３
ここで、θ０は首振り動作を開始した時点でのカメラ角度であり、θ１は始動相でのカメラ角度の変化量であり、θ２は定常相でのカメラ角度の変化量であり、θ３は停止相でのカメラ角度の変化量である。本実施例のロボット１０では、カメラ角度の角速度の始動相と停止相は変化させないため、θ１とθ３は一定の角度である。θ１とθ３は予め計算されてＲＯＭ１０２に記憶されている。定常相では角速度が一定のため、θ２は角速度の最大値ωｍａｘと継続時間Ｌとの積を求めることで算出することができる。
θｅ＝θ０＋θ１＋θ３＋ωｍａｘ×Ｌ
首振り動作において目標とするカメラ角度θｅが与えられると、上式を満足する継続時間Ｌを算出して、目標カメラ角度θｅを実現する角速度の時系列が計算される。計算された角速度の時系列は、ＲＡＭ１０３に記憶される。
【００３１】
カメラ角度に関して上記の角速度の時系列データが計算されると、カメラ角度の時系列変化が特定される。カメラ角度の時系列的変化は、角速度の時系列を数値積分していくことによって算出される。特定されたカメラ角度の時系列的変化は、首振り動作の軌道として、ＲＡＭ１０３に記憶される。
【００３２】
図９のステップＳ１２０で首振り動作の軌道が作成されると処理はステップＳ１２２へ進む。
ステップＳ１２２では、ロボットは撮影対象を選択された動作指示部に切換えるために、首振り動作を開始させる。その後、処理はステップＳ１２８へ進み、モータ５２を駆動させる。
【００３３】
頭部回転処理を開始した時点で首振り動作をしている場合（ステップＳ１０２でＹＥＳの場合）、処理はステップＳ１２４へ進む。ステップＳ１２４では、首振り動作によって撮影しようとしている動作指示部に関する目標カメラ角度を算出する。前記目標カメラ角度は、首振り動作を開始するときに計算されているが（ステップＳ１１８）、首振り動作をしている間にもロボット１０は移動しており、目標カメラ角度も変化していく。従って、ステップＳ１２４では、ＲＯＭ１０２に記憶されている選択された動作指示部の位置と、ＲＡＭ１０３に記憶されている自己位置と、ＲＡＭ１０３に記憶されている胴体部７０の方向とから、目標カメラ角度を再度算出する。
【００３４】
ステップＳ１２６では、ステップＳ１２４で算出された現在の目標カメラ角度に対応して、首振り動作の軌道を更新する。図６に示すように、ＲＡＭ１０３に記憶されているカメラ角度の時系列データ８Ａは、ロボットの移動によって変化する前の目標カメラ角度６Ａを実現するものであり、そのままでは現在の目標カメラ角度を実現することができない。ステップＳ１２６では、図６（ａ）のグラフに示す、記憶されている角速度の時系列データ８Ａにおける定常相の継続時間Ｌを変動させ、現在の目標カメラ角度を実現する角速度の時系列データを設定する。例えばロボットの移動によって目標カメラ角度が点６Ａから点６Ｂへ増加している場合、定常相の継続時間Ｌを増加させて、点６Ｂで示される目標カメラ角度を実現する角速度の時系列データ８Ｂに更新する。ロボットの移動によって目標カメラ角度が点６Ａから点６Ｃへ減少している場合、定常相の継続時間Ｌを減少させて、点６Ｃで示される目標カメラ角度を実現する角速度の時系列データ８Ｃに更新する。
カメラ角度の角速度の時系列データが更新されると、数値積分を用いてカメラ角度の時系列的変化を算出する。算出されたカメラ角度の時系列的変化は、更新された首振り動作の軌道として、ＲＡＭ１０３に記憶される。
図９のステップＳ１２６で首振り動作の軌道を更新すると、処理はステップＳ１２８へ進む。
【００３５】
ステップＳ１２８では、ＲＡＭ１０３に記憶された頭部４０の回転動作の軌道を実現するように、モータ５２を駆動する。頭部回転処理を開始した時点で撮影している動作指示部を継続して撮影し続ける場合、モータ５２はステップＳ１１２で作成された首の動作軌道を実現するように頭部４０を回転させる。撮影対象とする動作指示部を変更するために首振り動作が開始されている場合、モータ５２はステップＳ１２０で作成された首振り動作の軌道か、あるいはステップＳ１２６で更新された首振り動作の軌道を実現するように頭部４０を回転させる。モータ５２の駆動後、頭部回転処理Ｓ４は終了する。
【００３６】
続いて、制御部９０が実行する指揮態様解析処理について説明する。図１０に指揮態様解析処理のフローチャートを示している。
ステップＳ５０では、カメラ４２の画像から、太鼓６０を演奏するためのテンポとボリュームを計算する。具体的には、以下の処理を実行する。
（１）上述したように、指揮棒２３０の先端には丸くて赤い部材２３２が取り付けられている。また、指揮再現装置３００、４００、５００の表示部３２０、４２０、５２０では、指揮棒２３０の動きを再現する。制御部９０は、カメラ視野内の赤色の領域のカメラ視野内位置を計算する処理を逐次実行することによって、赤色の部材２３２のカメラ視野内位置の変化態様を特定する。これにより、指揮棒２３０の移動軌跡が特定されることになる。例えば、指揮者２０２が二拍子で指揮棒２３０を振っている場合の移動軌跡は図７のようになる。制御部９０は、指揮棒２３０の先端の部材２３２が最下点ｐから次の最下点ｐにくるまでを一周期として、その一周期の時間を測定する。制御部９０は、測定された時間からテンポを特定する。一周期の時間が短ければ速いテンポで太鼓６０を演奏することになり、一周期の時間が長ければ遅いテンポで太鼓６０を演奏することになる。また、テンポが速いとロボット１０を高速で移動させ、テンポが遅いとロボット１０を低速で移動させる。
（２）また、制御部９０は、一周期における最上点から最下点ｐまでの距離ｓ（一周期の振幅）を測定し、測定された距離ｓからボリュームを特定する。距離ｓが大きい場合は太鼓６０から発音する音が大きくなり、距離ｓが小さい場合は太鼓６０から発音する音が小さくなる。本実施例に係るロボット１０は、太鼓６０を叩く深さを変えることによってボリュームを変えるという方法を採用している。太鼓６０を深く叩くとボリュームが大きくなり、太鼓６０を浅く叩くとボリュームが小さくなる。なお、この方法を採用せずに、下腕部３４ａ，３４ｂを揺動させる速度を変えることによって太鼓６０のボリュームを変えてもよい。
なお、ロボット１０と撮影対象物（例えば指揮棒２３０）との間の距離が異なると、実際に振られた指揮棒２３０の距離ｓが同じであっても、画像処理によって抽出される距離ｓは異なってしまう。従って、実際は、抽出した距離ｓをロボット１０と撮影対象物（例えば指揮棒２３０）の間の距離で補正してボリュームを正確に計算する。
【００３７】
図１０のステップＳ５２では、ステップＳ５０で求められたテンポとボリュームを記憶する。この処理は、テンポとボリュームをＲＡＭ１０３で記憶することによって実行する。これにより、過去のテンポとボリュームがクリアされて新しいテンポとボリュームが記憶されることになる。
制御部９０は、上記したステップＳ５０とステップＳ５２の処理を繰り返して実行する。これにより、現在行なわれている指揮に基づいたテンポとボリュームが記憶されていくことになる。
【００３８】
制御部９０は、上記のようにして記憶されたテンポとボリュームに基づいてアクチュエータ３５ａ，３５ｂを駆動する処理を実行している（図１１のステップＳ６０）。記憶しているテンポが速ければ太鼓６０を叩く打点間の時間が短くなるようにアクチュエータ３５ａ，３５ｂを駆動する。テンポが遅ければ太鼓６０を叩く打点間の時間を長くする。また、ボリュームが大きい場合は、太鼓６０を深く叩くようにアクチュエータ３５ａ，３５ｂを駆動し、ボリュームが小さい場合は、太鼓６０を浅く叩くようにアクチュエータ３５ａ，３５ｂを駆動する。これにより、記憶しているボリュームで太鼓６０から発音されることになる。
【００３９】
上記した指揮再現装置３００、４００、５００を用いることによって、ロボット１０は、指揮者２０２が振る指揮棒２３０をカメラ視野内に維持できなくなっても、指揮再現装置３００が再現する指揮をカメラ視野内に入れることができるようになる。従って、ロボット１０が移動ルートを選択する幅を広げることができる。
【００４０】
上記した第１実施例に係るロボット１０によると、１つの撮影対象物（例えば指揮棒２３０）がカメラ４２のカメラ視野内にあるときには、その１つの撮影対象物をカメラ視野内に維持するようにモータ５２を制御する。そして、この制御によっては、カメラ視野内にある撮影対象物をカメラ視野内に維持できなくなるときに、他の一つの撮影対象物（例えば指揮再現装置３００）をカメラ視野内に入れるために必要な目標カメラ角度を計算し、計算された目標カメラ角度を実現するようにモータ５２を制御する。これによって他の一つの撮影対象物がカメラ視野内に入り、その後はその他の一つの撮影対象物をカメラ視野内に維持するようにモータ５２が制御されることになる。このロボット１０によると、１つの撮影対象物をカメラ視野内に維持できる間は撮影対象を変えない。従って、撮影対象を切換える頻度を少なくすることができる。撮影対象物をカメラ視野内に維持できなくなるときには撮影対象を変えるので、撮影対象物を長時間見失うこともない。
【００４１】
上記した第１実施例に係るロボット１０によると、撮影対象を変更するために頭部を回転させる動作を、自然で無理のない動作で実現することができる。
上記した第１実施例に係るロボット１０によると、撮影対象を変更するために頭部を回転させている間に、ロボット１０の移動や外乱の作用によって、目標カメラ角度が変化していても、自然な動作を維持しながら撮影対象物の切換えを行うことができる。
【００４２】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００４３】
【図１】楽器演奏ロボットが進行する様子を平面的に見た図である。
【図２】楽器演奏ロボットの正面図である。
【図３】胴体部に対して頭部が回転する様子を説明するための図である。
【図４】楽器演奏ロボットの制御部の構成を示す。
【図５】指揮再現装置のシステム構成を示す。
【図６】首振り動作の軌道を説明する図である。
【図７】指揮棒の移動軌跡の一例を示す。
【図８】楽器演奏ロボットの制御部が実行するメイン処理のフローチャートである。
【図９】楽器演奏ロボットの制御部が実行する頭部回転処理のフローチャートである。
【図１０】楽器演奏ロボットの制御部が実行する指揮態様解析処理のフローチャートである。
【図１１】楽器演奏ロボットの制御部が実行する楽器演奏処理のフローチャートである。
【符号の説明】
【００４４】
ｃ１・・首部の回転軸
２・・会場
６Ａ，６Ｂ，６Ｃ・・目標カメラ角度
８Ａ，８Ｂ，８Ｃ・・角速度の時系列
１０・・楽器演奏ロボット
２０・・移動機構
２２，２２・・車輪
３０ａ・・右アーム
３０ｂ・・左アーム
３２ａ，３２ｂ・・上腕部
３４ａ，３４ｂ・・下腕部
３５ａ，３５ｂ・・下腕部を揺動させるアクチュエータ
３６ａ，３６ｂ・・撥
３８ａ，３８ｂ・・肘関節
４０・・頭部
４０ａ・・左目に相当する孔
４０ｂ・・右目に相当する孔
４２・・カメラ
５０・・首部
５２・・首部を回転させるモータ
６０・・太鼓
７０・・胴体部
９０・・制御部
１０１・・ＣＰＵ
１０２・・ＲＯＭ
１０３・・ＲＡＭ
１０５・・バス
１１０・・Ｉ／Ｏ
２００・・指揮台
２０２・・指揮者
２３０・・指揮棒
２３２・・指揮棒の先端に取り付けられた部材
３００・・指揮再現装置
３０１・・ＣＰＵ
３０２・・ＲＯＭ
３０３・・ＲＡＭ
３０５・・バス
３１０・・Ｉ／Ｏ
３２０・・表示部
３２２・・ＬＥＤ
３３０・・制御部
３４０・・カメラ
４００・・指揮再現装置
４２０・・表示部
５００・・指揮再現装置
５２０・・表示部
【図１】
2006123128.tif 000003
【図２】
2006123128.tif 000004
【図３】
2006123128.tif 000005
【図４】
2006123128.tif 000006
【図５】
2006123128.tif 000007
【図６】
2006123128.tif 000008
【図７】
2006123128.tif 000009
【図８】
2006123128.tif 000010
【図９】
2006123128.tif 000011
【図１０】
2006123128.tif 000012
【図１１】
2006123128.tif 000013