Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
筑波大学大学院博士課程
システム情報工学研究科修士論文
段差を乗り越える
4足歩行ロボットシステムの開発
北嶋 悠己
(知能機能システム専攻)
指導教官 油田 信一
2002年 2月
概要
この研究は東京工業大学で開発された 12自由度 4足歩行ロボット TITAN-VIIIをもとにして、自律的に段差を検知してそれを乗り越えるロボットシステムを開発することが目的である。開発当初、本研究室にある 1台の TITAN-VIIIが歩行できる形にまで開発されていたが、そ
のハードウェア構成では段差を乗り越えることができないので筆者はTITAN-VIIIを一から設計し直すことでこの目的に沿ったロボットシステムを開発しようと考えた。まず、TITAN-VIIIの機能を知るためモータドライバである TITEC MOTOR DRIVERの基
礎実験を行った。次に、TITAN-VIIIが自律的に段差乗り越えを行うことができるためのハードウェアの構成
を検討し、コントローラと ADDAコンバータボードと電源ボードを搭載することに決めた。コントローラは本研究室で用いられているものを流用するとしても、ADDAコンバータは
必要なチャンネル数が多すぎるため流用できない。そこで、新たに TITAN-VIIIの要求する性能にあったADDAコンバータを設計・製作した。また、ADDAコンバータ単体による動作チェックを行った。また、電源とする電圧も本研究室で用いられている自律移動ロボット「山彦」と違うので
山彦で用いられている電源ボードでは足りない。そこで、TITAN-VIIIの要求する性能にあった電源ボードも新たに設計・製作した。そして、これらのハードウェア間をシールド線などで配線した。組み上がったハードウェアに対し、段差検知プログラムを作成し実験を行って、このハー
ドウェアにおいて段差を検知することが可能であることを確かめた。また、歩行プログラムを作成し実験を行って、このハードウェアにおいて平面環境での歩
行を行うことが可能であることを確かめた。これらにより、平面環境及び段差のある環境を歩行することができる最低限のハードウェ
ア環境が整ったといえる。
目次
第 1章 はじめに 11.1 本研究の背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 本研究の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
第 2章 ロボットシステム構成 32.1 脚機構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 TITEC MOTOR DRIVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 コントローラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
第 3章 ADDAコンバータボードの設計・製作 83.1 ADDAコンバータボードの構成 . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 6chAD3chDAコンバータ試作ボードの製作 . . . . . . . . . . . . . . . . . . . 9
3.3 24chAD12chDAコンバータボードの製作 . . . . . . . . . . . . . . . . . . . . 13
第 4章 電源系の設計・製作 164.1 電源供給・配電ボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 バッテリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
第 5章 ハードウェアの実装 18
第 6章 動作実験 206.1 制御の仕組み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2 段差検知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3 歩行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
第 7章 まとめ 30
謝辞 31
参考文献 32
i
図目次
1.1 TITAN-VIII外観 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.1 脚機構の模式図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 TITEC MOTOR DRIVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 TITEC MOTOR DRIVERのブロック線図 . . . . . . . . . . . . . . . . . . . . 6
3.1 TITEC MOTOR DRIVERと ADDAコンバータボードの接続 . . . . . . . . . . 9
3.2 6chAD3chDAconverterboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 ADDAコンバータアクセスタイミング . . . . . . . . . . . . . . . . . . . . . 10
3.4 動作実験の接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.5 6chAD3chDAコンバータボードの動作チェック . . . . . . . . . . . . . . . . . 12
3.6 6chAD3chDAコンバータボードの誤差 . . . . . . . . . . . . . . . . . . . . . 13
3.7 24chAD12chDAコンバータボード . . . . . . . . . . . . . . . . . . . . . . . . 14
3.8 24chAD12chDAコンバータボードの動作チェック . . . . . . . . . . . . . . . 15
3.9 24chAD12chDAコンバータボードの誤差 . . . . . . . . . . . . . . . . . . . . 15
4.1 電源システムの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1 山彦ドニーの外観 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.1 指令電圧とメカの移動方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2 障害物なし(第 1関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3 障害物なし(第 2関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 障害物なし(第 3関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.5 障害物あり(第 1関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.6 障害物あり(第 2関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.7 障害物あり(第 3関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.8 段差検知動作(第 1関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.9 段差検知動作(第 2関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.10 段差検知動作(第 3関節) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.11 ステップ動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
ii
第1章 はじめに
1.1 本研究の背景
移動ロボットを考えたときに、4脚ロボットをはじめとする脚型ロボットはその自由度を生かして車輪方ロボットでは行えない段差や荒れ地などの踏破が可能であるという長所を持っている。4脚歩行機械は静的安定歩行を実現する最小脚数の移動形態であり、その制御次第では非常に自由度の高い行動が可能になるはずである。本研究で用いる 4脚歩行ロボット「TITAN-VIII」は東京工業大学で開発され、本研究室に
は 2台が納入されている。そして、1台は「山彦巌」と名付けられ、屋内ナビゲーションを行わせることを目標として開発され、すでに歩行システムが実現されている。しかし、この山彦巌は脚の角度を知ることができないため車輪型ロボットと同様に移動環境が平面に限定されている。つまり、脚型ロボットの長所である自由度を生かした行動、つまり車輪型ロボットでは行えない段差や荒れ地の踏破は行うことができない。もう 1台は「ジョー」と名付けられてはいるものの、納入時から全く手をつけられておら
ず、ほとんどカタログどおりの状態になっている。そこで、「ジョー」を「ドニー」と名前を付け替え、このドニーを用いて段差を乗り越えるロボットシステムを開発することにした。
図 1.1: TITAN-VIII外観
1
1.2 本研究の目的
本研究では TITAN-VIIIを用いて段差乗り越えを行うことができるロボットシステムを構築するのが目的である。そのために必要なハードウェアの構成をまとめて製作し、TITAN-VIII
をその構成に沿って組み上げ、ハードウェア間の配線を行う。そののちに、段差検知プログラムと歩行プログラムを作成して、段差乗り越え動作に挑む。
1.3 本論文の構成
第 2章では段差乗り越えを行うのに必要な TITAN-VIIIのロボットシステム構成について述べる。第 3章ではADDAコンバータの設計・製作について述べる。第 4章では電源系の設計・製作について述べる。第 5章では各ハードウェアの実装について述べる。第6章では段差検知プログラム及び歩行プログラムを作成し動作実験を行った結果を述べる。第 7章では本研究の成果について述べる。
2
第2章 ロボットシステム構成
本研究で用いるロボットは、以下のような構成である。あらかじめ与えられたプログラムに沿って、コントローラはDAコンバータを介してモータ
ドライバに指令を与え、その指令によってモータドライバが各関節のモータを制御する。また、各関節にはポテンショメータが接続されており、ADコンバータを介して関節の角度がコントローラに伝えられる。モータドライバはモータに流れる電流量や逆起電力をセンサやタコジェネを用いて関節の回転角速度を算出し、これも ADコンバータを介してコントローラに伝えられる。コントローラはこれらの値によって現在のロボットの状態を把握し、ロボットを制御する。本研究では東京工業大学で開発された「TITAN-VIII」を用い、脚機構やモータドライバは
TITAN-VIIIで用意されたものを用いる。また、ロボットの自律制御に必要なコントローラは筆者らが所属する研究グループで開発され長く使用され続けている「TMボード」を用いる。しかし、TITAN-VIIIは 12自由度もあるため、ADコンバータボードやDAコンバータボードは筆者らが所属する研究グループで用いられているものを使用しようとしても要求するチャンネル数を満たせない。そこで、筆者はTITAN-VIIIで必要となる性能を持つADコンバータ、DAコンバータボードを設計・製作することにした。また、電源系も同様に TITAN-VIIIで必要とする性能を満たせないので筆者が TITAN-VIII専用に設計・製作することにした。本章ではすでに用意されている TITAN-VIIIの脚機構とモータドライバ、及びTMボードの
紹介をする。また、第 3章以降で筆者が製作したハードウェアの紹介と動作実験の結果を合わせて行う。
2.1 脚機構
脚の駆動システムはDCモータ、平歯車による減速器、動力を伝えるワイヤとプーリによって構成される。[3]
脚機構の模式図を 2.1に示す。左側のリンクから第 1関節、第 2関節、第 3関節とし、それぞれの回転角度を θ1, θ2, θ3とする。第 1関節は図の縦方向を軸とし、第 2関節及び第 3関節は図面に垂直方向を軸としてそれぞれ回転するものとする。第 2関節と第 3関節の DCモータは本体に近いところに設置され、そこからワイヤで動力
を関節に伝える構造になっており、脚の重心が脚の根元に集中し脚先が軽くなって脚の制御がしやすくなるという工夫がなされている。また、第 2関節の回転した角度がそれを打ち消す方向に第 3関節に伝わることで第 3関節
3
の本体から見た姿勢は第 2関節の回転角度に依らないという工夫もなされている。この工夫により、運動方程式の計算が非常に楽になっている。
L1 L2
L3
L4
L1=45mmL2=145mmL3=200mmL4=43mm
θ θ1
2
θ
θ2
3
第1関節
第2関節
第3関節
図 2.1: 脚機構の模式図
TITAN-VIIIは 1脚につき 3自由度、合計 4脚 12自由度を持つ。また、関節 1個につきポテンショメータ 1個がとりつけられており、このポテンショメータに+10V と−10V を供給することによって抵抗による分圧の原理で関節の現在の回転角度を−10V ∼ +10V の電圧の値で知ることができる。
2.2 TITEC MOTOR DRIVER
モータドライバには TITAN-VIIIに付属の TITEC MOTOR DRIVERを用いる。この TITEC
MOTOR DRIVERは TITAN-VIIIと同様に東京工業大学広瀬研究室で開発された汎用DCモータ駆動回路である。[4]
外観を図 2.2、仕様を表 2.1に示す。
本駆動回路には電流制御モードと速度制御モードと位置制御モードの 3つの制御モードがあり、 −10V ∼ +10V の指令電圧値を与えることによってそれぞれ電流、モータ回転速度、関節角度を制御できる。[2]
これらのうち、本研究では指定した関節角度になるようモータを制御してくれる位置制御モードを用いてドニーを制御することにする。以下に 3つのモードの説明を示す。電流制御モードでは指令電圧値+10V を与えたときに最大電流値が流れ、それ以下では指
令電圧値に比例した電流が流れるようにモータドライバがモータへの供給電流値を変化させて制御する。最大電流値は可変抵抗の抵抗値を変えることで調整できる。
4
図 2.2: TITEC MOTOR DRIVER
表 2.1: TITEC MOTOR DRIVERの仕様
項目 仕様定格電圧 30V
定格電流 3.8V
最大出力電流 ±45V
最大出力電流(連続) 16.7A
最大出力(連続) 750W
主電源 DC6V ∼ 48V
指令入力電圧 −10V ∼ +10V
外形寸法 (LWH) 100mm ∗ 90mm ∗ 35mm
重量 130g
速度制御モードではモータドライバによる電流の回転速度のモニタ値と指令電圧値との電位差が 0に等しくなるようにモータドライバがモータへの供給電流値を変化させて速度を制御する。位置制御モードではポテンショメータからの電圧値と指令電圧値を足して 0になるように
モータドライバがモータへの供給電流値を変化させてモータの回転角度を制御する。これらの制御モードはそれぞれディップスイッチの切り替えとポテンショメータの接続の有
無によって任意に切り替えることができる。出力としてはモータ駆動電圧、ポテンショメータ用の+10V 及び−10V、モニタしている
モータ回転速度を−10V ∼ +10V の範囲で変換した電圧値がある。入力としてはモータ駆動電圧、ポテンショメータ値、指令電圧値、制御部分の電源電圧と
して+15V,− 15V,+ 5V がある。本駆動回路のハードウェアはフィードバック制御部、パワーアンプ部と電子ガバナ回路部
5
位置制御アンプ
速度制御アンプ
電流制御アンプ
PWM信号発生部
PWM
DIR
Hブリッジ制御ロジック部
パワーMOS-FETドライブ回路部
Hブリッジ部
M
電子ガバナ回路
-10V
+10V
POS
位置フィードバックループ
速度フィードバックループ
電流フィードバックループ
+
-
REF
直流電流センサ
パワーアンプ部
フィードバック制御部
図 2.3: TITEC MOTOR DRIVERのブロック線図
の三つの機能ブロックに大別できる。本駆動回路では図 2.3の全体ブロック線図に示すように、速度ループが電流ループを、そし
て位置ループが速度と電流ループを包囲するようなフィードバック系を構成しており、各ゲインは可変抵抗によって調整できる。本回路にはモータ単体で速度制御を実現できる電子ガバナ方式を採用している。電子ガバ
ナ方式とは DCモータの電機子電流と印加電圧の計測情報から電子回路によって速度フィードバック情報を演算する制御方式であり、速度の安定度はタコジェネレータやエンコーダを用いた方法に比べると多少劣るものの、コスト的には大変有利である。
DCモータ駆動のためのパワーアンプ部の基本的な制御方式として、供給電圧をアナログ的に可変する印加電圧制御方式と、デジタル的にモータに電圧を供給し、そのデューティ比を可変する PWM制御方式がある。前者に比べて構造は複雑であるが効率や放熱問題で有利である後者、PWM制御方式が本回路では用いられている。
2.3 コントローラ
コントローラには筆者が所属する研究グループで広く研究に用いられる車輪型自律移動ロボット「山彦」において標準搭載されている「TMボード」を用いる。この山彦では機能分散アーキテクチャが用いられており、TMは超音波センサやカメラモジュールなどそれぞれ異なる機能を持った CPUボードを統括制御するという役割を持つ。[5]
6
この TMにつなげる機能モジュール用に外部信号入出力インターフェースとして,接触センサなど簡単なモジュールのための 8ビットのパラレルポート、TMの機能を拡張するための 16
ビットの 2階インターフェース、TMとは異なる機能を持つボードを使う 16ビットのY-BUS
インターフェースの 3つが用意されている。2階インターフェースがTMの機能を拡張するために備わっているのに対して、Y-BUSインターフェースは新たな機能を持ったハードウェアを制御するボードを用いてロボットの機能を拡張するために備わっている。本研究では新たなハードウェアを必要とせず、TMの機能を拡張するだけなのでこの 2階インターフェースにADDAコンバータボードをつなげて開発する。また、この TMを収納するためにこれも本研究室で広く用いられている「山彦ラック」を用
いる。山彦ラックとは、TMをはじめとする山彦用に開発された機能モジュールボードを挿すことができるスロットを 6スロット装備しており、それらのボードをY-BUSインターフェースでつなぐハブの役割を果たす。また、ラックに「山彦電源ボード」をつなぐことで各ボードに+5V, +12V,−12V を Y-BUSインターフェースを通して供給することができる。
7
第3章 ADDAコンバータボードの設計・製作
3.1 ADDAコンバータボードの構成
山彦巌では行動環境を 2次元平面に制限したため ADコンバータ機能を省いてある。しかし、ドニーでは段差乗り越えを前提としているため脚の現在角度を知る必要がある。よってADコンバータ機能が必須である。そこで、巌のコンバータボードを流用できないため、ドニー専用の ADDAコンバータボードを設計・製作する。
ADDAコンバータボードは TMの 2階インターフェースに連結させ、コンバータボードで必要となる+5V, +12V,−12V は TM2階インターフェースから供給する。
表 3.1: 必要なADDA変換
用途 ADorDA 接続先 入出力電圧範囲 チャンネル数指令電圧 DA TITEC MOTOR DRIVER −10V~+ 10V 3ch*4脚速度モニタ値 AD TITEC MOTOR DRIVER −10V~+ 10V 3ch*4脚
ポテンショメータ値 AD ポテンショメータ −10V~+ 10V 3ch*4脚
ADコンバータ機能として必要とされるチャンネル数は、ポテンショメータから電圧に変換された各関節の角度が 12ch、モータドライバから電圧に変換された各モータの回転速度が12ch,合計 24chである。また、DAコンバータ機能として必要とされるチャンネル数は、TM
から各モータへの指令値としての 12chである。そこで、ADコンバータ部分には 12bit6chADコンバータMAX196を 1脚につき 1個で計 4
個用いた。MAX196の入力範囲は−10V~+ 10V で必要とする範囲に合致する。DAコンバータ部分には 8bit4chDAコンバータMAX506を 1脚につき 1個で計 4個使用し
た。しかしMAX506の出力範囲は −5V~ + 5V と必要とする範囲の半分なのでオペアンプTL084をそれぞれ 1個ずつ用いて出力範囲を−10V~+ 10V に増幅した。このオペアンプは出力のバッファの役割も果たし、出力先のインピーダンスが低かった場合にコンバータの損傷を防ぐことができる。コンバータチップと TM2階コネクタとの間には 3ステートバッファ74HC245を用いた。こ
のバッファを用いることでTMからの信号とADコンバータからの信号が衝突することを防ぐ。コンバータチップのアドレスデコーダとして 74HC138を用いた。このアドレスデコーダで
どのコンバータチップを使用するのかを選択する。
8
TMADDA CONVERTER BOARD
motor
potention meter
potention meter
+10V
-10V
+M
-M
velocity monitor
motion command(position command)
velocity monitor
motion command(position command)
GND
GND
TITEC MOTOR DRIVER
図 3.1: TITEC MOTOR DRIVERと ADDAコンバータボードの接続
3.2 6chAD3chDAコンバータ試作ボードの製作
表 3.2: 6chAD3chDAコンバータで使用するチップ
型式 用途 数量 備考MAX196 ADC 1 12bit6ch
MAX506 DAC 1 8bit4ch
74HC245 3ステートバッファ 2 8bit
74HC138 アドレスデコーダ 1 8ch
74HC32 ORゲート 2
TL084 オペアンプ 1
まず、チャンネル数を 1脚分だけした 6chDA3chAD試作コンバータボードを設計・製作した。ADコンバータ、DAコンバータの数も機能の縮小に合わせて 1個ずつ使用した。当初に製作した旧バージョンのADDAコンバータボードでは動作実験を行うとモニタ出力
に文字化けが発生し、それでも続けているとプログラム自体がストップしてしまった。これはバッファとして用いている 74HC245のゲートの開け閉めのタイミングの問題だと推測される。
TMは 2階インターフェースに 16bitのアドレスバスと 16bitのデータバスを持っており、TM
9
図 3.2: 6chAD3chDAconverterboard
T1 T2 T3 T4 T5 T6 T1 T2 T3 T4 T5 T6
2FIO
LA
MemWr
MemRd
MemS0
(TM設計当初の予定)
2FIO+S0
2FIO
この部分が次のサイクルにまでかかっているので早くHIになるように工夫した。
図 3.3: ADDAコンバータアクセスタイミング
10
はアドレスバスからの信号でそれにつながるチップのアドレスを選択し、そのチップに対してデータバスでデータの読み書きを行う。このアドレス選択時にアドレスデコーダの HC138
によってその先にある ADコンバータチップや DAコンバータチップが選択され、バッファのHC245を介してコンバータチップとデータバスとのデータの読み書きが行われる。旧バージョンではこの受け渡しのタイミングを TMが 2階インターフェースにアクセスしたときにLOになる信号を用いていた。この信号が LOの間バッファを通してデータの読み書きを行うことができ、HIの間はバッファのゲートを閉めて読み書きをできないようになるはずだった。タイミングチャートの図 3.3を用いればバッファのゲートが開くのが 2FIO信号が LOにな
るときで、さらにデータの読み書きが行われるのはそれぞれ読みがMemRd信号の、書きがMemWr信号の立ち上がるタイミングである。しかし、2FIO信号はそのタイミングの後も LO
のままであり、バッファのゲートが開いていることになる。メモリアクセスタイミングは T1
からT6までを 1サイクルとしているのであるが、次のサイクルにまで信号が及んでいることがわかる。そこで、ゲートを長く開いているためによけいなデータがデータバスに入り込み、TMがそ
れに影響されて文字化けを起こしているのであろうと推測される。また、読み書きの方向が切り替わるときにおかしな信号がデータバスに入り込んでいるという推測もできる。そこで、新バージョンではこのバッファのゲートが開いている時間を短くするため 2FIO信
号と、汎用のストローブ信号として用意されているMemS0信号のANDをとった信号を用いることにした。このことによってこの 6chAD3chDAコンバータボードは正常に動作するようになった。
OPAMP DA CONVERTER AD CONVERTER
BUFFER
TM 2F CONNECTOR
図 3.4: 動作実験の接続
DA変換して出力した電圧を直接ADコンバータに入力して電圧値を計測した動作実験結果のグラフを図 3.5に示す。グラフでは全てのチャンネルが重なってほぼ一直線を示しており、大きなノイズもなくAD
11
-10
-8
-6
-4
-2
0
2
4
6
8
10
-10 -8 -6 -4 -2 0 2 4 6 8 10-10
-8
-6
-4
-2
0
2
4
6
8
10
DA変換値[V]
AD変換値[V]
ch1ch2ch3
図 3.5: 6chAD3chDAコンバータボードの動作チェック
及びDA変換が行われていることがわかる。また、DA出力と AD入力の誤差をあらわしたグラフを図 3.6に示す。こちらのグラフでは、±10V 付近で誤差が大きくなっているものの、それでも平均 2%であ
り、十分許容範囲内の誤差といえる。チャンネルごとに誤差が独立しているのは、OPアンプでの増幅に用いた抵抗素子の±5%の精度に依るものと推測される。
12
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
-10 -8 -6 -4 -2 0 2 4 6 8 10-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
DA出力値[V]
(DA出力値-AD入力値)[V]
1ch2ch3ch
(DA出力値-AD入力値)[V]
図 3.6: 6chAD3chDAコンバータボードの誤差
3.3 24chAD12chDAコンバータボードの製作
続いて、その縮小版ADDAコンバータボードの設計をそのまま拡張して 4脚分のチャンネル数のある 24chAD12chDAコンバータボードを設計・製作した。
表 3.3: 24chAD12chDAコンバータで使用するチップ
型式 用途 数量 備考MAX196 ADC 4 12bit6ch
MAX506 DAC 4 8bit4ch
74HC245 3ステートバッファ 2 8bit
74HC138 アドレスデコーダ 1 8ch
74HC32 ORゲート 3
TL084 オペアンプ 1
しかし、動作チェックを行ったところ、AD及び DA変換共に動作せず、縮小版 ADDAコンバータボードをそのまま拡張するだけでは動作しないことがわかった。必要な電圧が出ているかを調べたところ、DAコンバータのVss端子で使うために三端子レギュレータで発生させているはずの-5Vの値が-0.3Vしか出力していなかった。この-5Vは山彦電源ボードで 12V
バッテリー電源からDC-DC変換器で生成する-12Vを用いているが、この-12Vの値も-3Vしか出力していなかった。また、GNDと+5Vとの間を結ぶ電解コンデンサ 8か所全てとDAコ
13
図 3.7: 24chAD12chDAコンバータボード
ンバータ 4か所全てがかなり発熱していた。DAコンバータを 4つから 1つ減らして 3つにしてみたところこの状態がおさまったのでこれは三端子レギュレータの出力電流が足りなくなったからではないかと推測される。そこで、DAコンバータを±5V のバイポーラで使用するのをやめ、0 ∼ 5V のユニポーラで出力し、OPアンプで ±10V の出力を得ることにした。この変更で電流要領の小さい三端子レギュレータを使わず、電流容量の大きな−12V 電源で出力を駆動することになり、正常に動作するようになった。
DA変換して出力した電圧を直接ADコンバータに入力して電圧値を計測した動作実験結果のグラフを 3.8に示す。グラフでは全てのチャンネルが重なってほぼ一直線を示しており、大きなノイズもなくAD
及びDA変換が行われていることがわかる。また、DA出力と AD入力の誤差をあらわしたグラフを図 3.9に示す。こちらのグラフでは、±10V 付近で誤差が大きくなっているものの、それでも平均 2%であ
り、十分許容範囲内の誤差といえる。チャンネルごとに誤差が独立しているのは、OPアンプでの増幅に用いた抵抗素子の±5%の精度に依るものと推測される。
14
-10
-8
-6
-4
-2
0
2
4
6
8
10
-10 -8 -6 -4 -2 0 2 4 6 8 10DA変換値[V]
AD変換値[V]
ch1ch2ch3ch4ch5ch6ch7ch8ch9ch10ch11ch12
図 3.8: 24chAD12chDAコンバータボードの動作チェック
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
-10 -8 -6 -4 -2 0 2 4 6 8 10
(DA変換値-AD変換値)[V]
DA変換値[V]
1ch2ch3ch4ch5ch6ch7ch8ch9ch10ch11ch12ch
図 3.9: 24chAD12chDAコンバータボードの誤差
15
第4章 電源系の設計・製作
4.1 電源供給・配電ボード
山彦巌では電源系統が制御系もモータ駆動系も 1つの+24V バッテリ出力を共有していたが、モータに大きなトルクを発生させることが必要になったときにモータ駆動系で大きな電力を消費してしまい、モータドライバやプロセッサなどの制御系に供給する電圧が下がってシステムがダウンしてしまうことがあった。そこでドニーのロボットシステムではモータ駆動用電源と制御系回路駆動用電源で 2系統の独立した電源を持たせることにした。そのためドニー専用に電源供給・配電ボードを設計し製作した。モータ駆動用として 12個のモータにそれぞれ 20.4Vを供給する。これはバッテリからの電
圧を TITEC MOTOR DRIVERのモータ駆動用電源端子に直接つなぐものとする。制御系駆動用として +5V、+ 12V,− 12V,+ 15V、− 15V をモータドライバ、TMおよび
ADDAコンバータボードへ供給する。+12V から+5V、+12V,−12V への変圧については山彦に標準搭載されている「山彦電源ボード」を用いる。この山彦電源ボードには+12Vを+5V
に降圧するDCDCコンバータと+12Vを+12V及び-12Vに変圧するDCDCコンバータが使われている。残りの+12Vから+15V、-15Vへの変圧については+12Vを+15V及び-15Vに変圧するDCDCコンバータを、筆者が設計・製作した電源供給ボードに搭載して供給する。
表 4.1: 使用するDCDCコンバータ
型式 入力 出力 数量 備考SPL05-10R 12V 5V 1 山彦 12V電源ボードZW31212 12V +12V -12V 1 山彦 12V電源ボード
BPU12-15D1.2A 12V +15V -15V 1 新規製作電源ボード
4.2 バッテリ
制御系回路駆動用電源には 12Vバッテリを 1個用いて 12Vを供給する。本研究室で主に使われている YUASA製の 12V7Ahバッテリを使用することにした。モータ駆動用電源には 6.8Vバッテリを 3個用いて 20.4Vを供給する。自律移動時に大きく
電力を消費することを考え、体積の割りに蓄電容量の大きい 10Ahのバッテリを使用することにした。
16
12V battery
+12V
GND
+5V
GND
+12V
GND
+12V
GND
+12VCOM-12V
+15VCOM-15V
+12V
GND+5V
GND
+15V
-15V
+5V GND +12V-12V
+5VGND
TMADDA CONVERTER BOARD
POWER SUPPLY BOARD
6.8Vbattery
6.8Vbattery
6.8Vbattery
motor
+20.4VGND
+M
-M
TITECMOTORDRIVER
図 4.1: 電源システムの構成
表 4.2: バッテリの仕様
用途 型式 電圧 容量 数量モータ駆動用 YNZ10-6.8 6.8V 10Ah 3
制御系回路駆動用 NP7-12 12V 7Ah 1
17
第5章 ハードウェアの実装
ドニーの自律制御に必要なハードウェアを全て揃えたのちにハードウェアをドニー本体に実装した。脚型ロボットに限らず多くのロボットにとって、安定した移動を行うには重心はロボットの
中心にあるのが望ましい。そこで、できうる限りロボットの中心に各ハードウェアを集中して配置することを心がけた。ドニー本体の中央に山彦ラックを、山彦ラックの真上に TITEC
MOTOR DRIVERを、TITEC MOTOR DRIVERの真上に電源供給ボードを設置した。また、山彦ラックの真下の前脚と後脚に挟まれた位置にバッテリを設置することにした。ケーブルを通る信号を考えたとき、ケーブルが長く、数も多くなるとそれだけノイズが入り
やすくなる。そこで、モータとモータドライバを結ぶケーブルやポテンショメータと TITEC
MOTOR DRIVERとADDAコンバータを結ぶケーブルは外部からのノイズを防ぐためにシールド線を用いた。モータとモータドライバを接続してしまうと、モータに電源を供給していないときに関節
角度を変えようと思っても角度を変えようとする力を打ち消す方向にモータの逆起電力が働いてしまう。そのため、初期位置を電源投入前に手動で設定するのはとても大きなに労力を要する。そこで、モータとモータドライバをつなぐケーブルの途中にトグルスイッチを配置して自由に逆起電力を遮断できるようにした。以上のことに注意して各ハードウェアを実装し、配線を行った。組み上がったドニーの外
観を図 5.1に示す。
18
図 5.1: 山彦ドニーの外観
19
第6章 動作実験
6.1 制御の仕組み
図 6.1で、第 1関節、第 2関節、第 3関節の関節角度 θ1, θ2, θ3に対して運動方程式を解くと脚の根元から見た脚先の座標 (X, Y, Z)は次のように求められる。
X = cos θ1
(l1 + l2 cos θ2 + l3 cos
(512π − θ3
))
Y = sin θ1
(l1 + l2 cos θ2 + l3 cos
(512π − θ3
))
Z = l2 sin θ2 + l3 sin(
512π − θ3
)+ l4
この逆運動方程式を解くと、、脚の根元から見た脚先の目標座標 (X, Y, Z)を TMに与えた場合に対し、必要な関節角度 θ1, θ2, θ3 は次のように算出される。
θ1 = arctan YX
θ2 = arctan(
Z−43X
cos θ1−l1
)∓ arccos
l22−l23+
(X
cos θ1−l1
)2
+(Z−43)2
2l2
√(X
cos θ1−l1
)2
+(Z−43)2
θ3 = 512π − θ2 ∓
π − arccos
l22+l23−
(X
cos θ1−l1
)2
−(Z−43)2
2l2l3
ここで、左前脚の第 1関節、第 2関節、第 3関節の目標関節角度 θ1, θ2, θ3において、指令電圧値 V1, V2, V3は各関節のパラメータに応じて以下のようにして変換される。
V1 = 19θ1
V2 = 3.765 θ2
V3 = 17.5θ3
以上の演算によって、脚の根元から見た脚先の目標座標 (X, Y, Z)が与えられたとき、目標座標はは指令電圧値V1, V2, V3に変換され、TMからADDAコンバータボードにつながる 16bit
データバスを通って指令を与える脚及び関節と指令電圧値がデジタル信号で送られる。次にアドレスデコーダで指令電圧を出力する脚につながるADコンバータが選ばれ、DAコ
ンバータでデジタル信号がアナログ電圧値にDA変換される。DA変換されて出力された指令電圧は TITEC MOTOR DRIVERに送られ、TITEC MOTOR DRIVERは指令電圧値に合わせてモータ供給電圧を制御する。現在の脚の状態を知るときには、以下のようにして行う。まず、ポテンショメータで TITEC MOTOR DRIVERから供給されている±10V を抵抗での
分圧の原理から現在の関節角度が電圧の形で ADDAコンバータに出力される。
20
L1 L2
L3
L4
L1=45mmL2=145mmL3=200mmL4=43mm
Y
Z
X
-7.2V
65°
90°
+10V65°
65°
-3.7V
+3.7V
0V
0V
0V
75°
50°
-8.6V
+10V
第1関節θ(上部から見る)
第2関節θ(側部から見る)
第3関節θ(側部から見る)
第2関節
第1関節
第3関節
θ1 2 3θ θ
2θ
1
2
3
図 6.1: 指令電圧とメカの移動方向
21
また、TITEC MOTOR DRIVERではモータの回転角速度が電圧の形でADDAコンバータに出力される。この回転角速度は TITEC MOTOR DRIVER内の疑似タコジェネレータと直流電流センサを用いてモータの逆起電力と電流量からTITEC MOTOR DRIVERによって算出されるものである。次にその電圧をADコンバータで変換するために TMからADDAコンバータボードにつな
がる 16bitバスを通って関節角度を得る脚及び関節と変換命令がデジタル信号で送られる。次にアドレスデコーダで電圧を入力する脚につながるDAコンバータが選ばれ、ADコンバータでアナログ電圧値がデジタル信号にAD変換される。そして、その電圧値が ADDAコンバータボードから TMにつながる 16bitバスを通ってデジタル信号で TMに送られる。ポテンショメータから左前脚の第 1関節、第 2関節、第 3関節の電圧値 V!, V2, V3が得られ
たとき、関節角度 θ1, θ2, θ3は以下のようにして求められる。θ1 = 9V1
θ2 = 653.7V2
θ3 = 7.5V3
これらの関節角度から運動方程式によって脚先の座標が求められる。
6.2 段差検知
段差検知を行うには、前章までで述べたようなTITEC MOTOR DRIVERに用いられている速度センサやポテンショメータなどのすでに搭載されているセンサを用いる方法と、接触センサやレーザレンジセンサや超音波センサなどの外部センサを用いる方法の、大きく分けて2つの方法が考えられる。どちらもセンサを用いて段差や障害物を検知することに違いはないが、接触したのちの内
部状態変化を検知することによって接触を検知する前者よりは接触する前または接触時にすぐに検知できる後者の方が一般的にいって反応時間は速いといえる。しかしながら外部にセンサを取り付けるには更なるハードウェアの変更が必要になるので、
今回は新たなセンサを搭載する必要のない前者を用いることにした。筆者らの所属する研究グループでは山彦用として導電性ゴムを用いた山彦バンパセンサが
開発され、広く用いられている。のちにドニーに外界センサを搭載するときにはこのセンサを用いたいと思う。ドニーの内界センサには前章までで述べたように、ポテンショメータと疑似タコジェネレー
タによる速度センサの 2つがある。そこで、脚を振り下ろしたときに 2つのセンサの挙動を障害物があるときとないときにわ
けて計測してポテンショメータによる関節角度の値と速度センサの電圧値の変化を調べた。ドニーの電源系は本来はバッテリを用いて行動できるように設計してあるが、今回の実験
時には充電の手間を省くためモータの電源は安定化電源を用いた。各脚の制御は外部から行わず設計通りドニーに搭載した TMで行った。実験はドニーの本体底面を台に乗せて宙に浮かせた状態で行い、脚の初期位置は θ1 = 0
22
°,θ2 = 0°,θ3 = 15°(X, Y, Z) = (200, 0, 243)とした。このとき床面の高さを測ったところZ = 282(mm)であった。脚の動作は (200, 0, 243)の位置から (200, 0, 160)に振り上げ、(200, 0, 280)に下ろすことと
した。障害物は高さ 100mmの発砲スチロール製ブロックを用い、脚を振り上げたタイミングで脚
の下に滑り込ませた。何度か実験を行い、代表的な結果を図 6.2から図 6.7に示す。グラフは 100msごとに指令電
圧値と速度モニタによる電圧値とポテンショメータによる電圧値を測定したものである。指令電圧値が変化しているのは目標座標に到達したときに次の目標座標が設定され、それに対する目標角度値が算出されて出力されたことを示す。
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標関節角度[deg]ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[V]
電圧[V]角度[deg]
時間[×100ms]
図 6.2: 障害物なし(第 1関節)
23
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3
角速度モニタ電圧値[V]ポテンショメータによる関節角度[deg]
目標関節角度[deg]
角度[deg] 電圧[V]
時間[×100ms]
図 6.3: 障害物なし(第 2関節)
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標角度[deg]ポテンショメータによる角度[deg]
角速度モニタ電圧値[V]
電圧[V]角度[deg]
時間[×100ms]
図 6.4: 障害物なし(第 3関節)
24
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標関節角度[deg]
ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[V]
時間[×100ms]
角度[deg] 電圧[V]
図 6.5: 障害物あり(第 1関節)
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3
目標関節角度[deg]
ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[V]
角度[deg] 電圧[V]
時間[×100ms]
ここで障害物に接触この変化を検知する
図 6.6: 障害物あり(第 2関節)
25
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標関節角度[deg]ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[V]
電圧[V]角度[deg]
時間[×100ms]
図 6.7: 障害物あり(第 3関節)
障害物に接触したときにドニーは脚を振り下げるのをやめずに障害物に乗り上げ、本体を傾かせながらも目標位置に向けて脚先を動かし続けた。接触したときに一旦は速度が落ちるものの、モータが回らないことに対してモータに流れ
る電流量を増やしてトルクを上げる方向に制御が働き、速度が局所的に増加している。これらにより、脚が障害物に接触したときは第 2関節の速度モニタ値に変化が現れるもの
の、ポテンショメータ値には接触したことによる変化がほとんど見られないことがわかった。そこで、第 2関節の速度モニタ値を監視し、速度がいきなり大きく変化したときに障害物
と認識して動作をストップさせるプログラムを作成し、先ほどと同じ条件で実行した。そのときの実験の代表的な結果を図 6.8から図 6.10に示す。実験環境は先ほどと同じように、ドニーの本体底面を台に乗せて宙に浮かせた状態で行っ
た。θ1 =0°、θ2 =0°、θ3 =15°(X,Y,Z)=(200,0,243)にあわせた。床面の高さはZ = 282(mm)のままで行った。脚の動作は先ほどと同様に (200,0,243)の位置から (200,0,160)に振り上げ、(200,0,280)に下ろすこととした。障害物は高さ 100mmの発砲スチロール製ブロックを用い、脚を振り上げたタイミングで障害物を脚の下に滑り込ませた。この実験を行った結果、ドニーは障害物を 10mm~20mm踏み越えたところで障害物を検知
し、動作をストップした。これにより、モータドライバの速度信号をモニタするだけで段差、障害物を検知できることがわかった。
26
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標関節角度[deg]ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[V]
電圧[V]角度[deg]
時間[×100ms]
図 6.8: 段差検知動作(第 1関節)
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標関節角度[deg]ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[V]
電圧[V]角度[deg]
時間[×100ms]
図 6.9: 段差検知動作(第 2関節)
27
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
0 10 20 30 40 50 60-3
-2
-1
0
1
2
3目標関節角度[deg]ポテンショメータによる関節角度[deg]
角速度モニタ電圧値[deg]
角度[deg] 電圧[V]
時間[×100ms]
図 6.10: 段差検知動作(第 3関節)
6.3 歩行
歩行ロボットが設定した経路に沿って歩行を行うには、始めに、目標とする軌跡とロボット中心の位置との関係からロボット中心の動作を決定する。次に、決定したロボット中心の動作を実現する脚先の目標軌道を算出し、脚先が目標軌道に沿って動作するように脚先の制御を行うとよい。しかし、脚には動作範囲があるために途中で踏み変え動作などを行わないと前進を継続す
ることができないので、あるタイミングでいずれかの脚を遊脚化する必要がある。本研究では、まず前進の歩行制御だけを考えることにした。この場合、中心の動作はロボッ
トの前方にひいた直線上を通る。また、踏み変え動作のタイミングや遊脚の選択、脚先の目標軌道は以下の歩行シーケンスに基づいて算出される。[1]
1. 4脚支持による胴体の推進動作2. 右後脚振り上げ及び残りの 3脚支持による胴体の推進動作3. 右後脚接地4. 4脚支持による胴体の推進動作5. 右前脚振り上げ及び残りの 3脚支持による胴体の推進動作6. 右前脚接地7. 4脚支持による胴体の推進動作8. 左後脚振り上げ及び残りの 3脚支持による胴体の推進動作9. 左後脚接地
28
10. 4脚支持による胴体の推進動作11. 左前脚振り上げ及び残りの 3脚支持による胴体の推進動作12. 左前脚接地13. 4脚支持による胴体の推進動作(1.に戻る)
ステップ動作の略図を図 6.11に示す。
重心 接地した脚先の位置 右向きが進行方向振り上げた脚先の位置
図 6.11: ステップ動作
これらに基づいて歩行プログラムを作成し、歩行実験を行った。この実験においても段差検知実験と同様にモータ駆動には安定化電源を用いた。結果、66秒間で 24歩約 1m前進し、考案したステップ動作で歩行できることがわかった。
29
第7章 まとめ
本研究では、TITAN-VIIIの機能を知るためモータドライバである TITEC MOTOR DRIVER
の基礎実験を行った。TITAN-VIIIを製作するに当たって新たに TITAN-VIIIの要求する性能にあったADDAコン
バータ、電源供給ボードを設計・製作した。また、ADDAコンバータ単体による動作チェックを行った。組上がったハードウェアに対し、段差検知プログラムを作成し実験を行って、このハード
ウェアにおいて段差を検知することが可能であることを確かめた。また、歩行プログラムを作成し実験を行って、このハードウェアにおいて平面環境での歩行を行うことが可能であることを確かめた。この段差検知プログラムと歩行プログラムを融合させることにより、段差乗り越えを行う
ことが可能になるはずである。よって、平面環境及び段差のある環境を歩行することができる最低限のハードウェア環境
が整ったといえる。段差検知プログラムと歩行プログラムの融合は今後の課題としたいと思う。
30
謝辞
本研究に対して昼夜及び深夜早朝を問わず適切かつ熱心なご指導と多くの貴重な意見をいただきました工学博士油田信一筑波大学機能工学系教授に深い感謝の意を表します。また、本論文をまとめるにあたっても、適切なご助言をいただきました。工学博士坪内孝司筑波大学機能工学系助教授、工学博士大矢晃久筑波大学電子情報工学
系助教授、工学博士前山祥一筑波大学機能工学系助手には、本研究について多くの適切なご助言をいただきました。拙い筆者のプログラミング能力を補っていただきました羽田さん、吉田さん、上村君、多
くの材料・工具集めに手伝って頂きました鈴川君、ハードウェアの製作を進めるにあたって技術的な助けを頂きました冨沢君に厚くお礼を申し上げます。また、同じ研究グループのみなさんほんとうにありがとうございました。最後に、精神的経済的両面にわたり長く支援していただいた家族に感謝いたします。
31
参考文献
[1] 足立弘典“4足歩行ロボットの歩容制御に関する研究” 筑波大学学位論文 1999年
[2] 東京工業大学工学部機械宇宙学科広瀬研究室“TITEC ROBOT DIVER説明書” 1996年
[3] 東京精機株式会社“仕様書 4脚ロボット TITAN-VIII”
[4] 福島 E.文彦妻木俊道広瀬茂男 “PWM制御方式 DCサーボモータ駆動回路の開発” 第 13
回日本ロボット学会学術講演会予稿集 1992年
[5] Takeshi Miyai,Shin’ichi Yuta “Design and Implementation of Distributed Controller and its
Operating System for Autonomous Mobile Robot Platform” International Conference on Field
and Service Robotics(FSR’97) 1997年
[6] 山田英雄 “4足歩行ロボットの屋内ナビゲーションに関する研究” 筑波大学大学院博士課程工学研究科修士論文 2000年
32