(57)【要約】【課題】簡便に異常を検知することができる弦楽器演奏ロボット、及びその制御方法を提供すること。【解決手段】本発明の一態様に係る弦楽器演奏ロボットの制御方法は、演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットの制御方法であって、演奏データに基づいて弦を振動させ、弦の振動によって発生した音の音高を検出するステップＳ１０２と、演奏データに対応する音の音高と前記検出した音高との比較結果に応じて、異常を検知するステップＳ１０４と、を備えるものである。【選択図】図３
2009122507.tif 000002
【特許請求の範囲】
【請求項１】
演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットであって、
前記演奏データに基づいて前記弦楽器の弦を振動させるための駆動機構と、
前記弦の振動によって発生した音の音高を検出するために設けられたセンサと、を備え、
前記センサで検出された音高と前記演奏データに対応する音の音高との比較結果に応じて、異常を検知する弦楽器演奏ロボット。
【請求項２】
前記異常が検知された場合、演奏を停止することを特徴とする請求項１に記載の弦楽器演奏ロボット。
【請求項３】
演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットの制御方法であって、
前記演奏データに基づく演奏によって発生した音の音高を検出するステップと、
前記演奏データに対応する音の音高と前記検出した音高との比較結果に応じて、異常を検知するステップと、を備える弦楽器演奏ロボットの制御方法。
【請求項４】
前記異常が検知された場合、演奏を停止することを特徴とする請求項３に記載の弦楽器演奏ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、弦楽器を演奏する弦楽器演奏ロボット、及びその制御方法に関する。
【背景技術】
【０００２】
近年、電子バイオリンなどの電子弦楽器が利用されている。電子弦楽器では、弦の振動を検出するピックアップを有している（特許文献１）。そして、ピックアップで検出された弦の振動に対応する音階を検出している。さらに、楽音が出ないなどの正常な機能がなされないときに、自動的にその原因を発見する電子楽器が開示されている（特許文献２）。また、複数の弦が同時に弾弦操作されているときに、各々の音高が特定の音程関係にあると、効果音を発生する電子弦楽器が開示されている（特許文献３）。
【０００３】
さらに、近年では、バイオリンを演奏する演奏ロボットも開発されている（非特許文献１、２）。
【０００４】
【特許文献１】特開平５−１７３５５８号公報
【特許文献２】特開平７−７７９８０号公報
【特許文献３】実開平２−１７７９７号公報
【非特許文献１】龍谷大学ホームページ  理工学研究科  機械システム工学専攻  下条・明研究室  「平成１９年１０月１６日検索」  インターネット〈ＵＲＬ：http://mec3342.mecsys.ryukoku.ac.jp/sibuya/jindex.html〉
【非特許文献２】電気通信大学ホームページ  電気通信学研究科  知能機械工学専攻  渋谷研究室  ［平成１９年１０月１６日検索］  インターネット〈ＵＲＬ：http://www.rm.mce.uec.ac.jp/research/mubot/mubot_index.html〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のような、演奏ロボットでは、指や腕を駆動して、弦を振動させる。そして、時系列にしたがって、所定の音階の音を奏でることで、曲を演奏することができる。具体的には、演奏ロボットでは、バイオリンの弦を指板に押え付けるとともに、弓を駆動して弦を振動させている。これにより、弓と弦が擦れて、所定の音階の音が発生する。しかしながら、このような演奏ロボットでは、演奏する曲の演奏データに応じて、所定の弦を所定のタイミングで擦っている。
【０００６】
しかしながら、人が演奏するときと同様にロボットが演奏するときでも、バイオリンを演奏中に、弦が切れてしまうことがある。弦が切れるのは、経時的な劣化もあり、防ぐことが困難である。従来の演奏ロボットでは、弦楽器の弦が切れてしまった場合でも、異常に気付かずに、そのまま演奏を続けてしまうという問題があった。
【０００７】
本発明は、このような事情を考慮してなされたものであり、簡便に異常を検知することができる弦楽器演奏ロボット、及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様に係る弦楽器演奏ロボットは、演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットであって、前記演奏データに基づいて前記弦楽器の弦を振動させるための駆動機構と、前記弦の振動によって発生した音の音高を検出するために設けられたセンサと、を備え、前記センサで検出された音高と前記演奏データに対応する音の音高との比較結果に応じて、異常を検知するものである。このようにセンサで検出した音高を用いることによって、簡便に異常を検知することができる。
【０００９】
本発明の第２の態様に係る弦楽器演奏ロボットは、上記の弦楽器演奏ロボットであって、前記異常が検知された場合、演奏を停止することを特徴とするものである。これにより、指令音高以外の音の発生を速やかに停止することができ、聴衆が不快な音を聴くのを防ぐことができる。
【００１０】
本発明の第３の態様に係る弦楽器演奏ロボットは、演奏データにしたがって弦楽器を演奏する弦楽器演奏ロボットの制御方法であって、前記演奏データに基づく演奏によって発生した音の音高を検出するステップと、前記演奏データに対応する音の音高と前記検出した音高との比較結果に応じて、異常を検知するステップと、を備えるものである。このようにセンサで検出した音高を用いることによって、簡便に異常を検知することができる。
【００１１】
本発明の第４の態様に係る弦楽器演奏ロボットの制御方法は、上記の制御方法であって、前記異常が検知された場合、演奏を停止することを特徴とするものである。これにより、指令音高以外の音の発生を速やかに停止することができ、聴衆が不快な音を聴くのを防ぐことができる。
【発明の効果】
【００１２】
本発明によれば、簡便に異常を検知することができる弦楽器演奏ロボット、及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１４】
本実施の形態に係る弦楽器演奏ロボットについて、図１を用いて説明する。図１は、本実施の形態にかかる弦楽器演奏ロボット１００の概略構成を示す図である。弦楽器演奏ロボット１００は、胴体部１０、左手部１１、右手部１２、左手用アクチュエータ１３、右手用アクチュエータ１４、左腕部１５、右腕部１６、腕用アクチュエータ１７、センサ１８、及び制御部１９を備えている。弦楽器演奏ロボット１００は、例えば、図示しない頭部と脚部とを有する人型のヒューマイノイドロボットであってもよい。弦楽器演奏ロボット１００は、両腕、及び両手を駆動して、バイオリン５０を演奏する。このバイオリン５０は、通常のバイオリンに限らず、電子バイオリンであってもよい。
【００１５】
胴体部１０には、左腕部１５、及び右腕部１６が接続されている。左腕部１５、及び右腕部１６は、例えば、６自由度や７自由度のロボットアームである。左腕部１５、及び右腕部１６は、肩関節を介して胴体部１０に取り付けられている。左腕部１５、及び右腕部１６には、肘関節が設けられている。この肘関節は、左腕部１５、及び右腕部１６の上腕と前腕とを連結している。左腕部１５の先端には左手部１１が接続され、右腕部１６の先端には、右手部１２が接続されている。左手部１１、及び右手部１２は、手首関節を介して、左腕部１５、及び右腕部１６にそれぞれ接続されている。
【００１６】
さらに、胴体部１０には、左腕部１５、及び右腕部１６の各関節を駆動する腕用アクチュエータ１７が設けられている。腕用アクチュエータ１７によって、肘関節、肩関節、手首関節が駆動する。腕用アクチュエータ１７としては、例えば、ソレノイドやモータ等を用いることができる。ここでは、腕用アクチュエータ１７として、サーボモータを用いている。なお、腕用アクチュエータ１７を配置する場所は、胴体部１０に限らず、各関節の近傍でもよい。もちろん、自由度の数に応じた数の腕用アクチュエータ１７が設けられている。
【００１７】
左手部１１、及び右手部１２は、複数の指を有するロボットハンドである。例えば、左手部１１、及び右手部１２はそれぞれ、人間の手と同様に、五指を有する。左手部１１には、五指に設けられた指関節を駆動するための左手用アクチュエータ１３が設けられている。同様に、右手部１２には、五指に設けられた指関節を駆動するための右手用アクチュエータ１４が設けられている。なお、１本の指の指関節は１以上であればよい。左手用アクチュエータ１３は、例えば、左手部１１の手の平部に収容され、右手用アクチュエータ１４は、右手部１２の手の平部に収容される。左手用アクチュエータ１３は、左手部１１の指関節を駆動し、右手用アクチュエータ１４は右手部１２の指関節を駆動する。左手用アクチュエータ１３、及び右手用アクチュエータ１４としては、例えば、ソレノイドやモータ等を用いることができる。ここでは、左手用アクチュエータ１３、及び右手用アクチュエータ１４として、サーボモータを用いている。
【００１８】
なお、腕用アクチュエータ１７、左手用アクチュエータ１３、及び右手用アクチュエータ１４は自由度に応じた数のモータ等を有している。例えば、左腕部１５、及び右腕部１６が６自由度のロボットアームである場合、それぞれの腕には、６つのモータが設けられる。また、両腕、及び両手の各関節には、サーボモータの動力を伝達するギヤやベルトやプーリなどが設けられていてもよい。
【００１９】
左手部１１、及び右手部１２は、バイオリン５０を演奏する弦楽器演奏マニピュレータを構成する。左手部１１は、バイオリン５０の指板５２部分を把持する。すなわち、左手部１１がバイオリン５０のネック部分を把持して、バイオリン５０を持ち上げる。そして、バイオリン５０のボディーを胴体部１０で保持する。例えば、人間と同様に、頭部の顎部と肩部とでバイオリンのあご当てを挟み込む。これにより、バイオリン５０を安定して保持することができる。もちろん、上記以外の方法で、バイオリン５０を保持してもよい。例えば、弦楽器演奏ロボット１００に、バイオリン保持機構を設けてもよい。
【００２０】
右手部１２は、バイオリン５０の演奏に用いる弓５３を把持する。すなわち、右手部１２で弓５３を操作する。右手部１２が弓５３を把持した状態で、腕用アクチュエータ１７を駆動する。これにより、右腕部１６の関節が駆動し、音を奏でるための弓５３の往復動作が行なわれる。バイオリン５０には、４本の弦５１が設けられている。そして、左手部１１の指の先端が、それぞれの弦５１を指板５２に対して押し当てる。例えば、４本の弦５１が人差指、中指、薬指、小指で、それぞれ押さえられる。これにより、弦５１の振動部分の長さが変化して、音階を調整することができる。左手部１１によって弦５１を指板５２に押し当てた状態で、右手部１２が弓５３によって弦５１を振動させる。具体的には、右手部１２が弓５３のヘアーを弦５１に当接させた状態で、弓５３を弦方向から傾いた方向に移動させる。例えば、弓５３を把持した右手部１２を図１の矢印方向に駆動する。弦５１と弓５３とが擦れ、弦５１が振動する。これにより、弦５１の振動部分の長さに応じた音階の音が奏でられる。このように弓５３を弦５１から傾いた方向に往復させることによって、擦弦動作が実施される。
【００２１】
胴体部１０には、各関節の駆動を制御するための制御部１９が設けられている。制御部１９は、腕用アクチュエータ１７、左手用アクチュエータ１３、及び右手用アクチュエータ１４の駆動を制御する。制御部１９は、例えば、エンコーダなどのセンサ１８からの出力に応じて、フィードバック制御する。制御部１９による制御は、公知の制御方法を用いることができる。これにより、右手部１２、及び左手部１１が上述のように駆動して、音を奏でることができる。
【００２２】
ここで、制御部１９について詳細に説明する。制御部１９は、演算処理部であるＣＰＵ（Central Processing Unit）、記憶領域であるＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、通信用のインターフェースなどを有し、ロボット１００の各種動作を制御する。例えば、ＲＯＭには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、ＣＰＵは、このＲＯＭに記憶されている制御プログラムを読み出し、ＲＡＭに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
【００２３】
制御部１９は、演奏する曲に応じて、腕用アクチュエータ１７、左手用アクチュエータ１３、及び右手用アクチュエータ１４の駆動を制御する。演奏用ロボット１００又は外部のコンピュータで演奏曲の演奏データを作成する。そして、この演奏データを制御部１９のメモリ等に格納する。演奏データでは、例えば音階データが、時系列にしたがって格納されている。この音階データに基づいて、所定の音階の音を、順番に発生させる。これにより、演奏曲を演奏することができる。もちろん、制御部１９は、無線又は有線によって、演奏中に、現在の音階データをリアルタイムで取得してもよい。
【００２４】
例えば、演奏曲の演奏データに応じて、弦５１の押し当て位置のパターンを生成する。音階によって、どの弦５１をどの位置で押し付けるかが決まっている。時系列に従った音階データによって、押し付け位置パターンを生成することができる。すなわち、音階によって弦５１の押し付け位置が決まるため、時系列に沿った押し付け位置パターンが生成される。左手部１１の各指を駆動することで、弦５１を指板５２に対して押し付けることができる。
【００２５】
そして、押し当て位置のパターンに基づいて左手部１１を順番に移動させていく。すなわち、音階データに応じた押し付け位置や指に与える力を指令値として、各指を運指する。これにより、音階に対応する位置で弦５１を押し付ける。所定のタイミングで、押し当て位置が所定の位置に変化する。
【００２６】
また、演奏曲に応じて、弓５３を移動するタイミングのパターンを生成する。バイオリン５０では、音階に応じて弓５３で擦る弦５１が決まる。従って、時系列に従った音階データによって、弓５３を移動するタイミングパターンが生成される。すなわち、このタイミングパターンは、弓５３をある弦５１からその他の弦５１に移動させるタイミングと、弓５３が弦５１と接触した状態で往復動作させるタイミングの情報を含んでいる。このタイミングパターンに応じて弓５３の往復動作を制御する。右腕部１５を駆動することで、弓５３を移動させることができる。弓５３は、音階に応じて所定の弦５１を所定のタイミングで擦る。
【００２７】
このように、運指動作、及び運弓動作を行うことで、所定の音程の音が所定のタイミングで発生していき、演奏することができる。具体的には、時系列の音階データに応じた押し付け位置パターンによって押し付け位置指令値を求める。また、時系列の音階データに応じたタイミングパターンによって往復動作指令値を求める。そして、押し付け位置指令値、及び往復動作指令値に追従するよう、モータ等をフィードバック制御する。これより、運指動作、及び運弓動作が行われる、なお、本実施の形態において、弦楽器演奏ロボット１００が行なう演奏とは、完全な曲の演奏に限らず、少なくとも１つの音階の音が奏でられるものであればよい。また、運弓動作と運指動作は、物理的に異なるロボットが行ってもよい。
【００２８】
さらに、センサ１８は、実際にバイオリン５０で発生した音を計測するマイクロフォンを含んでいる。そして、制御部１９は、マイクロフォンで計測された音の音高に基づいて、異常を検出する。具体的には、バイオリン５０の弦５１が切れているか否かを判断する。そして、弦５１が切れている場合は、演奏を速やかに停止する。
【００２９】
次に、本実施の形態にかかる弦楽器演奏ロボット１００の特徴部分である異常検出について図２を用いて説明する。図２は、バイオリンをネックからエンドピン方向に見た図である。バイオリン５０には、４本の弦５１が設けられている。図２では、それぞれの４本の弦５１を弦５１ａ〜５１ｄとして区別する。図２に示すように、弦５１ａ〜５１ｄが駒５４によって高く支えられている。
【００３０】
本実施の形態では、弦５１が切れたか否かを検知している。弦５１が切れた場合、異常状態になったと判断して、演奏を自動停止する。例えば、図２（ａ）に示すようにＡ線の弦５１ｂを振動させようとする場合、右腕部１６を駆動して、弓５３を移動させる。そして、弓５３のヘアと弦５１ｂを接触させる。弦５１ｂには図２（ａ）の矢印の方向に力が加わる。弓５３は弦５１ｂに対して垂直に力を加えながら、往復運動する。これにより、弦５１ｂが振動する。また、弦５１ｂは左手部１１の指によって、所定の位置で指板５２に押し付けられている。よって、所定の周波数で弦５１ｂが振動して、音階データに対応する音階の音を発生させることができる。
【００３１】
しかしながら、図２（ｂ）に示すように弦５１ｂが切れている場合、隣の弦５１ａ、５１ｃが弓５３と接触する。従って、弓５３が弦５１ａ、及び５１ｃの少なくとも一方と接触した状態で、往復運動する。弦５１ａ、及び５１ｃは、弦５１ｂと異なる弦であり、指による押し付け位置も異なっている。弦５１ａ、５１ｃは、弦５１ｂを擦った場合と異なる周波数で振動する。従って、弦５１ｂが切れている状態では、異なる音高の音が発生してしまう。このように、弦５１が切れた異常状態では、音階データに対応する音高と異なる音高の音が発生する。
【００３２】
センサ１８に含まれるマイクロフォンで、実際にバイオリン５０から発生した音を受音して、その音の音高を検出する。そして、弦５１が切れていなければ発生していた音高、すなわち、演奏データに応じた指令の音高（指令音高）と、実測した音高（実測音高）を比較する。実測音高と、指令音高との差分が大きければ、異常が発生したと判断する。すなわち、音程がずれていれば、弦５１ｂが切れていると判断する。異常が発生した場合は、演奏を自動停止する。さらには、アラームなどで、報知してもよい。
【００３３】
このように、弦５１ｂが切れた場合、隣の弦５１ａ、５１ｃが振動してしまう。従って、演奏データに基づく指令とは異なる音が発生する。本来鳴るはずだった音の音高（指令音高）と、実測音高とを比較する。そして、比較結果に基づいて、異常を検知する。具体的には、音高の差分値がしきい値よりも大きい場合は、弦５１が切れていると判断する。そして、演奏ロボットによる演奏を非常停止させる。一方、音高の差分がしきい値よりも小さい場合は、正常に演奏されていると判断する。正常と判断された場合は、そのまま演奏を続行する。これにより、簡便に弦５１の断線などの異常を検知することができる。
【００３４】
次に、図３を用いて、本実施の形態にかかる弦楽器演奏ロボット１００の制御方法について説明する。まず、各アクチュエータを動作することによって発生した音をマイクロフォンで受音する。弦楽器演奏ロボット１００による自動演奏を開始して、左手用アクチュエータ１３、右手用アクチュエータ１４、及び腕用アクチュエータ１７等を駆動させる。これにより、弓５３が弦５１を擦り、弦５１が振動する。弦５１の振動で発生した音をマイクロフォンで計測する（ステップＳ１０１）。すなわち、マイクロフォンをバイオリン５０や弦楽器演奏ロボット１００に取り付けて、マイクロフォンからの出力をマイク入力として弦楽器演奏ロボット１００の制御部１９に取り込む。また、弦楽器演奏ロボット１００にマイクロフォンを取り付けることで、どのバイオリンを演奏する場合でも、異常を検知することができる。なお、電子バイオリン（エレクトリックバイオリン）を用いる場合、マイクロフォンでなく、ピックアップを用いて、音を計測してもよい。この場合、ピックアップの出力を制御部１９に取り込む。ピックアップを用いることで、雑音等の影響による誤検知を防ぐことができる。また、音を計測するセンサは特に限定されるものではない。
【００３５】
制御部１９は、弦の振動によって発生した音の音高を検出する（ステップＳ１０２）。すなわち、演奏データに基づく演奏によって発生した音の音高を検出する。例えば、マイク入力を周波数解析して、音高を求める。ここで検出した音高が実測音高となる。実測音高は記号で表すか、周波数で表すことができる。ここでは、正確に音高を検出するために、ある一定以上の時間で音を計測している。従って、基音の振動数から、そのタイミングでの音高を検出することができる。すなわち、音階データに基づいて演奏している時に、あるタイミングで演奏された音の音高が実測音高のデータとして得られる。なお、フィルタ等を用いて、マイク入力に対してノイズ除去を行ってもよい。
【００３６】
また、演奏データに基づいて、演奏する曲の音高を求める（ステップＳ１０３）。すなわち、演奏している曲の音階データによって、指令音高を求める。例えば、演奏される音の音階によって、周波数を求めることができる。弦５１が切れていない正常状態での演奏では、指令音高を同じ音高の音が発生するはずである。指令音高は、記号で表してもよく、周波数で表してもよい。このように、演奏データから実際に鳴るはずの指令音高を求める。指令音高は、周波数で表してもよく、記号で表してもよい。なお、ステップＳ１０２、及びステップＳ１０３の処理は並行して行ってもよい。
【００３７】
そして、実測音高と演奏データによる指令音高とを比較する（ステップＳ１０４）。そして、比較結果に応じて、異常か正常かを判定する。すなわち、実測音高と指令音高との差分を求め、その差分値としきい値とを比較する。差分値がしきい値よりも小さい場合は、異常なしと判断して、ステップＳ１０１からの処理を繰り返す。これにより、時系列の音階データにしたがって演奏が進行していく。差分値がしきい値よりも大きい場合は、異常ありと判断する。すなわち、弦５１が切れたと判断して、ロボット１００を非常停止する（ステップＳ１０５）。これにより、演奏が途中で停止される。このように、音高の比較結果に応じて異常を検知する。もちろん、比較する音高は同期させておく。すなわち、演奏曲中のあるタイミングの指令音高と、その指令音高によって演奏された音の実測音高とが比較される。
【００３８】
異常なしと判断された場合は、音階データにしたがって、演奏曲を順次演奏していく。なお、演奏の進行にしたがって、指令音高が順次変化していく。このため、実測音高を順次、検出していく。そして、実測音高と指令音高との差分値がしきい値を超えるまで、または、演奏曲が終了するまで、演奏を続行する。
【００３９】
このように、マイクロフォンなどのセンサ１８からの出力に応じて音高を検出する。指令音高と実測音高とを比較して、異常を検知する。これにより、簡便かつ正確に異常を検知することができる。また、異常を検知したときに演奏を止めることで、指令音高と異なる音高の音が発生するのを速やかに停止することができる。よって、聴衆が不快な音を聞くことを防ぐことができる。
【００４０】
マイクロフォンをバイオリン５０ではなく、ロボット１００に設けることで、通常のバイオリン５０を演奏することが可能になる。すなわち、バイオリン５０を選ばずに、演奏することができる。また、バイオリン５０に配線等を設ける必要がなくなる。消耗品である弦５１にセンサを取り付ける必要がないため、コストを低減することができる。音高を検出するセンサ１８を用いることで、センサ１８がバイオリン５０の演奏音に影響を与えるのを防ぐことができる。なお、弦５１が切れたときだけでなく、調弦が著しくずれている場合や弓５３のヘアが切れている場合も、指令音高と異なる音高の音が発生するため、異常と判断することができる。
【００４１】
なお、指令音高を、ロボット１００のメモリに記憶された音階データに基づいて算出してもよく、外部制御装置などからリアルタイムで送信される音階データに基づいて算出してもよい。さらには、音階データがない場合でも、演奏に必要な演奏データから指令音階や指令音高を算出してもよい。すなわち、指の押し付け位置、及び弓５３が擦る弦５１に応じて、実際に鳴るはずの音の音高を求めてもよい。
【００４２】
なお、上記の例では、バイオリンを演奏する弦楽器演奏システムについて説明したが、他の弦楽器を演奏するものであってもよい。例えば、ビィオラ、チェロ、コントラバス、ウッドベースなどの擦弦楽器について演奏することができる。また、マイクロフォンなどのセンサ１８を設ける位置は、特に限定されるものではない。
【図面の簡単な説明】
【００４３】
【図１】本実施の形態に係る弦楽器演奏ロボットの構成を示すブロック図である。
【図２】本実施の形態にかかる弦楽器演奏ロボットの異常検知を説明するための図である。
【図３】本実施の形態にかかる弦楽器演奏ロボットの制御方法を示すフローチャートである。
【符号の説明】
【００４４】
１０  胴体部、１１  左手部、１２  右手部、１３  左手用アクチュエータ
１４  右手用アクチュエータ、１５  右腕部、１６  左腕部、
１７  腕用アクチュエータ、１８  センサ、１９  制御部、
５０  バイオリン、５１  弦、５２  指板、５３  弓、５４  駒
１００  弦楽器演奏ロボット
【図１】
2009122507.tif 000003
【図２】
2009122507.tif 000004
【図３】
2009122507.tif 000005