JP2004177686A - 指揮棒の動きを認識する装置と楽器演奏ロボット - Google Patents
指揮棒の動きを認識する装置と楽器演奏ロボット Download PDFInfo
- Publication number
- JP2004177686A JP2004177686A JP2002344154A JP2002344154A JP2004177686A JP 2004177686 A JP2004177686 A JP 2004177686A JP 2002344154 A JP2002344154 A JP 2002344154A JP 2002344154 A JP2002344154 A JP 2002344154A JP 2004177686 A JP2004177686 A JP 2004177686A
- Authority
- JP
- Japan
- Prior art keywords
- time
- acceleration
- conductor
- baton
- calculated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
【課題】指揮者の振る指揮棒の動きに調和したリズムと強弱で、打楽器の演奏を行う打楽器演奏ロボットを提供する。
【課題を解決するための手段】指揮者の指揮棒の動きを撮影して分析し、指揮棒の演算された加速度が上向きに変化する時刻を基準にして演算処理を行って、打楽器のバチを振り始める時刻と動作を算出する。算出された時刻からマニュピレータが演奏を行うことで、指揮者が振る指揮棒の動きに調和した音の大きさやリズムで演奏を行う、打楽器演奏ロボットを提供できる。
【選択図】 図1
【課題を解決するための手段】指揮者の指揮棒の動きを撮影して分析し、指揮棒の演算された加速度が上向きに変化する時刻を基準にして演算処理を行って、打楽器のバチを振り始める時刻と動作を算出する。算出された時刻からマニュピレータが演奏を行うことで、指揮者が振る指揮棒の動きに調和した音の大きさやリズムで演奏を行う、打楽器演奏ロボットを提供できる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】本発明は、ロボットに楽器を演奏させたり行進させたりする技術に関する。特に指揮者の振る指揮棒の動きに合わせてロボットに楽器を演奏させたり行進させたりする技術に関する。また、指揮者が振る指揮棒の動きから指揮者の意図を認識する装置にも関する。
【0002】
【従来の技術】テーマパーク等のアトラクションで、打楽器を自動演奏するロボットが活躍している。このロボットは、例えばバチを持ったマニュピレータを備えており、演奏する曲目に合わせてマニピュレータを動作させることによってバチが打楽器に打ち下ろされて演奏が行われる。従来の楽器演奏ロボットでは、演奏する曲目の演奏速度や音の強弱が事前に設定されており、設定外の演奏を行わせるためには、楽器演奏ロボットに対してその都度プログラミング言語等で指令を与えなければならない。
特許文献1から3には、指揮者の振る指揮棒の動きに合わせて、自動演奏装置の演奏速度を調整したり、自動演奏装置が発する音量を増減するための技術が開示されている。
【0003】
【特許文献1】
特開平10−55174号公報
【特許文献2】
特開平9−97070号公報
【特許文献3】
特開平6−161440号公報
【0004】
【発明が解決しようとする課題】しかしながら現状では、マニピュレータを使って実際の楽器を実際に演奏する演奏ロボットに対して指揮者が指揮棒を使って指揮することはできない。あるいはマニピュレータを使って実際に行進するロボットに対して指揮者が指揮棒を使って行進速度を指揮することはできない。ロボット側で、指揮者が指揮棒の動きを通して意図する、タイミングや速度やリズムや音の強弱を認識する技術がなく、ロボットが指揮に調和した動きや演奏を行うことができない。
本発明では、行進ロボットや楽器演奏ロボットが、指揮者の振る指揮棒の動きから指揮者が意図するタイミングや速度や音の強弱を認識する技術を提供する。さらに、ロボットの反応時間まで考慮したうえで指揮者が意図するタイミングに合わせた演奏が行われるようにロボットの動作を制御する技術を提供する。本発明が完成すれば、だれでもが指揮棒を振ることによって行進ロボット(あるいはロボット群)や楽器演奏ロボット(あるいはロボット群)を指揮することができる。観客が指揮者となって行進ロボット(あるいはロボット群)に行進させたり楽器演奏ロボット(あるいはロボット群)に演奏を行わせるといった、観客参加型の新しいアトラクションを実現することが可能となる。
【0005】
【課題を解決するための手段と作用】指揮者が振る指揮棒の動きを観測すると、指揮棒が下死点に達した時に演奏音を発生させる意図のもとで、指揮者は指揮棒を振ることがわかる。また、指揮棒が下死点に達した時から次に下死点に達するまでの時間差で、指揮者は意図する速度ないし周期をあらわしていることがわかる。
ロボットの反応速度が無限大であり、指揮棒が下死点に達した時に演奏アクチュエータを始動させることによって、指揮棒が下死点に達した時から遅れないタイミングで演奏音を発生させることができれば、格別の制御技術は必要とされない。しかしながら、実際にはロボットの反応に時間がかかり、演奏アクチュエータを始動させてから実際に演奏音が発生するまでには時間を要する。そのために、指揮棒が下死点に達した時に演奏アクチュエータを始動させる技術では、指揮者が意図するタイミングよりも演奏音の発生タイミングが遅れてしまう。人が楽器を演奏するときには、指揮棒の動きから下死点に達するタイミングを予測し、そのタイミングで演奏音が発生するように自己の運動開始タイミングをコントロールしている。
演奏ロボットによって指揮棒の動きにあわせた演奏をするためには、指揮棒が下死点に達する直前のタイミングを捉えてそのタイミングで演奏アクチュエータを始動させる技術が必要とされる。
【0006】
請求項1の発明では、指揮者が振る指揮棒の動きから、指揮者が意図する速度を認識する装置を実現する。請求項1の装置は、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点(任意の一点でよい)の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、前回に特定された時刻から今回に特定された時刻までの時間差から指揮者の意図する速度を計算する手段を備えており、指揮者が振る指揮棒の動きから指揮者の意図を認識する。
【0007】
指揮者は、指揮棒が下死点に達した時から次に下死点に達するまでの時間差で意図する速度ないし周期をあらわす。本発明者らの研究によって、人が意図する速度をあらわすため用いる下死点は、人が認識する下死点であって、指揮棒の移動軌跡を客観的に追跡することで得られる下死点ではないことがわかった。客観的な下死点を用いて、下死点に達した時から再び下死点に達するまでの時間差を求めてみても、指揮者の意図する速度に対応しない。
本発明者の研究によって、人が意図する速度をあらわすため用いる下死点は、指揮棒の特定点(任意の一点でよい)の上下方向の加速度が上向き加速度に転じた直後に現われることが確認され、加速度が上向き加速度に転じた時刻から再び上向き加速度に転じるまでの時間差が、指揮者の意図する速度ないし周期を正確に現していることが確認された。ここでいう上向き加速度は、上昇運動中であれば増速期間に生じる加速度をいい、下降運動中であれば減速期間に生じる加速度をいう。
本装置は、この研究の成果によって実現されたものであり、指揮棒の任意の一点の高さ位置の変化から、加速度が上向き加速度に転じた時刻から再び上向き加速度に転じるまでの時間差によって速度ないし周期を計算するために、指揮者が指揮棒の動きを通して現す速度ないし周期を認識することができる。
【0008】
請求項2〜4の発明では、指揮者が振る指揮棒の動きから、指揮者が意図する時に演奏する(演奏音を発生する)ロボットを実現する。
請求項2記載の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さ位置の変化から指揮棒の上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、上向き加速度に転じた時刻に作動開始する演奏アクチュエータとを備えている。
【0009】
本発明者らによる指揮棒の動きの解析によって、指揮棒の特定点(通常は先端)が下死点に達する直前に、その特定点の加速度が上向き加速度に転じることがわかった。また、上向き加速度に転じる時刻と下死点に達する時刻との時間差は短く、ロボットの反応時間にほぼ等しいことがわかった。即ち、通常サイズのロボットを通常のアクチュエータで動作させる場合のロボットの反応時間は一定の範囲内に入るのに対し、上向き加速度に転じる時刻から下死点に達するまでに要する時間はそのロボットの反応時間範囲の中央近辺にあることを確認した。
そこで多くのロボットでは、上向き加速度に転じる時刻に演奏アクチュエータを始動させると、指揮棒が下死点に達するタイミングと、ロボットの動作によって得られる演奏音が発生するタイミングがほぼ一致することが確認された。指揮棒の加速度が上向き加速度に転じる時刻に演奏アクチュエータを始動させると、ロボットによって指揮者が意図するタイミングで演奏音を得ることができ、ロボットを指揮者が意図するように指揮することができる。
【0010】
ロボットの反応時間が充分に早い場合、上向き加速度に転じる時刻に演奏アクチュエータを始動すると、演奏音の発生タイミングが早すぎることがある。この場合には、加速度が上向き加速度に転じる時刻を基準にし、それよりも遅れて演奏アクチュエータを始動させる。
請求項3の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さの変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、前回に特定された時刻と今回に特定された時刻とから周期を算出する手段と、上向き加速度に転じた時刻と、周期と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから作動開始時刻を算出する手段と、算出された作動開始時刻で作動開始する演奏アクチュエータとを有する。
【0011】
指揮棒の動きが上向き加速度に転じる時刻を複数回に亘って観測すると、指揮者が振る指揮棒の動きの周期を正確に把握することができることを確認した。下死点に達する時刻や上死点に達する時刻から周期を測定する場合に比して、周期を正確に計測することができる。
本発明では、指揮者が意図する演奏音を発生させたいタイミングにわずかに先立つタイミングを把握し(これが上向き加速度に転じる時刻)、これを基準時間として指揮棒が下死点に達する時刻を予測する。このとき、上向き加速度に転じる時刻から計算される正確な周期を用いることから、指揮棒が下死点に達する時刻を正確に予測することができる。
本発明では、指揮棒が下死点に達する時刻を正確に予測し、さらに、演奏アクチュエータの作動開始時から実際の演奏までに要する時間を使って演奏アクチュエータの作動開始時刻を計算することから、指揮者が意図するタイミングに演奏音を発生させることができ、指揮者が意図した演奏をロボットに行わせることができる。
【0012】
周期に基いて上向き加速度に転じる時刻から下死点に達する時刻までの時間差を算出するのに代えて、前の周期での時間差を採用することもできる。
請求項4の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さの変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、指揮棒の特定点の高さが下死点に到達する時刻を特定する手段と、上向き加速度に転じた時刻と、上向き加速度に転じた時刻から指揮棒が下死点に到達した時刻までの時間差と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから作動開始時刻を算出する手段と、算出された作動開始時刻で作動開始する演奏アクチュエータを有する。
【0013】
この場合、指揮棒の先回の振動周期で観測された上向き加速度に転じた時刻と下死点に到達した時刻の時間差を用いて、今回の周期で下死点に到達する時刻を予測する。即ち、今回の周期において観測された上向き加速度に転じた時刻に、先の周期で観測された前記時間差を加えることによって、今回の周期で下死点に到達する時刻を予測する。前記時間差は短く、先回の周期と今回の周期とでずれることがあっても、短い時間がずれるだけであることからそのズレは著しく小さい。この技術によっても、指揮棒が下死点に到達する時刻を正確に予測することができる。
本発明では、指揮棒が下死点に達する時間を正確に予測し、さらに、演奏アクチュエータの作動開始時から実際の演奏までに要する時間を使って演奏アクチュエータの作動開始時刻を計算することから、指揮棒が下死点に達する時に合わせて演奏音を発生させることができ、指揮者が意図したタイミングでロボットに演奏させることができる。
【0014】
請求項5に記載されるように、演算された加速度の変動幅から演奏アクチュエータの動作速度を決定することが好ましい。
指揮棒の加速度の変動幅が小さいときには演奏アクチュエータの動作速度を遅くし、逆に、指揮棒の加速度の変動幅が大きいときには演奏アクチュエータの動作速度を速くすることで、指揮者が意図する音量で演奏することができる。
【0015】
打楽器を演奏する場合、演奏アクチュエータの動作速度を変化させることに代えて、請求項6に記載されるように、演算された加速度の変動幅からバチの下死点位置を決定することが好ましい。
指揮棒の加速度の変動幅が小さいときにはバチの下死点位置を高くして楽器に打ち込む量を小さくし、逆に、指揮棒の加速度の変動幅が大きいときにはバチの下死点位置を低くして楽器に打ち込む量を大きくする。前者では小さな音量で演奏され、後者では大きな音量で演奏される。指揮者が意図する音量で演奏することができる。
【0016】
行進するロボットあるいはロボット群の場合、指揮者が振る指揮棒の速度が緩やかであれば低速で行進し、指揮棒の速度が急速であれば高速で行進することが好ましい。即ち、指揮棒の動きの速度に合わせてロボットの動作速度を増減する必要が存在する。
請求項7のロボットはその要求に応えるものであり、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さ位置の変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、計算された速度によってロボットの姿勢を変えるアクチュエータの動作速度を変えるアクチュエータコントローラとを備えている。
【0017】
このロボットは、指揮者が振るし指揮棒の動きに合わせて動作速度を変える。指揮者は指揮棒を使ってロボット(またはロボット群)の動作を速めたり緩やかにすることができ、自在に指揮することができる。
【0018】
【発明の実施の形態】以下に説明する実施例の主要な特徴を次に列記する。
(形態1)打楽器演奏ロボットは、指揮者が振る指揮棒を撮影する撮影装置と、コントローラと、打楽器用のバチを保持してスイングするマニュピレータから構成されている。
(形態2)形態1のコントローラは、撮影された指揮棒の動きを分析してマニュピレータの動作開始時刻を演算する演算プログラムと、その演算結果を受けて、マニュピレータの動作を決定して指令を出す制御部分と、演算と制御に使用されるデータを一時記憶する記憶部分から構成される。
(形態3)形態1のマニュピレータは、多関節のアームと、それぞれの関節を駆動するモータと、モータを操作するドライバから構成される。
【0019】
【実施例】以下に、本発明の打楽器演奏ロボットの実施例を、添付図面を参照しながら詳細に説明する。
(第1実施例)
図1は、本発明の第1実施例に係わる打楽器演奏ロボットの構成を示している。指揮者2は指揮棒4を上下左右に振って、演奏者に演奏させたい内容を表現する。指揮者2は指揮棒4を用いて類似の動きを周期的に繰り返している。本発明者らの研究によって、指揮者2が指揮棒4の動きを通じて、下記の演奏を意図していることが判明した。
(1) 指揮者2は、指揮棒4を下死点に振り降ろしたタイミングで、打楽器24から音が発生することを希望している。
(2) 指揮者2は、指揮棒4の周期内における加速度の変動幅の大小で音量を指示する。この場合、上下方向の加速度の変動幅の大小で、指揮者2の意図を代表させることができる。
本発明者らの研究によって、さらに下記の事象が確認された。
(3) 指揮棒4が下死点に到達するに先立って、指揮棒4の加速度が下向き加速度から上向き加速度に転じるタイミングが存在する。
(4) 上向き加速度に転じるタイミングから下死点に到達するまでの時間差は短い。
(5) 前記時間差は、制御部12がマニュピレータ14に動作の開始信号を出力するタイミングからバチ22が打楽器24を打撃するタイミングまでの時間差にほぼ等しい。即ち、上向き加速度に転じるタイミングで制御部12が動作開始信号を出力すると、指揮棒4が下死点に到達するタイミングでバチ22が打楽器24を打撃する関係が得られる。
(6) 上向き加速度に転じるタイミングを繰返して観測すると、指揮棒4の運動周期が正確に計算される。
(7) 上向き加速度に転じるタイミングから下死点に到達するまでの時間差は、前記の周期に比例する。その比例計数は、指揮者2によらずにほぼ一定である。
(8) 下記の時間差と時刻の間には下記の関係が成立する。
・T1:指揮棒4の動きが上向き加速度に転じるタイミング
・T2:指揮棒4が下死点に到達するタイミング
・T3:指揮棒4の動きの周期
・T4:制御部12がマニュピレータ14に動作開始信号を出力したタイミングからバチ22が打楽器24を打撃するタイミングまでの時間差
・T5:タイミングT2でバチ22が打楽器24を打撃する結果を実現するのに必要な、制御部12が動作開始信号を出力するタイミング
前記(7)で記載したように、上向き加速度に転じるタイミングT1から下死点に到達するタイミングT2までの時間差T2−T1は、周期T3に比例するから下記(1)式が成立する。
T2−T1=k・T3 (kは定数) (1)
また、当然に下記(2)式が成立する。
T5+T4=T2 (2)
(1)(2)式から、下記(3)式が得られる。
T5=T1+k・T3−T4 (3)
ここで、上向き加速度に転じるタイミングT1から下死点に到達するタイミングT2までの時間差T2−T1(=k・T3)が、制御部12が動作開始信号を出力したタイミングからバチ22が打楽器24を打撃するタイミングまでの時間差T4に等しいとすると、
T5=T1 (4)
式となる。
即ち、タイミングT2でバチ22が打楽器24を打撃する結果を実現するのに必要な制御部12が動作開始信号を出力するタイミングT5は、(3)式で計算される。特に、上向き加速度に転じるタイミングT1から下死点に到達するタイミングT2までの時間差T2−T1(=k・T3)が、制御部12が動作開始信号を出力してからバチ22が打楽器24を打撃するまでの時間差T4に等しい場合には、(4)式に単純化される。
(9) 指揮者2は、指揮棒4の動きの加速度の変動幅で、演奏させたい音量を表現する。本発明者の研究によって、指揮者2は、指揮棒の運動の振幅でもなく、速度の変動幅でもなく、加速度の変動幅で演奏させたい音量を表現することが見出された。
本実施例のロボットは、上記の知見に基いて制御される。
【0020】
本実施例の打楽器演奏ロボットは、指揮者2が振る指揮棒4を撮影し続ける撮影装置6と、コントローラ8と、打楽器24用のバチ22を保持してスイングするマニュピレータ14から構成されている。コントローラ8は、撮影された指揮棒の動きを分析してマニュピレータ14の始動時刻を演算する演算プログラム10と、その演算結果に基いてマニュピレータ14に動作開始指令を出力する制御部分12と、撮影データや演算結果等を一時記憶する記憶部分26から構成されている。マニュピレータ14は、多関節のアーム20と、それぞれの関節を駆動するモータ18と、モータを操作するドライバ16から構成されている。
【0021】
打楽器演奏ロボットは、指揮棒4の動作を撮影装置6によって撮影し続ける。得られた指揮棒4の画像をコントローラ8の記憶部分26に送る。コントローラ8の演算プログラム10は、記憶部分26に記憶された画像を分析し、マニピュレータ14の始動(動作開始)時刻を特定する。
打楽器演奏ロボットが、指揮棒4の動きに合わせて打楽器24を演奏するためには、指揮棒4が下死点に到達するよりも前にマニュピレータ14を始動させる必要がある。即ち、マニュピレータ14の始動時刻は、指揮棒4の下死点到達時刻に対して、マニピュレータ14が始動してからバチ22をスウィングさせるのに要する時間だけ前の時刻でなければならない。本実施例の演算プログラム10は、この始動時刻を算出するために、図2のフローチャートに示す一連の処理を行い、動作開始信号をマニュピレータ14に出力する。以下、フローチャート及び図3の指揮棒の先端の動作の演算データとバチの位置の一例を参照しつつ、さらに詳細に説明する。
【0022】
本実施例のコントローラ8の記憶部分26には、指揮棒4の動きが上向き加速度に転じる(基準時刻)から下死点に到達するまでの時間と、指揮棒4の動きの周期Tとの間に成立する比率係数kが記憶されている。
演算プログラム10は、一定時間ごとに画像データを取り込んで記憶する(ステップ2)。一定時間ごとに取り込まれた画像データを画像処理して指揮棒4の先端(これがこの実施例の特定点である。特定点は指揮棒の先端に限られず、任意の一点を採用することができる)位置を特定し、その高さを特定する(ステップS4)。この結果、指揮棒4の先端の高さが、所定時間間隔で時系列で記録される(ステップ4)。時系列で記録された指揮棒4の先端の高さと、時間との関係の一例を、図3(a)に示す。ここでは、指揮棒4が下死点に到達する時刻をXとし、周期の進行に合わせてX0,X1,X2で表している。
【0023】
演算プログラム10は、指揮棒4の先端高さの時系列データを時間で微分して指揮棒4の上下方向の速度を求め、時系列で記録する(ステップ8)。図3(b)に、指揮棒4の先端の上下方向の速度を示す。演算プログラム10は、得られた指揮棒4の先端の上下方向の速度を再度時間で微分し、指揮棒4の上下方向の加速度を求めて時系列で記憶する(ステップ10)。図3(c)に、指揮棒4の先端の上下方向の加速度を示す。ここで、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dが検出される(ステップ12)。図3(c)では、周期の進行に合わせて、上向き加速度に転じる時刻がD0,D1,D2で表されている。ここでいう上向き加速度は、上昇運動中であれば増速期間に生じる加速度をいい、下降運動中であれば減速期間に生じる加速度をいう。指揮棒4の先端が下死点に到達するに先立って、指揮棒4の下降運動が減速されることから、指揮棒4の下死点到達時刻Xの前に、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dが存在する。図3(a)と(c)から明らかに、上向き加速度に転じる時刻Dは、下死点に到達する時刻Xにわずかに先行する。時刻Dを基準時刻にしてロボットを制御すると、ロボットの演奏動作を時刻Xに完了させることが可能となる。そこで本実施例では、時刻Dを基準時刻として記憶する(ステップS12)。
【0024】
演算プログラム10は、指揮棒4の画像データの監視と加速度の計算を繰返す(ステップ2,10)。最初に上向き加速度に転じる時刻D0が観測され、次に上向き加速度に転じる時刻D1が再度検出される場合を例にして説明すると、最初に観測された上向き加速度に転じる時刻D0から、次に観測された上向き加速度に転じる時刻D1までの時間を計算して周期T1とする(ステップ14)。研究によって、時刻D1から、周期Tに係数k(この場合は定数)を乗じた時間だけ遅れたタイミングで指揮棒4が下死点に到着することが確認されている。この関係は全ての周期に成立する。そこで、下記式が成立する。
下死点到着時刻X=上向き加速度に転じた時刻D + k・T
(kは係数/定数であり、Tは周期である)の関係が成立することが確認されている。
マニピュレータ14を動かし始めてからバチ22が楽器24を打撃するまでに要する時間Gが予め測定されている。そこで、下死点到着予定時刻Xから所要時間Gだけ先立つタイミングでマニピュレータ14を動かし始めると、指揮棒4が下死点に到着する時刻Xに、バチ22が楽器24を打撃する関係が得られる。
即ち、「D+k×T−G」の時刻にマニピュレータ14を動かし始めると、それからGだけ後のタイミングである「D+k×T」の時刻に楽器24を打撃することになり、その打撃時刻は、ちょうど指揮棒4が下死点に到着する時刻Xに一致する。
バチのスウィングに要する時間Gは、マニピュレータ14の動作速度で決定される。実験によって、通常のモータを活用することで、スウィングに要する時間Gをk×T以下にすることができることが確認されている。
即ち上向き加速度に転じたことを確認してから、k×T−Gを計算しても、その時間は正の値をとり、手遅れになることはない。本実施例では、正の値をとるk×T−Gを計算してその値をHとする(ステップ16)。演算プログラム10は、上向き加速度に転じたことを確認してから、時間Hだけ後のタイミングで制御部分12に、マニピュレータ14へ動作開始信号を出力するように指示する(ステップ18)。
【0025】
スウィング動作の開始時刻D+Hで、制御部分12は、マニュピレータ14のアーム20の各関節の動作を制御するモータ18の各ドライバ16に、動作開始指令を与える。各ドライバ16は、動作開始指令によってモータ18を始動させる結果、アーム20がバチ22を振り降ろし始める。バチ22が打楽器24に到達して演奏が行われた一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
【0026】
図3(D)に、バチ22の先端の位置を示す。なお、図3の時間軸は、(a)〜(D)で共通である。演算プログラム10によって、マニュピレータ14のスウィング開始時刻を、時刻Dから時間Hだけ後の時刻Gに調整したことにより、指揮棒4が下死点に到着する時刻Xに、バチ22も下死点に到達して打楽器24を演奏している。
演算プログラム10は、指揮が続いている間、指揮棒の画像データの監視と加速度の計算を続け、指揮棒4の先端の加速度が上向き加速度に転じる時刻Diが検出される度に周期Tiを求め、周期Tiから時間Hiを算出し、時刻Diと時間Hiから時刻Giを求め、時刻Giにおいて制御部分12がマニュピレータ14にスウィング開始開始指令を出力する処理を実行しつづける。
【0027】
(第2実施例)
本実施例に係わる打楽器演奏ロボットの主要な構成は、図1と同じであり、重複説明を割愛する。以下、一連の演算プログラム10の処理について、図4の処理のフローチャート及び図5の指揮棒の動作の演算データとバチの位置の一例を参照しつつ、さらに詳細に説明する。
【0028】
演算プログラム10は、一定時間ごとに画像データを取り込んで記憶する(ステップ32)。次に画像処理して指揮棒4の先端を特定し、その高さを特定する(ステップS34)。この結果、指揮棒4の先端の高さが、所定時間間隔で時系列で記録される(ステップ34)。時系列で記録された指揮棒4の先端の高さと、時間との関係の一例を、図5(a)に示す。ここでは、指揮棒4が下死点に到達する時刻をXとし、周期の進行に合わせてX3,X4,X5で表している。ステップS36で、指揮棒4が下死点に到達する時刻をX3,X4,X5を記録していく。
【0029】
本実施例における演算プログラム10でも、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dが検出されると(ステップ42)、演奏開始時刻算出のための基準時刻としてこれを記憶する。
時刻X3において、演算プログラム10は、時刻D3から時刻X3までの時間を算出し、指揮棒4の先端の加速度が上向き加速度に転じる時刻D3から指揮棒4が下死点に到達する時刻X3までの時間F3を得る。演算プログラム10は、時間F3からマニュピレータ14がバチ22をスウィングするのに必要な時間Gを減じた時間Hを計算する(ステップ46)。
時刻D4において、演算プログラム10は、バチ22のスウィング開始時刻を算出する。バチ22のスウィング開始時刻は、時刻D4から時間Hだけ経過した後の時刻として算出される(ステップ48)。先の周期で算出しておいたF3を利用し、時刻D4を用いて下死点到達時刻X4を予想する。制御部分12は、時刻D4の経過直後に、D4+(X3−D3)―Gの時刻で、マニュピレータ14を始動させる。マニュピレータ14は、始動後Gだけ経過した時点で打楽器24を打撃することから、D4+(X3−D3)のタイミングで音を発生する。これは今回の周期で指揮棒4が下死点に到達する時刻X4にほぼ等しい。
今回の周期で指揮棒4が下死点に到達するとその時刻X4からD4を減じて、今回の周期で指揮棒4の先端の加速度が上向き加速度に転じた時刻D4から指揮棒4が下死点に到達した時刻X4までに要した時間F4を計算して次の周期での利用に備える。
【0030】
演算プログラム10は、指揮棒の画像データの監視と加速度の計算を繰返す(ステップ32,40)。再び指揮棒4の先端の加速度が上向き加速度に転じる時刻D5が検出されると(ステップ42)、演算プログラム10は、制御部分12に対し、D4に時間H(X3−D3−G)を加えた時刻G5をバチ22のスウィング開始時刻とする(ステップ48)。
スウィング開始時刻の指定をうけた制御部分12は、スイング開始時刻に、アーム20の動作を制御する各ドライバ16に対して、動作の開始指令を与える。ドライバ16は動作の指令を駆動速度と方向の指令に変換してモータ18を動かし、アーム20がバチ22を振り降ろす。バチ22が打楽器24に到達して演奏が行われた一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
この実施例では、直前周期において、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dから指揮棒4が下死点に到達する時刻Xまでの時間差Fを求め、その時間差Fを利用して、次の周期で指揮棒4が下死点に到達する時刻Xを求める。直前周期を添え字i―1として次の周期を添え字iで表すと、
Fi−1=(Xi−1)−(Di−1)
Xi=Di+Fi−1
の関係を用いる。
【0031】
バチ22の先端の位置を図5(D)に示す。演算プログラム10によって、マニュピレータ14のスウィング開始時刻を、時刻Dから時間H後の時刻Gに調整したことにより、指揮棒4が下死点に到着する時刻にバチ22も下死点に到達し、打楽器を演奏している。
演算プログラム10は、指揮が続いている間、指揮棒の画像データの監視と加速度の計算を続け、指揮棒4の先端の加速度が上向き加速度に転じる時刻Diが検出される度に、時間Hを調整した時刻をGiを指定して、制御部分12にスウィング開始の指令を行い、演奏を続ける。
【0032】
(第3実施例)
本実施例の打楽器演奏ロボットの主要な構成は、図1に同じである。図6及び図7を参照して本実施例を詳細に説明する。
【0033】
演算プログラム10は、指揮棒4の動作を記憶した画像データを読み込み(ステップ62)、画像処理を施して、指揮棒4の先端の高さ位置のデータを時系列で取り出す(ステップ64)。取り出された指揮棒4の先端の高さ位置と時間との関係の一例を、図7(a)に示す。図中で、指揮棒4が下死点に到達する各時刻をX6,X7,X8で表す。さらに演算プログラム10は、指揮棒4の先端の高さ位置のデータを、時間で二階微分して加速度を演算し、加速度が上向き加速度に転じる時刻Dを特定する(ステップ68、70、72)。指揮棒4の先端の高さ位置のデータを時間で一階微分して得られた速度を図7(b)に示し、指揮棒2の先端の加速度を図7(c)に示す。また、図7(c)に、指揮棒4の先端の加速度が上向き加速度に転じる時刻をD6,D7,D8で示す。
【0034】
本実施例では、マニュピレータ14がバチ22をスウィングする所用時間が、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dから指揮棒の下死点到達時刻Xまでとほぼ等しくなっている。本実施例における演算プログラム10は、ステップ70で時刻Dが検出されると、直ちに、ステップ72で制御部分12にバチ22のスウィング開始を指令する。
スウィング開始の指令をうけた制御部分12は、直ちにアーム20の動作を制御する各ドライバ16に動作の開始指令を与える。各ドライバ16は、動作の指令を各モータ18に対する駆動速度と方向の指令に変換して各モータ18を動かす。これによってアーム20はバチ22を振り降ろす。バチ22が打楽器24に到達して演奏が行われた一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
【0035】
バチ22の先端の位置を図7(D)に示す。本実施例では、マニュピレータ14のスウィングに要する時間が各時刻Dから各時刻Xまでの時間にほぼ等しくなっているので、指揮棒4の下死点到達時刻にバチ22も下死点に到達し、打楽器24を演奏する。
本実施例では、演算プログラム10が、指揮棒4の加速度が上向き加速度に転じる時刻Dが算出されると直ちに制御部分12にバチ22のスウィングの開始を指令する。これにより、指揮者2が指揮棒4を振り始めた最初の下死点到達時から、打楽器演奏ロボットが演奏を行うことができる。
本実施例の打楽器演奏ロボットは、マニュピレータ14のスウィングの最高速度が、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dから下死点到達時刻Xまでとほぼ等しい場合等に、特に有効である。多くのロボットで、指揮棒が上向き加速度に転じる時刻から下死点に達するまでに要する時間がロボットの反応時間にほぼ等しいことが確認されており、第3実施例の適用範囲は広い。
【0036】
(第4実施例)
図8および図9を参照して本実施例を詳細に説明する。
本実施例の打楽器演奏ロボットの主要な構成は、図1のとおりである。本実施例の打楽器演奏ロボットは、記憶部分26に、予め実験的に得られている指揮棒4の先端の高さ方向の動作の周期Tに対する、基準時刻から指揮棒の下死点到達時刻までの時間の比率kと、加速度の変動幅に対応するバチの速度の変動係数jの関係を記憶している。
【0037】
指揮が開始されると、演算プログラム10は、撮影によって得られた指揮棒4の先端の高さ位置のデータを読み込んで画像処理をおこない(ステップ82,84)、時間で二回微分して加速度を演算し(ステップ90)、指揮棒4の先端の加速度が上向き加速度に転じる最初の時刻D9を得る(ステップ90)。さらに指揮棒の画像データの監視を続け、上向き加速度と下向き加速度の変動幅C1を計算し(ステップ92)、加速度の変動幅を基準変動幅と比較して、その結果を元にバチ22のスウィング速度を設定する係数jを選択する(ステップ94)。選択された係数jを標準のスウィング速度に乗じて、バチ22のスウィング速度を算出する(ステップ96)。算出されたスウィング速度から、バチ22のスウィングに要する時間Giを算出する(ステップ98)。再び指揮棒4の先端の加速度が上向き加速度に転じる時刻D10が検出されると(ステップ100)、演算プログラム10は、D9からD10までの時間を周期T3とする(ステップ102)。周期T3に係数kを乗じた時間からスウィング所要時間G1を減じると、時刻D10からバチ22のスウィング開始時刻までの時間H1が算出される(ステップ104)。演算プログラム10は、制御部分12に対し、ステップ96で算出されたスウィング速度と、時刻D10に時間H1を加えたバチ22のスウィング開始時刻とを指定する(ステップ106)。
本実施例では、打楽器演奏ロボットは、指揮棒4の加速度の変動幅を考慮してバチのスウィング速度を調整する。これによって、演奏の音量が指揮者の意図に良く追従する。指揮者2が指揮棒4の一振りごとの速さを変化させた場合にも、より指揮に一致した演奏が可能となる。
【0038】
(第5実施例)
本実施例の打楽器演奏ロボットの主要な構成は、図1のとおりである。本実施例の打楽器演奏ロボットは、第一実施例と同様、指揮棒4の動作を撮影装置6によって撮影し、記憶部分26に一時記憶する。以下図10および図11を参照して本実施例を説明する。
【0039】
演算プログラム10は、記憶されたデータを読み込み(ステップ122)、画像処理を施して、指揮棒4の先端の高さ位置のデータを時系列で取り出す(ステップ124)。取り出された指揮棒4の先端の高さ位置と時間との関係の一例を、図11(a)に示す。図中で、指揮棒4が下死点に到達する各時刻をX12,X13,X14で表す。タイミングX14では、指揮者2が演奏音を大きくさせるために指揮棒4を大きく振ったので、指揮棒4の先端の高さの変動幅は、タイミングX13の直前での振幅A13よりも大きくなっている。
演算プログラム10は、指揮棒4の先端の高さ位置のデータを、時間で二回微分して加速度を演算する(ステップ126)。さらに、得られた指揮棒4の上向き加速度の最大値と下向き加速度の最大値の差分から、加速度の変動幅Cを求めて一時記憶する(ステップ128)。指揮棒2の先端の加速度を示す図11(c)中に、指揮棒4の上下動周期毎に記録される加速度の変動幅の一例をC13,C14で示す。指揮棒4はほぼ同じ周期で振られつつ先端の高さの変動幅がA14で大きくなったので、加速度の変動幅C14は直前での変動幅C13よりも大きくなっている。
【0040】
演算プログラム10は、加速度の変動幅がC14で大きくなったことを検出すると、それに対応して演奏の音を大きくする為に、ステップ130でバチ22の下死点位置を下方向に設定する。本実施例では、バチ22の振り下ろしスピードは固定されている。固定されたバチ速度で楽器24の打撃音の強弱を調整するために、バチ22の下死点位置を調整する。バチ22の振り下ろしスピードが固定されていても、下死点位置を下げて深く打ち込むと大きく演奏され、下死点位置を上げて浅く打ち込むと小さく演奏される。
ステップ132で指揮棒の加速度の上方向への変化時刻Diが検出されると、演算プログラム10は、制御部分12にバチ22の下死点を指定してスウィング開始を指令する(ステップ134)。
スウィング開始の指令をうけた制御部分12は、直ちにアーム20の各関節の動作を制御する各ドライバ16に動作の開始指令を与える。各ドライバ16は、動作の指令を各モータ18に対する駆動速度と方向の指令に変換して各モータ18を動かし、これによってアーム20はバチ22を振り降ろす。下死点が下に設定されたバチ22は打楽器24に強く打ち込まれるので、大きな音で演奏が行われる。演奏後の一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
本実施例の演算プログラム10は、加速度の変動幅が小さくなったことを検出場合は、バチ22の下死点位置を打楽器24に接触する範囲を上限として上に設定し、速度の調節を行う。
本実施例では、打楽器演奏ロボットは、指揮者2の指揮に対して、演奏速度と演奏する音の強さの両方に調和した演奏を可能としている。
【0041】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、実施例では、打楽器に対してバチを振り下ろす動作について説明を行ったが、打楽器とロボットの位置関係は様々に変化させることが可能であり、マニュピレータの動作もそれに応じて変更が可能である。その他、実施例の図中に示したロボットのアームやコントローラの構成は、通常のプログラミング作業や装置設計によって自由に変更が可能であり、項目の追加や削除も行うことができる。
例えば、図8と9を参照して説明した実施例では、加速度の変化幅C1、C2によってマニピュレータの移動速度を変化させたが、上向き加速度に転じた時刻から再度上向き加速度に転じるまでの時間(例えばD10−D9、またはD11−D10)から、マニピュレータの移動速度を変化させてもよい。また移動速度を変化させるマニピュレータは楽器を演奏するものに限られず、行進するロボットの場合には行進に用いられるマニピュレータの速度を、指揮棒の動きが上向き加速度に転じた時刻から再度上向き加速度に転じるまでの時間によって増減させることが有用である。この場合、行進ロボット(あるいはロボット群)は指揮者が指揮棒を通して現す速度で行進することになる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時の請求項記載の組み合わせに限定されるものではない。
【0042】
【実施例の効果】
以上のように、本願発明の打楽器演奏ロボットによると、指揮者の指揮棒の動きを撮影して分析し、指揮棒の加速度が上向きに変化する時刻を基準にして演算処理を行うことで、打楽器のバチを振り始める時刻とバチの動作を算出し、その結果に基づいてマニュピレータによる演奏を行うことができる。これにより、指揮者が振る指揮棒の動きに調和した音の大きさやリズムで演奏する、打楽器演奏ロボットを提供することができる。
【図面の簡単な説明】
【図1】本実施例の打楽器演奏ロボットの構成を模式的に示す図。
【図2】実施例1の打楽器演奏ロボットにおいて、バチのスウィング開始時刻を特定するための演算プログラムの処理の概要を示すフローチャート。
【図3】実施例1の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図4】実施例2の打楽器演奏ロボットにおいて、演奏開始を指示するための演算プログラムの処理の概要を示すフローチャート。
【図5】実施例2の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図6】実施例3の打楽器演奏ロボットにおいて、バチを振る速度と演奏開始を指示するための演算プログラムの処理の概要を示すフローチャート。
【図7】実施例3の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図8】実施例4の打楽器演奏ロボットにおいて、バチの速度とバチの下死点と演奏開始を指示する演算プログラムの、処理の概要を示すフローチャート。
【図9】実施例4の指揮棒の動きの画像処理データと、演算された指揮棒の加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図10】実施例5の打楽器演奏ロボットにおいて、バチの速度とバチの下死点と演奏開始を指示する演算プログラムの、処理の概要を示すフローチャート。
【図11】実施例5の指揮棒の動きの画像処理データと、演算された指揮棒の加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【発明の属する技術分野】本発明は、ロボットに楽器を演奏させたり行進させたりする技術に関する。特に指揮者の振る指揮棒の動きに合わせてロボットに楽器を演奏させたり行進させたりする技術に関する。また、指揮者が振る指揮棒の動きから指揮者の意図を認識する装置にも関する。
【0002】
【従来の技術】テーマパーク等のアトラクションで、打楽器を自動演奏するロボットが活躍している。このロボットは、例えばバチを持ったマニュピレータを備えており、演奏する曲目に合わせてマニピュレータを動作させることによってバチが打楽器に打ち下ろされて演奏が行われる。従来の楽器演奏ロボットでは、演奏する曲目の演奏速度や音の強弱が事前に設定されており、設定外の演奏を行わせるためには、楽器演奏ロボットに対してその都度プログラミング言語等で指令を与えなければならない。
特許文献1から3には、指揮者の振る指揮棒の動きに合わせて、自動演奏装置の演奏速度を調整したり、自動演奏装置が発する音量を増減するための技術が開示されている。
【0003】
【特許文献1】
特開平10−55174号公報
【特許文献2】
特開平9−97070号公報
【特許文献3】
特開平6−161440号公報
【0004】
【発明が解決しようとする課題】しかしながら現状では、マニピュレータを使って実際の楽器を実際に演奏する演奏ロボットに対して指揮者が指揮棒を使って指揮することはできない。あるいはマニピュレータを使って実際に行進するロボットに対して指揮者が指揮棒を使って行進速度を指揮することはできない。ロボット側で、指揮者が指揮棒の動きを通して意図する、タイミングや速度やリズムや音の強弱を認識する技術がなく、ロボットが指揮に調和した動きや演奏を行うことができない。
本発明では、行進ロボットや楽器演奏ロボットが、指揮者の振る指揮棒の動きから指揮者が意図するタイミングや速度や音の強弱を認識する技術を提供する。さらに、ロボットの反応時間まで考慮したうえで指揮者が意図するタイミングに合わせた演奏が行われるようにロボットの動作を制御する技術を提供する。本発明が完成すれば、だれでもが指揮棒を振ることによって行進ロボット(あるいはロボット群)や楽器演奏ロボット(あるいはロボット群)を指揮することができる。観客が指揮者となって行進ロボット(あるいはロボット群)に行進させたり楽器演奏ロボット(あるいはロボット群)に演奏を行わせるといった、観客参加型の新しいアトラクションを実現することが可能となる。
【0005】
【課題を解決するための手段と作用】指揮者が振る指揮棒の動きを観測すると、指揮棒が下死点に達した時に演奏音を発生させる意図のもとで、指揮者は指揮棒を振ることがわかる。また、指揮棒が下死点に達した時から次に下死点に達するまでの時間差で、指揮者は意図する速度ないし周期をあらわしていることがわかる。
ロボットの反応速度が無限大であり、指揮棒が下死点に達した時に演奏アクチュエータを始動させることによって、指揮棒が下死点に達した時から遅れないタイミングで演奏音を発生させることができれば、格別の制御技術は必要とされない。しかしながら、実際にはロボットの反応に時間がかかり、演奏アクチュエータを始動させてから実際に演奏音が発生するまでには時間を要する。そのために、指揮棒が下死点に達した時に演奏アクチュエータを始動させる技術では、指揮者が意図するタイミングよりも演奏音の発生タイミングが遅れてしまう。人が楽器を演奏するときには、指揮棒の動きから下死点に達するタイミングを予測し、そのタイミングで演奏音が発生するように自己の運動開始タイミングをコントロールしている。
演奏ロボットによって指揮棒の動きにあわせた演奏をするためには、指揮棒が下死点に達する直前のタイミングを捉えてそのタイミングで演奏アクチュエータを始動させる技術が必要とされる。
【0006】
請求項1の発明では、指揮者が振る指揮棒の動きから、指揮者が意図する速度を認識する装置を実現する。請求項1の装置は、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点(任意の一点でよい)の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、前回に特定された時刻から今回に特定された時刻までの時間差から指揮者の意図する速度を計算する手段を備えており、指揮者が振る指揮棒の動きから指揮者の意図を認識する。
【0007】
指揮者は、指揮棒が下死点に達した時から次に下死点に達するまでの時間差で意図する速度ないし周期をあらわす。本発明者らの研究によって、人が意図する速度をあらわすため用いる下死点は、人が認識する下死点であって、指揮棒の移動軌跡を客観的に追跡することで得られる下死点ではないことがわかった。客観的な下死点を用いて、下死点に達した時から再び下死点に達するまでの時間差を求めてみても、指揮者の意図する速度に対応しない。
本発明者の研究によって、人が意図する速度をあらわすため用いる下死点は、指揮棒の特定点(任意の一点でよい)の上下方向の加速度が上向き加速度に転じた直後に現われることが確認され、加速度が上向き加速度に転じた時刻から再び上向き加速度に転じるまでの時間差が、指揮者の意図する速度ないし周期を正確に現していることが確認された。ここでいう上向き加速度は、上昇運動中であれば増速期間に生じる加速度をいい、下降運動中であれば減速期間に生じる加速度をいう。
本装置は、この研究の成果によって実現されたものであり、指揮棒の任意の一点の高さ位置の変化から、加速度が上向き加速度に転じた時刻から再び上向き加速度に転じるまでの時間差によって速度ないし周期を計算するために、指揮者が指揮棒の動きを通して現す速度ないし周期を認識することができる。
【0008】
請求項2〜4の発明では、指揮者が振る指揮棒の動きから、指揮者が意図する時に演奏する(演奏音を発生する)ロボットを実現する。
請求項2記載の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さ位置の変化から指揮棒の上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、上向き加速度に転じた時刻に作動開始する演奏アクチュエータとを備えている。
【0009】
本発明者らによる指揮棒の動きの解析によって、指揮棒の特定点(通常は先端)が下死点に達する直前に、その特定点の加速度が上向き加速度に転じることがわかった。また、上向き加速度に転じる時刻と下死点に達する時刻との時間差は短く、ロボットの反応時間にほぼ等しいことがわかった。即ち、通常サイズのロボットを通常のアクチュエータで動作させる場合のロボットの反応時間は一定の範囲内に入るのに対し、上向き加速度に転じる時刻から下死点に達するまでに要する時間はそのロボットの反応時間範囲の中央近辺にあることを確認した。
そこで多くのロボットでは、上向き加速度に転じる時刻に演奏アクチュエータを始動させると、指揮棒が下死点に達するタイミングと、ロボットの動作によって得られる演奏音が発生するタイミングがほぼ一致することが確認された。指揮棒の加速度が上向き加速度に転じる時刻に演奏アクチュエータを始動させると、ロボットによって指揮者が意図するタイミングで演奏音を得ることができ、ロボットを指揮者が意図するように指揮することができる。
【0010】
ロボットの反応時間が充分に早い場合、上向き加速度に転じる時刻に演奏アクチュエータを始動すると、演奏音の発生タイミングが早すぎることがある。この場合には、加速度が上向き加速度に転じる時刻を基準にし、それよりも遅れて演奏アクチュエータを始動させる。
請求項3の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さの変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、前回に特定された時刻と今回に特定された時刻とから周期を算出する手段と、上向き加速度に転じた時刻と、周期と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから作動開始時刻を算出する手段と、算出された作動開始時刻で作動開始する演奏アクチュエータとを有する。
【0011】
指揮棒の動きが上向き加速度に転じる時刻を複数回に亘って観測すると、指揮者が振る指揮棒の動きの周期を正確に把握することができることを確認した。下死点に達する時刻や上死点に達する時刻から周期を測定する場合に比して、周期を正確に計測することができる。
本発明では、指揮者が意図する演奏音を発生させたいタイミングにわずかに先立つタイミングを把握し(これが上向き加速度に転じる時刻)、これを基準時間として指揮棒が下死点に達する時刻を予測する。このとき、上向き加速度に転じる時刻から計算される正確な周期を用いることから、指揮棒が下死点に達する時刻を正確に予測することができる。
本発明では、指揮棒が下死点に達する時刻を正確に予測し、さらに、演奏アクチュエータの作動開始時から実際の演奏までに要する時間を使って演奏アクチュエータの作動開始時刻を計算することから、指揮者が意図するタイミングに演奏音を発生させることができ、指揮者が意図した演奏をロボットに行わせることができる。
【0012】
周期に基いて上向き加速度に転じる時刻から下死点に達する時刻までの時間差を算出するのに代えて、前の周期での時間差を採用することもできる。
請求項4の楽器演奏ロボットは、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さの変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を特定する手段と、指揮棒の特定点の高さが下死点に到達する時刻を特定する手段と、上向き加速度に転じた時刻と、上向き加速度に転じた時刻から指揮棒が下死点に到達した時刻までの時間差と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから作動開始時刻を算出する手段と、算出された作動開始時刻で作動開始する演奏アクチュエータを有する。
【0013】
この場合、指揮棒の先回の振動周期で観測された上向き加速度に転じた時刻と下死点に到達した時刻の時間差を用いて、今回の周期で下死点に到達する時刻を予測する。即ち、今回の周期において観測された上向き加速度に転じた時刻に、先の周期で観測された前記時間差を加えることによって、今回の周期で下死点に到達する時刻を予測する。前記時間差は短く、先回の周期と今回の周期とでずれることがあっても、短い時間がずれるだけであることからそのズレは著しく小さい。この技術によっても、指揮棒が下死点に到達する時刻を正確に予測することができる。
本発明では、指揮棒が下死点に達する時間を正確に予測し、さらに、演奏アクチュエータの作動開始時から実際の演奏までに要する時間を使って演奏アクチュエータの作動開始時刻を計算することから、指揮棒が下死点に達する時に合わせて演奏音を発生させることができ、指揮者が意図したタイミングでロボットに演奏させることができる。
【0014】
請求項5に記載されるように、演算された加速度の変動幅から演奏アクチュエータの動作速度を決定することが好ましい。
指揮棒の加速度の変動幅が小さいときには演奏アクチュエータの動作速度を遅くし、逆に、指揮棒の加速度の変動幅が大きいときには演奏アクチュエータの動作速度を速くすることで、指揮者が意図する音量で演奏することができる。
【0015】
打楽器を演奏する場合、演奏アクチュエータの動作速度を変化させることに代えて、請求項6に記載されるように、演算された加速度の変動幅からバチの下死点位置を決定することが好ましい。
指揮棒の加速度の変動幅が小さいときにはバチの下死点位置を高くして楽器に打ち込む量を小さくし、逆に、指揮棒の加速度の変動幅が大きいときにはバチの下死点位置を低くして楽器に打ち込む量を大きくする。前者では小さな音量で演奏され、後者では大きな音量で演奏される。指揮者が意図する音量で演奏することができる。
【0016】
行進するロボットあるいはロボット群の場合、指揮者が振る指揮棒の速度が緩やかであれば低速で行進し、指揮棒の速度が急速であれば高速で行進することが好ましい。即ち、指揮棒の動きの速度に合わせてロボットの動作速度を増減する必要が存在する。
請求項7のロボットはその要求に応えるものであり、指揮者が振る指揮棒を撮影し続ける撮影装置と、撮影された指揮棒の特定点の高さ位置の変化から指揮棒の動きの上下方向の加速度を時々刻々に演算する手段と、演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、計算された速度によってロボットの姿勢を変えるアクチュエータの動作速度を変えるアクチュエータコントローラとを備えている。
【0017】
このロボットは、指揮者が振るし指揮棒の動きに合わせて動作速度を変える。指揮者は指揮棒を使ってロボット(またはロボット群)の動作を速めたり緩やかにすることができ、自在に指揮することができる。
【0018】
【発明の実施の形態】以下に説明する実施例の主要な特徴を次に列記する。
(形態1)打楽器演奏ロボットは、指揮者が振る指揮棒を撮影する撮影装置と、コントローラと、打楽器用のバチを保持してスイングするマニュピレータから構成されている。
(形態2)形態1のコントローラは、撮影された指揮棒の動きを分析してマニュピレータの動作開始時刻を演算する演算プログラムと、その演算結果を受けて、マニュピレータの動作を決定して指令を出す制御部分と、演算と制御に使用されるデータを一時記憶する記憶部分から構成される。
(形態3)形態1のマニュピレータは、多関節のアームと、それぞれの関節を駆動するモータと、モータを操作するドライバから構成される。
【0019】
【実施例】以下に、本発明の打楽器演奏ロボットの実施例を、添付図面を参照しながら詳細に説明する。
(第1実施例)
図1は、本発明の第1実施例に係わる打楽器演奏ロボットの構成を示している。指揮者2は指揮棒4を上下左右に振って、演奏者に演奏させたい内容を表現する。指揮者2は指揮棒4を用いて類似の動きを周期的に繰り返している。本発明者らの研究によって、指揮者2が指揮棒4の動きを通じて、下記の演奏を意図していることが判明した。
(1) 指揮者2は、指揮棒4を下死点に振り降ろしたタイミングで、打楽器24から音が発生することを希望している。
(2) 指揮者2は、指揮棒4の周期内における加速度の変動幅の大小で音量を指示する。この場合、上下方向の加速度の変動幅の大小で、指揮者2の意図を代表させることができる。
本発明者らの研究によって、さらに下記の事象が確認された。
(3) 指揮棒4が下死点に到達するに先立って、指揮棒4の加速度が下向き加速度から上向き加速度に転じるタイミングが存在する。
(4) 上向き加速度に転じるタイミングから下死点に到達するまでの時間差は短い。
(5) 前記時間差は、制御部12がマニュピレータ14に動作の開始信号を出力するタイミングからバチ22が打楽器24を打撃するタイミングまでの時間差にほぼ等しい。即ち、上向き加速度に転じるタイミングで制御部12が動作開始信号を出力すると、指揮棒4が下死点に到達するタイミングでバチ22が打楽器24を打撃する関係が得られる。
(6) 上向き加速度に転じるタイミングを繰返して観測すると、指揮棒4の運動周期が正確に計算される。
(7) 上向き加速度に転じるタイミングから下死点に到達するまでの時間差は、前記の周期に比例する。その比例計数は、指揮者2によらずにほぼ一定である。
(8) 下記の時間差と時刻の間には下記の関係が成立する。
・T1:指揮棒4の動きが上向き加速度に転じるタイミング
・T2:指揮棒4が下死点に到達するタイミング
・T3:指揮棒4の動きの周期
・T4:制御部12がマニュピレータ14に動作開始信号を出力したタイミングからバチ22が打楽器24を打撃するタイミングまでの時間差
・T5:タイミングT2でバチ22が打楽器24を打撃する結果を実現するのに必要な、制御部12が動作開始信号を出力するタイミング
前記(7)で記載したように、上向き加速度に転じるタイミングT1から下死点に到達するタイミングT2までの時間差T2−T1は、周期T3に比例するから下記(1)式が成立する。
T2−T1=k・T3 (kは定数) (1)
また、当然に下記(2)式が成立する。
T5+T4=T2 (2)
(1)(2)式から、下記(3)式が得られる。
T5=T1+k・T3−T4 (3)
ここで、上向き加速度に転じるタイミングT1から下死点に到達するタイミングT2までの時間差T2−T1(=k・T3)が、制御部12が動作開始信号を出力したタイミングからバチ22が打楽器24を打撃するタイミングまでの時間差T4に等しいとすると、
T5=T1 (4)
式となる。
即ち、タイミングT2でバチ22が打楽器24を打撃する結果を実現するのに必要な制御部12が動作開始信号を出力するタイミングT5は、(3)式で計算される。特に、上向き加速度に転じるタイミングT1から下死点に到達するタイミングT2までの時間差T2−T1(=k・T3)が、制御部12が動作開始信号を出力してからバチ22が打楽器24を打撃するまでの時間差T4に等しい場合には、(4)式に単純化される。
(9) 指揮者2は、指揮棒4の動きの加速度の変動幅で、演奏させたい音量を表現する。本発明者の研究によって、指揮者2は、指揮棒の運動の振幅でもなく、速度の変動幅でもなく、加速度の変動幅で演奏させたい音量を表現することが見出された。
本実施例のロボットは、上記の知見に基いて制御される。
【0020】
本実施例の打楽器演奏ロボットは、指揮者2が振る指揮棒4を撮影し続ける撮影装置6と、コントローラ8と、打楽器24用のバチ22を保持してスイングするマニュピレータ14から構成されている。コントローラ8は、撮影された指揮棒の動きを分析してマニュピレータ14の始動時刻を演算する演算プログラム10と、その演算結果に基いてマニュピレータ14に動作開始指令を出力する制御部分12と、撮影データや演算結果等を一時記憶する記憶部分26から構成されている。マニュピレータ14は、多関節のアーム20と、それぞれの関節を駆動するモータ18と、モータを操作するドライバ16から構成されている。
【0021】
打楽器演奏ロボットは、指揮棒4の動作を撮影装置6によって撮影し続ける。得られた指揮棒4の画像をコントローラ8の記憶部分26に送る。コントローラ8の演算プログラム10は、記憶部分26に記憶された画像を分析し、マニピュレータ14の始動(動作開始)時刻を特定する。
打楽器演奏ロボットが、指揮棒4の動きに合わせて打楽器24を演奏するためには、指揮棒4が下死点に到達するよりも前にマニュピレータ14を始動させる必要がある。即ち、マニュピレータ14の始動時刻は、指揮棒4の下死点到達時刻に対して、マニピュレータ14が始動してからバチ22をスウィングさせるのに要する時間だけ前の時刻でなければならない。本実施例の演算プログラム10は、この始動時刻を算出するために、図2のフローチャートに示す一連の処理を行い、動作開始信号をマニュピレータ14に出力する。以下、フローチャート及び図3の指揮棒の先端の動作の演算データとバチの位置の一例を参照しつつ、さらに詳細に説明する。
【0022】
本実施例のコントローラ8の記憶部分26には、指揮棒4の動きが上向き加速度に転じる(基準時刻)から下死点に到達するまでの時間と、指揮棒4の動きの周期Tとの間に成立する比率係数kが記憶されている。
演算プログラム10は、一定時間ごとに画像データを取り込んで記憶する(ステップ2)。一定時間ごとに取り込まれた画像データを画像処理して指揮棒4の先端(これがこの実施例の特定点である。特定点は指揮棒の先端に限られず、任意の一点を採用することができる)位置を特定し、その高さを特定する(ステップS4)。この結果、指揮棒4の先端の高さが、所定時間間隔で時系列で記録される(ステップ4)。時系列で記録された指揮棒4の先端の高さと、時間との関係の一例を、図3(a)に示す。ここでは、指揮棒4が下死点に到達する時刻をXとし、周期の進行に合わせてX0,X1,X2で表している。
【0023】
演算プログラム10は、指揮棒4の先端高さの時系列データを時間で微分して指揮棒4の上下方向の速度を求め、時系列で記録する(ステップ8)。図3(b)に、指揮棒4の先端の上下方向の速度を示す。演算プログラム10は、得られた指揮棒4の先端の上下方向の速度を再度時間で微分し、指揮棒4の上下方向の加速度を求めて時系列で記憶する(ステップ10)。図3(c)に、指揮棒4の先端の上下方向の加速度を示す。ここで、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dが検出される(ステップ12)。図3(c)では、周期の進行に合わせて、上向き加速度に転じる時刻がD0,D1,D2で表されている。ここでいう上向き加速度は、上昇運動中であれば増速期間に生じる加速度をいい、下降運動中であれば減速期間に生じる加速度をいう。指揮棒4の先端が下死点に到達するに先立って、指揮棒4の下降運動が減速されることから、指揮棒4の下死点到達時刻Xの前に、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dが存在する。図3(a)と(c)から明らかに、上向き加速度に転じる時刻Dは、下死点に到達する時刻Xにわずかに先行する。時刻Dを基準時刻にしてロボットを制御すると、ロボットの演奏動作を時刻Xに完了させることが可能となる。そこで本実施例では、時刻Dを基準時刻として記憶する(ステップS12)。
【0024】
演算プログラム10は、指揮棒4の画像データの監視と加速度の計算を繰返す(ステップ2,10)。最初に上向き加速度に転じる時刻D0が観測され、次に上向き加速度に転じる時刻D1が再度検出される場合を例にして説明すると、最初に観測された上向き加速度に転じる時刻D0から、次に観測された上向き加速度に転じる時刻D1までの時間を計算して周期T1とする(ステップ14)。研究によって、時刻D1から、周期Tに係数k(この場合は定数)を乗じた時間だけ遅れたタイミングで指揮棒4が下死点に到着することが確認されている。この関係は全ての周期に成立する。そこで、下記式が成立する。
下死点到着時刻X=上向き加速度に転じた時刻D + k・T
(kは係数/定数であり、Tは周期である)の関係が成立することが確認されている。
マニピュレータ14を動かし始めてからバチ22が楽器24を打撃するまでに要する時間Gが予め測定されている。そこで、下死点到着予定時刻Xから所要時間Gだけ先立つタイミングでマニピュレータ14を動かし始めると、指揮棒4が下死点に到着する時刻Xに、バチ22が楽器24を打撃する関係が得られる。
即ち、「D+k×T−G」の時刻にマニピュレータ14を動かし始めると、それからGだけ後のタイミングである「D+k×T」の時刻に楽器24を打撃することになり、その打撃時刻は、ちょうど指揮棒4が下死点に到着する時刻Xに一致する。
バチのスウィングに要する時間Gは、マニピュレータ14の動作速度で決定される。実験によって、通常のモータを活用することで、スウィングに要する時間Gをk×T以下にすることができることが確認されている。
即ち上向き加速度に転じたことを確認してから、k×T−Gを計算しても、その時間は正の値をとり、手遅れになることはない。本実施例では、正の値をとるk×T−Gを計算してその値をHとする(ステップ16)。演算プログラム10は、上向き加速度に転じたことを確認してから、時間Hだけ後のタイミングで制御部分12に、マニピュレータ14へ動作開始信号を出力するように指示する(ステップ18)。
【0025】
スウィング動作の開始時刻D+Hで、制御部分12は、マニュピレータ14のアーム20の各関節の動作を制御するモータ18の各ドライバ16に、動作開始指令を与える。各ドライバ16は、動作開始指令によってモータ18を始動させる結果、アーム20がバチ22を振り降ろし始める。バチ22が打楽器24に到達して演奏が行われた一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
【0026】
図3(D)に、バチ22の先端の位置を示す。なお、図3の時間軸は、(a)〜(D)で共通である。演算プログラム10によって、マニュピレータ14のスウィング開始時刻を、時刻Dから時間Hだけ後の時刻Gに調整したことにより、指揮棒4が下死点に到着する時刻Xに、バチ22も下死点に到達して打楽器24を演奏している。
演算プログラム10は、指揮が続いている間、指揮棒の画像データの監視と加速度の計算を続け、指揮棒4の先端の加速度が上向き加速度に転じる時刻Diが検出される度に周期Tiを求め、周期Tiから時間Hiを算出し、時刻Diと時間Hiから時刻Giを求め、時刻Giにおいて制御部分12がマニュピレータ14にスウィング開始開始指令を出力する処理を実行しつづける。
【0027】
(第2実施例)
本実施例に係わる打楽器演奏ロボットの主要な構成は、図1と同じであり、重複説明を割愛する。以下、一連の演算プログラム10の処理について、図4の処理のフローチャート及び図5の指揮棒の動作の演算データとバチの位置の一例を参照しつつ、さらに詳細に説明する。
【0028】
演算プログラム10は、一定時間ごとに画像データを取り込んで記憶する(ステップ32)。次に画像処理して指揮棒4の先端を特定し、その高さを特定する(ステップS34)。この結果、指揮棒4の先端の高さが、所定時間間隔で時系列で記録される(ステップ34)。時系列で記録された指揮棒4の先端の高さと、時間との関係の一例を、図5(a)に示す。ここでは、指揮棒4が下死点に到達する時刻をXとし、周期の進行に合わせてX3,X4,X5で表している。ステップS36で、指揮棒4が下死点に到達する時刻をX3,X4,X5を記録していく。
【0029】
本実施例における演算プログラム10でも、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dが検出されると(ステップ42)、演奏開始時刻算出のための基準時刻としてこれを記憶する。
時刻X3において、演算プログラム10は、時刻D3から時刻X3までの時間を算出し、指揮棒4の先端の加速度が上向き加速度に転じる時刻D3から指揮棒4が下死点に到達する時刻X3までの時間F3を得る。演算プログラム10は、時間F3からマニュピレータ14がバチ22をスウィングするのに必要な時間Gを減じた時間Hを計算する(ステップ46)。
時刻D4において、演算プログラム10は、バチ22のスウィング開始時刻を算出する。バチ22のスウィング開始時刻は、時刻D4から時間Hだけ経過した後の時刻として算出される(ステップ48)。先の周期で算出しておいたF3を利用し、時刻D4を用いて下死点到達時刻X4を予想する。制御部分12は、時刻D4の経過直後に、D4+(X3−D3)―Gの時刻で、マニュピレータ14を始動させる。マニュピレータ14は、始動後Gだけ経過した時点で打楽器24を打撃することから、D4+(X3−D3)のタイミングで音を発生する。これは今回の周期で指揮棒4が下死点に到達する時刻X4にほぼ等しい。
今回の周期で指揮棒4が下死点に到達するとその時刻X4からD4を減じて、今回の周期で指揮棒4の先端の加速度が上向き加速度に転じた時刻D4から指揮棒4が下死点に到達した時刻X4までに要した時間F4を計算して次の周期での利用に備える。
【0030】
演算プログラム10は、指揮棒の画像データの監視と加速度の計算を繰返す(ステップ32,40)。再び指揮棒4の先端の加速度が上向き加速度に転じる時刻D5が検出されると(ステップ42)、演算プログラム10は、制御部分12に対し、D4に時間H(X3−D3−G)を加えた時刻G5をバチ22のスウィング開始時刻とする(ステップ48)。
スウィング開始時刻の指定をうけた制御部分12は、スイング開始時刻に、アーム20の動作を制御する各ドライバ16に対して、動作の開始指令を与える。ドライバ16は動作の指令を駆動速度と方向の指令に変換してモータ18を動かし、アーム20がバチ22を振り降ろす。バチ22が打楽器24に到達して演奏が行われた一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
この実施例では、直前周期において、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dから指揮棒4が下死点に到達する時刻Xまでの時間差Fを求め、その時間差Fを利用して、次の周期で指揮棒4が下死点に到達する時刻Xを求める。直前周期を添え字i―1として次の周期を添え字iで表すと、
Fi−1=(Xi−1)−(Di−1)
Xi=Di+Fi−1
の関係を用いる。
【0031】
バチ22の先端の位置を図5(D)に示す。演算プログラム10によって、マニュピレータ14のスウィング開始時刻を、時刻Dから時間H後の時刻Gに調整したことにより、指揮棒4が下死点に到着する時刻にバチ22も下死点に到達し、打楽器を演奏している。
演算プログラム10は、指揮が続いている間、指揮棒の画像データの監視と加速度の計算を続け、指揮棒4の先端の加速度が上向き加速度に転じる時刻Diが検出される度に、時間Hを調整した時刻をGiを指定して、制御部分12にスウィング開始の指令を行い、演奏を続ける。
【0032】
(第3実施例)
本実施例の打楽器演奏ロボットの主要な構成は、図1に同じである。図6及び図7を参照して本実施例を詳細に説明する。
【0033】
演算プログラム10は、指揮棒4の動作を記憶した画像データを読み込み(ステップ62)、画像処理を施して、指揮棒4の先端の高さ位置のデータを時系列で取り出す(ステップ64)。取り出された指揮棒4の先端の高さ位置と時間との関係の一例を、図7(a)に示す。図中で、指揮棒4が下死点に到達する各時刻をX6,X7,X8で表す。さらに演算プログラム10は、指揮棒4の先端の高さ位置のデータを、時間で二階微分して加速度を演算し、加速度が上向き加速度に転じる時刻Dを特定する(ステップ68、70、72)。指揮棒4の先端の高さ位置のデータを時間で一階微分して得られた速度を図7(b)に示し、指揮棒2の先端の加速度を図7(c)に示す。また、図7(c)に、指揮棒4の先端の加速度が上向き加速度に転じる時刻をD6,D7,D8で示す。
【0034】
本実施例では、マニュピレータ14がバチ22をスウィングする所用時間が、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dから指揮棒の下死点到達時刻Xまでとほぼ等しくなっている。本実施例における演算プログラム10は、ステップ70で時刻Dが検出されると、直ちに、ステップ72で制御部分12にバチ22のスウィング開始を指令する。
スウィング開始の指令をうけた制御部分12は、直ちにアーム20の動作を制御する各ドライバ16に動作の開始指令を与える。各ドライバ16は、動作の指令を各モータ18に対する駆動速度と方向の指令に変換して各モータ18を動かす。これによってアーム20はバチ22を振り降ろす。バチ22が打楽器24に到達して演奏が行われた一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
【0035】
バチ22の先端の位置を図7(D)に示す。本実施例では、マニュピレータ14のスウィングに要する時間が各時刻Dから各時刻Xまでの時間にほぼ等しくなっているので、指揮棒4の下死点到達時刻にバチ22も下死点に到達し、打楽器24を演奏する。
本実施例では、演算プログラム10が、指揮棒4の加速度が上向き加速度に転じる時刻Dが算出されると直ちに制御部分12にバチ22のスウィングの開始を指令する。これにより、指揮者2が指揮棒4を振り始めた最初の下死点到達時から、打楽器演奏ロボットが演奏を行うことができる。
本実施例の打楽器演奏ロボットは、マニュピレータ14のスウィングの最高速度が、指揮棒4の先端の加速度が上向き加速度に転じる時刻Dから下死点到達時刻Xまでとほぼ等しい場合等に、特に有効である。多くのロボットで、指揮棒が上向き加速度に転じる時刻から下死点に達するまでに要する時間がロボットの反応時間にほぼ等しいことが確認されており、第3実施例の適用範囲は広い。
【0036】
(第4実施例)
図8および図9を参照して本実施例を詳細に説明する。
本実施例の打楽器演奏ロボットの主要な構成は、図1のとおりである。本実施例の打楽器演奏ロボットは、記憶部分26に、予め実験的に得られている指揮棒4の先端の高さ方向の動作の周期Tに対する、基準時刻から指揮棒の下死点到達時刻までの時間の比率kと、加速度の変動幅に対応するバチの速度の変動係数jの関係を記憶している。
【0037】
指揮が開始されると、演算プログラム10は、撮影によって得られた指揮棒4の先端の高さ位置のデータを読み込んで画像処理をおこない(ステップ82,84)、時間で二回微分して加速度を演算し(ステップ90)、指揮棒4の先端の加速度が上向き加速度に転じる最初の時刻D9を得る(ステップ90)。さらに指揮棒の画像データの監視を続け、上向き加速度と下向き加速度の変動幅C1を計算し(ステップ92)、加速度の変動幅を基準変動幅と比較して、その結果を元にバチ22のスウィング速度を設定する係数jを選択する(ステップ94)。選択された係数jを標準のスウィング速度に乗じて、バチ22のスウィング速度を算出する(ステップ96)。算出されたスウィング速度から、バチ22のスウィングに要する時間Giを算出する(ステップ98)。再び指揮棒4の先端の加速度が上向き加速度に転じる時刻D10が検出されると(ステップ100)、演算プログラム10は、D9からD10までの時間を周期T3とする(ステップ102)。周期T3に係数kを乗じた時間からスウィング所要時間G1を減じると、時刻D10からバチ22のスウィング開始時刻までの時間H1が算出される(ステップ104)。演算プログラム10は、制御部分12に対し、ステップ96で算出されたスウィング速度と、時刻D10に時間H1を加えたバチ22のスウィング開始時刻とを指定する(ステップ106)。
本実施例では、打楽器演奏ロボットは、指揮棒4の加速度の変動幅を考慮してバチのスウィング速度を調整する。これによって、演奏の音量が指揮者の意図に良く追従する。指揮者2が指揮棒4の一振りごとの速さを変化させた場合にも、より指揮に一致した演奏が可能となる。
【0038】
(第5実施例)
本実施例の打楽器演奏ロボットの主要な構成は、図1のとおりである。本実施例の打楽器演奏ロボットは、第一実施例と同様、指揮棒4の動作を撮影装置6によって撮影し、記憶部分26に一時記憶する。以下図10および図11を参照して本実施例を説明する。
【0039】
演算プログラム10は、記憶されたデータを読み込み(ステップ122)、画像処理を施して、指揮棒4の先端の高さ位置のデータを時系列で取り出す(ステップ124)。取り出された指揮棒4の先端の高さ位置と時間との関係の一例を、図11(a)に示す。図中で、指揮棒4が下死点に到達する各時刻をX12,X13,X14で表す。タイミングX14では、指揮者2が演奏音を大きくさせるために指揮棒4を大きく振ったので、指揮棒4の先端の高さの変動幅は、タイミングX13の直前での振幅A13よりも大きくなっている。
演算プログラム10は、指揮棒4の先端の高さ位置のデータを、時間で二回微分して加速度を演算する(ステップ126)。さらに、得られた指揮棒4の上向き加速度の最大値と下向き加速度の最大値の差分から、加速度の変動幅Cを求めて一時記憶する(ステップ128)。指揮棒2の先端の加速度を示す図11(c)中に、指揮棒4の上下動周期毎に記録される加速度の変動幅の一例をC13,C14で示す。指揮棒4はほぼ同じ周期で振られつつ先端の高さの変動幅がA14で大きくなったので、加速度の変動幅C14は直前での変動幅C13よりも大きくなっている。
【0040】
演算プログラム10は、加速度の変動幅がC14で大きくなったことを検出すると、それに対応して演奏の音を大きくする為に、ステップ130でバチ22の下死点位置を下方向に設定する。本実施例では、バチ22の振り下ろしスピードは固定されている。固定されたバチ速度で楽器24の打撃音の強弱を調整するために、バチ22の下死点位置を調整する。バチ22の振り下ろしスピードが固定されていても、下死点位置を下げて深く打ち込むと大きく演奏され、下死点位置を上げて浅く打ち込むと小さく演奏される。
ステップ132で指揮棒の加速度の上方向への変化時刻Diが検出されると、演算プログラム10は、制御部分12にバチ22の下死点を指定してスウィング開始を指令する(ステップ134)。
スウィング開始の指令をうけた制御部分12は、直ちにアーム20の各関節の動作を制御する各ドライバ16に動作の開始指令を与える。各ドライバ16は、動作の指令を各モータ18に対する駆動速度と方向の指令に変換して各モータ18を動かし、これによってアーム20はバチ22を振り降ろす。下死点が下に設定されたバチ22は打楽器24に強く打ち込まれるので、大きな音で演奏が行われる。演奏後の一定時間後に、制御部分12は、アーム20を元の位置に戻す動作の指令を各ドライバ16に与え、ドライバ16はモータ18を逆方向に駆動してアーム20を元の位置に戻す。
本実施例の演算プログラム10は、加速度の変動幅が小さくなったことを検出場合は、バチ22の下死点位置を打楽器24に接触する範囲を上限として上に設定し、速度の調節を行う。
本実施例では、打楽器演奏ロボットは、指揮者2の指揮に対して、演奏速度と演奏する音の強さの両方に調和した演奏を可能としている。
【0041】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、実施例では、打楽器に対してバチを振り下ろす動作について説明を行ったが、打楽器とロボットの位置関係は様々に変化させることが可能であり、マニュピレータの動作もそれに応じて変更が可能である。その他、実施例の図中に示したロボットのアームやコントローラの構成は、通常のプログラミング作業や装置設計によって自由に変更が可能であり、項目の追加や削除も行うことができる。
例えば、図8と9を参照して説明した実施例では、加速度の変化幅C1、C2によってマニピュレータの移動速度を変化させたが、上向き加速度に転じた時刻から再度上向き加速度に転じるまでの時間(例えばD10−D9、またはD11−D10)から、マニピュレータの移動速度を変化させてもよい。また移動速度を変化させるマニピュレータは楽器を演奏するものに限られず、行進するロボットの場合には行進に用いられるマニピュレータの速度を、指揮棒の動きが上向き加速度に転じた時刻から再度上向き加速度に転じるまでの時間によって増減させることが有用である。この場合、行進ロボット(あるいはロボット群)は指揮者が指揮棒を通して現す速度で行進することになる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時の請求項記載の組み合わせに限定されるものではない。
【0042】
【実施例の効果】
以上のように、本願発明の打楽器演奏ロボットによると、指揮者の指揮棒の動きを撮影して分析し、指揮棒の加速度が上向きに変化する時刻を基準にして演算処理を行うことで、打楽器のバチを振り始める時刻とバチの動作を算出し、その結果に基づいてマニュピレータによる演奏を行うことができる。これにより、指揮者が振る指揮棒の動きに調和した音の大きさやリズムで演奏する、打楽器演奏ロボットを提供することができる。
【図面の簡単な説明】
【図1】本実施例の打楽器演奏ロボットの構成を模式的に示す図。
【図2】実施例1の打楽器演奏ロボットにおいて、バチのスウィング開始時刻を特定するための演算プログラムの処理の概要を示すフローチャート。
【図3】実施例1の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図4】実施例2の打楽器演奏ロボットにおいて、演奏開始を指示するための演算プログラムの処理の概要を示すフローチャート。
【図5】実施例2の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図6】実施例3の打楽器演奏ロボットにおいて、バチを振る速度と演奏開始を指示するための演算プログラムの処理の概要を示すフローチャート。
【図7】実施例3の指揮棒の動きの画像処理データと、演算された指揮棒の速度と加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図8】実施例4の打楽器演奏ロボットにおいて、バチの速度とバチの下死点と演奏開始を指示する演算プログラムの、処理の概要を示すフローチャート。
【図9】実施例4の指揮棒の動きの画像処理データと、演算された指揮棒の加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
【図10】実施例5の打楽器演奏ロボットにおいて、バチの速度とバチの下死点と演奏開始を指示する演算プログラムの、処理の概要を示すフローチャート。
【図11】実施例5の指揮棒の動きの画像処理データと、演算された指揮棒の加速度と、打楽器演奏ロボットに把持されたバチの動作を模式的に示す図。
Claims (7)
- 指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、
前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、
を備えている、指揮者が振る指揮棒の動きから指揮者の意図を認識する装置。 - 指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を特定する手段と、
上向き加速度に転じた時刻に作動開始する演奏アクチュエータと、
を備えている楽器演奏ロボット。 - 指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、
前回に特定された時刻と今回に特定された時刻とから指揮者が意図する周期を算出する手段と、
上向き加速度に転じた時刻と、周期と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから、作動開始時刻を算出する手段と、
算出された作動開始開始時刻で作動開始する演奏アクチュエータと、
を備えている楽器演奏ロボット。 - 指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を特定する手段と、
指揮棒の特定点の高さが下死点に到達する時刻を特定する手段と、
上向き加速度に転じた時刻と、上向き加速度に転じた時刻から指揮棒が下死点に到達した時刻までの時間差と、演奏アクチュエータの作動開始時から実際の演奏までに要する時間とから、作動開始時刻を算出する手段と、
算出された作動開始時刻で作動開始する演奏アクチュエータと、
を備えている楽器演奏ロボット。 - 演算された加速度の変動幅から演奏アクチュエータの動作速度を決定することを特徴とする請求項2〜4のいずれかの楽器演奏ロボット。
- 演算された加速度の変動幅からバチの下死点位置を決定することを特徴とする請求項項2〜4のいずれかの打楽器演奏ロボット。
- 指揮者が振る指揮棒を撮影し続ける撮影装置と、
撮影された指揮棒の特定点の高さ位置の変化から上下方向の加速度を時々刻々に演算する手段と、
演算された加速度が上向き加速度に転じる時刻を次々に特定する手段と、
前回に特定された時刻から今回に特定された時刻までの時間差から、指揮者の意図する速度を計算する手段と、
計算された速度によって、ロボットの姿勢を変えるアクチュエータの動作速度を変えるアクチュエータコントローラと、
を備えているロボット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002344154A JP2004177686A (ja) | 2002-11-27 | 2002-11-27 | 指揮棒の動きを認識する装置と楽器演奏ロボット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002344154A JP2004177686A (ja) | 2002-11-27 | 2002-11-27 | 指揮棒の動きを認識する装置と楽器演奏ロボット |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004177686A true JP2004177686A (ja) | 2004-06-24 |
Family
ID=32705731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002344154A Pending JP2004177686A (ja) | 2002-11-27 | 2002-11-27 | 指揮棒の動きを認識する装置と楽器演奏ロボット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004177686A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293042A (ja) * | 2006-04-25 | 2007-11-08 | Nintendo Co Ltd | 音楽演奏プログラムおよび音楽演奏装置 |
JP2011252994A (ja) * | 2010-06-01 | 2011-12-15 | Casio Comput Co Ltd | 演奏装置および電子楽器 |
GB2496521A (en) * | 2011-11-11 | 2013-05-15 | Fictitious Capital Ltd | Computerised musical instrument using motion capture and analysis |
US8666695B2 (en) | 2009-09-22 | 2014-03-04 | Samsung Electronics Co., Ltd. | Real-time motion recognition system and method |
-
2002
- 2002-11-27 JP JP2002344154A patent/JP2004177686A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293042A (ja) * | 2006-04-25 | 2007-11-08 | Nintendo Co Ltd | 音楽演奏プログラムおよび音楽演奏装置 |
US8666695B2 (en) | 2009-09-22 | 2014-03-04 | Samsung Electronics Co., Ltd. | Real-time motion recognition system and method |
US8990042B2 (en) | 2009-09-22 | 2015-03-24 | Samsung Electronics Co., Ltd. | Real-time motion recognition system and method |
JP2011252994A (ja) * | 2010-06-01 | 2011-12-15 | Casio Comput Co Ltd | 演奏装置および電子楽器 |
GB2496521A (en) * | 2011-11-11 | 2013-05-15 | Fictitious Capital Ltd | Computerised musical instrument using motion capture and analysis |
US9224377B2 (en) | 2011-11-11 | 2015-12-29 | Fictitious Capital Limited | Computerized percussion instrument |
GB2496521B (en) * | 2011-11-11 | 2019-01-16 | Fictitious Capital Ltd | Computerised percussion instrument |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6024136B2 (ja) | 演奏装置、演奏方法及びプログラム | |
JP4307193B2 (ja) | プログラム、情報記憶媒体、及びゲームシステム | |
JP4144269B2 (ja) | 演奏処理装置 | |
JP6801225B2 (ja) | 自動演奏システムおよび自動演奏方法 | |
TWI598871B (zh) | 可根據音樂節拍跳舞的機器人 | |
JP2007301039A (ja) | ゲームプログラム及びゲーム装置 | |
CN1965756A (zh) | 动作支持方法和设备 | |
JP2006251633A (ja) | 鍵盤楽器 | |
KR20140081695A (ko) | 동작 분석 장치 | |
JP2004177686A (ja) | 指揮棒の動きを認識する装置と楽器演奏ロボット | |
US20220152486A1 (en) | Device including movable mass body provided in housing | |
JP5638592B2 (ja) | ゲーム制御入力データを分析するためのシステム及び方法 | |
JP5187563B2 (ja) | 音響再生ロボット | |
JP2014112221A (ja) | 発音機構における打撃部材のための駆動制御装置 | |
JP2007041168A (ja) | 演奏制御装置、楽器演奏ロボット、ロボットによる楽器演奏方法 | |
JP2004354613A (ja) | 実楽器演奏ロボットと実楽器演奏ロボット群 | |
JP4464080B2 (ja) | 自動演奏装置およびプログラム | |
JP4037568B2 (ja) | ビデオゲーム装置および記録媒体 | |
JP2004302011A (ja) | 指揮棒の振りタイミングに同期させて演奏する装置 | |
JP6610120B2 (ja) | 音制御装置、方法、プログラム及び電子楽器 | |
JP6977813B2 (ja) | 自動演奏システムおよび自動演奏方法 | |
JP4407757B2 (ja) | 演奏処理装置 | |
JP6102372B2 (ja) | 演奏システム、演奏方法及びプログラム | |
JP2011161028A (ja) | ゲーム装置、ゲーム制御方法、ならびに、プログラム | |
JP6500924B2 (ja) | ショット動作制御方法、ショット動作制御装置、演奏システム及びプログラム |