お習字ロボでは、逆キネ計算でアームを動かしているが、実際に動かしてみると、アームを伸ばしたとき(筆先が肩から遠いとき)ほど筆先が落ちて字が太くなり、逆にアームを縮めたとき(筆先が肩に近いとき)ほど筆先が浮いて字がかすれるという問題がある。どうやらアームが重力によってたわんでいるようである。
いや、「たわみ」という表現は不正確かもしれない。このアームのリンクは長さと重量に比べて十分な剛性を鉛直方向に対しては持っており、リンクそのものが弓なりに弾性変形しているわけではない。ではどこが変形しているかというと、肩ヨー軸のサーボのホーンである。アーム全体の荷重がここにかかるので、とくにアームを伸ばしたときに大きなモーメントとなってホーンを歪ませているのだ。では、どうすれば良いか?
(1) 金属製のホーンに交換する
HSR-5498SG用 丸型メタルホーンセット 1,280円也(2) たわみを見込んで肩ピッチ軸角度を補正する
これはAndroidアプリ側でやるべきことだろう。水平面上での筆先と肩(原点)の距離rから、たわみ補正角α(r)を計算して肩ピッチ軸角度θ1に加算するのだ。α(r)は線形近似できるかもしれないし、2次以上の多項式近似になるかもしれない。まずは、rに対する適切なα(r)を手動調整で測定して、Excelで近似曲線を引いてみよう。そして、その計算式をAndroidアプリに組み込む。近似曲線作成のためのデータ取りのために治具アプリを作成する必要がある。
(3) ひずみセンサを用いて筆圧をフィードバックする
これはArduino側でやるべきことだろう。(2)の補正もしょせんはオープンループ制御なので、微妙なセッティングの狂いや補正式の誤差に左右されてしまう。最終的にはフィードバック制御にすべきだろう。(もっとも最初から安易にフィードバック制御に頼るのも考えもので、まずはオープンループでできるかぎり正確な制御モデルを作るべきだと思う。)筆圧は手首と筆保持機構の間を板でつなぎ、板にひずみゲージを貼り付けて測定する。(2012/12/31の日記参照。) しかし、実際に測定してみると、電圧のドリフトが激しい。ホイートストンブリッジで微小な電位差を増幅しているので、温度による抵抗値のわずかな変動で電圧が大きく変動するようだ。そこで2ゲージ法によって温度ドリフトをキャンセルすることを試してみたい。2ゲージ法とは2個の同じひずみゲージを板の裏表に貼って逆極性のひずみの差動をとる方法である。