開発日誌みたいなの(2)

過去の開発日誌へ

最新へ↓

9月3日

バンドソーお亡くなりに・・・(T_T)/~~~ 刃が折れてしまっただけですが。。 このバンドソーって15年くらい?前に買ったのにまだ売ってるみたい。よかった。

  左がリョービ、右がプロクソン。リョービがプロクソンからOEM供給受けてるのかな。我が家の刃リョービのやつ。

で、作った部品はこれ。

この画像は足首部分なのだが、しゃがみ姿勢の時にここのケーブルをかんじゃいそうなのでケーブルホルダー兼サーボモータのガードを取り付けた。


部品を切り出した直後にパツンと切れてしまった。 ありがとう、帯鋸刃。そして、早く来てくれ新しい帯鋸刃。

ジャイロのチェックの続き・・・ X軸以外の軸も同様に静止状態でデータを取ってみた。Z軸はおかしなデータは出ない。Y軸は-257というデータが時々出る。X軸もこないだとは違うデータが出てきた。でも、どのデータも下位バイトの数値はFFなのだ。やっぱりなんかおかしい? Z軸ってデフォルトで実装してる軸で、他の軸はオプションで増設してる。これは関係しないのかなー。 問題はY軸のエラーデータで、-257というのは有効数値内のデータだからリジェクトするのはちょっとやな感じだな。

9月4日

アタマユニットの通信プログラムを書く。AtmegaのUSARTをRS232CとRS485で共用しているのだが、RS485は半二重通信のため、送受信切り替えが要る。AtmegaのIOポートに割り当てているのだが、これが入力設定(初期状態は入力)になってしまうと、RS485を占有してしまっておかしくなる。

なんと、おかしな状態でRPU-100からRS485ポートにアクセスするとOSが落ちてしまう。(>_<) これはちとまずいのでなんとかしなきゃということで、送受信切り替えポートをプルダウンしておくことにした。接続しているポートが入力端子なら強制的にLowになって受信側になるはずだが。

アタマサーボの制御は大体できたかなー。RPU-100からのコマンドでサーボON/OFF、角度・速度指示、あとはトルク制御してサーボは一応完了。あとはPSDのデータ受信。今日中にここまで完了してアタマユニットは完成としたいところだ。

RCサーボのトルク制御。アタマユニットのサーボはPWM制御のデジタルサーボを使っている。それほどの負荷は無いのでトルクは問題にするほど必要ではないが、カメラでモノを追うときに再現性が高い方がいいかなー、くらいの要求はあるかな。で、こけた時の事を考えて、低い保持力で制御できるようにしておこうと思ったのであるが、デジタルサーボってパルス周期によるトルクのコントロールが効かないみたい。ある程度の範囲を超えたパルスが来ると、トルクを失ってしまう。ところがどういうわけか、すごーく長い周期でパルスを送るとまたトルクが発生する範囲があった。その範囲だと、パルス周期が遅いので手で押すとユワンユワンと反応する。がっちり固いのよりは機械的負荷は小さいと思うんだけどな。こけそうなときは退避姿勢をとりながら、トルクは最低で。トルクをなくしてしまうとこれまた、どんな姿勢になるかわからなので壊れる原因になりそう。プログラムのバグだと思い込んでたから、デジタルサーボであることが原因って気づくまで結構はまった。知らないってことは罪だな。

RS485送信。送信といっても、アタマユニットのマイコン(Atmega32)から、RPU-100への送信。受信が難なくできたから送信も難なく出来るだろうと思ってたら、全然ダメだ。10byte送っただけなのに、18〜26byteも受信しちゃう上にデータ内容はめちゃくちゃ。同時にRS232Cでも受信してみているが、そっちは正常なんだよな。ということはRS485の回路とか伝送路に問題があるのか。2倍くらいのデータを受信しちゃってるってのが意味がわからない。

今日はハマリっぱなしだ。

9月5日

送信がうまく行かない原因がやっとわかったー。ビットレートクロックの誤差だった。伝送路のターミネータがないからだとか、配線が間違っているとか色々疑ってたけど、キホンでした。(>_<) でも、デバッグしたら、それ以外にもバグがいっぱいあってちょっと恥ずかしかった。(*^_^*)

115200bpsで通信をさせようとしてるんだけど、Atmega32の方はシステムクロック16MHzから作る。16M/(8*17)=117647 誤差は2.1% 試しに57600bps(誤差率0.8%)でやってみるとほぼエラー無く通信できる。 サーボとの通信でエラーが多いのも実はこれが原因なのかな?

通信速度はこれ以上下げれないし、誤差減らすにはAtmega32のシステムクロックを変えるしかないか?いっそのこと速度を上げちゃおうかな。250kbpsなら誤差0%だっ。

元クロック乗せ変えの前に、Atmega32のビットレートクロックを下げてみる(111111bpsになって、誤差は増えるけど、マイナス側ってのに期待)RPU-100側のクロックを調整とか、やってみよう。

9月6日

結局、調整だけではうまく行かないことが判った。 RPU-100の通信レート設定はどういう仕組みかわからないけど、初期化関数に整数でビットレートを与えるようになっている。試しに、117647で初期化してみたら、問題なくデータ受信ができるようになった。 こりゃーいいや、ってことで、サーボ・センサーボード・アタマユニット全てと通信できる設定がないかなーと思ったのだが、うまく行きません。(>_<)

結論としては、Atmega32のクロックを16MHzから、115200bpsのクロックを精度よく作ることが出来るクロックに変更しなければならないことになった。これやると、プログラムの書き込みにISPモード使わないとならなくなるからちょっと面倒。ISPケーブルとか作らなきゃならないしぃ〜。。。

アタマユニットからのデータ取得って、PSDからのデータしかないからしばらくは放置ってことにしますかねー。部品購入とかは進めておこう。

9月8日よちよちだけど歩いたぁ〜(^・^)

Atmega32マイコンボードに乗せ換える水晶振動子も見つけたし、ISPモードでの書き込みの目処もついたので部品購入を進める。明日にも届くらしいので週末はISPケーブルの製作になっちゃうか?

ということで、PSDからのデータ取得はおいといて、頭ユニットも含めてモーション制御できるように組み込む。普段はできるだけ首をすくめてトルクを落として、コケテも壊れないように。

で、足踏み動作に前後の送りを加えて歩かせてみましたー。よっちよっちとだけど、一応歩かせることはできました。パラメータ調整をすればもう少しましに歩けるでしょう。

でも、前につんのめってこけたら首が折れちゃいました。(>_<)  今度は第一チルトのファイナルギアをメタルギアにしたのでプラスチック製サーボホーンにしわ寄せが。。こけるの察知して受身を取るようにしなきゃだめだなー。あと、荷重を逃がせる構造にしないとなぁ。

パラメータ調整するって手もあるんだけど、サーボ制御をもう少し細かくやる手段を折り込みたいのでまたサーボ制御に戻ります。

立ち上がれ〜

歩け〜。 このあとコケテまた首が折れた。(>_<) つ〜か、まだ歩けたって言わないな。これじゃー。(^^ゞ

まだまだ調整が必要らしくってうまく歩けなかったりする。 なかなか難しいな。

折れた首のアップ   割れたサーボホーン

受身とかできないかなーと思ってやってみたけど、まだジャイロの使い方がイマイチ。手を出そうとするんだけど、間に合わなくてもっとひどいことに。首が完全にちぎれちゃった。(>_<) ケーブルでブラーーンってぶら下がってるのはなんかかわいそうな感じするね。 要検討だ。 更には第一チルトのサーボと胴体旋回サーボの位置がシビア過ぎ。首を直すためにつけ外ししたら、接触するようになってしまった。もっとクリアランスを設けないとまずいな。 要検討だ。

9月11日

金曜日には注文しておいたいろんな部品が届いて楽しい気分(*^.^*)のはずだったんだけど、首折れ問題が解決していないからどこかしらブルー。

左がフタバのマイクロサーボ。右は今回買ったブルーアロー。ちょっとだけ大きくて安い。どんな具合になるか、まだ動かしてない。


とにかく対策をってことで、色々考えた末にプロテクター(というかバンパー?)と、第一チルトには負荷リミッターをつけてみた。

胸にバンパー。頑丈に作ったつもりだけど、衝撃に耐えられるかどうかは不明。このバンパーって上体の旋回可動範囲を狭めてる。いつか外したいな。(はずしても首が折れる心配しないようになりたいって意味で。)


一応、カメラより前に突き出てるので歩行姿勢や直立の時なら、カメラより先にバンパーが着くはず。


第一チルトの負荷リミッター。過負荷がかかるとスリップするようになってる。一度スリップすると再調整しなきゃならない。 壊れるよりましって程度だなー。自動復帰するようにしたい。


こないだ壊れたパンサーボの部分は未対策。なかなかいい感じなのが思い浮かばない。

結局土日で出来たのはこれだけ。予定と全然違うことやる羽目になったからちょっとがっかりな感じ。

9月12日

「2足歩行ロボットはこけないこと」と言っておきながらこけた時のことばかり考えてる。姿勢をくずした時の受身アクション

立ってます
あ、もうこけるっ!
膝を落として、手を前にだす。
腕をつくけど、力を逃がしながら、
最後は胸がタッチダウン。

膝をついて見かけの身長を低くすることがポイント。将来的にはここから足を前に出してバランスを回復するとかやりたい。腕を着いたあと、肩関節の荷重を見てガガッとつぶれるとこができるかな。機構に負担を与えずにこけたい。

あと、しりもちの方も作らないと。

いくらバンパーを作っても前かがみの時にこけたらアタマを直撃するのは目に見えてる。生きてるうちは受身姿勢を取るようにしなきゃどうしたって壊れてしまう。ラムダクラスのロボット(特に2足歩行ロボット)にはこけた時の受身処理は必須だろう。用意したモーションを再生するのではなく、その時の姿勢に適した受身動作をとるような仕組みを考えないといけない。同じ姿勢からの受身でも、傾きだけじゃなく、角速度も加味して考えないといかん。


バンバーの取り付け用金具。一回こけたら曲がっちゃった。。。(>_<) まぁ、、、ベース側のタップが抜けなくてよかった、、かな。。

9月13日

CPGの引き込み効果というのを試したいと思っていたのだが、非線形一階微分方程式が解けない。(>_<)

←CPGの数理モデル

 で、すでにパッケージになってるものはないかなーと探してみたらありました。ココ ドキュメントが何にもないのでコードを読んで使い方を理解せねばならんのだが、それくらいならナントカなるだろー。2足歩行がCPGでそのまま動いてるとは思えないんだけど、試してみないとね。

最近ちょっと色んなとこに気が行っててとっちらかってる。一つずつ確実にこなしていかないとなぁ。(-_-;)

9月14日

まずはジャイロのデータ処理から。 オフセットをうまく設定すればなんとかなりそうな感じ。静止状態での姿勢(センサーの姿勢)によってもオフセットが変わるようなので注意が必要。あと、ずーと、角速度量を積分してもうまくない。どこかでリセットするようにしないといけないようだ。

平坦な床で外力を受けたりして姿勢を崩した時と、床に傾斜がついた時では補正の仕方が変わるわけだけど、センサーデータからは判断できないなぁ。(あ、足裏センサーが要るのかな?)

受身姿勢を作ったりしてる時にクッションを敷いてバッタンバッタン倒してたんだけど、アタマユニットが動かなくなった!(>_<) 調べたらUSARTの入力線をRS232CとRS485で切り替えてるスイッチが衝撃で外れてしまったらしい。うーむぅぅぅぅ、恐るべき落下衝撃。 早くISPケーブル作って切り替えスイッチからおさらばせねば。 それにアタマユニットからデータ受信ができないからメインCPUからはアタマユニットの動作確認が取れない状態なのだ。こっちが先だったかなー。でも、、、ISPコネクタは6Pもあって場所食っちゃう。

なんにしろ、こうやってエージングみたいに負荷かけてやればアラが出てきて改良点が見えてくる。荒療治だけどね。

で、ISPケーブル用の基板の切り出しをやろうかと思ったけど、バンドソーの騒音を夜に出すのはやっぱり躊躇してしまった。明日、会社から帰ってすぐにやろう。

ユニバーサル基板でSMD実装するのも限界があるなぁ。でも、基板起こすほどでもないしぃ。

9月15日

静止状態だけど、ジャイロデータのフィードバックをかけてみた。こういうのはPWMサーボを直接駆動してる方式の方が自動制御的にできるんだけど、コマンド型でもそこそこできるみたい。もっと煮詰めないと実用にはならないけど、なかなかいい感じ。(^・^)

 まだふんばってる段階。 これ以上角速度が大きかったらコケルの覚悟で受身姿勢に移行するようにしてみよう。

ジャイロだと基点が無いから静止状態の姿勢は加速度センサーの値を見て判断するようにしないといかん。ジャイロデータ積分してもすぐオフセットが発生してしまうのはあいかわらずなのでとりあえず、静止したらそこを基点にするようにしてみた。

あと、今んとこ傾き角度にリニアに補正をかけてるけど、傾き量に対する補正量は指数的なカーブを使わないといけなさそう。

9月17日

昨日からISPケーブル作りに着手。で、完成しました。書き込みも良好。でも、、、USB-COMアダプターからはデバイス認識できなかった。(>_<) 仕方がないからデスクトップマシンにつないで使うことに。せっかくVMウェアを導入してノートPCだけで開発できるようにしたのになぁ。

で、ATmegaボードの水晶振動子を交換したのだけど、大きさが随分と違う。なんとかパッドに載ったみたいだからよかったけど。結構危うかったかも。同じ大きさのが見つからなかったのだ。 載せ換えてRS485通信をしてみたら、良好です。ばっちり。クロックが変わったからPWM生成部分もパラメータがちょっと変わったのだけどそれも調整済。

(COMの問題以外)良好で気持ちいい〜。しかし、配線が完了して動かしたとき、デバイス認識できなかった時点で一度力尽きた。SMDの配線はホントに疲れる。(T_T)

これで、RS232CとRS485の切り替えスイッチとか、RXDの線を無理やり引っ張り込んでるのとか、全部綺麗にはずせる。(^.^) でも、、、リポを乗せる時にはレギュレータを乗せるつもりだから、このマイコン基板も作りなおしだろうなぁ。

 これが完成したISPケーブル。きちんと箱に収めるつもりで、箱に合わせた基板サイズにしてみた。でも、、、このまま使い続けそうな予感。(^^ゞ

大きさが違うぅ〜。下のに交換した。(14.7456MHz)

で、こんな風につないで使う。分解しなくてもアクセスできる。(当然か。(^^ゞ )

9月18日

もっと細かいサーボの制御を行うために補間データを挿入できるようにしました。今までは目的角度までリニアに動くだけだったけど、経由点を指示追加できる。ペジェ曲線とかは無理だけど。

コマンド型サーボは目的角度と到達時間を送っておけば勝手に動いて止まってくれるのだけど、きめ細かな制御ができない。ジャイロのデータを取り込んで振動をキャンセルとかいう制御は事実上不可能。でも、ジャイロを効かせたいしぃ〜。。ということで、サインカーブを描かせてみたのだけど・・

補間。目標角度を指示して傾斜を100ms毎に調整。 100ms毎の角度データを送信

1秒で-50度から+50度へ移動。補間版の方が少しだけデータ送信量が少なくて、少しだけ脈動が少ない感じ。サインカーブが再現出来てるのは角度データ版だなー。 ううむ。どうしたもんか。カーブがひずんじゃってるのはバグかもしれない。

9月19日

色々考えた末、歩行パラメータの調整をやってみる。こないだのは調整ってほど値をいじってなかったし。結構ガツガツ歩けるようにはなってきたんだけど、とうとう足首サーボが温度アラームで停止。膝じゃなくて足首に来た。姿勢を考えるとそうだなぁ。。足首が一番厳しいなぁ。

胴体の重心が後ろにあるせいで足首サーボの負荷が大きくなってしまっている。類人猿型が一番負荷が小さいのだけれど、猿っぽいのはイヤなのでヒト型で。胴体に傾斜が付くのは好ましくないけど仕方ないなぁ。


ちなみに、角度データの送信のタイミングを少し早くしたら補正タイプとほとんど差がなくなった。 補正型の方で波形が崩れているのは、補正する前に目標角度に到達してしまっているのが原因らしい。 ううむぅ。。。

 サーボエラーが発生すると赤いLEDが点灯する。トルクも無くなるのだ。このLED消せない。(>_<)

 温度が下がっても消せない。警報フラグもリセットしないのだ。困ったもんだ。

9月20日

サーボに負荷をかけないような姿勢にしたいのだけど、それではなかなか歩けない。数歩歩いてコケテしまうのはつんのめり気味な場合らしい。

 腕の振りをつけてみた。単純に振ってるだけなので歩きの安定化には貢献してないなー。(^^ゞ もう少し緩急をつけた振りにすれば加速度補償になるか?

今は1歩分のデータを一気に作成してスタックしておいて順次実行している。歩きながら姿勢補正を行うにはジャイロデータを見て上体を補正したり蹴り足のスタンスを大きくしたりしなければならない。

歩調を早くするにはスタンス(両足の開き具合)を狭くしなければならない。あまりスタンスを狭くすると自分の足を踏んじゃう。足裏サイズを小さくしたりスタンスを狭くできるように足の形(膝のブラケットの形状)を変える必要があるな。

9月23日

1歩1秒の歩きはだんだんと安定してきたけど、もっとスタスタと歩かせるには脚幅を狭めないといけない。実はラムダの足裏はでかくて脚を揃えて立てないのだ。寸法を確認してみるとロボワンの第8回規定をオーバーしている。時々、自分の足をふんずけてしまうし、ここは一つ、足裏を小さくしよう。とりあえず、第8回大会規定の寸法をクリアできるサイズで作ってみる。

小さくして歩かせてみると、一応歩けるのだけれどやっぱりこけ易い。今まではバランスを崩してもちょっと踏ん張るくらいの余裕があったけど、もうその余裕はない。バランス崩したら即転倒。このサイズだともうフィードバック制御は必須というわけですね。


ジャイロフィードバックはおいといて、歩容が気に入らない。すたすたと歩かせるには歩容から検討しなおさなければならないようだ。

これが今の歩容。

直線使って、サーボに送るコマンドを最小限にしてみています。

どうもこの方式だと限界が低そうなので、あっさりと諦めてもうすこし細かなデータで歩かせることにする。大体100ms毎くらいかなー。ジャイロのデータ取得が今のところ40ms毎なのでそれくらいまで細かくしてもいいかも。


スタスタと歩くには歩行周期を小さくしなければならない。すると、左右の振幅を小さくし、支持脚の切り替え速度を速くしなければならない。切り替え速度を早くすると、最大振幅付近の加速度が大きくなり反動の影響が出てくる。そこで最大振幅付近で減速を開始し、反動を抑える。

支持脚が遊脚に切り替わる時や、遊脚が支持脚に切り替わる時は共に大きな加速度が加わる。ここでも加速度が小さくなるように細かな速度変化が必要だろう。


今は、1歩分のデータを一気に作ってスタックしておいて順次再生しているのだけれど、これではジャイロフィードバックが出来ない。 逐次計算するように変更して、ジャイロフィードバックがかけられうようにしないといけない。まずはそこから着手かな。

そういえば、ソニーが11年ぶりの赤字ということで不採算事業が整理されるらしい。アイボは縮小しようがないから撤退なのかなー。キュリオはどうなるんだろ。あれほどのモノをお蔵入りにしちゃうのかなー。もったいない。

 大腿のロールサーボにスラストベアリングを入れる。これは、設計の段階では入れていたんだけど、いいサイズ(軸径が8ミリ)のがなくて、仕方なく軸径10ミリのを(スペーサーを挟んで)入れたのだけどうまくなくて入れるのを諦めてた。 まぁ、入れて無くても大丈夫っぽかったのだけど、東急ハンズでちょうどいいサイズのをみつけたもんだから入れてみた。画像をクリックするとベアリング部分が拡大表示される。右がベアリングを入れたところ、左はベアリングなし。


ジャイロデータフィードバックによる、姿勢補正。手探りじゃなくてちゃんとPID理論に基づいて補正量を決めようってんで計算してみたんだけど、やっぱPIDゲインは手探りだな。適当な値を入れたら、ギッコンバッタンえらいことになった。(^^ゞ ラムダ壊れそうぅぅぅ。

9月24日

今日は一日ジャイロフィードバック。その甲斐あって、そこそこ成果が出てきた。とにかくパラメータ調整なんだけど、PIDゲインだけじゃなく、補正の加え方から積分時間の設定から、可変要素が山盛りなので設定が収束しない。どちらにしてもこれで踏みこたえられる範囲は限られているから、それ以上姿勢を崩した時の動作につなげていかないと。。

ジャイロ補正なし。 結構簡単にひっくり返る。受け止めている手には結構な重さがかかる。


ジャイロ補正あり。 ぐにゃんとした感じでゆれを吸収する。踏ん張れない時も勢いが殺されているので軽い感じ。


いまは静止状態、それも直立状態限定でしかフィードバックできていない。動きながらでもできるようにせねば。ただ、動きながらだと考え方も変わるからまた試行錯誤なのだけど。

9月27日

日曜日は一日歩行の改善(スタスタ歩けるように)をしたのだけれど、目立った成果はなし。。 色々と気付いた事はあって、無駄ではぁ〜なかったかな。

歩行の改善方法を考えているうちに、、2足歩行ロボットを作っておいてなかなか歩かせないのなんだなぁ、というか、機体のバランスが悪くて歩けなかったりしたら意味が無いなぁと思って、とりあえずはモーション再生型の歩行をさせてみようと思っていたのを思い出した。 もともとバランス制御を基点として歩行に発展させていこうとしていたのだった。ちょっと歩いたものだから欲が出て本来の狙いを忘れていた。

そういう意味でも考察が進んでいい一日だったのかもしれない。で、その中でジャイロフィードバックの手法でなかなか良いのを思いついたから月曜日はそれの実験用コードを書いていた。先日やってた静止状態のジャイロ補正だと、補正中はぶるぶる震えたりして、かっこわりーなぁと思っていたのでその改良案。

コードは比較的簡単に書けて、夜中の2時頃から動かし始めたのだけれど、なんかイイ。(^^)v うれしー。今度のはぶるぶる震えたりしないです。動画アップしておくけど、動画じゃこの差はあまりわからないかもしれないな。残念。(音量を最大にして見比べたらすこしわかるかも) コマンド型サーボでここまでできたらまー上等なのではないかなーと自負してます。静止状態だから自慢にはなんないか。(^^ゞ

改良版ジャイロ補正。耐える力は前の方があったかも。あんまりゲインや補正量を上げると発振しちゃうんだよね。スマートに補正されてるからコレくらいにしておく。この先は別の受身を考えるつもり。

ヒトに自慢げに見せたら、「こけない程度に加減してるように見える」って言われた。ジャイロ補正してたら、角加速度に反応して補正を始めるから加減しているように見えちゃう。



9月29日

静止状態でのジャイロフィードバックの目処がついたので、次は動作状態でのジャイロフィードバックの検討を進めてる。動作時はX軸周りだけじゃなく、Y軸周りやZ軸周りも必要そうだし、速度ベースだけじゃなくて加速度ベースでのPID制御もしなきゃならなさそうだってことなので、PIDクラスってのを作ってみた。プログラムはきっと書きやすくなったはず。

動作中のフィードバックは基本的にトルクをコントロールすることで行いたい。601CRにはトルク率ってパラメータがあるのでこれが使えるな、と思っていたのだけれど、思い通りに働かない。困ったな〜。 色々試すうちにスピーシーズから配布されているライブラリ関数でトルク率を変更したらちゃんとトルクが変わる。なにぃ〜っっ おかしいぃぃ、、、ので、禁断の秘技(でもないかな。)マイコンボードにサーボコマンドを送ってみて送られてくるデータを確認する。 ・・と、資料では説明されてないメモリーアドレスを操作してる。 ここ、怪しいと思ってたんだよなー。で、試しにそのメモリーアドレスにデータを書き込んでみると、 おぉ〜うまく行く。マルチサーボコマンドでもちゃんと動くみたいなのでこれでやってみよう。 その後、アタマユニットの送受信切り替えタイミングの問題なんかでちょっと迷路に陥りそうになったけど、なんとか脱出。明日は動作中のジャイロフィードバックにトライだ。

あ、そういえば、アイボの新作が出たっ!といっても新色と、ソフトバージョンアップだけど。 ソニー配布の自律ソフトはロボットをペットライクにしているのでちょとこっぱずかしくて動かせない。純粋に生物ベースで、チョイ人間とからむ、位の自律ソフトが欲しいな。 なんにしろ、ソニーがロボット(アイボ)からフェードアウトかなーって思ってたのでうれしいことです。

10月2日

動作中のジャイロフィードバックの検討と実験をしてたら、腕のIK計算式がおかしいことが発覚。そういえば、あんまり検証してなかったなー。 あんまり本気出さないで修正してたらなんかはまってしまった。 とりあえず、今は重要じゃないからあとでちゃんとやるとしてぇ〜、と思ったのだけれど他の事を連想してしまった。

連想したのは、足の順運動計算と逆運動計算のこと。ジャイロフィードバックを完全に組み込むには順運動計算をしなければならない。でも、、逆運動計算、まだ不完全なんだよね。すべての姿勢に対応してない。IKベースで動かすうちはごまかせるけど、角度ベースのモーション(キャプチャーして作ったようなモーション)も合わせて考えると順運動計算が必要で、そうすると逆運動計算もキチンとしないといかん。

ココロが捕らわれてしまったら、もうだめ。足の順運動計算をやりだした。サーボ6個あるから、回転行列の掛け算を5回もしなきゃならない。めんどくさかったぁ〜。(>_<)

この計算を機に、計算上の基本座標を股関節から、足首に移動した。足首から考えた方がスマートそう。特に逆運動計算をフルサポートするにはこっちから計算しないと俺には計算できない。(^^ゞ ただし、制御プログラム上では股関節原点の座標を使う。

動作中のジャイロフィードバックのコーディングは終了したけど、パラメータが決定しない。角加速度ベースでPIDゲインを計算してトルクをフィードバックするようにしたのだけど、あんまり効かないのかなー。

順−逆運動計算はまだ完成してないけど、IKベースで動かしている範囲では静止中のフィードバックは完成。

不安定な姿勢になってたら、安定姿勢に勝手に移行するようなことしたいな。足の裏に荷重センサーをつけないとダメかな。

さて、これは何でしょう? 

10月4日

転倒しないための検討時に転倒してまた首折れ。

諦めて取り外してしまった。次に首をつけるときは折れないように対策が完了したとき。

ジャイロフィードバックでいろいろと制御を付け加えたらすっかり歩行できなくなってしまった。何がどうしたのかなー。歩行時の姿勢制御ってのはまたそれでそれなりの理屈を入れなければならないのかもしれない。振り子運動だもんな。しゃかしゃか歩くよりよたよたでもいいから、こけないで歩けるようにしたい。ん〜と、千鳥足の酔っ払いみたいな感じ? 完全にロボワンとは方向が違う。ロボワンダッシュなら参加できるかとも思ったけどそれも危ういし、ロボカップも危うくなってきた。 そういや、アイボのOPEN-Rで徒競争に参加した時もタッチ・ターンで、カラープレートで指示とか出さずに自律(?)でターンさせたのは自分だけだったかも。タイムは完全オーバーだったけど、一人満足だったなー。また、認識が甘くってあちこちよたよたして、生きてるみたいな振る舞いをしてた。仕込みじゃなくって制御や情報処理の結果としての生きてるような振る舞い。これにあこがれる。



なかなかうまくできないなー。


10月6日

動作中のジャイロフィードバックが芳しくない。

トルクを制御することで姿勢の安定化をさせようと考えていたのだが、601CRは動作中の制御がされているのでトルクは静的にしか働かないようだ。具体的には大きなトルクを与えても速度にも位置にも影響を及ぼさない。トルクが小さくなることでマイナスの位置ずれは起こすので全然だめなわけではないが、トルクを不足させることでの制御というのは高度すぎてうまくコントロールできないだろう。これはある程度予測していたことだが、動作中のサーボへの介入ということで、トルクという別パラメータでの制御ができれば簡単だなと思ったのだ。ということで、早々に見切りをつけて、速度に介入する事での姿勢安定化制御に切り替えて行く事にする。

10月8日

とうとう脚の逆運動計算と順運動計算が全姿勢をフルサポートできるようになった。これでキャプチャーしたデータを座標データでセーブすることもできるし、角度データで動かしているモーションの最中にもジャイロ補正をかけることができるようになる。

いい加減回転行列の計算をするのに飽きあきしてたから、行列計算クラスを作ってプログラム内で計算させようかなーとか思っていたが無駄な計算が多くなるからダメだなぁと思っていた。結局、代数計算の展開だけを行うプログラムを作って、行列式計算の面倒と間違いをなくして計算式の転記ミスをなくすことができた。まぁ、、でもあとは腕の計算式を作ったら用済みなわけなんだが。。 (そういうことだからいままで作らずに手計算で済ませてた。後悔先に立たずだが、初めに作っておけばよかったなー。)

10月9日

昨日から今日にかけてラムダの外装第一弾で、肩周りのカバーの成型をしてみました。

シリコンでの型取りからFRP樹脂での成型まで初めてのことばっかだったのであんまりうまくいったとは言えないけど、何事も経験。

うぉぉ〜。ピンボケだ。(>_<) これじゃ原型の仕上がり具合がわからん。とにかく、粘土で盛って原型を作ってシリコンで型取りをすることにした。東急ハンズでおじさんに聞いたら、シリコン型は綺麗に簡単に取れるけど、お金がかかるょぉって言われた。FRPで型を取ると、安く上がるけど、原型の表面をすべすべ仕上げなければならない。

粘土だとそれは無理だし、また原型材料も問題。普通は硬質の発泡スチロールなんかを削った上にサーフェイサーで塗装したりポリパテでカタチを整えたりするらしい。でも、ラムダの外装なんだから内蔵物が入らないと意味がない。発泡スチロールで作るとその辺りが目分量になってしまって怖いので避けたのだ。

おじさんにそう言うと、2液性の発泡ウレタンを紹介してくれた。芯になるモノ(今回だと木で作った内臓物の外形)に塗れば発泡して粘土を盛った状態になるからそれを削ってから表面を整えればよいと。

でもなー。サーフェイサーもポリパテも無いし、あ、結局外装の仕上げにポリパテもサーフェイサーも使うんだけど、仕上げにもう一度やるのって大変そう。

で、結局比較的簡単そうなシリコン型でやることにした。社会人だしお金は、、まー許容範囲だ。

周りのブロックは家にあった、ありったけのレゴで作った枠。これ以上大きなものだと足り無くなりそう。

むぅぅ、、またピンボケだ。あせってたかなー。

シリコンは1kg用意した。1kgで3129円(税込み)。コレで2型くらい取れるかなー、とか思っていたが、今回で使い切った。それもギリギリ。やる前に体積を計算したら、淵までシリコンを入れたら(原型の体積を差し引いて)1200ccくらい必要となった。ぎりぎりでも足りてよかったー。

1時間くらいで固まったけど、缶の底の方のシリコンがちょっと固まってて硬化剤が混ざりにくかったので念のため半日くらい置くことにした。完全硬化までは8時間。


シリコン型かんせ〜い。

と、軽く書いてみたが、ここまでに大変な苦難が。

おじさんは「シリコン型なら離型剤は要らないよ。」って言ってたから粘土の原型には何も塗らずにシリコンを流したのだが、外れね〜外れね〜。バッチリと粘土だけ付着して木製の芯材だけ外れた。(>_<)

あとはシリコン型の表面に傷をつけないように粘土をひたすら取っていったのだった。取る経過の写真も撮っとくんだったな。

最後は水洗いで、食器用洗剤まで使って洗いました。

やっぱ離型剤か、ワックスを塗らないといけないみたい。粘土型だとスプレー型離型剤かな。刷毛でも触れると形変わりそうだもん。

ここまでで8日の深夜。水洗いしたシリコン型を乾燥させる必要もあるから続きは明日。

見事に原形に戻った原型。

粘土とかまた使えちゃう。


外はあいにくの雨だけど、匂いがきついから近隣住民に被害が及ばないという意味では絶好のチャンス。どれくらいの匂いがするかわからんし。なんせ、有害なガスが出るから防毒マスクをして作業しなさい。閉め切った部屋での作業は厳禁とか言うんだもん。ちょっとビビる。

あらかじめ硝子クロスを小さく切っておき、作業後に刷毛を洗うためのアセトンと、アセトンを入れる容器まで準備していざ、ポリエステル樹脂の塗布作業へ。

普通、FRP樹脂で外装を作る時は表面層に耐候性の良いゲルコートを塗るのだけど、今回用意したポリエステル樹脂はクリアポリエステル樹脂というやつで、これならゲルコートの表面層は要らないだろうっておじさんが言ってた。

ゲルコートも500gからの缶しかないし、値段も不飽和ポリエステル樹脂(普通のやつ)より倍くらいするし、別に硬化剤混ぜて用意しなきゃならないしってんで、ゲルコートが要らない方にした。車に取り付けるエアロパーツなんかを作る時はゲルコートを使った方が安いかも。

今回は必要量がわからなくて50ccを取り分けて硬化剤を入れたのだが、多分半分くらいは余った。それに硬化剤が多かったらしくって作業中に固まり始めてダイブあせった。硝子クロスを1層しか入れられなかったところがあるかも。

これって塗り増しできるのかなー。乾いてから積層してもいいならもうちょっと塗りたい感じ。 結局、硝子クロスが1層になってそうなところとか心配になったので、半渇き状態で塗り増ししました。どうなるんかなー。てっぺんの部分が溜まりになっちゃってポリエステル樹脂の層があつくなってそう。サーボのモーター部が納まるはずなんだけど、大丈夫かなー。

余ったポリエステル樹脂。固まるのを待って捨てるだけ。


フッ素系離型剤。実は15年くらい前に買ってつかってなかったもの。こういうのって駄目になるのかなー。

浅草ギ研でも、シリコンとFRPは型離れが良いって書いてあったけど、一応スプレーしておく。


クリアポリエステル樹脂とアセトンの缶。どちらも500g缶。有効期限は半年だそうです。半年っていうとこの冬だな。部屋の中ではやりたくないし(換気できないし)外じゃ寒い上に気温が低いとかたまらない。しくじったか。


ポリエステル樹脂に浸した刷毛を洗ってる時にこぼしたアセトンのしみ。アセトンなら綺麗に揮発してしまうはずだけど、ポリ樹脂が混じってるからシミになってしまった。ずーーーっと残るのかな。


ポリ樹脂を塗った刷毛。アセトンで洗うんだけど、洗い方が足りなかったようで、固まり気味。250円くらいだし、使い捨てでもいいかなーとか思った。

ちなみに再度塗りには別の刷毛(もっと小さくて170円位だった)を使って、今度はよーーーく洗ったんだけど、やっぱり固まり気味。洗うの難しい。


十分固まったから、シリコン型から外す。画像じゃ凹凸がわからないなー。ほほぉーこういう感じかぁ。粘土で作った面はあんまり綺麗じゃないね。磨きかけてパテ盛りして整えないといかんな。

出来はイマイチ。樹脂が入ってないところや硝子クロスが密着していないところが結構ある。


淵に樹脂がまわってないところが多い。次はこの辺に注意だ。これくらいならパテで使えるかと思う。

ラムダにかぶせてみた。ぎりぎり入る。ちょっときつすぎるかも。アタマユニット用のマイコン取り付け金具を作り直した方がよさげ。 このくらいなら原型から作り直すってわけには行かないもんね。

次からはラムダ本体を使って芯材を作ることにする。 あ、あと、FRPはちょっと収縮があるらしい。

ちなみに肩のサーボの軸部分とか、アタマ部分とかはこれから加工して取り付くようにする。

明日、同じ部品をもう一つ作っておこうと思ってる。スペアのつもり。今日の反省が活かせたら明日作成分を本採用かな。シリコン型は保管する予定なし。

アタマが無いせいか、ズゴックみたいに見えるなぁ。


粘土で原型作ったり、シリコン型を取ったり、なかなか楽しい。ぺりっと型からはがれる時とか、快感。(^・^) さて、胴体はどんな風にしようかなー。

10月10日

昨日に引き続いて外装カバーの成型をしました。昨日の失敗を繰り返さないように、ポイントは淵に空気が入らないように、硬化剤を入れすぎないように、50gは多すぎる、などなど。

で、出来たのがこれ。昨日よりはいい出来。調合したのは30g。ちょうど使い切りました。持ってみた感じで昨日のより随分と軽い。でも、まだ不具合もあちこちにある。今後の課題だなー。ただ、この型ではこれが最後。一応はシリコン型は置いておくが、保管の保障はなし。

やっぱり、クリアカラーでモノの陰影がさっぱりわからん。仕上げとか塗装とかをどうするかだなー。


刷毛の毛が抜けて埋め込まれてしまった。塗装するつもりだから良いのだが。 縁は気をつけたけど、立ち上がりのあちこちに気泡が。昨日はここら辺りはうまく行ってたのに 昨日作った方にヒビが入っているのを発見。さっき落としたけど、それくらいで割れる感じじゃないのにな。柔軟性のあるポリエステル樹脂ってのがあるからそれ使った方がいいかなー。

出来栄えから見て、本採用は今日作った方。昨日のはスペアに回すつもりだけど、シリコン型を保管して、昨日のは廃棄ってのが正解の気がする。

型取り用シリコンは造形村のEXシリコンってのがよさそう。1kgで2500円くらいだから、送料を考えてまとめて購入するか?

昨日のFRP成型の時間以外のほとんどを費やした腕の逆運動計算がやっと完成した。手先の姿勢表現が順運動計算と逆運動計算で異なっていたのに気付かなかったのが原因で計算が合わなかった。すぐ終わると思ってたから結構へこんでしまった。

3連休の成果がFRPカバーの成型と腕の逆運動計算だけではさびしいから、トルク制御でうまく行かなかった動作中の姿勢制御(ジャイロフィードバック)を一生懸命コーディングする。これがうまく行ったら歩行動作中の安定化に着手できるのになー。ナムナム。。。

■アイボマインド考

おそらく最後ではないかと思われるアイボ製品「アイボマインド3」を買いました。8日に届いて、シリコン型と悪戦苦闘しながらアイボを動かしてみました。実はERS−7を買った時には既にOPEN-Rによるソフトの開発をしていたのでERS−7をアイボマインドで動かした時間は3日とありません。うちの7は俺のソフトでしか動いてなかったんです。で、それでまたいまさらなんで「アイボマインド3」を買ったかっていうと、まー、ラムダの開発に手一杯でアイボのソフト開発はもうしばらく出来そうにないということと、マインド3が合成音声で「会話」が出来るらしいということに興味を覚えたからです。どんなんだろう?

日ごろから「自律していないとロボットとは言えない」と言ってるんだけど、アイボは手が届く範囲のロボットでは断然理想に近い形をしてる。少なくともラジコンロボットとは一線を画してる。それでも、まだ「おもちゃ」臭が強くてロボットっぽくないなぁと思ってます。ま、ユーザーありきの電化製品かおもちゃかってところだからターゲットユーザーってのが有って、そこにあわせこんだ製品作りをしなきゃならないんだから仕方の無いことだと思ってます。アマチュア開発者としてはアイボのハードもOSもすごく気に入ってて、開発素材としては十分なキャパシティーを持ってると思ってます。

で、問題のアイボマインド3をたった3日足らず動かした感想ですが、、、よくは出来てるけど、イマイチだなーって感じです。

大体にして、あの程度のCPUしか積んでいないロボットに会話させようってのが、それもちょっとでもまともな会話をさせようってのが無理なんじゃないかなー。会話成り立たないもん。単語のやり取りでいいと思うのになんでエセ人格を持たせようとするのかホントに理解できない。あと、えらく誤認識が多い。こんなだったかなー???

扱えるオブジェクトも相変わらずピンクボールとピンクボーンだけなんでしょうか?3日間じゃサプライズは発生しなかったんだけど、おそらくはそうだろうな。なんていうか、床に落ちてるモノとか壁の絵とかに反応して、「コレ、ナニ?」とか聞いてくれてもいいのになぁと思う。

音声認識にしても、単語認識だけじゃなくて音素認識も十分可能なはず。(オープンソースで実現しているのもありますよね。)「コレ、ナニ?」と聞いた後は音素認識に切り替えればあとは人間が、「リ・ン・ゴ」とかって感じで言葉を教えてやれるはず。

楽しかったとか、怒ってるとか、ロボットがそんな感情持つはずないのにうそっぽいし、アイボの開発スタッフのせいなのか、ユーザーの要求のせいなのか、結構がっかりした。やっぱ自分で作らないと駄目かなー。ま、3日だし、もうちょっと動かしてみようとは思うけど。

ただし、初代のアイボから持ってる者からすると、7(というかアイボマインド)はもう、本当に部屋の中でうろつかせても問題ないですね。初代とかは延々と同じ動作を繰り返したりしてみててイライラしたけど、そういうこともないし、障害物でにっちもさっちもって事もない。ちなみにアイボが徘徊するなかでシリコン型作ってました。気がついたらアイボの胸にシリコンがちょっと付いてた。

そういや効果音って言うのか、感情サウンドっていうのか、あれは消せないのかな?あのサウンドさえなければ部屋の中で動かしっぱなしにしててもいいかも。

10月13日

ずーーーっと、動作中のジャイロフィードバックに取り組んでいるのだがうまく行かない。トルクもだめ、速度もだめとちょっと思いつくところがなく、いったん凍結にしようかと思う。

モーション途中も含めて逐次姿勢補正を行いたいと考えていた。そのため、角加速度をベースにフィードバックをかけるようにした。そこまでは良いのだが、動作中のサーボに対してトルクを変化させることもコンプライアンススロープを変更することも安定化に寄与しない。キーフレームからキーフレームへ移動する際の各サーボの速度を制御することで姿勢を補正するという考えは悪くないとは思うのだが、柔らかな制御ができず、反動を抑えられない。

601サーボは目標位置か、目標までの到達時間かのデータを受け取ると、内部で計算を行い、目標に対してリニアに移行しようとする。この計算を行い駆動を開始開始することは停止から始まる場合も動作中に再計算となるときもほぼ同じ動作を行う。

この動作開始に反動が伴うため、結局反動を抑えることができないといった悪循環のようである。このサーボ、動作中に介入するのは無理なのかなー。

これができたら、歩行中のような反復動作における姿勢安定化に取り組もうと思っていたのだが、もしかしたらそっちの方が簡単なのかもしれない。なぜなら反復動作は動きが予測でき、異常状態の特定が比較的簡単なのではないかと思うからだ。

10月15日

「凍結」といいながら、まだ動作中のジャイロフィードバック。

コンプライアンス設定は目標位置付近で働くのだから、動作中は役に立たないだろうと勝手に考えていたのだが、よく考えると実装の詳細を知っているわけではない。目標角度に向かってリニアに動作するように制御しているのだから制御中の全域に渡ってコンプライアンス設定が有効であれば動作中にスロープ設定を変更することは有効ではないかと考えた。

簡単な実験ではスロープ設定を行った場合の方が衝撃吸収されているように見えたので動的設定の実験も進めてみた。どうやら、目標への移動中もコンプライアンス設定は働くようだ。これが普通のことなのかこのサーボに限った事なのかは知らないけど、そうあるべきだなとは思った。

結果は・・・、微妙であるが、今までの手段の中では一番効果が有ったようだ。いままで動作中のジャイロフィードバックは角加速度ベースのPIDで補正量を決めていたが、そうすると衝撃の瞬間にしかフィードバックがかからず、うまく行かないような感じなので静止状態でのフィードバックと同様に角速度ベースのPIDに切り替えた方がいいようである。ただ、パラメータは異なって、Pゲインは低め、IゲインとDゲインを高めにした方がいいのではないかと。積分時間も大きめの方が効果が大きいのでないかと思う。

同時進行 外装作成プロジェクト。ボディー部の原型を作るための芯を作ってるのだけど、どうもうまくない。

おじさん(東急ハンズの店員のおじさん)に相談したら、ラップで包んでFRPでカバーすれば。。と言われたのでそれをやってみてるんだけどぉ〜。硝子クロスは張り付いてくれないし、ポリ樹脂は流れ落ちて行くし、、ケバケバの上にどうも隙間もできてしまったよう。。

このアルミ箔とラップの下には本物のラムダのボディが入ってるんだけど、大丈夫かなー。CPUユニットとか、サーボモーターとかはプラスチック部分があるので心配(>_<) 早く取り出したいよぉ。

それから別の手段を考えないと。どうしよ。。


失敗っぽいので半渇き状態で開けてみる。うぅ〜ん。一応カタチは出来てるけど、ちょっとなぁ。。

あと、ボディを包んでたラップはトロケ気味。溶けてはいないけど、やばいなぁ。この方法はボツにしよう。

CPUユニットは溶剤くさーくなってる。溶けてないのか、心配だ。


お尻にあたる部分はまぁまぁの出来。

次は、粘土で型取りして石膏で芯を作ってみるかなー。


10月16日

不意に思い立って、昨日の続き。胴体部分の型取りを再度チャレンジ。今日はアルミ箔と粘土で型取りして石膏を使ってみた。

今日は分解しないでも作業できそう。

ケーブルとかは外して邪魔にならないようによけておいた。


シリコン型ではないので、オーバーハングになる部分はアルミ箔を丸めて埋めておく。


型取りする範囲をアルミ箔で覆う。精密な型を取るわけではないので支障が無い程度に。

あと、アルミ箔が破れないように注意。破れたらセロテープで補修しておく。


形が崩れないように粘土で覆う。この状態でアルミ箔ごとズポッと外れるように調整する。外した時、形が崩れないようにするのがポイント。つけて外して、引っかかったところにアルミ箔を丸めて詰めていく。


で、これがズポッと外したところ。ところどころアルミ箔が破れちゃってるけど、粘土が被ってるから問題ない。


で、石膏を流し込んで固まったら粘土とアルミ箔を取り外す。原型の芯完成。

思ったよりうまく行ったなー。今日、前側も作ろうと思ったけど石膏がなくなってしまったのでまた次回。

石膏は十数年前に買って、ちょーっとだけ使ったまま物置に放置してあったもの。芯だからどうでもいいよね。固まれば。


失敗作二つ。右は昨日作ったFRP製。これは全然だめだった〜。

左は今日、一回目の試行で作ったやつ。粘土で周りを覆わなかったもの。形が崩れてしまってしまった。石膏の調合も間違えて作業していくうちにどんどん固まっていったんだよね。水で溶かすだけなのになんであんなに直ぐに固まるんだろう。不思議だ。


今日作った芯に粘土を盛って、胴体後ろ側のカバーの原型を作る。FRPで作っても、こけたら割れるんだろうなぁ。衝撃吸収の方法を考えないといかん。

動作状態での姿勢制御に着手。今度はやみくもにジャイロデータを動きに反映するのではなく、動きに同期させながらデータを反映させることを考える。できればこの考え方をモーション全体に反映させたい。


石膏作業の時に敷いた古新聞にこんな記事が。(10月15日の新聞だった)

ワカマルって売ってるんだ。100台限定 150万円(税別) 安い。でも、要らないなー、ワカマルってどこ向いて作ったのかイマイチわからない。デザインもイマイチだし。 あと、パペロも要らない。

キュリオがこの値段なら買いたいな。でも、、SDKは別売りだろうからだめか。

富士通のHOPEが500万円ってのはマジの値段なんだなぁ。



10月17日

今日も新聞でロボットを発見。morph3だ。それも貴重?な半分解写真。morph3の外装ってセンサーだって聞いた覚えがあるのだが、そんな感じじゃないな。撮影用?

顔が前にもたげてるようになってるのは下を見るためなんだねぇ。ラムダと一緒だ。いや、ラムダがmorph3と一緒というべきか。

カメラは2眼になってる。あんなに近くていいのかな?

手首から先は無いんだな。物はもてないのか〜。(両手でって手段はあるが)


どう考えても胴体後ろのカバーはこけたら割れそう。

フレキシブルFRPを使いたいところなんだけど、4kgで10000円する。

FRPは缶を開けたら半年しか持たないらしいんだけど、500gの缶を使いきれるかどうかって話なのに、4kgなんて。。。

いっきに4kg分量産するか?


左右往復動作の同調検出(脱調検出?)はY軸ジャイロ(左右回転)の監視より足首サーボの負荷監視が有効みたいだ。回転動作じゃないもんね。胴体が回転しだしてから補正しても遅いから。それも左右軸じゃなくて前後軸の負荷の監視が有効そう。思ったより状態が素直にデータに現れていてうれしい。

ここはCPGの引き込み特性を使って同調をしたいところだけど、引き込み作用には数サイクル要るらしいし、特徴が現れるのは位相差。モチロン正確には周波数にも現れるはずだけど、きっと微妙な差になるはず。わずかな周波数差でも引き込みは起こるのかな?

10月19日

ロボコンマガジンを買う。

いつも買うわけじゃないのだけど、最近は結構買ってる。今月号にはビジオンネクスタの詳細記事が載っていたのだが、あの内容は結構ショックだった。何がショックだったかというとビジオンネクスタにはダイナミクセルのDXシリーズが使われていること。画像処理用に超小型PCAT互換PCモジュールが使われていること・・など。

RS485はどれくらいの速度で通信してるのかなー、ジャイロフィードバックはどうやってるのかなー、超小型PCAT互換PCモジュールっていくらするんだろ?ストレージに4GBのCFカードが使われているらしい。そんなには要らないけど1GBくらいは欲しいなー。

ネクスタはサーボ・ジャイロの制御にはマイコンを使ってるみたい。ラムダも構想の段階ではそのイメージがあったんだけど、制御の内容が決まってなかったからメインCPUであるRPU-100での制御にしてる。手ごろのマイコンボードでRS485が、1.3Mbsがだせれば見直してもいいな。

それにしてもDXシリーズってちっこくってパワーある。値段も高いけど。

・・・なんとなく考えていたけど、ラムダはロボカップオープンには出場させたいなと思ってる。ビジオンと相見えるくらいに仕上げたいな。

同調検出(脱調検出)

歩行の体重移動として、胴体を水平に平行移動させて左右往復運動をさせているのだが、胴体を腰の点を軸に左右に回転させるタイプの体重移動ってのはものすごく有効なのではないだろうか。ちょっと前に発表された「新歩」ってのはなんか拍子抜けだったけど、検討の価値有りのようだ。胴体が回転するってのはどうも不安であまり考えたくなかったんだけど動作量が小さくなりそうなので全体的に安定した動作になるような気がする。一度簡単な動作を作ってみよう。

あ、そういや、こないだまでの逆運動計算は胴体の左右の回転はサポートしていなかったからやりたくてもできなかったんだった。(^^ゞ

ロボットは関節があって剛性が低いから、繰り返し振動を与え続けるとやがて同期してきて位相遅れはなくなり、振幅は拡大してしまう。急に横に吹っ飛ぶからびっくりする。モーション再生型の歩行だと同調検出とか出来なさそうだからどうしてるんだろ?ロボワンに出てるようなロボットでも5メートルくらいは歩いてる。途中止まったりしてるのかなー?ジャイロで補正かけたら振動増幅は抑制されるのかもしれないな。

地震の低周波振動で、巨大タンクの中身が振動に同調して噴出すって話があったけど、あの原理だなー。

今日、同調検出の実験をやってたら、RS485がハングった。なんか嫌な感じ。やっぱりジャイロからのデータ取得は鬼門なのかも。ま、送受信切り替えを詳細にやっていないから送信と受信がバッティングするケースも考えられる。その場合はおかしくなる可能性は考えられる。ジャイロじゃなくてCPU側のような気がする。

10月23日

同調検出(脱調検出)

左右往復動作での同調検出が出来てきた。補正も上々。ただ、先日までのぶっ飛ぶってのは生成するモーションに問題があった。往復動作だからって左端モーションから右端モーションまでの一気にリニアに動かしてたもんだから、途中部分での姿勢のひずみが大きすぎたらしい。ニュートラル姿勢をキーモーションに加えたら格段に安定するようにはなった。

それでも速度を上げていくと脱調して横に吹っ飛ぶのだが、補正をかけたら安定するようになりました。

補正なし(570kB)


補正あり(3MB)

注意:3MBもあるけど、ひたすら左右往復動作をするだけです。補正なしだと9秒ほどでこけるところが補正をかけるとこけなくなるって話。


そういやあれからRS485のフリーズは起こってない。 ので、なんの対策も採ってない。

外装作成

今週は前身ごろの型取り。ちょっとゆがんじゃったけどなー。原型作るのには使えると思う。

後ろ身ごろは一週間干したから随分と軽くなった。


本物と並んで。


ハイパワーサーボ

JinSatoさんのHPに近藤化学の、トルクが40kg・cmあるサーボの話が。すごいなー。CR601は20kg・cm、ハイパワーサーボの中では非力な部類。更に重量はトップ。(>_<) 今のところパワー不足は感じないんだけど、軽いってのはなんにしろうらやましい。負荷とかポジションの取得を考えると普通のPWMサーボってのはもう考えにくい。するとやはりベストはDXシリーズか?DXの寿命ってどうなんだろーな。 なんにしろ、40kg・cmもトルクがあったらきっと寿命は短いだろうなー。ハウジングの材質は何なんだろう。

10月24日

2006年のロボカップ(ブレーメン開催)ではRoboCup@Homeっていう新しいリーグが始まるんですねー。直感的に自分が目指しているものに近いかなーと思ってインフォメーションを読んでみました。

ロボカップ競技で、自律ロボットの実世界での応用と、人間と機械の相互作用に焦点を合わせる新しいリーグです。 目的は日常生活に人間を助けることができる役に立つロボットのアプリケーションの開発を促進することです。

いいなー。まさに僕が目指すロボット像。サッカーするより余程前を向いてると思うな。ジャパンオープンでも競技して欲しい。どれもこれも難しいお題だけど。 というか、このリーグができるとこまでロボットは進化したってことなんかな?

競技としては、

1.人について行く (Follow a human)
2.誘導される(ってことかな) (Navigate)
3.扱う(ってことかな) (Manipulate)
4.自由挑戦(?) (Open Challenge)
5.決勝 (Finals)

などがある。

「マニピュレート」ってのは、冷蔵庫から缶を持ってくるか(玄関から?)新聞を持ってくる。ドアを通って持ってくるんだよね。全て自律で、5分で。ロボワンドアはリモコンで3分でドアを開け閉めするだけなんだよね。それでクリアしたのがまだ3台。 キョーレツに難しいなー。これできるロボットって今有るのかなー。 あ、そういやヒューマノイドじゃなくていいんだった。なら出来るロボットも居るのかも。すると舞台はバリアフリーなのかな? 人が生活する空間での競技だから今のラムダのままじゃ「マニピュレート」は難しいな。

他に、 人を引っ張っていく。ってのも欲しいな。ズボンとかスカートの裾をひっぱってどっかに連れて行く。 あと、寝てたらお腹の上に乗っかるとか、飼い犬とじゃれるとか。競技じゃないな。(^^ゞ

10月29日

この一週間、他の事やっていたり、仕事で疲れちゃったりしたので何にもやってない。左右往復動作で、上体を揺らすことで左右振幅を比較的小さく抑えて重心を移動させることはできないかと思って実験しようとしていたのだが、とうとう一週間経ってしまった。やればすぐできることなのになぁ。(>_<)

なんだか楽しげ(^.^)。 予想どおりサルに近くなるなー。


まだいろいろ試したりしていないのでなんとも言えないけど上体が左右にスウィングするのってなかなか豪快になってしまう。左右のシフトと合わせてみるとかの調整がいるのかもしれない。試したのは支持脚側の股関節を中心に上体が回転する動き。他にも色々考えられる。

ヤマグチロボット研究所

いろいろな情報にうとい僕が頼りにしているのが、人形つかいさんのHP「n9a@Wiki」 ここから「気になるサイト」を色々と眺めてみればそこそこロボットの情報は知ることができる(と思っている)。この「気になるサイト」にQRIO共同開発者blogがありまして、これまた気になるブログなのです。

詳しくはこのブログを読んでもらえば判るのですが、QRIOの共同開発者であるところの山口博士がヤマグチロボット研究所 を経営しています。ここにQRIO開発の3つの思いの中の一つに「マイロボット時代の扉を開きたい」という言葉が書かれています。この「マイロボット」ってどういう意味なんだろうなーって考えてしまった。

ロボットの定義ってさまざまであるのは今更ながらの話なのだけど、僕としては独立した種としてのロボットというものにあこがれる。「ロボット」という単語の原典となる、カレル・チャペックの「ロボット」のロボットは、いわばクローン人間とか合成人間という類のものだったみたいだけど、鉄腕アトムに出てくる「ロボイド」とかJ.P.ホーガンの「創造主の掟」に出てくる機械生命なんかは完全に生命体になっている。どちらも人間が遠い過去にしか介在していないから成り立っているのかもしれないけど、種としてのロボットを描いているように受け取っている。逆に鉄腕アトムの中でお茶の水博士が「ロボットには人間に奉仕するための機能しかついていない」と言い切ってる。こっちは種としては成り立っていないのかなー。

で、「マイロボット」なのだが、「家庭の中のロボット」という感じなのだろうか?なんだかやっぱり所有「物」って感じがして、言いたい事と違う部分に反応してしまってる気がする。

ラジコンロボットって操縦しなきゃ動かないわけで、「ロボット」というにはかけ離れている感じがしているのだけど、「マイロボット」って単語はなんかマッチしちゃうんだよなー。まさか「マイロボット」にラジコンロボットが含まれているとは思わないのだけど。

10月30日

ここしばらくのフィードバックの検討から進めあぐねていた「ラムダの歩行」の形がなんとなく見えてきた。モーション再生でもなく、ZMP規範によるモーション生成でもない歩行制御にしたいと考えている。言うなれば人間の歩行に近い制御方法なんじゃないかなーと思っている。 スタスタと歩くというよりも赤ん坊が始めて歩いた時のようによちよちと歩く感じになるのかなと思っている。そして、まだ手段は決まっていないが歩くほどに安定していくという学習型にしたい。この学習型というところはまだ仕組みが決まっていないので出来るとは言えないが。

連想記憶・想起データベース、パターン照合などを必要とするのだが、軽くてリアルタイム処理が可能なデータベース処理を検討しなければならない。候補としては音声認識などで使われているHMMか、コネクショニズムになってしまうが、アソシアトロンなどが使えないかと思っている。

10月31日

昨日載せようと思ってたからわざわざ今日の日付をつけることもないんだけど。

サル型(上体を揺らす)
(574KB)


モンローウォーク型(上体を逆に揺らす)
(452KB)


このページの先頭へ