最終更新日 2020年2月19日

二足歩行ロボット

kazutaka nagai


< 各画像をクリックすると大きな画像が開きます >
< オレンジ色の文字列をクリックし、「ファイルを開く」でリンクが開きます >



 

  テーマ 千円サーボで格安な二足歩行ロボットを自作する
  特    長

製作費は3万円以下、19 サーボで二足歩行ほか様々な動作が可能、赤外線で無線操作、足首・股関節・腰・ひじの構造はオリジナル、STM32を使用、液晶画面装備

  諸    元

サーボ:「S03T/2BBMG/J」を18個使用 電源:「eneloop pro」4 本 4.8 V マイコン:STマイクロ社製「STM32 Value line discovery」 製作年:2013年


1.本体構造


情報源:「60日でできる! 二足歩行ロボット自作入門」 吉野耕司著 マイナビhttp://www2.plala.or.jp/k_y_yoshino/pen4/pen4_top.html http://www2.plala.or.jp/k_y_yoshino/pen4/pen4_support/index.html

基本形は上記「自作入門」の「Pen4号」からいただきました。本そのものは絶版なので、私は図書館で見つけ、3 回借り出しました。

筆者がインターネット上で詳細な設計図と部品図を公開されているので、ありがたく使用させていただきました。弟分なので、著者に敬意を表して「Pen5号」と名前をつけています。

私の使用するサーボは筆者のものより縦 2 mm 横 7 mm ほどサイズが大きい(重さも+30 g)ので、その部分のみ設計図を修正し、エンビ板とエンビ専用接着剤で一度そのまま作製しました。

 

ロボットの設計は、サーボのサイズが基本となります(足でも腕でもサーボの幅より細くはできません)。サーボのサイズが少し大きくなったため、やむを得ず本体も大きめになっています。

また、個人的な趣味で、素材を順次アルミ板(1 mm)に変更していますので、体重も増加しています。アルミ板はもっと薄いものもありますが、強度的にたよりなく、やはり 1 mmが適切かと思います。アルミの接合には 2 mmの小ネジを使用、シャフトには 2 mmと 3 mmの小ネジおよび 2 mmの針金をガスコンロで焼入れしたものを使っています。

 

その後、次項のとおり改造を続け、現状は左の図面および画像のとおりです。画像は構造が見やすいよう腕をはずして撮影しています。使用しているうちにアルミ板にあけた軸穴が広がってガタついてきたので、内径 2 mm と 3 mm のハトメで補強しました。最近「軸受」という部品があることを知り、次回導入の予定です。



2.改造箇所


基本的な構造は、吉野氏の「自作入門」のとおりですので、同書および同氏のHPを是非ご覧ください。ここでは、私が独自に改造した部分についてご説明します。

 

画像① まず、足首関節です。足首には全体重がかかり、サーボが苦しそうだったので、リンク構造を採用しました。リンク機構についてはネットで少し勉強しましたが、どうすればトルクが最大になるのか正確にはわからず、試行錯誤の結果このような形になりました。 

 

画像② 次に、重心移動を強化するため、股関節を大幅に改造しました。上半身に車輪をつけ、レールの上を左右に 12 cm ほど移動する構造です。二足歩行時にはこれほどの重心移動はいりませんが、片足立ちの際には目いっぱい使います。車輪は網戸用の戸車を流用しました。

 

画像③ 上半身は意外に重量があります。これを屈伸するピッチ軸は、サーボ直結では無理そうなので、リンク構造に変更しました。 

 

画像④ 手の表情を出すためにヨー軸が欲しくなりました。ピッチ軸やロール軸より構造が複雑になりますが、もともとメカニカルなものが好きなので、CAD上で何度も検討しました。サーボの大きさが制約となりましたが、最終的にこのような形になりました。


3.サーボモーター 


台湾GWS社製サーボ「S03T/2BBMG/J」を 18 個、同「PICO」を頭の回転用に 1 個使用しています。前者は1個1,000円と安価です(一般的なロボット用サーボは1個5,000円以上します)。見かけは華奢ですが意外に丈夫で、かつトルクが 7.4 kg もあり重宝しています。

〇型名:GWS03T/2BBMG/JR トルク:7.4 kg / cm(4.8 V) 重さ:73 g

〇スピード:0.33秒/60 度(4.8 V) サイズ:40.6 x 20.0 x 42.8 mm

〇価格: 1,000円 (秋月電子)

サーボは 1 つ 73 g 、18 個で 1.3 kg にもなり、ロボットの総重量 2 kg のうち 70 %を占めています。サーボの使用箇所は次のとおりです。頭 1 、腰(上)1 、腰(下)1 、肩 2 x 2 、ひじ1 x 2、 手 1 x 2、股関節 1 x 2 、ひざ 2 x 2 、足首 1 x 2 、計 19 個。


4.マイコン


当初はAVRマイコンの「ATmega644P」を使用していましたが、秋月電子にて入手困難になったため、ARMマイコンに転向し、STマイクロ社製「STM32 Valueline discovery」を使用しています。

〇型名:STM32F100RB

〇クロック:最高24MHz

〇フラッシュ:128 K バイト

〇RAM:8 K バイトパッケージ:64 ピンLQFP 80 mm x 40 mm

〇価格:1,200 円 (秋月電子)

安価ですが、最新の32ビットマイコンでメモリーが大きく、使い勝手がよいので気に入っています。パソコンでプログラムを作成し、USBケーブルでつなぐだけでダウンロードできます。

バッガ STーLink付き。私の最近の電子工作は全てこれです。

 情報源:「世界の定番ARMマイコンSTM32ディスカバリ」島田義人著(CQ出版)

上記書籍は、「STM32 Valueline discovery」専用の入門書で、非常にわかりやすくお世話になりました。同書に従い、私のプログラム開発環境は「Embedded Workbench for ARM」(IARシステムズ)の無償評価版です。IARシステムズのウェブサイトからダウンロードできます。

     http://www.iarsys.co.jp/

これひとつで、C言語を使ってプログラムを作成し、コンパイルして機械語に変換し、マイコンにダウンロードするまで一貫して行えます。

 情報源:「STM32マイコン徹底入門」川内康雄著(CQ出版)http://miqn.net/ 

上記書籍は、知りたいことのほとんどすべてが網羅され、かつ内容が詳細で、これまた大変お世話になりました。ただし、「STM32」シリーズすべてを対象とし、「Valueline discovery」専門ではないので、注意が必要です。また、同書推奨の開発環境は「Eclipse」ですが、私には難しくて使えませんでした。


5.プログラム


本体プログラムの中心部分は、上記「徹底入門」に収録のサンプルプログラム「tim3_pwm_rc_servo_32ch」からいただきました。マイコンのタイマー機能を使い、最大 32 個のサーボを同時に制御できる優れものです。プログラムには、この他、赤外線受信機からのデータを処理する部分、液晶表示にかかわる部分などを付け加えています。

 

なお、掲載しているプログラムは「main.c」のみです。実際に動かすには、周辺の付属ファイルが必要です。試される場合は、川内康雄氏のHPから「tim3_pwm_rc_servo_32ch」の全ファイルをダウンロードし、「main.c」のみ差し替えれば良いかと思います。


6.モーションデータ


 情報源: 「STM32マイコン徹底入門」川内康雄(CQ出版社)

「74HC238」という 3 to 8 デコーダー(@ 190 円 マルツパーツ)を 3 個使い、マイコンの 7 つのピ ンで 24 個までのサーボをコントロールできます。基盤を自作し、デコーダー 3 個とサーボ接続用ピンとして 6 ピン x 12 個(1 サーボに 3 ピン使用)、5 V 電源ピン、導通表示用LED 3 個を装備してい ます。電源回路は、起動時の電圧低下でマイコンがリセットするのを防ぐため、IC用・右半身サー ボ用・左半身サーボ用の 3 つに分割しています。全体の配線図です。


7.サーボコントロール


情報源:「AVRマイコン活用ブック」松原拓也著(電波新聞社)

ロボットが行う「足踏み」「歩く」「踊る」などの動作について、19 個のサーボが瞬間々々に動くべき角度をプログラムの中に配列として設定しています。この部分のアイデアは上記「活用ブック」からいただきました。ロボットの「歩く」など一連の動作をモーション、瞬間々々の姿勢をポーズといいます。ポーズは 1 組 19 個の角度データで表されます(角度は 10 倍表示です)。角度データをパソコンで作るソフトもあるようですが、このロボットでは手作業の試行錯誤でデータを作っています。

 

足の位置(足裏の中心位置)だけは膝(左画像)の 2 つのサーボ(「脚」と足」)の角度の組合せで決まるので、学校卒業以来初めてサイン・コサインを使って計算し、早見表を作りました。

左記「説明図」参照。

 

足を出したい距離と高さをこの表に当てはめると、2 つのサーボに設定すべき角度がわかり

ます。とえば、足を前方 20 mm、高さ 10 mm の位置にもってゆくには、膝の上側のサーボ「脚」を33 °、下側のサーボ「足」を 10 °(実際は - 10 °)に設定すればよいことがわかり

ます。 

 

 

 


8.液晶表示


情報源:「世界の定番ARMマイコンSTM32ディスカバリ」島田義人著(CQ出版)

SunlikeDisplay社製「SC1602B」というLCDモジュール(@ 700 円 秋月電子)をロボットの胸部分に装備しています。ロボットの動作時に、モード名・アクション番号・スピードなどマイコンの状態を表示し、赤外線通信でロボットをコントロールする際の確認用ディスプレイになります。 プログラムは、上記「世界の定番」に収録のサンプルプログラムを下書きにして作成し、メインプログラムのインクルードファイルとしています。


9.赤外線通信


情報源: HP「電子工作のテスト工場」天姫氏 「PICで赤外線通信」

http://amahime.main.jp/sekigaisen/main.php?name=sekigaisen

送信機・受信機ともAVRマイコン「ATtiny2313」(@ 150 円 秋月電子)で動いています。送信機には赤外線LED、受信機には赤外線リモコン受信モジュール「PL-IRM2121-A538」(@100 円秋月電子)を使用しています。プログラムは上記HPから「PICで赤外線通信」をいただき、AVRに移植のうえ 3 チャネルから 8 チャネルに改造しました。送信機は次節液晶ディスプレイと共用(1 つしかない)で、電源は単 3 型 1.5 V 乾電池 2 本です。下にプログラムを掲載します。左が送信機用、右が受信機用です。 

 


10.バッテリー


SANYO(現Panasonic)製ニッケル水素電池「eneloop pro」(単 3 型 1.2 V 2450 mAh)4 本を使用しています。当初はスイッチングACアダプター(DC 5 V 2.3 A)を使っていましたが、ロボット起動時の電圧降下によりマイコンがリセットするトラブルがあり、ニッケル水素電池に乗り換えました。同じくリセット対策でマイコン専用に乾電池(単 3 型 1.5 V 2 本)を別途搭載しています。


11.工具


私が使っているアルミ板加工の工具をご紹介します。左は「ポケットベンダー」といい、アルミ板を曲げる専用の道具です。(@ 3,149 円アマゾン)。狙ったラインで実にきれいに曲げられ、コの字型に曲げることも可能です。5 cm 幅が限度というのが唯一最大の欠点です。

 

もっと大型の本格的な折り曲げ機も販売されていますが非常に高価です。なので、私はホームセンターで 30 cm x 4 cm の穴の開いた鉄板を入手し、ボルトと蝶ナットで重ね合わせ、折り曲げ機兼切断機として使っています(左の画像)。幅広のアルミ板を切断するときは、カッターナイフで深く傷をつけ、これに挟んで数回折り曲げて切断します。正確性は落ちますが、切断後にヤスリで微調整すればよいので十分実用となります。

 

 ロボットの製作においては正確な部品の切り出しと正確な穴あけが重要です。ノギス(1/10mmまで測れます)、スコヤ、精密ドライバー、極細ヤスリ、ピンバイス、10 cm 精密物差、ケガキ針(アルミに印をつけ線を引く)などが活躍しました。


本機の発展形「2号機」の製作記事はこちらです。是非ご覧ください。



ダウンロード
program_main.pdf
PDFファイル 26.0 KB
ダウンロード
program_sekigaisenout.pdf
PDFファイル 4.3 KB
ダウンロード
program_sekigaisenin.pdf
PDFファイル 4.6 KB
ダウンロード
lcd_function.pdf
PDFファイル 5.2 KB