Comments
Description
Transcript
卒 業 論 文 二足歩行ロボットの製作と制御に関する研究 八木政樹
卒 業 論 文 二足歩行ロボットの製作と制御に関する研究 石川工業高等専門学校 電気工学科 学籍番号 041238 八木 政樹 主任指導教員 河合 康典 講師 2009 年 2 月 c 2009 by Masaki Yagi Copyright ° c °2009 Masaki Yagi All rights reserved 要旨 本研究では, 二足歩行ロボットについての研究を行う. 本研究の目的は, 近年, 研究開発が 盛んに行われている二足歩行ロボットを設計及び製作し, その全体的な構成と動作原理を理 解することである. また, 製作した二足歩行ロボットを用いて歩行の実現を目指す. はじめに, ロボットのシステム構成と設計について説明する. システム構成では, まずロ ボットの仕様について示し, マイコンボード, センサ, サーボモータなど, ロボットを構成す る部品について示す. 次に, ロボットの設計を機械系, 電気系, プログラムの 3 段階に分けて 考察する. また, その設計内容を元にして, 実際に二足歩行ロボットを製作する. 最後に, 制 御プログラムについて考察し, 製作した二足歩行ロボットを用いて, 歩行実験を行う. その 後, 実験結果を示し, その評価を行う. i 目次 第 1 章 序論 1 1.1 研究の背景と目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 論文構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 第 2 章 システムの構成 2 2.1 仕様 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 マイコンボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 センサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 駆動部 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5 バッテリー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 構造材料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 第 3 章 設計 6 3.1 機械系の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 電気系の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 ソフトウェアの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 第 4 章 制御プログラム 13 4.1 制御方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 制御信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 速度制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4 関節パラメータの測定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5 歩行とアルゴリズム 4.6 オフライン計算モーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.7 各種センサの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.8 実験結果とその評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ii 目次 第 5 章 結論 22 5.1 本研究での成果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 今後の課題 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 付 録 A 付録 23 謝辞 24 参考文献 25 iii 図目次 2.1 AKI-H8/3067F(20MHz) 超高性能マイコンモジュールボード . . . . . . . . . 3 2.2 距離センサ GP2D12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 ジャイロ PG-03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 SX-101Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5 PICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 EPG-VR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.7 EPG-VB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1 全体組み立て図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 ロボットの写真 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 平行リンク機構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 重心移動の方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.5 膝から上までを簡略化した図 . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.6 システム構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.7 ソフトの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.8 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.9 Visual C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1 PWM 制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 RC サーボの制御信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 全体の制御信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 RC サーボ入力値と角度の時間変化 . . . . . . . . . . . . . . . . . . . . . . . 15 4.5 0 番サーボの補間直線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.6 歩行モーションのイメージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.7 歩行シーケンス図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.8 歩行モーションデータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.9 ジャイロの入出力信号タイミングチャート . . . . . . . . . . . . . . . . . . . 21 14 iv 図目次 A.1 I/O ボードの回路図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 v 表目次 2.1 ロボットの仕様 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 マイコンボードの仕様 [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.1 関節パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1 第 1章 序論 1.1 研究の背景と目的 近年, ロボットの研究開発が盛んである. ロボットは一定の動作を繰り返す作業用機械と してだけではなく様々な分野での活用を求められるようになっており, 中でも二足歩行ロ ボット等の人間型ロボットの開発は, 人間自身のメカニズムの解明にも繋がるとされ, 多方 面で開発が進められている. 本研究では, 二足歩行ロボットを設計及び製作し, その全体的な構成と動作原理を理解す ると共に, 歩行を実現することを目的とする. 1.2 論文構成 本論文では, 第 2 章に二足歩行ロボットのシステム構成について示し, 第 3 章で設計につ いて説明する. 第 4 章では, 制御プログラムおよび歩行実験, 評価について述べる. 2 第 2 章 システムの構成 第 2章 システムの構成 2.1 仕様 ロボットの仕様を表 2.1 に示す. 表 2.1: ロボットの仕様 寸法 (身長) 約 35cm 重量 約 1.3kg 合計自由度 13(脚:4, 腕:6, 腰:2, 首:1) モーター RC サーボモーター ・腰:サンワ ERG-VB(ピッチ軸), ERG-VR(ロール軸) ・首:GWS PICO ・その他:サンワ SX-101Z 電源 ニッケル水素電池(6.0V 1100mAh) センサ ジャイロ(1 軸) 赤外線距離センサ CPU H8/3067F(20MHz, 32k byte RAM) 基本性能 (1) 1秒間に2歩程度のペースで二足歩行できる (2) 周囲の障害物の状況を調べられる 2.2. マイコンボード 2.2 3 マイコンボード 二足歩行ロボットを実現するためには, タイマや A/D 変換器といった機能を持った制御 用マイクロコンピュータが必要である. そこで本研究では, C 言語でプログラムを作りやすい点を考慮して, ルネサステクノロジー 製の H8/3067 というマイコンチップが載っている, 秋月電子通商製のマイコンボードキッ トを使う. 仕様については表 2.2 に示す. また, 実際の写真を図 2.1 に示した. 図 2.1: AKI-H8/3067F(20MHz) 超高性能マイコンモジュールボード 表 2.2: マイコンボードの仕様 [5] 4 第 2 章 システムの構成 2.3 センサ ロボットの外のことを知る外界センサとして距離センサを, ロボット自身のことを知る内 界センサとしてジャイロを載せる. 距離センサを搭載することによって, 操縦のみのリモコ ン式ロボットではなく, わずかでもロボットに状況を判断させて, 行動に反映させることが でき, 自律的に行動することが可能になる. また, ジャイロを搭載することにより, 歩行の動 作が, あらかじめ決めた動作の完全な再生ではなく, 歩いている場所の微妙な凹凸を感じて, 歩き方に反映できるようになる [1]. 次にロボットに搭載するセンサを簡単に説明する. 距離センサは, 赤外線を使って距離を測 るセンサである. 赤外線を出す部分と, その赤外線のスポットの方向を読み取る部分で構成 されており, 三角測量の原理で距離を求める. シャープ製の測距センサユニット GP2D12(図 2.2) という機種を使う. ジャイロは, 回転運動を測るセンサで, GWS 製の PG-03(図 2.3) と いう機種を使う. 図 2.2: 距離センサ GP2D12 2.4 図 2.3: ジャイロ PG-03 駆動部 駆動部に, RC サーボモータを使う. サーボモータとは制御回路を含むモータモジュール である. この制御回路に, 制御パルスを送ると, そのパルス幅に比例した角度にまで回転す る. パルスの幅と回転角度の対応は, それぞれのサーボモータで少しずつ違ってくる. 本研究では, 主にサンワ製の SX-101Z(図 2.4) という機種の RC サーボモータを用いる. 首は力より軽さを重視するため GWS 製の PICO(図 2.5) を使用する. 腰に使う RC サーボ モータは SX-101Z では力不足なので, サンワ製の EPG-VR(図 2.6) と ERG-VB(図 2.7) を 使う . 本研究では, RC サーボモータを合計 13 箇所に用いる. 今回, 使用するサーボモータの 図を以下に示した. 2.5. バッテリー 5 図 2.4: SX-101Z 図 2.5: PICO 図 2.6: EPG-VR 2.5 図 2.7: EPG-VB バッテリー バッテリーは性能, 入手性, ランニングコスト等より Ni-MH(ニッケル水素) 電池を使用し ている. 本研究ではロボットのサイズと消費電力から判断して 1.2V 1100mAh の電池が 5 本 パックされた形で, ラジコン用として売られている 6V の電池を使用する. 2.6 構造材料 フレームは, 1mm 厚のプラスチック板を使用している. これは, 軽くて丈夫であること, 安価, 加工がしやすい等の利点を考慮して, 選んだ結果である. また, 脚の軸受けとして, ア ルミアングル (12 × 12 × 1mm) を使用する. 6 第 3 章 設計 第 3章 設計 3.1 機械系の設計 フレーム設計とその留意点を以下に示す. 1. すべての部分は必要十分な範囲で軽くて丈夫であること 2. 二足歩行や, その他の実現したい動きができる関節の配置になっており, かつそれぞれ の関節は, 十分な動ける範囲 (関節可動範囲) を持っていること 3. マイコンや電池などを積み込むのに十分なスペースがあること 以上のことに留意しながら, ロボットの形を決定する. [1] 図 3.1 に全体の組み立て図, 図 3.2 にその写真をそれぞれ示す. 3.1. 機械系の設計 7 図 3.1: 全体組み立て図 図 3.2: ロボットの写真 8 第 3 章 設計 1. 平行リンクと脚の仕組み 脚部に平行リンク (図 3.3) と呼ばれる機構を搭載する. 平行リンク機構は, 脚をどの 位置に持ってきても, いつも足裏の面が地面と平行になることが特徴である. 本研究 では, このように片足あたり 2 つの RC サーボで, ある程度の速さで二足歩行できる簡 単な機構として, 平行リンク機構を採用している. 平行リンクを使用しない機構をシリアルリンク機構という. シリアルリンクの場合, 足裏の面を自由な向きにできる代わりに, RC サーボが 1 つ増え, 重量が大きくなるデ メリットがある. よって, 安価な RC サーボを使用すると, 軸受けの機械的なガタが大 きくなり, 力のかかったときに, 目標からのずれが大きい傾向にある. さらに, シリアルリンクは足首を中心として体全体が傾くのに対し, 平行リンクは足 首を中心として動くのは膝までであり, 胴体の傾きに影響が出にくい. 二足歩行ロボッ トは, 重心の制御が非常に重要なので, 安価な RC サーボを使用しても安定して歩ける ようにするために, シリアルリンクではなく, 平行リンクを採用することにした [1]. 図 3.3: 平行リンク機構 2. 重心移動の方法 本研究の二足歩行ロボットは, 人間が歩くときと同じように左右の足に交互に重心 を移しながら歩行する. 図 3.4 は重心移動の方法を簡略化して示したものである. この ように, 重心移動のために 1 つの関節しか使わないため, モーターが少ない分ロボット が軽くなり, また重心移動のための制御が簡単になるので, このような方式を採用す る. このように, 平行リンク機構で前後方向の重心移動が少なくてすむので, 上半身を 使った左右方向の重心移動制御により, 歩行動作が可能となる. 3.1. 機械系の設計 9 図 3.4: 重心移動の方法 3. 脚の寸法 脚の寸法を, 図 3.5 を用いて説明する. 膝を限界まで曲げてしゃがんだ時に, AB 間 は水平になるので, L が最大になることがわかる. この時, 膝に発生するトルクを, RC サーボ SX-101Z のトルク限界値 3.3kg・cm 以下になるように計算する. L= 50mm を計算すると 1300[g] × 50[mm] = 32500[g・mm] = 3.25[kg・cm] 2 となり, 条件に満たすので脚の長さは 5cm になるように設定する. 1300g L 図 3.5: 膝から上までを簡略化した図 F (3.1) 10 第 3 章 設計 3.2 電気系の設計 1. システム構成図 構想の部分で定義したロボットの概略使用からマイコンを中心としたシステムの構 成を図 3.6 に示す. I/O 図 3.6: システム構成図 2. I/O ボード I/O ボードの部分を回路図を図 A.1 に示す. 3.3. ソフトウェアの設計 3.3 11 ソフトウェアの設計 ソフトウェアは, PC 用ソフト (GUI あり), PC 用ソフト (GUI なし), H8 マイコン用ソフ トの 3 種類から構成する. ソフトの構成をまとめたものを図 3.7 に示す. 図 3.7: ソフトの構成 1. PC 用ソフト (GUI あり) 動作確認用のソフト. 簡単な試験用機能をまとめて, Microsoft Visual Basic 2008 Express Edition(図 3.8) で作成する. RC サーボを1つずつ動かす, 各センサーの出力 値を見る, モーションデータ用の中間通過ポイントをファイルに読み, 書き, 編集する などの機能を持つ. 図 3.8: Visual Basic 12 第 3 章 設計 2. PC 用ソフト (GUI なし) Microsoft Visual C++ 2008 Express Edition(図 3.9) を使用する. オフラインモー ションの作成を行う. 図 3.9: Visual C++ 3. H8 マイコン用ソフト 上記 Visual C++でプログラムを作成し, コンパイルが通ることを確認した後 H8 用 の C コンパイラにてコンパイルを行う. 13 第 4章 制御プログラム 4.1 制御方法 サーボモータを任意の角度まで回転させるためには,制御パルスのパルス幅を変調させ ることが必要となる.これを PWM(パルス幅変調)方式といい,サーボモータの制御に不 可欠なものといえる. 図 4.1 の左側では,デューティー比が高いほどONになっている期間が長く,デューティー 比がゼロではずっと OFF のままである様子を示している.モーターにこのようなタイミン グで電源を与えてあげると,あたかもアナログ的に電源電圧を可変してあげたかのように, 角度の制御が可能になる. これが PWM による制御である [4]. 図 4.1: PWM 制御 PWM 制御を用いるにあたって,デューティー比が必要となってくる.デューティー比は 周期 T と,on 時間 x の比である. 数式で表すと, duty = となる. x × 100[%] T (4.1) 14 4.2 第 4 章 制御プログラム 制御信号 1 個の RC サーボモータに入力する制御信号を図 4.2 に示す. このように 20ms 周期で 1.5ms 前後のパルスを入力することによって RC サーボモータを制御する. パルスの幅を 1.5ms を 中心として長くしたり, 短くしたりすると, RC サーボモータがそれに比例した角度に動く という仕組みである. ms ms ms 図 4.2: RC サーボの制御信号 次に, 13 個の RC サーボモータにパルスを与える方法を考える. 本研究では, 13 本の信号 を効率良く伝達し, かつ 20ms の周期を守るために, 図 4.3 のようなタイミングチャートを採 用した. このように同時に 3 個ずつ 4 回に分けてパルスを伝達させることで上記の条件を満 たすことができる. SM0 SM1 SM2 SM3 SM4 SM5 SM6 SM7 SM8 SM9 SM10 SM11 SM12 図 4.3: 全体の制御信号 4.3. 速度制御 4.3 15 速度制御 サーボモータをスムーズに動かすと共に, 速度制御する方法を以下に示す. • いきなり目標値を与える方法 • 一定間隔で目標値をずらしていく方法 • 目標値をずらす幅をスムーズに変化させる方法 今回は, 目標値をずらす幅をスムーズに変化させる方法を使用する. マイコンから RC サー ボに入力するパルスの幅を時間間隔は一定で, 目標値までの数値割合を少しずつ増減させる ことでスムーズに動くようになっている. 横軸を時間 [s], 縦軸を RC サーボモータへの入力 値として関係をグラフ化したものが, 図 4.4 である. このように, RC サーボモータの能力を 考慮して, 動かす角度と時間を決めれば, マイコンからの入力を受けた後に動き出すので, 一 定の時間差はあるが, だいたいマイコンが入力した通りの動きで関節を動かすことができる RC [1]. 図 4.4: RC サーボ入力値と角度の時間変化 16 4.4 第 4 章 制御プログラム 関節パラメータの測定 本研究で製作したロボットは, 関節の RC サーボごとにサーボホーンが保持すべき位置を 4 桁の整数で与えて位置を制御する. ロボットが全体として意味のある動きをするために上 位のプログラムから与えられている数値と, RC サーボが動くために必要な数値の単位が違 うので, その間の橋渡しする手段が必要である. 具体的には, 4 桁の整数と, mm 単位や, 度単 位の間の対応づけが必要になる. モーションデータを計算するプログラムでは, この対応付 けのための数値を集めたテキストファイルをベースとして計算を行う. この数値を, 関節パ ラメータという. 表 4.1 に関節パラメータを測定したファイルを示す. ただし, 表中の Bone length は関節から関節までの長さを表す. 単位は mm である. 表 4.1: 関節パラメータ #右パラメータ Bone length 0 53.76 Bone length 1 53.76 Servo Data 0 -45 1975 0 2950 30 3650 Servo Data 1 -30 850 0 1625 45 2550 Servo Data 6 -90 3215 -45 2165 0 1075 Servo Data 7 -45 1520 0 2275 45 3335 Servo Data 8 -45 3275 0 2250 45 1250 #左パラメータ Bone length 0 53.76 Bone length 1 53.76 Servo Data 2 -30 700 0 1375 45 2400 Servo Data 3 -45 1575 0 2450 30 3300 Servo Data 9 0 3275 45 2150 90 1200 Servo Data 10 -45 1010 0 1900 45 2900 Servo Data 11 -45 2925 0 1950 45 950 Servo Data 4 -25 1650 0 2225 25 2850 Servo Data 5 -90 1000 -30 2500 0 3200 Servo Data 12 -45 1225 0 2475 45 3500 #胴体パラメータ 4.5. 歩行とアルゴリズム 17 RC サーボへの出力値と角度の対応を記述しているものが Servo data である. 具体的には, 実際にロボットで使用する RC サーボの軸の可動範囲から中立位置 1 点と最大可動範囲など 2 点で合計 3 点 (仮に A, B, C とする) をとり, その角度と RC サーボ出力値をペアにして並 べる. プログラムでは A-B 間と B-C 間で直線補間の計算をして任意の角度の出力値を計算 している. 例として 0 番のサーボの行をグラフにしたものを図 4.5 に示す. ただし, A は 45 度, B は中立位置の RC サーボ出力値とする. A-B 間の補間式は y = 21.67 × x + 2950 (4.2) となる. RC サーボの理想は, 入力パルスの幅と軸の角度が比例することである. しかし, 実際は途 中で傾きが変わったり, 凸凹があったりするため, 関節を動かす範囲で A-B と B-C の 2 本の 直線に分けている [1]. 図 4.5: 0 番サーボの補間直線 4.5 歩行とアルゴリズム はじめに, ロボットの歩行の考え方を示す. まず, 平地を一定のスピードで歩いているとき は左右の足を交互に, 体を支えているほうの脚を後ろに送り, その間に反対側の脚を前に出 す. そして, 両足が地面に付く瞬間を経て, 体を支える脚が切り替わるというサイクルを繰 り返すことで歩行を行う. 歩きはじめと止まるときだけ体の移動速度に変化があり, 通常の サイクルと異なると考える. 図 4.6 のように, ロボットの重心は足跡を通るように移動する. 今回製作したロボットは, 1 秒間に 50 回という決まったサイクルで, 関節の角度を指定す 18 第 4 章 制御プログラム る仕組みになっている. そのため, モーションは必然的に 1 秒間を 50 に割って, その瞬間ご とのポーズになるよう, 関節の角度を順番に目標位置として指定していく方式をとる. 次に, 歩行プログラムを作成する手法について述べる. 本研究では, 比較的単純に, 足先は 空間に長円の軌跡を描くように, 左右の足でタイミングをずらして動かし, 上半身は足を動 かすタイミングに合わせて左右に動かす. この動作を幾何学で求めて, 連続的に変わるポー ズのデータを作る手法を採用する. この手法は確実に早くモーションが得られ, 歩幅として 与える数値を変えるだけで, 簡単に歩幅を変えたモーションデータを作ることが可能である. ここまでの内容を実現するためのプログラムは, 大きく分けて 3 つの部分から構成される. 1. 足先の軌道点列を作るプログラム 2. 軌道点列を書く関節の角度 (モーションデータ) に変換するプログラム 3. モーションデータを再生するプログラム 1, 2 の処理は, ロボットを歩かせながら H8 マイコンで実行するには重過ぎるので, あらかじ め PC で計算してその結果をモーションデータとしてロボットに転送する方式を採用する. これを一般に, オフライン計算モーションという. そして, ロボットに搭載した H8 マイコン は 3 の処理のみ実行する [1]. 図 4.6: 歩行モーションのイメージ 4.6. オフライン計算モーション 4.6 19 オフライン計算モーション 直進歩行の動作を以下の 3 つのフェイズに分けて考える. 1. 初めの一歩 足をそろえて止まっている状態から, 加速して一歩目を踏み出すまでの動作 2. 定常歩行 連続的に歩いているときの動作. この動作を繰り返す間は一定速度で歩き続ける. 3. 最後の一歩 連続的に歩いている状態から, 減速して足をそろえて止まるまでの動作 前進するためには, これら 3 つの動作に対応するオフライン計算モーションを作成するプロ グラムが必要になる. モーションデータを作ることは, 結局足先の軌道のデータを作ること と同じことである. しかし, 人よりずっと関節数が少ないロボットには, 人の足の軌道をそ のまま真似ることはできないので, ここでは単純化して円と直線で構成した軌道を使う. 図 4.7 は上半身を揺らす動きと足先の軌道を表した図である. なお, 足や上半身は矢印の 方向に動くものとする. また, はじめの一歩とさいごの一歩のフェイズについて, 上半身の 動きの加速・減速のシーケンスを独立させて 2 つに分けることとする. 定常歩行のフェイズ では, 軌道のつなぎ目が右足は a 点, 左足が点 c にある. 右足が a → b → c と地面に着いた状 態で動いている間, 左足は c → a へ空中を動くことになる [1]. A B C A B C c b a c b a c b a c b a c b a c b a A B C A B C A C B 図 4.7: 歩行シーケンス図 20 第 4 章 制御プログラム 次に, 1, 2, 3 のモーションをつないでプロットしたものを図 4.8 に示す. ただし, グラフの 傾きが, その関節の RC サーボに要求されるスピードである. 例として, 右足のサーボモータ と腰 (ロール) のサーボモータのモーションデータを示す. このように, 3 つのモーションが 連続し, かつ傾きが急すぎないことが, ロボットのバランスを保つ上で重要である. 図 4.8: 歩行モーションデータ 4.7 各種センサの使用 • ジャイロ ジャイロの入出力信号タイミングチャートを図 4.9 に示す. 入力信号が Gyro Ref で 出力信号が Gyro Data である. このように入力パルスからパルス幅の半分くらい遅れ て出力パルスが出てくる. 入力パルスの幅 t0 は 1.5ms で, 出力パルスの幅 t1 はジャイ ロの回転運動の早さに比例して増減する. 逆にジャイロが運動していないときは入力 パルスと同じパルス幅, すなわちこの場合は 1.5ms となる. したがって, プログラムに はこの入力信号を作る機能と, 出力信号のパルス幅を計測する機能を拡張することで ジャイロが使うことが可能となる. 4.8. 実験結果とその評価 21 歩いている途中で揺れがだんだん大きくなって転倒するのを防ぐのにジャイロの フィードバックを使う. 具体的には, 歩行中にジャイロ信号を読み取り, その数値に フィードバックゲインを掛けた数値を, 腰の RC サーボへの出力数値に加減するとい うことでロボットを安定化する. なお, フィードバックゲインは, 実際にロボットを 動かして, 調整するものとする. ここでは, 0.20 程度で安定するので, この数値を採用 する. t Gyro Ref Gyro Data t1 図 4.9: ジャイロの入出力信号タイミングチャート • 距離センサ 赤外線距離センサの測定結果を, ターミナルソフトの画面に出す機能と, 首を動かす 機能をプログラムに追加する. また, この 2 つの機能を組み合わせて測定を行い, 画面 にレーダーのような形で表示するように Visual Basic のプログラムを改良する. はじめに, 首を 60 度右に向け, 5 度刻みで止めながら赤外線距離センサで首が向い ている方向の距離測定を行う. 最終的には 120 度動かして, 左 60 度の方向まで測定す る. このような動作をスキャン動作と呼ぶ. このスキャン動作によって, ロボットが自 律的に移動するときに, 障害物の有無を判断し, 歩行範囲を特定することができる. 4.8 実験結果とその評価 前節のモーションデータを, H8 マイコンに送信, 実行することで直進歩行を実現できた. しかし, 進行方向に対してロボットが左右にずれる場合が見受けられる. おそらく, 通信ケー ブルの影響を受けているものと考えられる. 解決手段として, ケーブルなしで自律して歩行 できるようにプログラムを改良すること, ジャイロを 1 軸から 3 軸に増やすことがある. 22 第 5 章 結論 第 5章 結論 5.1 本研究での成果 本研究では, 二足歩行ロボットを設計及び製作し, 制御プログラムによって動歩行を実現 する方法を考えた. そして, 歩行モーションの作成により, 二足歩行ロボットの歩行を実現 し, その結果を示した. 5.2 今後の課題 本研究において, 二足歩行ロボットを設計及び製作し, 歩行を実現したが, 以下の問題点 が残った. • 通信ケーブルの影響により歩行が安定しない • 転倒を検知することができない 今後は, 転倒を検知するために加速度センサを追加することが課題である. また, ジャイロ の追加や, 自律して歩行できるようにプログラムを改良することで, 安定性を増す必要もあ ると考えられる. 23 付 録A 付録 図 A.1: I/O ボードの回路図 24 謝辞 謝辞 本研究を進めるにあたり, 5 年生からの 1 年間, 暖かい指導と様々な機会を与えてくだ さった河合康典 講師に心より深く感謝いたします. そして, 日頃から様々なご協力をいただ いた河合研究室のメンバーに感謝します. 最後に, これまでの研究生活を可能にし, 暖かく 見守っていただいた両親, 兄弟に深く感謝します. 25 参考文献 [1] 吉野耕司, 60 日でできる! 二足歩行ロボット自作入門, 毎日コミュニケーションズ, 2007. [2] 吉野のロボット, http://www2.plala.or.jp/k y yoshino. [3] 吉野家のロボットを作ろう, http://yassy7.blog44.fc2.com [4] PWM でモーター制御, http://homepage1.nifty.com/rikiya/software/106pwm1.htm [5] H8/3067RF 搭載 CPU モジュール SSH8-3067F シリーズ ユーザーズマニュアル, 株式 会社ソーブシステム, 2003.