(57)【特許請求の範囲】
【請求項１】
弓を把持して擦弦楽器を自動演奏する擦弦楽器の自動演奏ロボットであって、
弓毛が弦に押し当てられるときに前記弓毛と前記弦との間に作用する応力を計測する弓応力計測手段と、
楽曲演奏時に、前記弓毛が前記弦を押す応力を指令する弓応力データと、前記弓毛と前記弦との接触位置を指令する接点データと、を含む演奏データが設定記憶された演奏データ記憶部と、
前記弓応力計測手段による計測値と前記弓応力データとの偏差に基づくフィードバック制御演算によって前記演奏データに追従するために必要な動作軌道を算出する軌道算出部と、
前記動作軌道に基づいた動作を実行させる動作実行手段と、備え、
前記軌道算出部は、
前記演奏データ記憶部の前記弓応力データに追従するために必要な弓押し込み角度の指令値を算出する弓押し込み角度算出部と、
前記演奏データ記憶部の前記弓応力データ及び前記接点データに応じて、前記弓押し込み角度の指令値を補正するための弓補正角度を算出する弓補正角度算出部と、を備える
ことを特徴とする擦弦楽器の自動演奏ロボット。
【請求項２】
前記軌道算出部は、
事前の実験によって、前記弓毛が前記弦を押す応力と、前記弓毛と前記弦との接触位置と、に応じて、前記弓応力データに対して前記弓応力計測手段による計測値の追従性が最も良くなるように求められた前記弓補正角度算出のためのゲインが設定記憶されたゲイン記憶部を備え、
前記弓補正角度算出部は、
楽曲演奏中に時々刻々変化する前記弓応力データ及び前記接点データに応じて前記ゲイン記憶部から前記ゲインを読み出し、当該読み出したゲインにより規定される補正弓角度算出式を用いて補正弓角度を算出し、当該算出した補正弓角度を前記弓押し込み角度の指令値に加算する
ことを特徴とする請求項１に記載の擦弦楽器の自動演奏ロボット。
【請求項３】
前記弓応力計測手段は、弓のスティックに貼設された歪ゲージによって構成されている
ことを特徴とする請求項１又は２に記載の擦弦楽器の自動演奏ロボット。
【請求項４】
弓を把持して擦弦楽器を自動演奏する擦弦楽器の自動演奏ロボットの制御方法であって、
楽曲演奏時に、
弓毛が弦を押す応力を指令する弓応力データと、前記弓毛と前記弦との接触位置を指令する接点データと、を含む演奏データが与えられ、
与えられた前記弓応力データに追従するために必要な弓押し込み角度の指令値を算出し、
与えられた前記弓応力データ及び与えられた前記接点データに応じて、算出した前記弓押し込み角度の指令値を補正するための弓補正角度を算出する
ことを特徴とする擦弦楽器の自動演奏ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、弓を用いて擦弦楽器を自動演奏する擦弦楽器演奏ロボット及びその制御方法に関する。
【背景技術】
【０００２】
人型のロボットが開発されている。このような人型ロボットは、人間の腕を模したロボットアームを有し、ロボットアームの各関節を駆動制御することにより、様々な作業を行うことができる。近年では、楽器を演奏する自動演奏ロボットも開発され、例えば、弓を使ってバイオリンなどの擦弦楽器を自動演奏するロボットの開発も進められている。
【０００３】
擦弦楽器の演奏では、弓に弦を押し付けて音を出している。このため、ロボットに擦弦楽器を演奏させるためには、人間の演奏時の動作を再現させればよいと考えられる。すなわち、まず、人間が実際に擦弦楽器を演奏した際の弓の歪量を計測し、その計測データを目標値として取得する。そして、ロボットが演奏している際に、計測した弓の歪量が目標値に追従するようにロボットのアーム位置をフィードバック制御し、弓を弦に押し当てる。
【０００４】
本発明に関連する技術が、特許文献１乃至５に開示されている。例えば特許文献１には、電気アコースティック・ギターの弦の振動検出に関し、圧電変換器からの信号を可変深度ノッチ・フィルタによって制御し、ノッチ・フィルタのノッチの深さがフィードフォワード制御される点が開示されている。また、特許文献２には、ハーフペダル駆動を行うことができる自動ピアノに関し、目標位置データ、フィードバック補正量及びフィードフォワード補正量に基づきペダル駆動ソレノイドを制御する点が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許３６０７７０７号
【特許文献２】特開平８−０４４３４８号公報
【特許文献３】特開平１１−２２４０８７号公報
【特許文献４】特開２００５−０２７０２８号公報
【特許文献５】特開２００９−０９０４２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、実際にロボットに擦弦楽器を演奏させる場合、弓の歪量を目標値に適切に追従させて、人間が演奏しているときのような音色を再現させることは非常に困難であった。実機において、弓の歪量の追従性が低い理由としては、例えば以下の理由が挙げられる。まず、関節部の摩擦、アクチュエータ性能、ゲイン設定、メカの低剛性部位などに起因する、弓に位置の追従性や応答性の劣化がある。また、弓の歪量を計測するひずみゲージ出力の、弓の構造上の問題によるセンサ出力遅れがある。さらに、弓と弦との接触位置における、出力感度の違いがある。このように、追従性の低下は、弓に取り付けたひずみゲージによる出力が弓と弦の接触する位置によって感度が異なることなどが影響するものと考えられるが、弓の構造上、異なる方法により弓圧を計測することは困難である。
【０００７】
従って、本発明は、上述した課題を解決して、弓の歪量の目標値への追従性を向上させることが可能な擦弦楽器演奏ロボット及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る第一の態様の擦弦楽器演奏ロボットは、弓を把持して擦弦楽器を自動演奏する擦弦楽器の自動演奏ロボットであって、弓毛が弦に押し当てられるときに前記弓毛と前記弦との間に作用する応力を計測する弓応力計測手段と、楽曲演奏時に、前記弓毛が前記弦を押す応力を指令する弓応力データと、前記弓毛と前記弦との接触位置を指令する接点データと、を含む演奏データが設定記憶された演奏データ記憶部と、前記弓応力計測手段による計測値と前記弓応力データとの偏差に基づくフィードバック制御演算によって前記演奏データに追従するために必要な動作軌道を算出する軌道算出部と、前記動作軌道に基づいた動作を実行させる動作実行手段と、備え、前記軌道算出部は、前記演奏データ記憶部の前記弓応力データに追従するために必要な弓押し込み角度の指令値を算出する弓押し込み角度算出部と、前記演奏データ記憶部の前記弓応力データ及び前記接点データに応じて、前記弓押し込み角度の指令値を補正するための弓補正角度を算出する弓補正角度算出部と、を備えるものである。
【０００９】
これにより、弓の歪量の目標値への追従性を向上させることができ、人間が演奏しているときのような音色をより良好に再現させることができる。
【００１０】
また、前記軌道算出部は、事前の実験によって、前記弓毛が前記弦を押す応力と、前記弓毛と前記弦との接触位置と、に応じて、前記弓応力データに対して前記弓応力計測手段による計測値の追従性が最も良くなるように求められた前記弓補正角度算出のためのゲインが設定記憶されたゲイン記憶部を備え、前記弓補正角度算出部は、楽曲演奏中に時々刻々変化する前記弓応力データ及び前記接点データに応じて前記ゲイン記憶部から前記ゲインを読み出し、当該読み出したゲインにより規定される補正弓角度算出式を用いて前記補正弓角度を算出し、当該算出した補正弓角度を前記弓押し込み角度の指令値に加算するようにしてもよい。
【００１１】
さらにまた、前記弓応力計測手段は、弓のスティックに貼設された歪ゲージによって構成されているようにしてもよい。
【００１２】
本発明に係る第二の態様の擦弦楽器の自動演奏ロボットの制御方法は、弓を把持して擦弦楽器を自動演奏する擦弦楽器の自動演奏ロボットの制御方法であって、楽曲演奏時に、弓毛が弦を押す応力を指令する弓応力データと、前記弓毛と前記弦との接触位置を指令する接点データと、を含む演奏データが与えられ、与えられた前記弓応力データに追従するために必要な弓押し込み角度の指令値を算出し、与えられた前記弓応力データ及び与えられた前記接点データに応じて、算出した前記弓押し込み角度の指令値を補正するための弓補正角度を算出するものである。
【００１３】
これにより、弓の歪量の目標値への追従性を向上させることができ、人間が演奏しているときのような音色をより良好に再現させることができる。
【発明の効果】
【００１４】
本発明によれば、弓の歪量の目標値への追従性を向上させることが可能な擦弦楽器演奏ロボット及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る自動演奏ロボットが擦弦楽器としてのバイオリンを演奏している様子を示す図である。
【図２】実施の形態１に係る弓の側面図である。
【図３】実施の形態１に係る歪ゲージを示す図である。
【図４】実施の形態１に係る自動演奏ロボットの制御部の構成を示す図である。
【図５】実施の形態１に係る弓押し込み角度算出部の構成を示す図である。
【図６】実施の形態１に係るゲインの調整フローを示す図である。
【図７】実施の形態１に係るゲイン算出時の計測データを例示するグラフである。
【発明を実施するための形態】
【００１６】
実施の形態１．
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本実施の形態に係る自動演奏ロボットが、擦弦楽器としてのバイオリンを演奏している様子を示す図である。
【００１７】
自動演奏ロボット１００は、体幹部１１０と、体幹部１１０に可動に設けられた右腕部１２０及び左腕部１３０と、を備えている。左右の腕部１２０、１３０は、複数の関節１４０を有し、６又は７の自由度を持つロボットアームである。各関節１４０は、サーボモータによって駆動される。左右の腕部１２０、１３０の先端部には、物体を把持する手先部が設けられている。
【００１８】
右腕部１２０は、肩から手首までの部分である右腕本体部１２１と、手首から先の部分である右手先部１２２とから構成される。右手先部１２２は、人間と同じように五指が設けられ、各指は指関節によって可動である。
【００１９】
ロボット１００は、人間と同じように左腕部１３０でバイオリン本体部９１０を保持し、右手先部１２２によって弓９２０を把持し、立位姿勢又は着座姿勢でバイオリン９００の演奏を行う。
【００２０】
ロボット１００が演奏するバイオリン９００は、通常のバイオリンと同じであってもよく、電子バイオリンであってもよい。
【００２１】
図２は、バイオリン演奏に用いる弓９２０の側面図である。
弓９２０は、スティック９２１と、スティック９２１に張られた弓毛９２２と、を備えている。さらに、スティック９２１には弓毛９２２に係る圧力を計測するための弓応力計測手段としての歪ゲージ９３０が貼設されている。
【００２２】
歪ゲージ９３０は、スティック９２１の前後方向において略中央に設けられている。歪ゲージ９３０の構成としては特に限定されるものではないが、例えば図３に示すように、４枚の歪ゲージを用いた４アクティブゲージ法によって歪ゲージを設けることが好ましい。このような４ゲージ法によれば、温度変化等によるスティック９２１の変形に影響されず、スティック９２１の歪を計測することができる。
【００２３】
このような構成の弓９２０において、弓９２０の弓毛９２２をバイオリン９００の弦９１１に押し当てると、弓毛９２２にテンションがかかる。すると、弓毛９２２のテンションによってスティック９２１に歪が生じ、この歪により歪ゲージ９３０の出力電圧が変化する。従って、歪ゲージ９３０の出力から、スティック９２１の歪及び弓毛９２２にかかるテンションを検知することができる。
【００２４】
ここで、図２に示すように、バイオリン演奏に用いるパラメータを設定する。
右手先部１２２が弓９２０を把持する基端を原点とし、弓毛９２２が弦９１１に接する位置を接点ｘｓとする。この接点ｘｓは、基端から弓毛９２２が弦９１１に接する位置までの距離を表す。前記原点を中心として、弓９２０の回転角度を、弓押し込み角度ΔΘとする。なお、弓９２０を弦９１１に押し込む方向を正とする。また、弦９１１の押し込み量をΔＺとする。
【００２５】
このとき、以下の式で示す関係が成立する。
ΔΘ＝ΔＺ／ｘｓ
【００２６】
次に、自動演奏ロボット１００の制御システム構成について説明する。
図４は、自動演奏ロボット１００の制御部２００の構成を示す図である。
制御部２００は、演奏データ記憶部２１０と、軌道算出部３００と、関節角度算出部２２０と、を備える。
【００２７】
演奏データ記憶部２１０には、楽曲を演奏するためにロボット１００に与える各種の指令が演奏データとして設定記憶されている。演奏データは、例えば、人間が実際に楽器を用いて演奏した際の各種データをサンプリングすることによって生成される。ここでは、演奏データとして、応力データとしての歪データ２１１と、接点データ２１２と、弓姿勢データ２１３と、が設定されている。
【００２８】
歪データ２１１は、人間が実際に弓９２０を用いてバイオリン９００を演奏した際に、歪ゲージ９３０によって計測された歪のデータであり、弦９１１に対して弓９２０をどれぐらいの強さで押し当てるかを示す。歪データ２１１によって指令される歪量を、εrefとする。
【００２９】
接点データ２１２は、人間が実際に弓９２０を用いてバイオリン９００を演奏した際の、弓毛９２２と弦９１１との接触位置ｘｓのデータである。接点データ２１２によって、弓毛９２２と弦９１１との接触位置ｘｓが指令されることはもちろん、接点データ２１２の一階微分、二階微分により、弓９２０をどれぐらいの速さでストロークするかが示される。
【００３０】
弓姿勢データ２１３は、人間が実際に弓９２０を用いてバイオリン９００を演奏した際の、弓９２０の角度のデータであり、これにより、弓９２０がどの弦９１１に当たるかが決まる。
【００３１】
なお、演奏データとしては、左腕部１３０に関する演奏データ、例えば、左手の運指データ２１４なども必要であるが、本発明の主要点は右腕部１２０の動作制御にあるので、左腕部１３０の動作制御に関する説明は割愛する。
【００３２】
演奏データ記憶部２１０に設定記憶された演奏データ２１１、２１２、２１３、２１４は、一つの曲に対応するデータとして生成されており、データ読出しの際には同期して読み出されるようになっている。
【００３３】
軌道算出部３００は、ロボット１００が楽曲を演奏する際の、各腕や手先部の軌道を算出する。軌道算出部３００は、弓押し込み角度算出部３１０と、右手先軌道算出部３２０と、右腕軌道算出部３３０と、左腕軌道算出部３４０と、補正角度算出部３５０と、ゲイン記憶部３５１と、を備えている。
【００３４】
弓押し込み角度算出部３１０は、演奏データ記憶部２１０の歪データεrefに追従するために必要な、弓押し込み角度の指令値ΔΘを算出する。
図５を参照して、弓押し込み角度算出部３１０の詳細な構成について説明する。
弓押し込み角度算出部３１０は、ＰＩフィードバックループによって構成されている。具体的には、弓押し込み角度算出部３１０は、比較器３１１と、比例演算器３１２と、積分演算器３１３と、角度変換器３１４と、を備えている。
【００３５】
比較器３１１には、目標値としての歪データεrefと、歪ゲージ９３０による計測値εfと、が入力され、比較器３１１は両者の偏差Δεを出力する。なお、歪ゲージ９３０と比較器３１１との間には、例えばローパスフィルタなどのフィルタ９３１が設けられている。そして、歪ゲージ９３０による計測値εｍはフィルタ処理によってノイズ除去が行われた後、フィルタ処理後の歪計測データεfが比較器３１１に入力される。
【００３６】
比例演算器３１２及び積分演算器３１３により、ＰＩ制御が構成される。具体的には、比例演算器３１２は、比例ゲインＫＰを歪偏差Δεに乗算する。また、積分演算器３１３は、比例演算器３１２の出力に対して、積分時間Ｔｉを用いて積分演算を実行する。歪偏差Δεに対する比例演算及び積分演算によって、弓９２０の押し込み量ΔＺが算出される。
【００３７】
角度変換器３１４は、求められた弓９２０の押し込み量ΔＺから、弓押し込み角度ΔΘを算出する。具体的には、角度変換器３１４は、弓９２０の押し込み量ΔＺを、そのときの接点データｘｓで除算することで、弓９２０の押し込み量ΔＺから、弓押し込み角度ΔΘを算出する。
【００３８】
ここで、歪ゲージ９３０による計測精度及び計測感度が高くないことに影響され、単純なＰＩ制御演算では、弓の歪量εmを目標値εrefに良好に追従させるための、弓押し込み角度ΔΘを精度良く求めることができない。そこで、本実施の形態では、弓押し込み角度算出部３１０の出力ΔΘに、補正弓角度算出部３５０の出力ΔΘｆｆを加算する点に特徴を有するが、詳細については後述する。
【００３９】
図４に戻って説明を続ける。
右手先軌道算出部３２０は、弓押し込み角度算出部３１０によって算出された弓押し込み角度ΔΘを実現するための、右手先部１２２の軌道を算出する。
【００４０】
関節角度算出部２２０は、右手先軌道算出部３２０、右腕軌道算出部３３０、左腕軌道算出部３４０によって求められた軌道を実現するため、必要な各関節１４０の駆動角度を求める。関節角度算出部２２０にて求められた駆動角度の指令値は、ドライバ１５０を介してモータ１６０に与えられる。関節角度算出部２２０と、ドライバ１５０と、モータ１６０とにより、動作軌道に基づいた動作を実行させる動作実行手段が構成される。
【００４１】
なお、特に詳細には説明しないが、右腕軌道算出部３３０は、弓毛９２２と弦９１１との接触位置が接点データｘｓに追従するような右腕本体部１２１の軌道を算出し、関節角度算出部２２０に出力する。また、左腕軌道算出部３４０は、例えば左手運指データ２１４に応じて、押さえる弦９１１、弦９１１を押さえる位置、弦９１１を押さえるタイミングなどを実現するための左腕軌道を算出し、関節角度算出部２２０に出力する。
【００４２】
補正弓角度算出部３５０について説明する。
補正弓角度算出部３５０は、歪データの目標値εrefと、弓毛９２２と弦９１１との接触位置ｘｓとから、弓押し込み角度ΔΘを補正するための補正弓角度ΔΘｆｆを算出する。補正弓角度算出部３５０により算出された補正弓角度ΔΘｆｆが、弓押し込み角度算出部３１０により算出された弓押し込み角度ΔΘに加算される。すなわち、補正弓角度ΔΘｆｆは、弓押し込み角度ΔΘに対する、フィードフォワード補正量となる。補正弓角度算出部３５０にはゲイン記憶部３５１が付設されている。補正弓角度算出部３５０は、ゲイン記憶部３５１に記憶されたゲインを参照して、歪データの目標値εrefと、弓毛９２２と弦９１１との接触位置ｘｓとから、補正弓角度ΔΘｆｆを算出する。
【００４３】
ゲイン記憶部３５１には、補正弓角度算出部３５０が補正弓角度ΔΘｆｆの算出処理で利用するゲインが設定記憶されている。これらゲインは、実際のロボット１００又は実験機を用いて、上述した弓押し込み角度算出部３１０におけるフィードバック制御を実行して、事前に求められたものである。詳細は後述するが、これらゲインは、歪データの目標値εrefに対してフィルタ処理後の歪計測データεfの追従性が最も良くなるように求められる。
【００４４】
図６及び図７を参照して、ゲインの算出方法について説明する。
図６は、ゲインの調整フロー図である。図６で示すゲイン調整処理は、補正弓角度算出部３５０及びゲイン記憶部３５１の機能は利用せず、弓押し込み角度算出部３１０の機能のみを有効にして行う。すなわち、弓押し込み角度算出部３１０が弓押し込み角度ΔΘを算出し、算出された弓押し込み角度ΔΘを補正せずにそのまま利用するものとして、歪計測データεfを歪データεrefに追従させるフィードバック制御のみを有効にして行う。
【００４５】
まず、ステップＳ１０１〜Ｓ１０３にかけて、ロボットを動作させてゲインの算出に利用するデータを計測する。なお、ｘｍｅｓは、計測時に取得した弓毛９２２と弦９１１との接触位置を示す。εｍｅｓは、計測時に設定した歪データの目標値を示す。ΔΘｍｅｓは、計測時に取得した弓補正角度を示す。
【００４６】
Ｓ１０１：弓毛９２２と弦９１１との接触位置ｘｍｅｓが０．２ｍ、０．３５ｍ、０．５ｍの場合に、歪データの目標値εｍｅｓが０．５[Ｖ]となるように弓毛９２２を弦９１１に押し当て、その時の、弓補正角度ΔΘｍｅｓを取得する。すなわち、接触位置ｘｍｅｓが０．２ｍの場合に、歪データの目標値εｍｅｓが０．５[Ｖ]となるように弓毛９２２を弦９１１に押し当てた時に、１つの弓補正角度ΔΘｍｅｓを取得する。同様に、接触位置ｘｍｅｓが０．３ｍの場合、０．３５ｍの場合にも、それぞれ同様にして、弓補正角度ΔΘｍｅｓを取得する。
【００４７】
Ｓ１０２：弓毛９２２と弦９１１との接触位置ｘｍｅｓが０．２ｍ、０．３５ｍ、０．５ｍの場合に、歪データの目標値εｍｅｓが１．５[Ｖ]となるように弓毛９２２を弦９１１に押し当て、その時の、弓補正角度ΔΘｍｅｓを取得する。
【００４８】
Ｓ１０３：上述したＳ１０１及びＳ１０２を３回繰り返し、歪データの目標値εｍｅｓが０．５[Ｖ]の場合の、各接触位置ｘｍｅｓでの弓補正角度ΔΘｍｅｓと、歪データの目標値εｍｅｓが１．５[Ｖ]の場合の、各接触位置ｘｍｅｓでの弓補正角度ΔΘｍｅｓと、を取得する。図７に、計測したデータの関係を示す。
【００４９】
次に、ステップＳ１０４〜Ｓ１０６にかけて、計測したデータからゲインを算出する。
Ｓ１０４：接触位置ｘｍｅｓに対する弓補正角度ΔΘｍｅｓを、最小二乗法を用いて２次式で近似して、２次のゲインａ、ｂ、ｃを求める。ここでは、以下の式を用いて、歪データの目標値εｍｅｓが０．５[Ｖ]の場合の２次のゲインａ、ｂ、ｃと、歪データの目標値εｍｅｓが１．５[Ｖ]の場合の２次のゲインａ、ｂ、ｃと、を求める。なお、Ｅは、残差二乗和を示す。
Ｅ＝Σ（ΔΘｍｅｓ−ａ×ｘｍｅｓ２−ｂ×ｘｍｅｓ−ｃ）２
【００５０】
Ｓ１０５：Ｓ１０４で求めた各歪データの目標値εｍｅｓについての２次のゲインａ、ｂ、ｃを対象に、歪データの目標値εｍｅｓに対する弓補正角度ΔΘｍｅｓを、１次式で近似して、１次のゲインａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３を求める。ここでは、以下の式を用いて、歪データの目標値εｍｅｓが０〜０．５[Ｖ]の場合の１次のゲインａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３と、歪データの目標値εｍｅｓが０．５〜１．５[Ｖ]の場合の１次のゲインａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３と、を求める。
ａ＝ａ１×εｍｅｓ＋ｂ１
ｂ＝ａ２×εｍｅｓ＋ｂ２
ｃ＝ａ３×εｍｅｓ＋ｂ３
【００５１】
Ｓ１０６：Ｓ１０４で求めた２次のゲインａ、ｂ、ｃと、Ｓ１０５で求めた１次のゲインａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３とから、以下に示す、補正弓角度算出用の式を求める。
ΔΘｆｆ＝ａ×ｘｓ２＋ｂ×ｘｓ＋ｃ
ａ＝ａ１×εｒｅｆ＋ｂ１
ｂ＝ａ２×εｒｅｆ＋ｂ２
ｃ＝ａ３×εｒｅｆ＋ｂ３
【００５２】
このような構成を備える自動演奏ロボット１００の動作について説明する。
まず、自動演奏ロボット１００による演奏開始に際して、必要な各種データを設定する。演奏データ記憶部２１０に、一曲分の演奏に必要な、歪データ２１１、接点データ２１２、弓姿勢データ２１３等を設定する。さらに、ゲイン記憶部３５１には、接点ｘｓ及び歪データの目標値εｒｅｆに応じて、最適なフィードフォワード制御を実現する２次ゲイン及び１次ゲインを設定する。
【００５３】
このような準備の後、自動演奏ロボット１００に演奏させる。
演奏データ記憶部２１０から、歪データεrefと、接点データｘｓと、弓姿勢データ２１３とが同期して出力される。
【００５４】
歪データεrefは、弓押し込み角度算出部３１０に入力されると共に、分岐して補正角度算出部３５０に入力される。また、接点データｘｓは、右腕軌道算出部３３０に入力されると共に、分岐して補正角度算出部３５０に入力される。
【００５５】
弓押し込み角度算出部３１０に入力された歪データεrefは、比較器３１１において歪ゲージ出力のフィルタ後のデータεfと対比され、その偏差Δεが比較器３１１から出力される。比較器３１１からの偏差Δεが、比例演算器３１２及び積分演算器３１３を介して、弓９２０の押し込み量ΔＺに変換される。そして、押し込み量ΔＺは、角度変換器３１４において接点の値ｘｓ（接点データｘｓ）により除算され、押し込み角度ΔΘに変換される。
【００５６】
補正角度算出部３５０は、入力された歪データεref及び接点データｘｓに応じて、ゲイン記憶部３５１から対応するゲイン（２次ゲインａ、ｂ、ｃと、１次ゲインａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３）を読み出す。補正角度算出部３５０は、読み出したゲインを上述した補正弓角度算出式に設定し、当該式に入力された歪データεref及び接点データｘｓを代入することで、補正弓角度ΔΘｆｆを算出する。このとき、弓９２０がストロークされると接点ｘｓ及び歪データεrefは時々刻々と変化するので、補正角度算出部３５０は、制弓９２０の動き、即ち、時々刻々変化する接点データｘｓ及び歪データεrefに応じてゲインを更新し、更新したゲインに基づく補正弓角度ΔΘｆｆを算出する。
【００５７】
補正角度算出部３５０により求めた補正弓角度ΔΘｆｆが、補正角度算出部３５０により求めた押し込み角度ΔΘに加算される。すなわち、補正弓角度ΔΘｆｆは、フィードフォワード補正量として、押し込み角度ΔΘに加算される。
【００５８】
補正された弓押し込み角度（ΔΘ＋ΔΘｆｆ）は、右手先軌道算出部３２０に入力され、前記補正された弓押し込み角度（ΔΘ＋ΔΘｆｆ）を実現するための右手先部１２２の軌道が、右手先軌道算出部３２０によって算出される。
【００５９】
関節角度算出部２２０は、求められた軌道を実現するために必要な各関節１４０の駆動角度を求め、求められた駆動角度の指令値は、ドライバ１５０を介してモータ１６０に与えられる。これにより、ロボット１００の右手先部１２２が必要な駆動を実行し、歪データεrefに追従するように、弓毛９２２が弦９１１に押し込まれる。
【００６０】
さらに、接点データｘｓ２１１及び弓姿勢データ２１３を用いて、右腕軌道算出部３３０により右腕本体部１２１の軌道が求められ、指令に従った弓ストローク及び弓角度が実現される。その他、左腕部１３０に関しても、運指データ２１４等に基づいて左手の弦押さえが実行される。
【００６１】
このようなロボット１００の制御により、演奏データ記憶部２１０に設定された指令値に良く追従したバイオリン９００の演奏が実現される。特に、歪データεrefへの追従性を向上させ、弓毛９２２と弦９１１との押し当てが指令値に従うので、人間が演奏するときに極めて近い音色が実現される。
【００６２】
本実施の形態によれば、次の効果を奏する。
従来、ロボット１００にバイオリンを演奏させる場合、弓９２０の歪量の計測に十分な感度が得られないことなどが影響して、ロボット１００が演奏する時の弓の歪量を目標値に精度よく追従させることが難しかった。また、弓の構造上、歪量の計測感度を引き上げることは相当に困難であった。
【００６３】
この点、本実施の形態では、弓押し込み角度算出部３１０において歪データの目標値εrefについてのフィードバック制御を実行すると共に、弓押し込み角度算出部３１０により求めた押し込み角度ΔΘに対して、フィードフォワード補正量として補正弓角度ΔΘｆｆを加算するという、より追従性を重視した構成を採用した。これにより、目標とする弓の歪量に対する追従性がより向上し、ロボット１００の自動演奏による音色が人間の演奏に近くなる。
【００６４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上述した実施の形態１では、弓毛にかかる力を計測するための弓応力計測手段としてスティックに貼設した歪ゲージを用いる場合を例に説明した。この他、例えば、右手先部１２２とスティック９２１の基端との間に圧力センサを介在配置し、圧力センサからの出力値によって弓９２０に掛かる応力を計測するものとしてもよい。また、弓応力計測手段としての歪ゲージを設ける位置はスティックの前後略中央に限らず、弓の歪を検出でできる位置であればよい。また、弓応力計測手段としては、歪ゲージ、圧力センサに限らず、その他のセンサを用いてもよい。
【００６５】
上述した実施の形態１では、弓押し込み角度算出部３１０は、ＰＩフィードバックループで構成されている場合を例示したが、これに限らず、ＰＩＤ制御、ＰＤ制御などとしても良いことはもちろんである。
【００６６】
擦弦楽器としては、バイオリンに限らず、弓（又は棒）により弦をこすって音を出す楽器であれば良く、バイオリン属（バイオリン、ビオラ、チェロ、コントラバス）の他、例えば、胡弓などでもよい。
【００６７】
制御部２００は、各種演算器として動作する論理素子等のハードウェアで構成されたものに限らず、ＣＰＵ（中央処理装置）、メモリ（記憶装置）等を備えたコンピュータによって構成されていてもよい。そして、このコンピュータに所定のプログラムを組み込んで前記弓押し込み角度算出部３１０や右手先軌道算出部３２０等の各機能を実現させるようにしてもよい。
【００６８】
補正弓角度算出部３１０に演奏データ記憶部２１０の接点データ２１２が分岐して入力される場合を例示したが、この他、例えば、右手先部１２２の動作軌道を補正弓角度算出部３１０にフィードバックし、右手先部１２２の位置から弓毛９２２と弦９１１との接触位置を求めるようにしてもよい。
【符号の説明】
【００６９】
１００…自動演奏ロボット、１１０…体幹部、１２０…右腕部、１２１…右腕本体部、１２２…右手先部、１３０…左腕部、１４０…関節、１５０…ドライバ、１６０…モータ、２００…制御部、２１０…演奏データ記憶部、２１１…歪データ、２１２…接点データ、２１３…弓姿勢データ、２１４…左手運指データ、２２０…関節角度算出部、３００…軌道算出部、３１０…弓押し込み角度算出部、３１１…比較器、３１２…比例演算器、３１３…積分演算器、３１４…角度変換器、３２０…右手先軌道算出部、３３０…右腕軌道算出部、３４０…左腕軌道算出部、３５０…補正弓角度算出部、３５１…ゲイン記憶部、９００…バイオリン、９１０…バイオリン本体部、９１１…弦、９２０…弓、９２１…スティック、９２２…弓毛、９３０…歪ゲージ、９３１…フィルタ。
【図１】
0005556255.tif 000002
【図２】
0005556255.tif 000003
【図３】
0005556255.tif 000004
【図５】
0005556255.tif 000005
【図６】
0005556255.tif 000006
【図７】
0005556255.tif 000007
【図４】
0005556255.tif 000008