説明

弦楽器演奏ロボット、及びその制御方法

【課題】簡便に異常を検知することができる弦楽器演奏ロボット、及びその制御方法を提供すること。
【解決手段】本発明の一態様に係る弦楽器演奏ロボットの制御方法は、演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットの制御方法であって、演奏データに基づいて弦を振動させ、弦の振動によって発生した音の音高を検出するステップS102と、演奏データに対応する音の音高と前記検出した音高との比較結果に応じて、異常を検知するステップS104と、を備えるものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、弦楽器を演奏する弦楽器演奏ロボット、及びその制御方法に関する。
【背景技術】
【0002】
近年、電子バイオリンなどの電子弦楽器が利用されている。電子弦楽器では、弦の振動を検出するピックアップを有している(特許文献1)。そして、ピックアップで検出された弦の振動に対応する音階を検出している。さらに、楽音が出ないなどの正常な機能がなされないときに、自動的にその原因を発見する電子楽器が開示されている(特許文献2)。また、複数の弦が同時に弾弦操作されているときに、各々の音高が特定の音程関係にあると、効果音を発生する電子弦楽器が開示されている(特許文献3)。
【0003】
さらに、近年では、バイオリンを演奏する演奏ロボットも開発されている(非特許文献1、2)。
【0004】
【特許文献1】特開平5−173558号公報
【特許文献2】特開平7−77980号公報
【特許文献3】実開平2−17797号公報
【非特許文献1】龍谷大学ホームページ 理工学研究科 機械システム工学専攻 下条・明研究室 「平成19年10月16日検索」 インターネット〈URL:http://mec3342.mecsys.ryukoku.ac.jp/sibuya/jindex.html〉
【非特許文献2】電気通信大学ホームページ 電気通信学研究科 知能機械工学専攻 渋谷研究室 [平成19年10月16日検索] インターネット〈URL:http://www.rm.mce.uec.ac.jp/research/mubot/mubot_index.html〉
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のような、演奏ロボットでは、指や腕を駆動して、弦を振動させる。そして、時系列にしたがって、所定の音階の音を奏でることで、曲を演奏することができる。具体的には、演奏ロボットでは、バイオリンの弦を指板に押え付けるとともに、弓を駆動して弦を振動させている。これにより、弓と弦が擦れて、所定の音階の音が発生する。しかしながら、このような演奏ロボットでは、演奏する曲の演奏データに応じて、所定の弦を所定のタイミングで擦っている。
【0006】
しかしながら、人が演奏するときと同様にロボットが演奏するときでも、バイオリンを演奏中に、弦が切れてしまうことがある。弦が切れるのは、経時的な劣化もあり、防ぐことが困難である。従来の演奏ロボットでは、弦楽器の弦が切れてしまった場合でも、異常に気付かずに、そのまま演奏を続けてしまうという問題があった。
【0007】
本発明は、このような事情を考慮してなされたものであり、簡便に異常を検知することができる弦楽器演奏ロボット、及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様に係る弦楽器演奏ロボットは、演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットであって、前記演奏データに基づいて前記弦楽器の弦を振動させるための駆動機構と、前記弦の振動によって発生した音の音高を検出するために設けられたセンサと、を備え、前記センサで検出された音高と前記演奏データに対応する音の音高との比較結果に応じて、異常を検知するものである。このようにセンサで検出した音高を用いることによって、簡便に異常を検知することができる。
【0009】
本発明の第2の態様に係る弦楽器演奏ロボットは、上記の弦楽器演奏ロボットであって、前記異常が検知された場合、演奏を停止することを特徴とするものである。これにより、指令音高以外の音の発生を速やかに停止することができ、聴衆が不快な音を聴くのを防ぐことができる。
【0010】
本発明の第3の態様に係る弦楽器演奏ロボットは、演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットの制御方法であって、前記演奏データに基づく演奏によって発生した音の音高を検出するステップと、前記演奏データに対応する音の音高と前記検出した音高との比較結果に応じて、異常を検知するステップと、を備えるものである。このようにセンサで検出した音高を用いることによって、簡便に異常を検知することができる。
【0011】
本発明の第4の態様に係る弦楽器演奏ロボットの制御方法は、上記の制御方法であって、前記異常が検知された場合、演奏を停止することを特徴とするものである。これにより、指令音高以外の音の発生を速やかに停止することができ、聴衆が不快な音を聴くのを防ぐことができる。
【発明の効果】
【0012】
本発明によれば、簡便に異常を検知することができる弦楽器演奏ロボット、及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下に、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【0014】
本実施の形態に係る弦楽器演奏ロボットについて、図1を用いて説明する。図1は、本実施の形態にかかる弦楽器演奏ロボット100の概略構成を示す図である。弦楽器演奏ロボット100は、胴体部10、左手部11、右手部12、左手用アクチュエータ13、右手用アクチュエータ14、左腕部15、右腕部16、腕用アクチュエータ17、センサ18、及び制御部19を備えている。弦楽器演奏ロボット100は、例えば、図示しない頭部と脚部とを有する人型のヒューマイノイドロボットであってもよい。弦楽器演奏ロボット100は、両腕、及び両手を駆動して、バイオリン50を演奏する。このバイオリン50は、通常のバイオリンに限らず、電子バイオリンであってもよい。
【0015】
胴体部10には、左腕部15、及び右腕部16が接続されている。左腕部15、及び右腕部16は、例えば、6自由度や7自由度のロボットアームである。左腕部15、及び右腕部16は、肩関節を介して胴体部10に取り付けられている。左腕部15、及び右腕部16には、肘関節が設けられている。この肘関節は、左腕部15、及び右腕部16の上腕と前腕とを連結している。左腕部15の先端には左手部11が接続され、右腕部16の先端には、右手部12が接続されている。左手部11、及び右手部12は、手首関節を介して、左腕部15、及び右腕部16にそれぞれ接続されている。
【0016】
さらに、胴体部10には、左腕部15、及び右腕部16の各関節を駆動する腕用アクチュエータ17が設けられている。腕用アクチュエータ17によって、肘関節、肩関節、手首関節が駆動する。腕用アクチュエータ17としては、例えば、ソレノイドやモータ等を用いることができる。ここでは、腕用アクチュエータ17として、サーボモータを用いている。なお、腕用アクチュエータ17を配置する場所は、胴体部10に限らず、各関節の近傍でもよい。もちろん、自由度の数に応じた数の腕用アクチュエータ17が設けられている。
【0017】
左手部11、及び右手部12は、複数の指を有するロボットハンドである。例えば、左手部11、及び右手部12はそれぞれ、人間の手と同様に、五指を有する。左手部11には、五指に設けられた指関節を駆動するための左手用アクチュエータ13が設けられている。同様に、右手部12には、五指に設けられた指関節を駆動するための右手用アクチュエータ14が設けられている。なお、1本の指の指関節は1以上であればよい。左手用アクチュエータ13は、例えば、左手部11の手の平部に収容され、右手用アクチュエータ14は、右手部12の手の平部に収容される。左手用アクチュエータ13は、左手部11の指関節を駆動し、右手用アクチュエータ14は右手部12の指関節を駆動する。左手用アクチュエータ13、及び右手用アクチュエータ14としては、例えば、ソレノイドやモータ等を用いることができる。ここでは、左手用アクチュエータ13、及び右手用アクチュエータ14として、サーボモータを用いている。
【0018】
なお、腕用アクチュエータ17、左手用アクチュエータ13、及び右手用アクチュエータ14は自由度に応じた数のモータ等を有している。例えば、左腕部15、及び右腕部16が6自由度のロボットアームである場合、それぞれの腕には、6つのモータが設けられる。また、両腕、及び両手の各関節には、サーボモータの動力を伝達するギヤやベルトやプーリなどが設けられていてもよい。
【0019】
左手部11、及び右手部12は、バイオリン50を演奏する弦楽器演奏マニピュレータを構成する。左手部11は、バイオリン50の指板52部分を把持する。すなわち、左手部11がバイオリン50のネック部分を把持して、バイオリン50を持ち上げる。そして、バイオリン50のボディーを胴体部10で保持する。例えば、人間と同様に、頭部の顎部と肩部とでバイオリンのあご当てを挟み込む。これにより、バイオリン50を安定して保持することができる。もちろん、上記以外の方法で、バイオリン50を保持してもよい。例えば、弦楽器演奏ロボット100に、バイオリン保持機構を設けてもよい。
【0020】
右手部12は、バイオリン50の演奏に用いる弓53を把持する。すなわち、右手部12で弓53を操作する。右手部12が弓53を把持した状態で、腕用アクチュエータ17を駆動する。これにより、右腕部16の関節が駆動し、音を奏でるための弓53の往復動作が行なわれる。バイオリン50には、4本の弦51が設けられている。そして、左手部11の指の先端が、それぞれの弦51を指板52に対して押し当てる。例えば、4本の弦51が人差指、中指、薬指、小指で、それぞれ押さえられる。これにより、弦51の振動部分の長さが変化して、音階を調整することができる。左手部11によって弦51を指板52に押し当てた状態で、右手部12が弓53によって弦51を振動させる。具体的には、右手部12が弓53のヘアーを弦51に当接させた状態で、弓53を弦方向から傾いた方向に移動させる。例えば、弓53を把持した右手部12を図1の矢印方向に駆動する。弦51と弓53とが擦れ、弦51が振動する。これにより、弦51の振動部分の長さに応じた音階の音が奏でられる。このように弓53を弦51から傾いた方向に往復させることによって、擦弦動作が実施される。
【0021】
胴体部10には、各関節の駆動を制御するための制御部19が設けられている。制御部19は、腕用アクチュエータ17、左手用アクチュエータ13、及び右手用アクチュエータ14の駆動を制御する。制御部19は、例えば、エンコーダなどのセンサ18からの出力に応じて、フィードバック制御する。制御部19による制御は、公知の制御方法を用いることができる。これにより、右手部12、及び左手部11が上述のように駆動して、音を奏でることができる。
【0022】
ここで、制御部19について詳細に説明する。制御部19は、演算処理部であるCPU(Central Processing Unit)、記憶領域であるROM(Read Only Memory)やRAM(Random Access Memory)、通信用のインターフェースなどを有し、ロボット100の各種動作を制御する。例えば、ROMには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、CPUは、このROMに記憶されている制御プログラムを読み出し、RAMに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
【0023】
制御部19は、演奏する曲に応じて、腕用アクチュエータ17、左手用アクチュエータ13、及び右手用アクチュエータ14の駆動を制御する。演奏用ロボット100又は外部のコンピュータで演奏曲の演奏データを作成する。そして、この演奏データを制御部19のメモリ等に格納する。演奏データでは、例えば音階データが、時系列にしたがって格納されている。この音階データに基づいて、所定の音階の音を、順番に発生させる。これにより、演奏曲を演奏することができる。もちろん、制御部19は、無線又は有線によって、演奏中に、現在の音階データをリアルタイムで取得してもよい。
【0024】
例えば、演奏曲の演奏データに応じて、弦51の押し当て位置のパターンを生成する。音階によって、どの弦51をどの位置で押し付けるかが決まっている。時系列に従った音階データによって、押し付け位置パターンを生成することができる。すなわち、音階によって弦51の押し付け位置が決まるため、時系列に沿った押し付け位置パターンが生成される。左手部11の各指を駆動することで、弦51を指板52に対して押し付けることができる。
【0025】
そして、押し当て位置のパターンに基づいて左手部11を順番に移動させていく。すなわち、音階データに応じた押し付け位置や指に与える力を指令値として、各指を運指する。これにより、音階に対応する位置で弦51を押し付ける。所定のタイミングで、押し当て位置が所定の位置に変化する。
【0026】
また、演奏曲に応じて、弓53を移動するタイミングのパターンを生成する。バイオリン50では、音階に応じて弓53で擦る弦51が決まる。従って、時系列に従った音階データによって、弓53を移動するタイミングパターンが生成される。すなわち、このタイミングパターンは、弓53をある弦51からその他の弦51に移動させるタイミングと、弓53が弦51と接触した状態で往復動作させるタイミングの情報を含んでいる。このタイミングパターンに応じて弓53の往復動作を制御する。右腕部15を駆動することで、弓53を移動させることができる。弓53は、音階に応じて所定の弦51を所定のタイミングで擦る。
【0027】
このように、運指動作、及び運弓動作を行うことで、所定の音程の音が所定のタイミングで発生していき、演奏することができる。具体的には、時系列の音階データに応じた押し付け位置パターンによって押し付け位置指令値を求める。また、時系列の音階データに応じたタイミングパターンによって往復動作指令値を求める。そして、押し付け位置指令値、及び往復動作指令値に追従するよう、モータ等をフィードバック制御する。これより、運指動作、及び運弓動作が行われる、なお、本実施の形態において、弦楽器演奏ロボット100が行なう演奏とは、完全な曲の演奏に限らず、少なくとも1つの音階の音が奏でられるものであればよい。また、運弓動作と運指動作は、物理的に異なるロボットが行ってもよい。
【0028】
さらに、センサ18は、実際にバイオリン50で発生した音を計測するマイクロフォンを含んでいる。そして、制御部19は、マイクロフォンで計測された音の音高に基づいて、異常を検出する。具体的には、バイオリン50の弦51が切れているか否かを判断する。そして、弦51が切れている場合は、演奏を速やかに停止する。
【0029】
次に、本実施の形態にかかる弦楽器演奏ロボット100の特徴部分である異常検出について図2を用いて説明する。図2は、バイオリンをネックからエンドピン方向に見た図である。バイオリン50には、4本の弦51が設けられている。図2では、それぞれの4本の弦51を弦51a〜51dとして区別する。図2に示すように、弦51a〜51dが駒54によって高く支えられている。
【0030】
本実施の形態では、弦51が切れたか否かを検知している。弦51が切れた場合、異常状態になったと判断して、演奏を自動停止する。例えば、図2(a)に示すようにA線の弦51bを振動させようとする場合、右腕部16を駆動して、弓53を移動させる。そして、弓53のヘアと弦51bを接触させる。弦51bには図2(a)の矢印の方向に力が加わる。弓53は弦51bに対して垂直に力を加えながら、往復運動する。これにより、弦51bが振動する。また、弦51bは左手部11の指によって、所定の位置で指板52に押し付けられている。よって、所定の周波数で弦51bが振動して、音階データに対応する音階の音を発生させることができる。
【0031】
しかしながら、図2(b)に示すように弦51bが切れている場合、隣の弦51a、51cが弓53と接触する。従って、弓53が弦51a、及び51cの少なくとも一方と接触した状態で、往復運動する。弦51a、及び51cは、弦51bと異なる弦であり、指による押し付け位置も異なっている。弦51a、51cは、弦51bを擦った場合と異なる周波数で振動する。従って、弦51bが切れている状態では、異なる音高の音が発生してしまう。このように、弦51が切れた異常状態では、音階データに対応する音高と異なる音高の音が発生する。
【0032】
センサ18に含まれるマイクロフォンで、実際にバイオリン50から発生した音を受音して、その音の音高を検出する。そして、弦51が切れていなければ発生していた音高、すなわち、演奏データに応じた指令の音高(指令音高)と、実測した音高(実測音高)を比較する。実測音高と、指令音高との差分が大きければ、異常が発生したと判断する。すなわち、音程がずれていれば、弦51bが切れていると判断する。異常が発生した場合は、演奏を自動停止する。さらには、アラームなどで、報知してもよい。
【0033】
このように、弦51bが切れた場合、隣の弦51a、51cが振動してしまう。従って、演奏データに基づく指令とは異なる音が発生する。本来鳴るはずだった音の音高(指令音高)と、実測音高とを比較する。そして、比較結果に基づいて、異常を検知する。具体的には、音高の差分値がしきい値よりも大きい場合は、弦51が切れていると判断する。そして、演奏ロボットによる演奏を非常停止させる。一方、音高の差分がしきい値よりも小さい場合は、正常に演奏されていると判断する。正常と判断された場合は、そのまま演奏を続行する。これにより、簡便に弦51の断線などの異常を検知することができる。
【0034】
次に、図3を用いて、本実施の形態にかかる弦楽器演奏ロボット100の制御方法について説明する。まず、各アクチュエータを動作することによって発生した音をマイクロフォンで受音する。弦楽器演奏ロボット100による自動演奏を開始して、左手用アクチュエータ13、右手用アクチュエータ14、及び腕用アクチュエータ17等を駆動させる。これにより、弓53が弦51を擦り、弦51が振動する。弦51の振動で発生した音をマイクロフォンで計測する(ステップS101)。すなわち、マイクロフォンをバイオリン50や弦楽器演奏ロボット100に取り付けて、マイクロフォンからの出力をマイク入力として弦楽器演奏ロボット100の制御部19に取り込む。また、弦楽器演奏ロボット100にマイクロフォンを取り付けることで、どのバイオリンを演奏する場合でも、異常を検知することができる。なお、電子バイオリン(エレクトリックバイオリン)を用いる場合、マイクロフォンでなく、ピックアップを用いて、音を計測してもよい。この場合、ピックアップの出力を制御部19に取り込む。ピックアップを用いることで、雑音等の影響による誤検知を防ぐことができる。また、音を計測するセンサは特に限定されるものではない。
【0035】
制御部19は、弦の振動によって発生した音の音高を検出する(ステップS102)。すなわち、演奏データに基づく演奏によって発生した音の音高を検出する。例えば、マイク入力を周波数解析して、音高を求める。ここで検出した音高が実測音高となる。実測音高は記号で表すか、周波数で表すことができる。ここでは、正確に音高を検出するために、ある一定以上の時間で音を計測している。従って、基音の振動数から、そのタイミングでの音高を検出することができる。すなわち、音階データに基づいて演奏している時に、あるタイミングで演奏された音の音高が実測音高のデータとして得られる。なお、フィルタ等を用いて、マイク入力に対してノイズ除去を行ってもよい。
【0036】
また、演奏データに基づいて、演奏する曲の音高を求める(ステップS103)。すなわち、演奏している曲の音階データによって、指令音高を求める。例えば、演奏される音の音階によって、周波数を求めることができる。弦51が切れていない正常状態での演奏では、指令音高を同じ音高の音が発生するはずである。指令音高は、記号で表してもよく、周波数で表してもよい。このように、演奏データから実際に鳴るはずの指令音高を求める。指令音高は、周波数で表してもよく、記号で表してもよい。なお、ステップS102、及びステップS103の処理は並行して行ってもよい。
【0037】
そして、実測音高と演奏データによる指令音高とを比較する(ステップS104)。そして、比較結果に応じて、異常か正常かを判定する。すなわち、実測音高と指令音高との差分を求め、その差分値としきい値とを比較する。差分値がしきい値よりも小さい場合は、異常なしと判断して、ステップS101からの処理を繰り返す。これにより、時系列の音階データにしたがって演奏が進行していく。差分値がしきい値よりも大きい場合は、異常ありと判断する。すなわち、弦51が切れたと判断して、ロボット100を非常停止する(ステップS105)。これにより、演奏が途中で停止される。このように、音高の比較結果に応じて異常を検知する。もちろん、比較する音高は同期させておく。すなわち、演奏曲中のあるタイミングの指令音高と、その指令音高によって演奏された音の実測音高とが比較される。
【0038】
異常なしと判断された場合は、音階データにしたがって、演奏曲を順次演奏していく。なお、演奏の進行にしたがって、指令音高が順次変化していく。このため、実測音高を順次、検出していく。そして、実測音高と指令音高との差分値がしきい値を超えるまで、または、演奏曲が終了するまで、演奏を続行する。
【0039】
このように、マイクロフォンなどのセンサ18からの出力に応じて音高を検出する。指令音高と実測音高とを比較して、異常を検知する。これにより、簡便かつ正確に異常を検知することができる。また、異常を検知したときに演奏を止めることで、指令音高と異なる音高の音が発生するのを速やかに停止することができる。よって、聴衆が不快な音を聞くことを防ぐことができる。
【0040】
マイクロフォンをバイオリン50ではなく、ロボット100に設けることで、通常のバイオリン50を演奏することが可能になる。すなわち、バイオリン50を選ばずに、演奏することができる。また、バイオリン50に配線等を設ける必要がなくなる。消耗品である弦51にセンサを取り付ける必要がないため、コストを低減することができる。音高を検出するセンサ18を用いることで、センサ18がバイオリン50の演奏音に影響を与えるのを防ぐことができる。なお、弦51が切れたときだけでなく、調弦が著しくずれている場合や弓53のヘアが切れている場合も、指令音高と異なる音高の音が発生するため、異常と判断することができる。
【0041】
なお、指令音高を、ロボット100のメモリに記憶された音階データに基づいて算出してもよく、外部制御装置などからリアルタイムで送信される音階データに基づいて算出してもよい。さらには、音階データがない場合でも、演奏に必要な演奏データから指令音階や指令音高を算出してもよい。すなわち、指の押し付け位置、及び弓53が擦る弦51に応じて、実際に鳴るはずの音の音高を求めてもよい。
【0042】
なお、上記の例では、バイオリンを演奏する弦楽器演奏システムについて説明したが、他の弦楽器を演奏するものであってもよい。例えば、ビィオラ、チェロ、コントラバス、ウッドベースなどの擦弦楽器について演奏することができる。また、マイクロフォンなどのセンサ18を設ける位置は、特に限定されるものではない。
【図面の簡単な説明】
【0043】
【図1】本実施の形態に係る弦楽器演奏ロボットの構成を示すブロック図である。
【図2】本実施の形態にかかる弦楽器演奏ロボットの異常検知を説明するための図である。
【図3】本実施の形態にかかる弦楽器演奏ロボットの制御方法を示すフローチャートである。
【符号の説明】
【0044】
10 胴体部、11 左手部、12 右手部、13 左手用アクチュエータ
14 右手用アクチュエータ、15 右腕部、16 左腕部、
17 腕用アクチュエータ、18 センサ、19 制御部、
50 バイオリン、51 弦、52 指板、53 弓、54 駒
100 弦楽器演奏ロボット

【特許請求の範囲】
【請求項1】
演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットであって、
前記演奏データに基づいて前記弦楽器の弦を振動させるための駆動機構と、
前記弦の振動によって発生した音の音高を検出するために設けられたセンサと、を備え、
前記センサで検出された音高と前記演奏データに対応する音の音高との比較結果に応じて、異常を検知する弦楽器演奏ロボット。
【請求項2】
前記異常が検知された場合、演奏を停止することを特徴とする請求項1に記載の弦楽器演奏ロボット。
【請求項3】
演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットの制御方法であって、
前記演奏データに基づく演奏によって発生した音の音高を検出するステップと、
前記演奏データに対応する音の音高と前記検出した音高との比較結果に応じて、異常を検知するステップと、を備える弦楽器演奏ロボットの制御方法。
【請求項4】
前記異常が検知された場合、演奏を停止することを特徴とする請求項3に記載の弦楽器演奏ロボットの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2009−122507(P2009−122507A)
【公開日】平成21年6月4日(2009.6.4)
【国際特許分類】
【出願番号】特願2007−297903(P2007−297903)
【出願日】平成19年11月16日(2007.11.16)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】