AIT鉄人2号の開発環境、使用されている技術



 AIT鉄人1号ではSH7045Fで時分割のPWM信号を発生し、CPLDで各サーボに信号を振り分けていた。AIT鉄人2号では、まずCPUをより高速なSH7145Fに変更し、さらにPWM信号の生成をFPGAに行わせるようにした。また、センサ信号もFPGAで処理させた。FPGAとはField Programmable Gate Arrayの略で、プログラミングできるLSIを言う。CPLDもFPGAと同じようにプログラミングできるLSIだが、規模が小さくて、PWM信号を1個のCPLDで発生させることができなかったが、FPGAによりそれらが可能になった。このように信号処理を専用LSに任せることにより、CPUの負荷を減らし、高精度、高速な処理ができるようになる(かな?)。また、通常行われているようなトリッキーなプログラムが不要に成り、制御プログラミングも簡単でわかりやすく成る。

FPGAはSH7145FのCS2のメモリー空間にマッピングし、マッピングされたアドレスへPWMの値をWRITEするだけで、PWM信号が出力される。また、角速度ジャイロセンサーのパルス幅もFPGAで計測し、マッピングされたアドレスからREADするだけで、センサー信号を読み込むことができる。SH7145Fは16ビットデータバス、8ビットアドレスバスでFPGAと接続している。

今回のボードは、FPGAとコンフィグレーションPROMだけのシンプルなもの。回路図をEagleで書き、自動配線でパターンをある程度生成(実際には自動ではほとんどパターンはできません)した後、人力でパターン修正。データを基板加工機で読み込んで基板製作した。表面実装です。ボードの主な構成は以下のよう。これだけの機能を入れてもFPGAのゲートは1/3も使われていない。今後は、さらに機能を入れていく予定。


FPGAボード
FPGA XILINX SPARTAN II (XC2S100TQ144)
 10万ゲート
 User I/O 92 
コンフィグレーションEEPROM XC18V01VQ44
 1Mbit
開発ツール XilinxWebPACK ISE
回路設計、パターンレイアウト Eagle4.11
CAM CAM-21RS
プリント基板自動加工機 FP-7A(MITS)
使用基板 両面基板
表面実装

機能
出力 PWM×24(サーボ用:分解能0.5µs、周期16.384ms、パルス幅0-8,192ms)
PWM×3 (角速度ジャイロセンサ用:周期16.384ms、パルス幅1.024ms固定)
入力 パルス幅×3(角速度ジャイロセンサ用:分解能0.5µs、計測パルス幅0-8.192ms)

SH7145Fボードのメモリマップ
FPGAとは、CS2空間で8ビットアドレスで接続

回路の全体構成
 
PWMユニット ジャイロセンサユニット

VHDLでFPGAの回路を記述
 
Eagleで回路設計、基板パターン作成
 
基板加工機で基板製作 部品を半田付けして完成(裏面/表面)
 
SH7145F(ベストテクノロジーBTC080)
ボードと合体
 



AIT鉄人の低速時の歩行は膝を伸ばすのが特徴です。以下、「AIT鉄人的歩行法」を大まかに説明します。まずは、(b) 重心を右足に移動します。この時、多くのロボットでは膝を曲げますが、鉄人では曲げません。ポイントは、上体を平行にするということです。(c)次に左足を上げます。この時重心は右にあるので、倒れることはありません。(d)左足を前に出し、重心を左足に乗せます。この時、右足は伸ばします。あとは、左右逆の形に成ります。人間はゆっくり歩行するときは膝をあまり曲げないことは、試してみればわかります。この動作になるべく近い形を取っています。
 
(a) 初期ポジション (b) 上体は平行にして右足に重心を乗せます (c) 左足を上げます
 
(d) 左足を前に出し、重心を左足に乗せます (e) 左足を伸ばし、右足を上げます (f) 右足を前に出し、重心を右足に乗せます

 



取りあえず、下半身完成。結局は長さは鉄人1号と同じ程度になった。もっと短くもできたが、サイズよりも自由度を優先した。鉄人2号では鉄人1号よりも可動範囲が広くなっている。全体的にはコンパクトに成った。また、股関節部の前後軸を上に持ってくることにより、上体を軽くすることを考えた。このことにより上体が起こしやすくなり、立ち上がり動作が容易になることを期待している。

鉄人1号の足 (同じスケール) 鉄人2号の足



 直行軸の小型化を行った。サーボモータはケースを分解して加工。コントロール回路はサーボから切り離した。2種類の直行軸を設計。「直行軸1」は足首部分、「直行軸2」は股関節部分に使用。

直行軸1
 
直行軸2

 無線通信はBluetoothを採用。BluetoothシリアルドングルはキャノンアイテックのUB-6010。サイズが若干大きいが、なかなか軽い。内蔵バッテリーは取り外してロボット本体のバッテリーから電源を取る予定。PC側は3COMのBluetoothPCカード3CRWB6096B。問題なく認識できた。
 ただ、付属してきたケーブルは9ピンのオス型のみ。PCでPIN等の設定をするにはメス型のケーブルが必要。そこで、オスをメスにする変換プラグを製作。メスのコネクタ2つをクロスで配線して完成。無事に設定ができるようになった。
 ただ、速度が非常に遅い。4,800bpsぐらいしか出てないんじゃないだろうか。コマンドを送る程度なら使えないこともないが、開発時などに歩行データをPCとやり取りするには使い物にならない。ということで、開発時はケーブル接続にし、完成後のコマンドを送るのにだけ使用することにした。

Bluetoothドングル 3COMのPCカードでシリアルポートとして認識 オスコネクタのシリアルケーブルを
オスからメスに変換するアダプタを自作


 外部電源で動かすとき、10Aでもまだ不足する場合がある。そこで、新たに10V、35Aまで出せる可変電源を購入。菊水電子工業コンパクト可変スイッチング電源PAK10-35A。10万円なり。

10V、35Aの電源