弊社アールティ主催の二足歩行ロボット競技、Humanoid Autonomous Challenge(通称HAC)の参加に向けてロボットを開発しています。アルバイトのtsunoです。
今回は、市販のロボット「KXR-L2」でHAC出場を可能にする方法を考えていきます。
市販ロボットキットはたくさんある
現在、国内外問わず様々な二足歩行ロボットキットが販売されています。当ブログ内でししかわさん(ししかわさん記事)やshotaさん(shotaさん記事)が二足歩行ロボット研修にて用いているROBOTIS ENGINEER KIT1もその一例ですね。
近藤科学製 KXR
様々なキットがある中で、私は近藤科学製のKXR アドバンスセットAを選定しました。
KXRは、近藤科学株式会社が販売するロボットキットです。汎用性の高いプラスチックフレームと18個(セットによって異なる)のサーボモータで構成されており、6脚型や恐竜型など、様々な形状のロボットを組み立てることができます。
KXRを選んだ理由は主に以下の3点です。
- 付属する制御基板RCB4-miniと、それに付随するモーション作成ソフトウェアHTH4の使い勝手が良い。
- メーカが提供するRCB-4 Libraryによって、シングルボード含むコンピュータのpython/C++環境から制御基板RCB4-miniと簡単に連携できる。
- 価格が比較的安い。同メーカのKHR-3HVが約¥125000であるのに対して、KXRアドバンスセットAは約¥110000。
組み立てについては割愛します。基本的には公式の組み立て説明書通りに組み立てれば問題はありません。
1点注意点として、KXRに標準搭載のモータKRS3301はトルクが低く、カメラなどを載せてロボットの自重が重くなると歩行や旋回の動作が不安定になります。高トルクなKRS3304で脚のPitch軸3軸(ID 5, 6, 7番)をそれぞれ置き換えましょう。前述したKXRアドバンスセットAならばKRS3304が6個付属するので最適です。私の開発時には、組み立てて動かしてからトルクが足りないことが発覚しKRS3304を6個セットで買い足すことになりました…
KXRを自律化するには
ただKXRを組み立てるだけでは自律動作を行うことはできません。人間で例えると、動くことの出来る体はありますが、周りの様子を認識する感覚器官や、それで得た情報に応じて体に指令を出す頭がまだない状態です。各要素を足していきます。
shotaさんが作成されたHAC用ロボットシステム構成図の表現を拝借すると、制御モジュールはKXRとRCB-4にて完結していますが、認識モジュール、プランニングモジュールと、それらの円滑な連携が必要ということです。
製作の負担を減らすことが目的ですから、既存のKXRには大幅な改造をせずに済むように要素を追加し機能を拡張していきます。
認識モジュール
まず、認識にはカメラを用います。勘のいい方はお気づきと思いますが、HAC競技規則の中のフィールドに関しての記述を見ると、フィールドの構成要素はすべて異なるカラーリングがされています。ボールはオレンジ、フィールドの縁は赤、スタートラインは白、ボールラインは青、などですね。これらを色で分類し認識、判別することで、ロボットは周囲の状況を知ることができます。
人間の視野角は、周辺視野も含め最も広い左右で180°程です。ロボットにおいても、周囲の状況を一挙に知るために広角のカメラが理想的ですので、視野角120°と広角かつ小型のWebカメラBuffalo BSW505MBKを選定しました。
プランニングモジュール
更にプランニングには、Raspberry Pi Zero 2Wを用います。
基板寸法65mm×30mm×5.2mmで10gと非常に小形軽量ですが、今回行いたい画像処理には十分な性能を持ちます。
また、GPIOピンから電源が供給可能なのもポイントで、KXRに標準搭載の6.6Vバッテリから分流してDCDCで降圧することで、電源を統一することができます。
全体の構成
以上の要素を統合したシステム構成図を示します。
次回からはこのシステムを実際に製作していきます。