ARUMO-SiR07M・手抜き逆運動学のヒザダブルサーボ化

公開日:  最終更新日:2014/06/05

すいません m(_ _)m、本記事はブログ引越時に書式が崩れました。順次修正中です。

さてっと、いよいよソフトウェアの方へ行きます。CPUは今回もH8/3694Fを使いますので、基本部分は以前のソフトウェアを使い回しますが、サーボドライブやジャイロ信号取り込みの合わせ込み、手抜き逆運動学計算部分のヒザダブルサーボ化をしなくてはいけません(他にも対応サーボ数を30ch化しないといけないことに今気づいた…○| ̄|_)。


そんなわけで、今はサーボドライブ部分を作っているところですが、マイコンのデバッグばっかりやってたら飽きてきたのでちょっと中断し、手抜き逆運動額計算の方のヒザダブルサーボ対応をすることにしました。


最低限動かす、という意味では、手抜き逆運動学計算(って言っていいのか?)は無くてもいいんですが、これがあると、機体を動かすのがすごく楽になりますので、優先度高で対応。実は、初代G-Tuneからずっとこのロジックは載せていて、初代G-Tuneに載せていたものが一番高性能だったんですが、今はディスククラッシュと共に記憶の彼方です。アレは良かった。モモピッチ距離とスネピッチ距離が違っていても、ちゃんと計算できました。


で、どの辺が手抜きかといいますと、「ピッチ軸だけ計算」しているのと、「胴体と足裏が必ず平行になる」というあたりです。同じような情報を既に公開されている方も多いので、細かくは解説しませんが、この条件を付けると計算がググっと楽になります。


これぐらい手を抜いてやれば、H8/3664やH8/3694でも、手抜き算術計算と組み合わせれば十分計算できますので、SIPHA COREでは、マイコン側でリアルタイムに計算させて、TERM側からは座標情報(高さ、奥行き)を指示しているだけです。


というわけで、まずはうーん、うーん、うーん、とがんばってダブルサーボ化完了。


計算結果を元に、CADで描いてみました(ここらへんが超ローテク)。いい感じです。たぶん大丈夫でしょう。



で、コントローラ自作派の方には、いつもこの機能を実装することを勧めているのですが、その理由が上の絵に現れています。足先を前から後に平行に移動する場合、「黒、青、赤、紫、緑」と移動していくわけですが、この時の各サーボの角度に注目してください。例えば「モモピッチ軸サーボ」。見ていただくとわかるのですが、まず、「黒⇒青」にて上方向に回転し、次に「青⇒赤」にて下方向に回転しています。このように、脚を平行に動かす場合、サーボはいつも同じ方向に回っているのではないのです。


これを角度制御だけでやろうとしたら大変なので、やっぱりマイコンくんにがんばってもらうのが良いかと思います。


手抜き逆運動学計算、いくら軽いといっても算術計算がH8/3664やH8/3694Fだと、さすがにパワーが足りなくて、結局、三角関数や平方根処理は、テーブルやニュートン法を使って自前でプログラムしてしまいました。SH2やATmega128だったら計算が速いので、そのまま算術ライブラリが使えます。たぶん、ARM7も大丈夫だと思います(ちなみに次のSIPHA COREはEZ-SERVOでARM7です)。


 

  • このエントリーをはてなブックマークに追加
  • Pocket

関連前後記事

Comment

  1. きゃのん より:

    こんにちは、ご無沙汰しています。
    いよいよ完成が近づいて来てますね。
    本物を見れるのが楽しみです。
    計算歩行プログラムやってましたが今は中断中で、SISOさんの記事を見ていると「早く復活しなきゃ忘れそう」とあせってます。
    次回はARMですか、それもまた楽しみです。
    また、読ませてもらいます。
    それでは

  2. HIDE より:

    うぉ~~~~~
    そうだったのか!PC上のモーションエディタでの逆運動学計算にはそんな落とし穴があったのか!
    各関節の回転角が等速じゃないのは認識していたのですが、逆回転が必要なケースがあったとは無知でした。
    いつも参考になります。
    それじゃ、大会当日を楽しみにしています。がんばれー。

  3. SiSO より:

    きゃのんさん>
    こんばんは!準備着々と進んでいますか?最近のご活躍、ネットで見てますよー。ROBO-ONEでお会いできるのを楽しみにしています。こちとら、進みは1ヶ月半遅れって感じですが、失望させないように、残った時間内でまとまるよう、慌てず騒がず、一歩ずつしっかりと超低空飛行で行きますので、楽しみにしててください。

  4. SiSO より:

    HIDEさん>
    ほんとはこれ、プログラムでグラフ描けるぐらいのスキルがあれば、もっといろいろなパターンをお見せできるんですが、そのうち、ということで。あと一週間ですが、お互いがんばりましょー。HIDEさんの活躍も楽しみにしています!

  5. こんにちわ。HM@みっちーです。
    こっそりいつもチェックさせてもらってますw
    この画像は衝撃でした。
    僕も逆運動学に関しては推奨しててHPで計算法公開してたりするんですが、まさか逆回転があったとは気づいてませんでした。
    それで、もし良かったらこの画像を紹介させていただいてもいいでしょうか?
    その際にはリンクも貼らしてもらってSISOさんの作った図って分かるように明示したいと思います。
    今、こんな感じなんですが・・・
    http://dream-drive.net/robot/asi.htm

  6. SiSO より:

    HM@みっちーさん>
    書き込みありがとうございますー。みっちーさんのように、しっかりまとめられている方にそういってもらえるのはうれしいです。
    たまたま初めて機体を作るときにこれに気がつきまして、それで頭ひねって載せたのが始まりでして。今はH8/3664、H8/3694Fでもリアルタイム計算ができるようになってます。
    ホームページの方も拝見させていただいています。うちでは、sin()、cos()、atan()、sqrt()を使っています(実際には手抜き高速演算してますが)。
    画像はリンクしていただいてかまいませんので、ぜひ使ってください。

Your Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

PAGE TOP ↑