(57)【要約】【課題】指揮者の振る指揮棒の動きに調和したリズムと強弱で、打楽器の演奏を行う打楽器演奏ロボットを提供する。【課題を解決するための手段】指揮者の指揮棒の動きを撮影して分析し、指揮棒の演算された加速度が上向きに変化する時刻を基準にして演算処理を行って、打楽器のバチを振り始める時刻と動作を算出する。算出された時刻からマニュピレータが演奏を行うことで、指揮者が振る指揮棒の動きに調和した音の大きさやリズムで演奏を行う、打楽器演奏ロボットを提供できる。【選択図】  図１
2004177686.tif 000002
【特許請求の範囲】
【請求項１】
指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、
前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、
を備えている、指揮者が振る指揮棒の動きから指揮者の意図を認識する装置。
【請求項２】
指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を特定する手段と、
上向き加速度に転じた時刻に作動開始する演奏アクチュエータと、
を備えている楽器演奏ロボット。
【請求項３】
指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、
前回に特定された時刻と今回に特定された時刻とから指揮者が意図する周期を算出する手段と、
上向き加速度に転じた時刻と、周期と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから、作動開始時刻を算出する手段と、
算出された作動開始開始時刻で作動開始する演奏アクチュエータと、
を備えている楽器演奏ロボット。
【請求項４】
指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を特定する手段と、
指揮棒の特定点の高さが下死点に到達する時刻を特定する手段と、
上向き加速度に転じた時刻と、上向き加速度に転じた時刻から指揮棒が下死点に到達した時刻までの時間差と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから、作動開始時刻を算出する手段と、
算出された作動開始時刻で作動開始する演奏アクチュエータと、
を備えている楽器演奏ロボット。
【請求項５】
演算された加速度の変動幅から演奏アクチュエータの動作速度を決定することを特徴とする請求項２〜４のいずれかの楽器演奏ロボット。
【請求項６】
演算された加速度の変動幅からバチの下死点位置を決定することを特徴とする請求項項２〜４のいずれかの打楽器演奏ロボット。
【請求項７】
指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、
前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、
計算された速度によって、ロボットの姿勢を変えるアクチュエータの動作速度を変えるアクチュエータコントローラと、
を備えているロボット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、ロボットに楽器を演奏させたり行進させたりする技術に関する。特に指揮者の振る指揮棒の動きに合わせてロボットに楽器を演奏させたり行進させたりする技術に関する。また、指揮者が振る指揮棒の動きから指揮者の意図を認識する装置にも関する。
【０００２】
【従来の技術】テーマパーク等のアトラクションで、打楽器を自動演奏するロボットが活躍している。このロボットは、例えばバチを持ったマニュピレータを備えており、演奏する曲目に合わせてマニピュレータを動作させることによってバチが打楽器に打ち下ろされて演奏が行われる。従来の楽器演奏ロボットでは、演奏する曲目の演奏速度や音の強弱が事前に設定されており、設定外の演奏を行わせるためには、楽器演奏ロボットに対してその都度プログラミング言語等で指令を与えなければならない。
特許文献１から３には、指揮者の振る指揮棒の動きに合わせて、自動演奏装置の演奏速度を調整したり、自動演奏装置が発する音量を増減するための技術が開示されている。
【０００３】
【特許文献１】
特開平１０−５５１７４号公報
【特許文献２】
特開平９−９７０７０号公報
【特許文献３】
特開平６−１６１４４０号公報
【０００４】
【発明が解決しようとする課題】しかしながら現状では、マニピュレータを使って実際の楽器を実際に演奏する演奏ロボットに対して指揮者が指揮棒を使って指揮することはできない。あるいはマニピュレータを使って実際に行進するロボットに対して指揮者が指揮棒を使って行進速度を指揮することはできない。ロボット側で、指揮者が指揮棒の動きを通して意図する、タイミングや速度やリズムや音の強弱を認識する技術がなく、ロボットが指揮に調和した動きや演奏を行うことができない。
本発明では、行進ロボットや楽器演奏ロボットが、指揮者の振る指揮棒の動きから指揮者が意図するタイミングや速度や音の強弱を認識する技術を提供する。さらに、ロボットの反応時間まで考慮したうえで指揮者が意図するタイミングに合わせた演奏が行われるようにロボットの動作を制御する技術を提供する。本発明が完成すれば、だれでもが指揮棒を振ることによって行進ロボット（あるいはロボット群）や楽器演奏ロボット（あるいはロボット群）を指揮することができる。観客が指揮者となって行進ロボット（あるいはロボット群）に行進させたり楽器演奏ロボット（あるいはロボット群）に演奏を行わせるといった、観客参加型の新しいアトラクションを実現することが可能となる。
【０００５】
【課題を解決するための手段と作用】指揮者が振る指揮棒の動きを観測すると、指揮棒が下死点に達した時に演奏音を発生させる意図のもとで、指揮者は指揮棒を振ることがわかる。また、指揮棒が下死点に達した時から次に下死点に達するまでの時間差で、指揮者は意図する速度ないし周期をあらわしていることがわかる。
ロボットの反応速度が無限大であり、指揮棒が下死点に達した時に演奏アクチュエータを始動させることによって、指揮棒が下死点に達した時から遅れないタイミングで演奏音を発生させることができれば、格別の制御技術は必要とされない。しかしながら、実際にはロボットの反応に時間がかかり、演奏アクチュエータを始動させてから実際に演奏音が発生するまでには時間を要する。そのために、指揮棒が下死点に達した時に演奏アクチュエータを始動させる技術では、指揮者が意図するタイミングよりも演奏音の発生タイミングが遅れてしまう。人が楽器を演奏するときには、指揮棒の動きから下死点に達するタイミングを予測し、そのタイミングで演奏音が発生するように自己の運動開始タイミングをコントロールしている。
演奏ロボットによって指揮棒の動きにあわせた演奏をするためには、指揮棒が下死点に達する直前のタイミングを捉えてそのタイミングで演奏アクチュエータを始動させる技術が必要とされる。
【０００６】
請求項１の発明では、指揮者が振る指揮棒の動きから、指揮者が意図する速度を認識する装置を実現する。請求項１の装置は、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点（任意の一点でよい）の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、前回に特定された時刻から今回に特定された時刻までの時間差から指揮者の意図する速度を計算する手段を備えており、指揮者が振る指揮棒の動きから指揮者の意図を認識する。
【０００７】
指揮者は、指揮棒が下死点に達した時から次に下死点に達するまでの時間差で意図する速度ないし周期をあらわす。本発明者らの研究によって、人が意図する速度をあらわすため用いる下死点は、人が認識する下死点であって、指揮棒の移動軌跡を客観的に追跡することで得られる下死点ではないことがわかった。客観的な下死点を用いて、下死点に達した時から再び下死点に達するまでの時間差を求めてみても、指揮者の意図する速度に対応しない。
本発明者の研究によって、人が意図する速度をあらわすため用いる下死点は、指揮棒の特定点（任意の一点でよい）の上下方向の加速度が上向き加速度に転じた直後に現われることが確認され、加速度が上向き加速度に転じた時刻から再び上向き加速度に転じるまでの時間差が、指揮者の意図する速度ないし周期を正確に現していることが確認された。ここでいう上向き加速度は、上昇運動中であれば増速期間に生じる加速度をいい、下降運動中であれば減速期間に生じる加速度をいう。
本装置は、この研究の成果によって実現されたものであり、指揮棒の任意の一点の高さ位置の変化から、加速度が上向き加速度に転じた時刻から再び上向き加速度に転じるまでの時間差によって速度ないし周期を計算するために、指揮者が指揮棒の動きを通して現す速度ないし周期を認識することができる。
【０００８】
請求項２〜４の発明では、指揮者が振る指揮棒の動きから、指揮者が意図する時に演奏する（演奏音を発生する）ロボットを実現する。
請求項２記載の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さ位置の変化から指揮棒の上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、上向き加速度に転じた時刻に作動開始する演奏アクチュエータとを備えている。
【０００９】
本発明者らによる指揮棒の動きの解析によって、指揮棒の特定点（通常は先端）が下死点に達する直前に、その特定点の加速度が上向き加速度に転じることがわかった。また、上向き加速度に転じる時刻と下死点に達する時刻との時間差は短く、ロボットの反応時間にほぼ等しいことがわかった。即ち、通常サイズのロボットを通常のアクチュエータで動作させる場合のロボットの反応時間は一定の範囲内に入るのに対し、上向き加速度に転じる時刻から下死点に達するまでに要する時間はそのロボットの反応時間範囲の中央近辺にあることを確認した。
そこで多くのロボットでは、上向き加速度に転じる時刻に演奏アクチュエータを始動させると、指揮棒が下死点に達するタイミングと、ロボットの動作によって得られる演奏音が発生するタイミングがほぼ一致することが確認された。指揮棒の加速度が上向き加速度に転じる時刻に演奏アクチュエータを始動させると、ロボットによって指揮者が意図するタイミングで演奏音を得ることができ、ロボットを指揮者が意図するように指揮することができる。
【００１０】
ロボットの反応時間が充分に早い場合、上向き加速度に転じる時刻に演奏アクチュエータを始動すると、演奏音の発生タイミングが早すぎることがある。この場合には、加速度が上向き加速度に転じる時刻を基準にし、それよりも遅れて演奏アクチュエータを始動させる。
請求項３の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さの変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、前回に特定された時刻と今回に特定された時刻とから周期を算出する手段と、上向き加速度に転じた時刻と、周期と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから作動開始時刻を算出する手段と、算出された作動開始時刻で作動開始する演奏アクチュエータとを有する。
【００１１】
指揮棒の動きが上向き加速度に転じる時刻を複数回に亘って観測すると、指揮者が振る指揮棒の動きの周期を正確に把握することができることを確認した。下死点に達する時刻や上死点に達する時刻から周期を測定する場合に比して、周期を正確に計測することができる。
本発明では、指揮者が意図する演奏音を発生させたいタイミングにわずかに先立つタイミングを把握し（これが上向き加速度に転じる時刻）、これを基準時間として指揮棒が下死点に達する時刻を予測する。このとき、上向き加速度に転じる時刻から計算される正確な周期を用いることから、指揮棒が下死点に達する時刻を正確に予測することができる。
本発明では、指揮棒が下死点に達する時刻を正確に予測し、さらに、演奏アクチュエータの作動開始時から実際の演奏までに要する時間を使って演奏アクチュエータの作動開始時刻を計算することから、指揮者が意図するタイミングに演奏音を発生させることができ、指揮者が意図した演奏をロボットに行わせることができる。
【００１２】
周期に基いて上向き加速度に転じる時刻から下死点に達する時刻までの時間差を算出するのに代えて、前の周期での時間差を採用することもできる。
請求項４の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さの変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、指揮棒の特定点の高さが下死点に到達する時刻を特定する手段と、上向き加速度に転じた時刻と、上向き加速度に転じた時刻から指揮棒が下死点に到達した時刻までの時間差と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから作動開始時刻を算出する手段と、算出された作動開始時刻で作動開始する演奏アクチュエータを有する。
【００１３】
この場合、指揮棒の先回の振動周期で観測された上向き加速度に転じた時刻と下死点に到達した時刻の時間差を用いて、今回の周期で下死点に到達する時刻を予測する。即ち、今回の周期において観測された上向き加速度に転じた時刻に、先の周期で観測された前記時間差を加えることによって、今回の周期で下死点に到達する時刻を予測する。前記時間差は短く、先回の周期と今回の周期とでずれることがあっても、短い時間がずれるだけであることからそのズレは著しく小さい。この技術によっても、指揮棒が下死点に到達する時刻を正確に予測することができる。
本発明では、指揮棒が下死点に達する時間を正確に予測し、さらに、演奏アクチュエータの作動開始時から実際の演奏までに要する時間を使って演奏アクチュエータの作動開始時刻を計算することから、指揮棒が下死点に達する時に合わせて演奏音を発生させることができ、指揮者が意図したタイミングでロボットに演奏させることができる。
【００１４】
請求項５に記載されるように、演算された加速度の変動幅から演奏アクチュエータの動作速度を決定することが好ましい。
指揮棒の加速度の変動幅が小さいときには演奏アクチュエータの動作速度を遅くし、逆に、指揮棒の加速度の変動幅が大きいときには演奏アクチュエータの動作速度を速くすることで、指揮者が意図する音量で演奏することができる。
【００１５】
打楽器を演奏する場合、演奏アクチュエータの動作速度を変化させることに代えて、請求項６に記載されるように、演算された加速度の変動幅からバチの下死点位置を決定することが好ましい。
指揮棒の加速度の変動幅が小さいときにはバチの下死点位置を高くして楽器に打ち込む量を小さくし、逆に、指揮棒の加速度の変動幅が大きいときにはバチの下死点位置を低くして楽器に打ち込む量を大きくする。前者では小さな音量で演奏され、後者では大きな音量で演奏される。指揮者が意図する音量で演奏することができる。
【００１６】
行進するロボットあるいはロボット群の場合、指揮者が振る指揮棒の速度が緩やかであれば低速で行進し、指揮棒の速度が急速であれば高速で行進することが好ましい。即ち、指揮棒の動きの速度に合わせてロボットの動作速度を増減する必要が存在する。
請求項７のロボットはその要求に応えるものであり、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さ位置の変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、計算された速度によってロボットの姿勢を変えるアクチュエータの動作速度を変えるアクチュエータコントローラとを備えている。
【００１７】
このロボットは、指揮者が振るし指揮棒の動きに合わせて動作速度を変える。指揮者は指揮棒を使ってロボット（またはロボット群）の動作を速めたり緩やかにすることができ、自在に指揮することができる。
【００１８】
【発明の実施の形態】以下に説明する実施例の主要な特徴を次に列記する。
（形態１）打楽器演奏ロボットは、指揮者が振る指揮棒を撮影する撮影装置と、コントローラと、打楽器用のバチを保持してスイングするマニュピレータから構成されている。
（形態２）形態１のコントローラは、撮影された指揮棒の動きを分析してマニュピレータの動作開始時刻を演算する演算プログラムと、その演算結果を受けて、マニュピレータの動作を決定して指令を出す制御部分と、演算と制御に使用されるデータを一時記憶する記憶部分から構成される。
（形態３）形態１のマニュピレータは、多関節のアームと、それぞれの関節を駆動するモータと、モータを操作するドライバから構成される。
【００１９】
【実施例】以下に、本発明の打楽器演奏ロボットの実施例を、添付図面を参照しながら詳細に説明する。
（第１実施例）
図１は、本発明の第１実施例に係わる打楽器演奏ロボットの構成を示している。指揮者２は指揮棒４を上下左右に振って、演奏者に演奏させたい内容を表現する。指揮者２は指揮棒４を用いて類似の動きを周期的に繰り返している。本発明者らの研究によって、指揮者２が指揮棒４の動きを通じて、下記の演奏を意図していることが判明した。
（１）  指揮者２は、指揮棒４を下死点に振り降ろしたタイミングで、打楽器２４から音が発生することを希望している。
（２）  指揮者２は、指揮棒４の周期内における加速度の変動幅の大小で音量を指示する。この場合、上下方向の加速度の変動幅の大小で、指揮者２の意図を代表させることができる。
本発明者らの研究によって、さらに下記の事象が確認された。
（３）  指揮棒４が下死点に到達するに先立って、指揮棒４の加速度が下向き加速度から上向き加速度に転じるタイミングが存在する。
（４）  上向き加速度に転じるタイミングから下死点に到達するまでの時間差は短い。
（５）  前記時間差は、制御部１２がマニュピレータ１４に動作の開始信号を出力するタイミングからバチ２２が打楽器２４を打撃するタイミングまでの時間差にほぼ等しい。即ち、上向き加速度に転じるタイミングで制御部１２が動作開始信号を出力すると、指揮棒４が下死点に到達するタイミングでバチ２２が打楽器２４を打撃する関係が得られる。
（６）  上向き加速度に転じるタイミングを繰返して観測すると、指揮棒４の運動周期が正確に計算される。
（７）  上向き加速度に転じるタイミングから下死点に到達するまでの時間差は、前記の周期に比例する。その比例計数は、指揮者２によらずにほぼ一定である。
（８）  下記の時間差と時刻の間には下記の関係が成立する。
・Ｔ１：指揮棒４の動きが上向き加速度に転じるタイミング
・Ｔ２：指揮棒４が下死点に到達するタイミング
・Ｔ３：指揮棒４の動きの周期
・Ｔ４：制御部１２がマニュピレータ１４に動作開始信号を出力したタイミングからバチ２２が打楽器２４を打撃するタイミングまでの時間差
・Ｔ５：タイミングＴ２でバチ２２が打楽器２４を打撃する結果を実現するのに必要な、制御部１２が動作開始信号を出力するタイミング
前記（７）で記載したように、上向き加速度に転じるタイミングＴ１から下死点に到達するタイミングＴ２までの時間差Ｔ２−Ｔ１は、周期Ｔ３に比例するから下記（１）式が成立する。
Ｔ２−Ｔ１＝ｋ・Ｔ３        （ｋは定数）                    （１）
また、当然に下記（２）式が成立する。
Ｔ５＋Ｔ４＝Ｔ２                                            （２）
（１）（２）式から、下記（３）式が得られる。
Ｔ５＝Ｔ１＋ｋ・Ｔ３−Ｔ４                                  （３）
ここで、上向き加速度に転じるタイミングＴ１から下死点に到達するタイミングＴ２までの時間差Ｔ２−Ｔ１（＝ｋ・Ｔ３）が、制御部１２が動作開始信号を出力したタイミングからバチ２２が打楽器２４を打撃するタイミングまでの時間差Ｔ４に等しいとすると、
Ｔ５＝Ｔ１                                                  （４）
式となる。
即ち、タイミングＴ２でバチ２２が打楽器２４を打撃する結果を実現するのに必要な制御部１２が動作開始信号を出力するタイミングＴ５は、（３）式で計算される。特に、上向き加速度に転じるタイミングＴ１から下死点に到達するタイミングＴ２までの時間差Ｔ２−Ｔ１（＝ｋ・Ｔ３）が、制御部１２が動作開始信号を出力してからバチ２２が打楽器２４を打撃するまでの時間差Ｔ４に等しい場合には、（４）式に単純化される。
（９）  指揮者２は、指揮棒４の動きの加速度の変動幅で、演奏させたい音量を表現する。本発明者の研究によって、指揮者２は、指揮棒の運動の振幅でもなく、速度の変動幅でもなく、加速度の変動幅で演奏させたい音量を表現することが見出された。
本実施例のロボットは、上記の知見に基いて制御される。
【００２０】
本実施例の打楽器演奏ロボットは、指揮者２が振る指揮棒４を撮影し続ける撮影装置６と、コントローラ８と、打楽器２４用のバチ２２を保持してスイングするマニュピレータ１４から構成されている。コントローラ８は、撮影された指揮棒の動きを分析してマニュピレータ１４の始動時刻を演算する演算プログラム１０と、その演算結果に基いてマニュピレータ１４に動作開始指令を出力する制御部分１２と、撮影データや演算結果等を一時記憶する記憶部分２６から構成されている。マニュピレータ１４は、多関節のアーム２０と、それぞれの関節を駆動するモータ１８と、モータを操作するドライバ１６から構成されている。
【００２１】
打楽器演奏ロボットは、指揮棒４の動作を撮影装置６によって撮影し続ける。得られた指揮棒４の画像をコントローラ８の記憶部分２６に送る。コントローラ８の演算プログラム１０は、記憶部分２６に記憶された画像を分析し、マニピュレータ１４の始動（動作開始）時刻を特定する。
打楽器演奏ロボットが、指揮棒４の動きに合わせて打楽器２４を演奏するためには、指揮棒４が下死点に到達するよりも前にマニュピレータ１４を始動させる必要がある。即ち、マニュピレータ１４の始動時刻は、指揮棒４の下死点到達時刻に対して、マニピュレータ１４が始動してからバチ２２をスウィングさせるのに要する時間だけ前の時刻でなければならない。本実施例の演算プログラム１０は、この始動時刻を算出するために、図２のフローチャートに示す一連の処理を行い、動作開始信号をマニュピレータ１４に出力する。以下、フローチャート及び図３の指揮棒の先端の動作の演算データとバチの位置の一例を参照しつつ、さらに詳細に説明する。
【００２２】
本実施例のコントローラ８の記憶部分２６には、指揮棒４の動きが上向き加速度に転じる（基準時刻）から下死点に到達するまでの時間と、指揮棒４の動きの周期Ｔとの間に成立する比率係数ｋが記憶されている。
演算プログラム１０は、一定時間ごとに画像データを取り込んで記憶する（ステップ２）。一定時間ごとに取り込まれた画像データを画像処理して指揮棒４の先端（これがこの実施例の特定点である。特定点は指揮棒の先端に限られず、任意の一点を採用することができる）位置を特定し、その高さを特定する（ステップＳ４）。この結果、指揮棒４の先端の高さが、所定時間間隔で時系列で記録される（ステップ４）。時系列で記録された指揮棒４の先端の高さと、時間との関係の一例を、図３（ａ）に示す。ここでは、指揮棒４が下死点に到達する時刻をＸとし、周期の進行に合わせてＸ０，Ｘ１，Ｘ２で表している。
【００２３】
演算プログラム１０は、指揮棒４の先端高さの時系列データを時間で微分して指揮棒４の上下方向の速度を求め、時系列で記録する（ステップ８）。図３（ｂ）に、指揮棒４の先端の上下方向の速度を示す。演算プログラム１０は、得られた指揮棒４の先端の上下方向の速度を再度時間で微分し、指揮棒４の上下方向の加速度を求めて時系列で記憶する（ステップ１０）。図３（ｃ）に、指揮棒４の先端の上下方向の加速度を示す。ここで、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄが検出される（ステップ１２）。図３（ｃ）では、周期の進行に合わせて、上向き加速度に転じる時刻がＤ０，Ｄ１，Ｄ２で表されている。ここでいう上向き加速度は、上昇運動中であれば増速期間に生じる加速度をいい、下降運動中であれば減速期間に生じる加速度をいう。指揮棒４の先端が下死点に到達するに先立って、指揮棒４の下降運動が減速されることから、指揮棒４の下死点到達時刻Ｘの前に、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄが存在する。図３（ａ）と（ｃ）から明らかに、上向き加速度に転じる時刻Ｄは、下死点に到達する時刻Ｘにわずかに先行する。時刻Ｄを基準時刻にしてロボットを制御すると、ロボットの演奏動作を時刻Ｘに完了させることが可能となる。そこで本実施例では、時刻Ｄを基準時刻として記憶する（ステップＳ１２）。
【００２４】
演算プログラム１０は、指揮棒４の画像データの監視と加速度の計算を繰返す（ステップ２，１０）。最初に上向き加速度に転じる時刻Ｄ０が観測され、次に上向き加速度に転じる時刻Ｄ１が再度検出される場合を例にして説明すると、最初に観測された上向き加速度に転じる時刻Ｄ０から、次に観測された上向き加速度に転じる時刻Ｄ１までの時間を計算して周期Ｔ１とする（ステップ１４）。研究によって、時刻Ｄ１から、周期Ｔに係数ｋ（この場合は定数）を乗じた時間だけ遅れたタイミングで指揮棒４が下死点に到着することが確認されている。この関係は全ての周期に成立する。そこで、下記式が成立する。
下死点到着時刻Ｘ＝上向き加速度に転じた時刻Ｄ  ＋  ｋ・Ｔ
（ｋは係数／定数であり、Ｔは周期である）の関係が成立することが確認されている。
マニピュレータ１４を動かし始めてからバチ２２が楽器２４を打撃するまでに要する時間Ｇが予め測定されている。そこで、下死点到着予定時刻Ｘから所要時間Ｇだけ先立つタイミングでマニピュレータ１４を動かし始めると、指揮棒４が下死点に到着する時刻Ｘに、バチ２２が楽器２４を打撃する関係が得られる。
即ち、「Ｄ＋ｋ×Ｔ−Ｇ」の時刻にマニピュレータ１４を動かし始めると、それからＧだけ後のタイミングである「Ｄ＋ｋ×Ｔ」の時刻に楽器２４を打撃することになり、その打撃時刻は、ちょうど指揮棒４が下死点に到着する時刻Ｘに一致する。
バチのスウィングに要する時間Ｇは、マニピュレータ１４の動作速度で決定される。実験によって、通常のモータを活用することで、スウィングに要する時間Ｇをｋ×Ｔ以下にすることができることが確認されている。
即ち上向き加速度に転じたことを確認してから、ｋ×Ｔ−Ｇを計算しても、その時間は正の値をとり、手遅れになることはない。本実施例では、正の値をとるｋ×Ｔ−Ｇを計算してその値をＨとする（ステップ１６）。演算プログラム１０は、上向き加速度に転じたことを確認してから、時間Ｈだけ後のタイミングで制御部分１２に、マニピュレータ１４へ動作開始信号を出力するように指示する（ステップ１８）。
【００２５】
スウィング動作の開始時刻Ｄ＋Ｈで、制御部分１２は、マニュピレータ１４のアーム２０の各関節の動作を制御するモータ１８の各ドライバ１６に、動作開始指令を与える。各ドライバ１６は、動作開始指令によってモータ１８を始動させる結果、アーム２０がバチ２２を振り降ろし始める。バチ２２が打楽器２４に到達して演奏が行われた一定時間後に、制御部分１２は、アーム２０を元の位置に戻す動作の指令を各ドライバ１６に与え、ドライバ１６はモータ１８を逆方向に駆動してアーム２０を元の位置に戻す。
【００２６】
図３（Ｄ）に、バチ２２の先端の位置を示す。なお、図３の時間軸は、（ａ）〜（Ｄ）で共通である。演算プログラム１０によって、マニュピレータ１４のスウィング開始時刻を、時刻Ｄから時間Ｈだけ後の時刻Ｇに調整したことにより、指揮棒４が下死点に到着する時刻Ｘに、バチ２２も下死点に到達して打楽器２４を演奏している。
演算プログラム１０は、指揮が続いている間、指揮棒の画像データの監視と加速度の計算を続け、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄｉが検出される度に周期Ｔｉを求め、周期Ｔｉから時間Ｈｉを算出し、時刻Ｄｉと時間Ｈｉから時刻Ｇｉを求め、時刻Ｇｉにおいて制御部分１２がマニュピレータ１４にスウィング開始開始指令を出力する処理を実行しつづける。
【００２７】
（第２実施例）
本実施例に係わる打楽器演奏ロボットの主要な構成は、図１と同じであり、重複説明を割愛する。以下、一連の演算プログラム１０の処理について、図４の処理のフローチャート及び図５の指揮棒の動作の演算データとバチの位置の一例を参照しつつ、さらに詳細に説明する。
【００２８】
演算プログラム１０は、一定時間ごとに画像データを取り込んで記憶する（ステップ３２）。次に画像処理して指揮棒４の先端を特定し、その高さを特定する（ステップＳ３４）。この結果、指揮棒４の先端の高さが、所定時間間隔で時系列で記録される（ステップ３４）。時系列で記録された指揮棒４の先端の高さと、時間との関係の一例を、図５（ａ）に示す。ここでは、指揮棒４が下死点に到達する時刻をＸとし、周期の進行に合わせてＸ３，Ｘ４，Ｘ５で表している。ステップＳ３６で、指揮棒４が下死点に到達する時刻をＸ３，Ｘ４，Ｘ５を記録していく。
【００２９】
本実施例における演算プログラム１０でも、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄが検出されると（ステップ４２）、演奏開始時刻算出のための基準時刻としてこれを記憶する。
時刻Ｘ３において、演算プログラム１０は、時刻Ｄ３から時刻Ｘ３までの時間を算出し、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄ３から指揮棒４が下死点に到達する時刻Ｘ３までの時間Ｆ３を得る。演算プログラム１０は、時間Ｆ３からマニュピレータ１４がバチ２２をスウィングするのに必要な時間Ｇを減じた時間Ｈを計算する（ステップ４６）。
時刻Ｄ４において、演算プログラム１０は、バチ２２のスウィング開始時刻を算出する。バチ２２のスウィング開始時刻は、時刻Ｄ４から時間Ｈだけ経過した後の時刻として算出される（ステップ４８）。先の周期で算出しておいたＦ３を利用し、時刻Ｄ４を用いて下死点到達時刻Ｘ４を予想する。制御部分１２は、時刻Ｄ４の経過直後に、Ｄ４＋（Ｘ３−Ｄ３）―Ｇの時刻で、マニュピレータ１４を始動させる。マニュピレータ１４は、始動後Ｇだけ経過した時点で打楽器２４を打撃することから、Ｄ４＋（Ｘ３−Ｄ３）のタイミングで音を発生する。これは今回の周期で指揮棒４が下死点に到達する時刻Ｘ４にほぼ等しい。
今回の周期で指揮棒４が下死点に到達するとその時刻Ｘ４からＤ４を減じて、今回の周期で指揮棒４の先端の加速度が上向き加速度に転じた時刻Ｄ４から指揮棒４が下死点に到達した時刻Ｘ４までに要した時間Ｆ４を計算して次の周期での利用に備える。
【００３０】
演算プログラム１０は、指揮棒の画像データの監視と加速度の計算を繰返す（ステップ３２，４０）。再び指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄ５が検出されると（ステップ４２）、演算プログラム１０は、制御部分１２に対し、Ｄ４に時間Ｈ（Ｘ３−Ｄ３−Ｇ）を加えた時刻Ｇ５をバチ２２のスウィング開始時刻とする（ステップ４８）。
スウィング開始時刻の指定をうけた制御部分１２は、スイング開始時刻に、アーム２０の動作を制御する各ドライバ１６に対して、動作の開始指令を与える。ドライバ１６は動作の指令を駆動速度と方向の指令に変換してモータ１８を動かし、アーム２０がバチ２２を振り降ろす。バチ２２が打楽器２４に到達して演奏が行われた一定時間後に、制御部分１２は、アーム２０を元の位置に戻す動作の指令を各ドライバ１６に与え、ドライバ１６はモータ１８を逆方向に駆動してアーム２０を元の位置に戻す。
この実施例では、直前周期において、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄから指揮棒４が下死点に到達する時刻Ｘまでの時間差Ｆを求め、その時間差Ｆを利用して、次の周期で指揮棒４が下死点に到達する時刻Ｘを求める。直前周期を添え字ｉ―１として次の周期を添え字ｉで表すと、
Ｆｉ−１＝（Ｘｉ−１）−（Ｄｉ−１）
Ｘｉ＝Ｄｉ＋Ｆｉ−１
の関係を用いる。
【００３１】
バチ２２の先端の位置を図５（Ｄ）に示す。演算プログラム１０によって、マニュピレータ１４のスウィング開始時刻を、時刻Ｄから時間Ｈ後の時刻Ｇに調整したことにより、指揮棒４が下死点に到着する時刻にバチ２２も下死点に到達し、打楽器を演奏している。
演算プログラム１０は、指揮が続いている間、指揮棒の画像データの監視と加速度の計算を続け、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄｉが検出される度に、時間Ｈを調整した時刻をＧｉを指定して、制御部分１２にスウィング開始の指令を行い、演奏を続ける。
【００３２】
（第３実施例）
本実施例の打楽器演奏ロボットの主要な構成は、図１に同じである。図６及び図７を参照して本実施例を詳細に説明する。
【００３３】
演算プログラム１０は、指揮棒４の動作を記憶した画像データを読み込み（ステップ６２）、画像処理を施して、指揮棒４の先端の高さ位置のデータを時系列で取り出す（ステップ６４）。取り出された指揮棒４の先端の高さ位置と時間との関係の一例を、図７（ａ）に示す。図中で、指揮棒４が下死点に到達する各時刻をＸ６，Ｘ７，Ｘ８で表す。さらに演算プログラム１０は、指揮棒４の先端の高さ位置のデータを、時間で二階微分して加速度を演算し、加速度が上向き加速度に転じる時刻Ｄを特定する（ステップ６８、７０、７２）。指揮棒４の先端の高さ位置のデータを時間で一階微分して得られた速度を図７（ｂ）に示し、指揮棒２の先端の加速度を図７（ｃ）に示す。また、図７（ｃ）に、指揮棒４の先端の加速度が上向き加速度に転じる時刻をＤ６，Ｄ７，Ｄ８で示す。
【００３４】
本実施例では、マニュピレータ１４がバチ２２をスウィングする所用時間が、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄから指揮棒の下死点到達時刻Ｘまでとほぼ等しくなっている。本実施例における演算プログラム１０は、ステップ７０で時刻Ｄが検出されると、直ちに、ステップ７２で制御部分１２にバチ２２のスウィング開始を指令する。
スウィング開始の指令をうけた制御部分１２は、直ちにアーム２０の動作を制御する各ドライバ１６に動作の開始指令を与える。各ドライバ１６は、動作の指令を各モータ１８に対する駆動速度と方向の指令に変換して各モータ１８を動かす。これによってアーム２０はバチ２２を振り降ろす。バチ２２が打楽器２４に到達して演奏が行われた一定時間後に、制御部分１２は、アーム２０を元の位置に戻す動作の指令を各ドライバ１６に与え、ドライバ１６はモータ１８を逆方向に駆動してアーム２０を元の位置に戻す。
【００３５】
バチ２２の先端の位置を図７（Ｄ）に示す。本実施例では、マニュピレータ１４のスウィングに要する時間が各時刻Ｄから各時刻Ｘまでの時間にほぼ等しくなっているので、指揮棒４の下死点到達時刻にバチ２２も下死点に到達し、打楽器２４を演奏する。
本実施例では、演算プログラム１０が、指揮棒４の加速度が上向き加速度に転じる時刻Ｄが算出されると直ちに制御部分１２にバチ２２のスウィングの開始を指令する。これにより、指揮者２が指揮棒４を振り始めた最初の下死点到達時から、打楽器演奏ロボットが演奏を行うことができる。
本実施例の打楽器演奏ロボットは、マニュピレータ１４のスウィングの最高速度が、指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄから下死点到達時刻Ｘまでとほぼ等しい場合等に、特に有効である。多くのロボットで、指揮棒が上向き加速度に転じる時刻から下死点に達するまでに要する時間がロボットの反応時間にほぼ等しいことが確認されており、第３実施例の適用範囲は広い。
【００３６】
（第４実施例）
図８および図９を参照して本実施例を詳細に説明する。
本実施例の打楽器演奏ロボットの主要な構成は、図１のとおりである。本実施例の打楽器演奏ロボットは、記憶部分２６に、予め実験的に得られている指揮棒４の先端の高さ方向の動作の周期Ｔに対する、基準時刻から指揮棒の下死点到達時刻までの時間の比率ｋと、加速度の変動幅に対応するバチの速度の変動係数ｊの関係を記憶している。
【００３７】
指揮が開始されると、演算プログラム１０は、撮影によって得られた指揮棒４の先端の高さ位置のデータを読み込んで画像処理をおこない（ステップ８２，８４）、時間で二回微分して加速度を演算し（ステップ９０）、指揮棒４の先端の加速度が上向き加速度に転じる最初の時刻Ｄ９を得る（ステップ９０）。さらに指揮棒の画像データの監視を続け、上向き加速度と下向き加速度の変動幅Ｃ１を計算し（ステップ９２）、加速度の変動幅を基準変動幅と比較して、その結果を元にバチ２２のスウィング速度を設定する係数ｊを選択する（ステップ９４）。選択された係数ｊを標準のスウィング速度に乗じて、バチ２２のスウィング速度を算出する（ステップ９６）。算出されたスウィング速度から、バチ２２のスウィングに要する時間Ｇｉを算出する（ステップ９８）。再び指揮棒４の先端の加速度が上向き加速度に転じる時刻Ｄ１０が検出されると（ステップ１００）、演算プログラム１０は、Ｄ９からＤ１０までの時間を周期Ｔ３とする（ステップ１０２）。周期Ｔ３に係数ｋを乗じた時間からスウィング所要時間Ｇ１を減じると、時刻Ｄ１０からバチ２２のスウィング開始時刻までの時間Ｈ１が算出される（ステップ１０４）。演算プログラム１０は、制御部分１２に対し、ステップ９６で算出されたスウィング速度と、時刻Ｄ１０に時間Ｈ１を加えたバチ２２のスウィング開始時刻とを指定する（ステップ１０６）。
本実施例では、打楽器演奏ロボットは、指揮棒４の加速度の変動幅を考慮してバチのスウィング速度を調整する。これによって、演奏の音量が指揮者の意図に良く追従する。指揮者２が指揮棒４の一振りごとの速さを変化させた場合にも、より指揮に一致した演奏が可能となる。
【００３８】
（第５実施例）
本実施例の打楽器演奏ロボットの主要な構成は、図１のとおりである。本実施例の打楽器演奏ロボットは、第一実施例と同様、指揮棒４の動作を撮影装置６によって撮影し、記憶部分２６に一時記憶する。以下図１０および図１１を参照して本実施例を説明する。
【００３９】
演算プログラム１０は、記憶されたデータを読み込み（ステップ１２２）、画像処理を施して、指揮棒４の先端の高さ位置のデータを時系列で取り出す（ステップ１２４）。取り出された指揮棒４の先端の高さ位置と時間との関係の一例を、図１１（ａ）に示す。図中で、指揮棒４が下死点に到達する各時刻をＸ１２，Ｘ１３，Ｘ１４で表す。タイミングＸ１４では、指揮者２が演奏音を大きくさせるために指揮棒４を大きく振ったので、指揮棒４の先端の高さの変動幅は、タイミングＸ１３の直前での振幅Ａ１３よりも大きくなっている。
演算プログラム１０は、指揮棒４の先端の高さ位置のデータを、時間で二回微分して加速度を演算する（ステップ１２６）。さらに、得られた指揮棒４の上向き加速度の最大値と下向き加速度の最大値の差分から、加速度の変動幅Ｃを求めて一時記憶する（ステップ１２８）。指揮棒２の先端の加速度を示す図１１（ｃ）中に、指揮棒４の上下動周期毎に記録される加速度の変動幅の一例をＣ１３，Ｃ１４で示す。指揮棒４はほぼ同じ周期で振られつつ先端の高さの変動幅がＡ１４で大きくなったので、加速度の変動幅Ｃ１４は直前での変動幅Ｃ１３よりも大きくなっている。
【００４０】
演算プログラム１０は、加速度の変動幅がＣ１４で大きくなったことを検出すると、それに対応して演奏の音を大きくする為に、ステップ１３０でバチ２２の下死点位置を下方向に設定する。本実施例では、バチ２２の振り下ろしスピードは固定されている。固定されたバチ速度で楽器２４の打撃音の強弱を調整するために、バチ２２の下死点位置を調整する。バチ２２の振り下ろしスピードが固定されていても、下死点位置を下げて深く打ち込むと大きく演奏され、下死点位置を上げて浅く打ち込むと小さく演奏される。
ステップ１３２で指揮棒の加速度の上方向への変化時刻Ｄｉが検出されると、演算プログラム１０は、制御部分１２にバチ２２の下死点を指定してスウィング開始を指令する（ステップ１３４）。
スウィング開始の指令をうけた制御部分１２は、直ちにアーム２０の各関節の動作を制御する各ドライバ１６に動作の開始指令を与える。各ドライバ１６は、動作の指令を各モータ１８に対する駆動速度と方向の指令に変換して各モータ１８を動かし、これによってアーム２０はバチ２２を振り降ろす。下死点が下に設定されたバチ２２は打楽器２４に強く打ち込まれるので、大きな音で演奏が行われる。演奏後の一定時間後に、制御部分１２は、アーム２０を元の位置に戻す動作の指令を各ドライバ１６に与え、ドライバ１６はモータ１８を逆方向に駆動してアーム２０を元の位置に戻す。
本実施例の演算プログラム１０は、加速度の変動幅が小さくなったことを検出場合は、バチ２２の下死点位置を打楽器２４に接触する範囲を上限として上に設定し、速度の調節を行う。
本実施例では、打楽器演奏ロボットは、指揮者２の指揮に対して、演奏速度と演奏する音の強さの両方に調和した演奏を可能としている。
【００４１】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、実施例では、打楽器に対してバチを振り下ろす動作について説明を行ったが、打楽器とロボットの位置関係は様々に変化させることが可能であり、マニュピレータの動作もそれに応じて変更が可能である。その他、実施例の図中に示したロボットのアームやコントローラの構成は、通常のプログラミング作業や装置設計によって自由に変更が可能であり、項目の追加や削除も行うことができる。
例えば、図８と９を参照して説明した実施例では、加速度の変化幅Ｃ１、Ｃ２によってマニピュレータの移動速度を変化させたが、上向き加速度に転じた時刻から再度上向き加速度に転じるまでの時間（例えばＤ１０−Ｄ９、またはＤ１１−Ｄ１０）から、マニピュレータの移動速度を変化させてもよい。また移動速度を変化させるマニピュレータは楽器を演奏するものに限られず、行進するロボットの場合には行進に用いられるマニピュレータの速度を、指揮棒の動きが上向き加速度に転じた時刻から再度上向き加速度に転じるまでの時間によって増減させることが有用である。この場合、行進ロボット（あるいはロボット群）は指揮者が指揮棒を通して現す速度で行進することになる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時の請求項記載の組み合わせに限定されるものではない。
【００４２】
【実施例の効果】
以上のように、本願発明の打楽器演奏ロボットによると、指揮者の指揮棒の動きを撮影して分析し、指揮棒の加速度が上向きに変化する時刻を基準にして演算処理を行うことで、打楽器のバチを振り始める時刻とバチの動作を算出し、その結果に基づいてマニュピレータによる演奏を行うことができる。これにより、指揮者が振る指揮棒の動きに調和した音の大きさやリズムで演奏する、打楽器演奏ロボットを提供することができる。
【図面の簡単な説明】
【図１】本実施例の打楽器演奏ロボットの構成を模式的に示す図。
【図２】実施例１の打楽器演奏ロボットにおいて、バチのスウィング開始時刻を特定するための演算プログラムの処理の概要を示すフローチャート。
【図３】実施例１の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図４】実施例２の打楽器演奏ロボットにおいて、演奏開始を指示するための演算プログラムの処理の概要を示すフローチャート。
【図５】実施例２の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図６】実施例３の打楽器演奏ロボットにおいて、バチを振る速度と演奏開始を指示するための演算プログラムの処理の概要を示すフローチャート。
【図７】実施例３の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図８】実施例４の打楽器演奏ロボットにおいて、バチの速度とバチの下死点と演奏開始を指示する演算プログラムの、処理の概要を示すフローチャート。
【図９】実施例４の指揮棒の動きの画像処理データと、演算された指揮棒の加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図１０】実施例５の打楽器演奏ロボットにおいて、バチの速度とバチの下死点と演奏開始を指示する演算プログラムの、処理の概要を示すフローチャート。
【図１１】実施例５の指揮棒の動きの画像処理データと、演算された指揮棒の加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図１】
2004177686.tif 000003
【図２】
2004177686.tif 000004
【図３】
2004177686.tif 000005
【図４】
2004177686.tif 000006
【図５】
2004177686.tif 000007
【図６】
2004177686.tif 000008
【図７】
2004177686.tif 000009
【図８】
2004177686.tif 000010
【図９】
2004177686.tif 000011
【図１０】
2004177686.tif 000012
【図１１】
2004177686.tif 000013