• 検索結果がありません。

mt_4.dvi

N/A
N/A
Protected

Academic year: 2021

シェア "mt_4.dvi"

Copied!
54
0
0

読み込み中.... (全文を見る)

全文

(1)

筑波大学大学院博士課程

システム情報工学研究科修士論文

小型移動ロボット用汎用伸縮アームの開発

橋本 達矢

(知能機能システム専攻)

指導教官 坪内 孝司

2006

1

(2)

概要 小型移動ロボットで接触を伴うタスクが可能になれば、その使用の幅は大きく広がる。本 研究では、小型移動ロボットで壁に設置されたスイッチや引き出しを操作するためのアーム の開発を行った。また、開発したアームを用いて対象物の操作を実現した。対象物は、以下 のものとした。 エレベータのスイッチ 電灯のスイッチ メールボックスの引き出し まず、使用する小型移動ロボットとして前後進と旋回の二自由度を有する台車を選択し、こ の台車に搭載可能なアームの仕様を検討した。小型・軽量で、かつ広い可動範囲を有するも のとして、伸縮機構により伸び縮みを行うアームを開発することとし、定めた仕様に基づい てアームの設計・製作を行った。 設定した対象物の操作には、高精度のアーム位置制御が要求される。各関節において重力 補償つきPI制御を行うとともに、たわみによって手先位置が目標値からずれるのを防ぐため、 たわみ補償を行った。また、状況に応じた動作ができるよう、いくつかの制御モードを用意 した。 最後に、設定したタスクを実現するための実装を行った。対象物付近まで移動するため、測 域センサを用いて周辺環境を認識した。また、アーム先端に取り付けたカメラにより対象物 を認識し、位置の修正を行った。上記の要素を統合し、対象物の操作を行うロボットシステ ムを構築した。

(3)

目 次

1章 はじめに 1 1.1 研究の背景と目的 . . . . 1 1.2 本論文の構成 . . . . 1 第2章 実現したいタスク 2 2.1 「押す」 . . . . 2 2.1.1 エレベータのスイッチ . . . . 2 2.1.2 電灯のスイッチ . . . . 2 2.2 「引く」 . . . . 2 第3章 アームの仕様 5 3.1 使用するロボット . . . . 5 3.2 ロボットへの搭載 . . . . 5 3.3 アームの可動範囲 . . . . 5 3.4 アームの自由度 . . . . 5 3.5 手先にかかる最大荷重 . . . . 6 3.6 手先の精度 . . . . 6 3.7 アームの構造 . . . . 6 第4章 アームの設計と製作 8 4.1 設計指針 . . . . 8 4.2 伸縮機構 . . . . 8 4.3 スライドレール . . . . 9 4.4 ベルト、プーリ . . . . 10 4.5 各関節の駆動に必要なトルクの計算 . . . . 10 4.6 モータ、減速器の選定 . . . . 12 4.7 エンドエフェクタ . . . . 12 4.8 製作したアームの仕様 . . . . 12 4.9 開発したアームの評価・検討. . . . 14 第5章 アームの制御 16 5.1 アームのコントローラ . . . . 16 5.2 アームの座標系 . . . . 16

(4)

5.3 キネマティクス . . . . 18 5.4 インバースキネマティクス . . . . 18 5.5 各関節角度のPI制御 . . . . 18 5.6 重力補償 . . . . 19 5.7 たわみ補償 . . . . 22 5.7.1 アームのたわみ . . . . 22 5.7.2 たわみの実測値への関数フィッティング. . . . 24 5.7.3 たわみ関数を用いた目標値の再設定 . . . . 25 5.8 負荷の認識 . . . . 26 5.9 アーム駆動モードの設定 . . . . 29 5.10 アーム駆動の流れ . . . . 29 5.11 アーム制御の評価・検討 . . . . 29 第6章 対象操作 33 6.1 動作計画 . . . . 33 6.1.1 スイッチ操作 . . . . 33 6.1.2 引き出し操作 . . . . 33 6.2 システム構成 . . . . 34 6.3 ナビゲーションにおける環境認識 . . . . 34 6.3.1 測域センサURG . . . . 34 6.3.2 最小二乗法による直線近似 . . . . 36 6.4 対象物の認識 . . . . 37 6.4.1 USBカメラ . . . . 37 6.4.2 カメラキャリブレーション . . . . 38 6.4.3 画像内における対象検出 . . . . 38 6.4.4 位置導出方法 . . . . 39 6.5 対象操作実験 . . . . 39 6.5.1 スイッチ操作実験 . . . . 39 6.5.2 引き出し操作実験 . . . . 43 6.6 対象操作の評価・検討 . . . . 43 第7章 おわりに 45 謝辞 46 参考文献 47

(5)

図 目 次

2.1 エレベータのスイッチ位置(左:筑波大学第三学群L棟、右:総合研究棟B) 3 2.2 電灯のスイッチ . . . . 3 2.3 メールボックスの引き出し . . . . 4 3.1 アームの外観図 . . . . 7 4.1 伸縮機構の概要 . . . . 9 4.2 スライドレール(左からRSR 9N、RSR 12N、RSR 15N) . . . . 10 4.3 トルク計算のモデル . . . . 11 4.4 M-1型山彦に搭載した伸縮アーム . . . . 13 4.5 振り下ろした伸縮アーム . . . . 14 4.6 上方へ伸ばした伸縮アーム . . . . 15 5.1 アームのコントローラ . . . . 17 5.2 ロボットの座標系 . . . . 17 5.3 各関節におけるPI制御結果(上:第一関節、中:伸縮機構、下:第二関節) . 20 5.4 PI制御に重力補償を加えた第一関節と伸縮部の制御ブロック図 . . . . 22 5.5 PI制御のみと重力補償つきPI制御との比較(上から、アームの長さ、第一関節 角度、PWM比の変化) . . . . 23 5.6 アームのたわみの実測値と、フィッティングした関数 . . . . 25 5.7 たわみ補償の流れ . . . . 27 5.8 たわみ補償なし(上)とたわみ補償あり(下)の場合の手先位置比較 . . . . 28 5.9 負荷なし(上)と負荷あり(下)の場合の負荷値. . . . 30 5.10 アーム駆動の流れ . . . . 31 6.1 スイッチ操作の流れ . . . . 33 6.2 引き出し操作の流れ . . . . 35 6.3 測域センサURG . . . . 36 6.4 USBカメラQV-700N . . . . 38 6.5 テンプレート画像(上)とテンプレートマッチングを行った画像(下) . . . . . 39 6.6 対象位置導出のモデル . . . . 40 6.7 エレベータによるフロア移動実験の様子 . . . . 41 6.8 走行中にURGで得られたデータ . . . . 42

(6)
(7)

1

章 はじめに

1.1

研究の背景と目的

近年、ロボットはその活躍の場を様々な環境に広げつつある。例えば、家庭にはエンター テインメント性やセキュリティ機能などを備えたホームロボットが入ってきている[1][2][3]。 家庭のように比較的狭い空間での動作には、小型移動ロボットが適しており、今後その需要 は高まると考えられる。 現在、ホームロボットの中には、家庭内の画像を携帯電話に送信したり、家電をリモコン 操作したりする機能を備えたものがある。このように小型の移動ロボットでは、通信技術を 用いて人間の役に立つものが多く見られるが、対象への物理的接触を伴うタスクが可能なも のは少ない。もし小型移動ロボットに対象への物理的接触を伴うタスクが可能になれば、そ の使用の幅は大きく広がる。 これまで、移動マニピュレータにより物体操作を行う研究がされてきた[4][5][6]。移動台 車にマニピュレータを搭載することで、広範囲の活動が可能となり、様々な場面での活躍が 期待される。物体把持には、多自由度マニピュレータが多く用いられているが、重量が大き いため、小型の移動ロボットで実現したものは少ない。一方、押す、引くという動作は、ア プローチの方向が限られたものが多く、少ない自由度で実現可能である。また、動作範囲や 耐荷重をある程度制限することにより、小型の移動体でも搭載できるコンパクトなメカニズ ムにすることができる。よって本研究では、小型移動ロボットで押す、引くなどの動作を実 現するための汎用アームを開発し、このアームを用いたタスク実現を目標とする。

1.2

本論文の構成

本論文は7章で構成されている。本章では研究の背景と目的について述べた。続く2章で は、実現したいタスクをあげる。3章では、2章で述べたタスクを実現するためのアームの仕 様について検討する。4章では、仕様を満たすアームの設計と製作について述べる。5章では、 開発したアームの制御系について説明する。6章では、開発したアームを用いて設定したタ スクを実現するための手法について述べ、実験の評価を行う。7章では、本研究の成果をまと める。

(8)

2

章 実現したいタスク

2.1

「押す」

2.1.1

エレベータのスイッチ

図2.1にエレベータ内の様子を示す。エレベータを用いて、自律的にフロア移動を実現した 例がある[7]。階段昇降ができない一般の車輪型移動ロボットにとって、人の手を借りること なくエレベータを使用し、フロア移動が可能になることは、その活動範囲を大きく広げる点 で非常に有用である。この例では、多自由度マニピュレータを用いることでエレベータのス イッチ操作を実現している。もしコンパクトなアームでエレベータのスイッチ操作ができれ ば、小型の移動ロボットや荷物運搬ロボットにもフロア移動が可能となる。

2.1.2

電灯のスイッチ

図2.2に電灯のスイッチを示す。巡回ロボットによる消灯や、ベッドに寝ている人の指示に より部屋の電灯を消すことができると便利である。電灯のスイッチは、エレベータのスイッ チに比べて小さく、操作の実現は容易ではない。よって、この対象物を操作することができ れば、アームの位置制御や対象認識の正確さを示すことができる。

2.2

「引く」

図2.3にメールボックスを示す。ロボットに引き出しの操作ができれば、遠隔地からメール ボックス等の確認を行うことが可能になる。小型のロボットで引き出しの操作を行った例は 見られない。よって、引き出し操作が実現すれば、ロボットの新たな可能性を提示できる。ま た、スイッチ操作に比べ対象に多く接触するため、対象物やロボット自身を破損しない操作 方法の知見が得られる。 本研究では、引き出し操作において、取っ手に手先をかけ引っ張り出す動作を「抜き動作」、 引っ張り出された引き出しを元の状態にしまう動作を「差し動作」と呼ぶこととする。

(9)

147cm

137cm

[a]

[b]

図2.1:エレベータのスイッチ位置(左:筑波大学第三学群L棟、右:総合研究棟B)

130cm

15mm

20mm

図2.2:電灯のスイッチ

(10)

88cm

(11)

3

章 アームの仕様

3.1

使用するロボット

本研究では、小型の移動ロボットで押す、引くという動作を実現するためのメカニズムを 開発する。開発したメカニズムは、実際にロボットに搭載して評価実験を行う。このロボット には筆者の研究室で開発されたM-1タイプの山彦1を使用する。

3.2

ロボットへの搭載

山彦に搭載することを考え、汎用アームのシステム全体をコンパクトで軽量にしたい。そ のためには、手先やアームを軽量化し、モータのように重量のある部品は根元付近に配置す るなどの工夫が必要である。また、開発するメカニズムは、山彦の移動の妨げにならないた め、前後左右へ突出しないように設置する。設置位置はロボット上面とし、床から40cm程度 の高さとなる。

3.3

アームの可動範囲

アームの可動範囲を決めるため、操作対象がどのような位置に存在するかを調査した。ま ず、メールボックスの引き出し(図2.3)は床面から88cm以内の位置にあり、使用するロボッ トの近傍である。次に電灯のスイッチ(図2.2)は、ほぼ床面から130cmの高さに設置されて いる。エレベータのスイッチ(図2.1)は、複数のスイッチが縦に配置されており、その高さは 床面から110∼150cmの範囲にある。 以上より、本研究では床面から150cmの高さのものまでを操作可能なアームを開発するこ ととした。

3.4

アームの自由度

小型移動ロボットにマニピュレータを搭載する場合、ロボットの移動系の自由度を活かす ことで、システム全体をコンパクトにする手法が多く用いられている。本研究でも、台車の 移動系における自由度を使い、アームの自由度を減らすことでコンパクトなシステムを実現 1 1996年にメカトロシステムズ(株)によって設計製作された山彦。大きさは全長370mm、全幅322mm、全 高420mm。

(12)

する。 本研究で使用する台車はノンホロノミックな移動体であり、直接制御できるのは前後進と 旋回の2自由度のみである。一般に、三次元空間内の対象を操作する場合、ロボットには6自 由度が必要となるため、アームには4自由度を持たせることが考えられる。しかし、本研究 では押す・引くという比較的単純な動きを行うことから、床平面上以外の3自由度を持たせ ることとした。

3.5

手先にかかる最大荷重

対象を操作するため、アームの手先は対象に接触する。この時、手先には荷重がかかるた め、この荷重に耐えられるような仕様にする。 バネばかりを用いて、対象を操作するときにどれくらいの力が必要かを測定した。測定対 象は、エレベータのスイッチ、電灯のスイッチ、引き出しとした。測定結果を表3.1に示す。 引き出し操作では、中に入っているものの質量によって引くときに必要な力が変わってく る。しかし、対象としているメールボックスに重いものを入れることはないため、500gf程度 の力があれば操作可能である。よって、本研究では手先の最大荷重を500gfとして設定し、こ れを基に設計を行っていく。 表3.1:操作に必要な力  操作に必要な力  エレベータのスイッチ 300∼500gf 電灯のスイッチ 300∼400gf 引き出し 300gf∼

3.6

手先の精度

図2.2に示すように、電灯のスイッチは縦15mm×横20mmと非常に小さい。また、引き 出しの取っ手部分に手先を引っ掛けるためにも、手先には高い位置精度が必要となる。よっ て、これらを操作するためにアームの手先の誤差は5mm以下とする。

3.7

アームの構造

これまでに述べた仕様を満たす具体的なアームを検討した。先に述べたように、アームは 小型の移動ロボットに搭載できるようコンパクトでなければならない反面、非常に広い可動 範囲を求められる。この仕様を満たすものとしては多関節のマニピュレータ[8] [9][10][11]な どが考えられるが、本研究では、はしご車等で用いられているような伸縮するアームを開発 することとする。伸縮アームを使用する利点としては、以下のことが挙げられる。

(13)

End-effector Arm 図3.1:アームの外観図 使用しないときは収縮させることにより、コンパクトにすることができる。 関節が少ないため駆動用のモータが少なくて済み、低コスト・軽量化を計ることができ る。また、逆運動学による関節の角度算出が容易である。 以上の条件から考案したアームの外観を図3.1に示す。スイッチ操作や引き出しの取っ手へ 引っ掛けるためのエンドエフェクタをアーム先端に備える。アームには、伸縮による自由度 のほかに、ロボットへの固定部分に1つ、エンドエフェクタとの間に1つ、共にピッチ方向 への自由度を持たせることとした。

(14)

4

章 アームの設計と製作

4.1

設計指針

先にも述べたように、開発するアームは小型移動ロボットに搭載する。よって、耐荷重に 注意しつつ、より軽く小型の部品を使用したり、モータのように重量のある部品は根元付近 に配置するなどの工夫が必要不可欠である。でるだけ軽量でコンパクトなアームにすること を念頭に置いて設計を行っていく。

4.2

伸縮機構

伸縮機構の概要を図4.1に示す。アームは、収縮時40cm以下・伸長時110cm以上になるも のとし、40cm程度のリンク4段で構成する。この伸縮アームでは、1段目から2段目を押し 出す動力を利用して3段目、4段目を押し出す仕組みになっている。 アームを伸ばす際の詳細を以下に記述する。 1. 1段目に配置されたベルトをモータの動力で回転させると(図4.1中[a])、ベルトの一 部に固定されたスライダがレール上を移動する(図4.1中[b])。 2. 1段目のスライダ上に2段目のスライドレールを設置し、その両端に配置したプーリに ベルトを掛ける。この2段目のベルトの一部を1段目に固定することで、1段目のベル トを回して2段目のレールを押し出す際に、2段目のベルトを回転させることが出来る (図4.1中[c])。この回転を利用して、2段目のレール上のスライダを1段目同様に移動 させる(図4.1中[d])。 3. 以上の仕組みを繰り返すことで、3段目および4段目も2段目の動きに連動して伸縮 する。 この伸縮機構の利点は、根元付近に配置したモータひとつでアームの伸縮を行えるので、 アームを支える第一関節の耐荷重が小さくできることである。また、1段目から2段目が押し 出されるのに同期して3段目および4段目が押し出されていくので、アーム先端の位置計算 が容易である。1段目(長さL1)から2段目が押し出された量をnとすると、アームの全長l は以下の式で表される。 l= L1+ 3n (4.1)

(15)

(1) (2) (3)

motor

Belt-holder grasping Timing-belt on First stage

[a]

[b]

Belt-holder grasping Timing-belt on Second stage

[d] Belt-holder grasping

Timing-belt on Third stage Belt-holder graspingTiming-belt on Third stage

[c] 図4.1:伸縮機構の概要

4.3

スライドレール

伸縮部には、伸縮時の摩擦が少なく、かつガタが少ないものが望まれる。そこで、スライ ドレールを用いることとした。スライドレールは、軽量・コンパクトでありながら、様々な 荷重に対して安定した精度と剛性を得ることができる。 このスライドレールを1∼3段目に配置し、各段のスライドユニットがそれぞれ1-2段目、 2-3段目、3-4段目の接続部にくるようにする。4段目はアルミ製のフレームで構成する。 ここで、スライドレールを選定するためにアームにかかる荷重を求めた。アームの各接合部 にかかる荷重は、アームを地面に対して水平に伸ばしたときに最大となる。この状態で、アー ム先端に鉛直下向きに1kgfの力がかかっていると仮定した場合の各接合部にかかる荷重を表 4.1に示す。 表4.1:各接合部にかかる荷重 1-2段目間 2-3段目間 3-4段目間 17.9Nm 11.0Nm 5.4Nm アームにかかる荷重より、安全率を考慮した上で各段に用いるスライドレールを選定した。 荷重に耐えられる十分な剛性を持ち、かつ軽量なタイプのものが望ましいことから、表4.2 に示すスライドレール(THK製)を用いることとした。その概観を図4.2に示す。ここで許容

(16)

表4.2:用いるスライドレールとその仕様 1段目 2段目 3段目 型番 RSR 15N RSR 12N RSR 9N 許容モーメント 63.1Nm 28.9Nm 18.4Nm レール長 350mm 370mm 375mm 質量 417g 270g 147g 図4.2:スライドレール(左からRSR 9N、RSR 12N、RSR 15N) モーメントとは、各スライダにおける許容モーメントを指す。

4.4

ベルト、プーリ

ベルトには、タイミングベルト(つばき製)を用いる。タイミングベルトは、ワイヤに比べ 剛性が高く、高精度の位置制御に適している。ベルトは、メカニズムをコンパクトにするた めに小さく曲げられるものが良い。しかし、小さい径に曲げると心線が折れてしまうという 問題があり、曲げ限度の直径はベルトピッチの4倍以上である。そこで、最もピッチの小さ いベルトピッチ2.0mmのタイミングベルトを用いることとした。 また、プーリ(つばき製)もメカニズムをコンパクトにするため、出来るだけ径の小さいも のを使用することとした。

4.5

各関節の駆動に必要なトルクの計算

図4.3のモデルと表4.3の各パラメータより各関節の駆動に必要なトルク(τ1,τ2)の計算 を行う。ここでは簡単のため、伸縮アームの4段のリンクを1本の棒状の剛体とした。また、 lng(n = 1, 2)は各リンクの端から重心までの距離である。対象を操作する際の荷重として、リ ンク2の重心に鉛直下向きに0.5kgの荷重がかかっていると仮定する。 各関節に必要なトルクτn(n = 1, 2)は、重力に抗するトルクτgと仕事を行うためのトルク

(17)

Robot

l

l1

l2

l1g

l2g

M1

Mj2 M2

τ1

τ2

図4.3:トルク計算のモデル 表4.3:各リンクの仕様 部位 長さ 質量 リンク1 1100mm(l1) 1.5kg(M1) ジョイント2 - 0.3kg(Mj2) リンク2+荷重(0.5kg) 100mm(l2) 0.7kg(M2) τwの和で表される。 τn= τng+ τnw(n = 1, 2) (4.2) 重力に抗するトルクτng(n = 1, 2)は以下の式から求められる。 τ1g = {M1l1g+ Mj2l1+ M2(l1+ l2g)} g (4.3) τ2g = M2l2gg (4.4) 仕事を行うためのトルクτnw(n = 1, 2)は以下の式から求められる。ここでは、各関節回り の慣性に関してのみ考慮する。 τnw= Inω˙n(n = 1, 2) (4.5) 各関節回りの慣性モーメントIn(n = 1, 2)は以下のように計算される。ここでI1に関しては、 図4.3に示すようにリンク2がリンク1と同一直線上にある状態について検討した。 I1 =  l1 0 M1 l1 x 2dx+ l1+l2 l1 M2 l2 x 2dx+ M j2l21 (4.6) I2 =  l2 0 M2 l2 x 2dx (4.7) 以上の式から求めた各関節の駆動に必要なトルクは、τ1=21.9Nm,τ2=1.96Nmであった。 次に、アームの伸縮に必要なトルクの計算を行う。伸縮は、アームの根元に配置したモー タによって行う。モータに最も大きな荷重がかかるのは、アームを地面に対して垂直に立て ているときである。アームの伸長加速度を0.5m/sec2とすると、二段目以降の重量1.424kgを 持ち上げるモータトルクは0.37Nmである。

(18)

4.6

モータ、減速器の選定

求めた必要トルクから決定したモータと減速比を表4.4に示す。モータは全てMaxon製のも のを用いる。また、比較的高速回転を必要とする伸縮用の減速器にはギアヘッドを用い、低速 で高トルクが必要な第一、第二関節の減速器にはハーモニックドライブを用いることとする。 表4.4:モータと減速比 用途 モータ 減速比 出力トルク 第1関節 24V20W 300 28.8Nm 第2関節 24V2.5W 400 2.27Nm 伸縮 24V20W 19 0.44Nm

4.7

エンドエフェクタ

アームには、伸長させた状態で先端に負荷がかかるとたわみが生じる。高い位置にあるス イッチを操作する際に、アームを伸ばし、台車の前進やアームの姿勢変化などで操作を行お うとすると、アームのたわみにより手先が対象から逃げることがあり、操作失敗につながる。 そこで、エンドエフェクタにソレノイドを取り付け、ソレノイドの直動運動によってスイッ チ操作を行うこととした。ソレノイドは電磁石の一種であり、コイルに電流を流すと中の鉄 芯が押し出される仕組みになっている。このコイルに大電流を流し、鉄芯を素早く押し出せ ば、アームのたわみで手先が逃げる前にスイッチを押し込むことができる。 引き出し操作では、ソレノイドの先端を取っ手部分にかけて「抜き動作」を行い、エンド エフェクタの背で前面部分を押し込むことにより「差し動作」を行うこととする。

4.8

製作したアームの仕様

以上の部品と加工したアルミ材等を用いて、アームを組み上げた。図4.4に、M-1型山彦に 搭載した伸縮アームを示す。また、製作したアームの仕様を表4.5に示す。 この伸縮アームは、通常は山彦の上部に搭載され、移動の妨げになりにくい。引き出しの 操作は、図4.5に示すようにアームを前方に振り下ろし、エンドエフェクタを取っ手に引っ掛 けることで実現する。一方、電灯やエレベータのスイッチ操作は、図4.6に示すようにアーム を真上に起伏させ、対象の位置まで伸長させることで実現する。開発した伸縮アームをM-1 型山彦に搭載することにより、床面から160cmの高さまで対応できる。

(19)

図4.4: M-1型山彦に搭載した伸縮アーム 表4.5:アームの仕様 収縮時全長 388mm 伸長時全長 1218mm アーム旋回可能範囲 225deg エンドエフェクタ旋回可能範囲 270deg 動力 DCモータ×3 最大伸長速度 25cm/sec 可搬重量 500g 総重量 2.8kg

(20)

図4.5:振り下ろした伸縮アーム

4.9

開発したアームの評価・検討

開発したアームは、設計指針に則し、軽量でコンパクトにすることができた。また、モー タに電流を流して駆動実験を行ったところ、回転部、伸縮部ともにスムーズな動作を確認で きた。しかし一方で、問題点も判明した。 問題点のひとつは、たわみである。アームの支柱部分はスライドレールで構成されている。 スライドレールはステンレス製で高い剛性を持っているが、アーム全体を軽量化するため、負 荷荷重の少ない上段ほど細いレールを用いている。アームを伸長させたところ、自重により たわみが生じ、手先が垂れ下がった。スイッチや引き出しの操作には高い位置精度が要求さ れるため、たわみによる手先の位置誤差を解消する必要がある。 ふたつめの問題点は、振動である。伸長した状態で回転するアームに制動をかけると、手 先が大きく振動した。この振動も、アーム支柱部分の細さが原因であると考えられる。手先 が振動した状態では対象物の操作ができないため、できるだけアームに振動が生じないよう な制御を行うべきである。

(21)
(22)

5

章 アームの制御

5.1

アームのコントローラ

図5.1にアームのコントローラを示す。アームの制御はモータ制御モジュールによって行 う。この制御モジュールは、モータのエンコーダからのパルスを読み込み、制御量に応じた PWM信号をモータドライバ回路に出力することで、最大で8チャンネルのモータを使用する ことができる。本研究では、この制御モジュールを用いてアームの3つのモータを制御する。

5.2

アームの座標系

環境中におけるロボットの座標系を図5.2に示す。また、それぞれの位置・姿勢を以下のよ うに定義する。 x : 手先のx座標 y : 手先のy座標 z : 手先のz座標 xv : 台車の中心のx座標 yv : 台車の中心のy座標 L0 : 台車の中心からアームの根元までの長さ Lh : 床面からアームの根元までの高さ L1 : 伸縮部の長さ L2 : エンドエフェクタの長さ θa : 手先の水平面上の角度 θb : 手先の水平面からの角度 θ1 : 第一関節の角度 θ2 : 第二関節の角度 θv : 台車の水平面上の角度

(23)

図5.1:アームのコントローラ θa , θv θb θ2 θ1 L1 L2 Y Z X Lh L0 (xv , yv) (x,y,z) 図5.2:ロボットの座標系

(24)

5.3

キネマティクス

ロボットに搭載したアームの手先の位置(x, y, z)、姿勢(θa, θb) は、アームの各関節角度 (θ1, θ2)、伸縮長(L1)およびロボットの位置・姿勢(xv, yv, θv)から以下のように与えられる。

x = xv+ {L0− L1cos θ1+ L2cos (θ1+ θ2)} cos θv (5.1)

y = yv+ {L0− L1cos θ1+ L2cos (θ1+ θ2)} sin θv (5.2)

z = Lh+ L1sin θ1+ L2sin (θ1+ θ2) (5.3) θa = θv (5.4) θb = θ1+ θ2− π (5.5)

5.4

インバースキネマティクス

アームを目標位置に到達させるために、目標の位置、姿勢から各関節角度、伸縮長を求め る必要がある。平面上の位置、姿勢に関しては、台車の走行履歴によって定義する。台車か ら見た手先の位置、姿勢を(x, z, θb)と定義した時、アームの各関節角度(θ1, θ2)、伸縮長(L1) は以下の式で表される。 θ1 = arctanx+ L2cos θb z− L2sin θb + π 2 (5.6) θ2 = θb− arctanx+ L2cos θb z− L2sin θb + π 2 (5.7) L1 =  (x + L2cos θb)2+ (z − L2sin θb)2 (5.8)

5.5

各関節角度の

PI

制御

各モータは、目標角度に関するPI制御[12]を行う。PI制御ではまず、比例項の働きによっ て目標角度と現在角度との偏差に応じた出力を得る。これにより現在角度を目標角度付近に 近づけることができる。しかしながら、比例動作だけでは定常偏差が残ってしまうので、積 分項を加えることにより定常偏差をなくし、目標角度へ到達させる。 τref = KP  θref− θ+ KI   θref − θdt (5.9) τref : 目標トルク[Nm] θref : 目標角度[deg]

(25)

θ : 現在の角度[deg] KP : 比例ゲイン KI : 積分ゲイン PWM値が0の時にモータの端子間を短絡させ、ブレーキをかけるような回路を用いること により、PWM比とモータに流れる平均電流が比例し、PWM比とトルクの関係を以下の式で 近似することができる。 δ = 1 V0  ref + Keω  (5.10) δ : P W M/255 V0 : 電源電圧[V ] R : モータの巻線抵抗[Ω] τref : 目標トルク[Nm] : トルク定数[Nm/A] Ke : 逆起電力定数[V/rpm] ω : 角速度[rpm] 上記の二式から求められたPWM比の信号をモータドライバに送ることにより、目標角度 への追従を行った。比例、積分のゲインは、実機による検証を行い、より良いものを設定し た。ゲイン調整において、目標角度に収束すること、アームに振動が発生しないようにする こと、上記の二点を満たす範囲で出来るだけ早く目標角度に収束することに留意した。開発 した伸縮アームは、軽量・コンパクト化を図ったため非常に細く、加速度の大きな変化に弱 い。よって、比例ゲインを低めに設定し、目標角度に近付くと緩やかな減速を行うことでアー ムの振動が発生しにくいようにした。 各関節におけるPI制御の結果を図5.3に示す。実験では、同時にひとつの関節または伸縮 部のみを駆動させた。第一関節と第二関節では、5秒毎に目標値を200°、100°、50°、0° と変化させた場合の目標値への追従状況を検証した。第一関節においては、滑らかな減速が 行われ、アームの振動はほとんど生じなかった。また伸縮部では、5秒毎に目標値を800mm、 400mm、200mm、0mmと変化させ、うまく目標値への追従ができていることを確認した。

5.6

重力補償

開発した伸縮アームは、ピッチ方向の回転に加え、その長さを変えることができる。そのた め、アームの姿勢や長さによって重力から受ける影響が大きく変化する。この問題に対処す

(26)

0 50 100 150 200 0 5 10 15 20 0 100 200 300 400 500 600 700 800 0 5 10 15 20 0 50 100 150 200 0 5 10 15 20 angle [deg] Reference angle Actual angle time [sec] length [mm] Reference length Actual length time [sec] angle [deg] Reference angle Actual angle time [sec] 図5.3:各関節におけるPI制御結果(上:第一関節、中:伸縮機構、下:第二関節)

(27)

るため、本研究では重力補償を行うこととした。重力補償は、重力に抗するトルクをフィー ドフォワードによって予め与えるものであり、この働きにより、重力による影響をキャンセ ルし、常に同じゲインで各関節を制御できると考えた。重力補償は第一関節と伸縮部にのみ 適用し、第二関節には適用しない。これは、第二関節が駆動するエンドエフェクタが小さく、 重力による影響がほとんどないためである。 図5.4に重力補償を加えた第一関節と伸縮部の制御ブロック図を示す。第一関節の重力補償 項は、第一関節の角度θ1とアームの長さl1に依存する。よって、第一関節のモータトルクは 次式で表される。 τθref1 = KPθ1  θref1 − θ1  + KIθ1   θ1ref − θ1  dt+ mgl21 cos θ1 (5.11) τθref1 : 第一関節の目標トルク[Nm] θref1 : 第一関節の目標角度[deg] θ1 : 第一関節の現在の角度[deg] KPθ1 : 第一関節の比例ゲイン KIθ1 : 第一関節の積分ゲイン m : アームの質量[kg] g : 重力加速度[m/sec2] l1 : アームの長さ[m] また、伸縮部の重力補償項は、重力に逆らって二段目以降のリンクを押し上げるトルクを生 じるものであり、アームの長さにはよらないため、第一関節の角度θ1にのみ依存する。よっ て、伸縮部のモータトルクは次式で表される。 τlref1 = KPl1  l1ref− l1+ KIl1   lref1 − l1dt+ mg sin θ1 (5.12) τlref1 : 伸縮部の目標トルク[Nm] lref1 : 伸縮部の目標長さ[mm] l1 : 伸縮部の現在の長さ[mm] KPl1 : 伸縮部の比例ゲイン KIl1 : 伸縮部の積分ゲイン 重力補償を実装し、PI制御のみの場合と比較したグラフを図5.5に示す。このグラフは、 アームを地面と水平になるよう目標値を与えた状態で伸縮させ、第一関節の角度変化とPWM

(28)

図5.4: PI制御に重力補償を加えた第一関節と伸縮部の制御ブロック図 比を追ったものである。図5.5の上段のグラフがアームの伸びを示している。アームは始動 と同時に伸び始め、伸びきった所でしばらくその状態を保持する。始動から20秒が経過する と、元の状態に収縮する。この間、第一関節では目標角度への制御が行われている。 図5.5の中段は角度変化を表すグラフである。重力補償がないPI制御では、アームが伸び るに従って重心が第一関節から離れてゆき、第一関節のトルクが不十分なためにアームが下 がってしまう。また、伸長状態からアームを縮めると、逆に第一関節のトルクが過分になる ため、アームが持ち上がってしまう。アームの伸縮によって目標値からずれた角度は、I項の 働きで徐々に目標値に戻るが、収束するまでには時間がかかる。 一方、重力補償を加えたPI制御では、図5.5下段のPWM比のグラフから分かるように、 アームの動きに応じて適切なトルクが加わるため、伸縮に伴うアームの上下はなく、常に目 標値を維持することができている。

5.7

たわみ補償

5.7.1

アームのたわみ

手先の位置・姿勢の目標値(x, z, θb)を与えると、逆運動学により各関節の目標値を求め、重 力補償つきPI制御で目標値に追従させるプログラムを作成し、実装した(θbは、エンドエフェ クタが床面となす角を示す)。しかしながら、実際の手先位置が、与えた目標値(x, z, θb)から ずれる問題が生じた。このずれは、アームの位置・姿勢によって異なり、大きい時は60mm程

(29)

3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 0 5 10 15 20 25 30 35 40 45 0 200 400 600 800 0 5 10 15 20 25 30 35 40 45 0 10 20 30 40 0 5 10 15 20 25 30 35 40 45 without gravity compensation with gravity compensation time [sec] time [sec] time [sec] θ1 [deg] l1 [mm] PWM duty [y/255] with gravity compensation without gravity compensation 図5.5: PI制御のみと重力補償つきPI制御との比較(上から、アームの長さ、第一関節角度、 PWM比の変化)

(30)

度もあった。様々な位置・姿勢をとらせて検証したところ、アームを伸長させたり、水平に近 い角度にするほど、下方向へのずれが大きくなることから、アームのたわみが原因であると 推測される。 このままでは、対象操作に支障を来すため、たわみ補償を行うこととする。各関節におけ る位置制御は正確に動作しており、目標値への追従ができている。手先位置のずれは、伸ば したアームが円弧状にたわみ、手先が下がってしまう為に起こる。よって、制御ブロックに たわみ補償を組み込むことは好ましくない。そこで、インバースキネマティクスで手先の目 標位置・姿勢(x, z, θb)から各関節の目標角度(θ1, θ2, l)を求める部分にたわみ補償を取り入れ ることとする。これにより、アームのたわみで手先が下がる分を、予め少し上向きに目標位 置を設定することで、手先のずれを抑えることができる。

5.7.2

たわみの実測値への関数フィッティング

一般に、片持ばりが自由端に集中荷重Wt[Nm]を受けた場合のたわみ量vtは式5.13で表さ れる。また、全長に等分布荷重Wa[Nm]を受ける場合のたわみ量vaは式5.14で表される。 vt = Wtl 3 3EI (5.13) va = Wal 4 8EI (5.14) l : はりの長さ[m] E : 縦弾性係数[P a] I : 断面二次モーメント これらの式を用いてたわみの計算を行ったところ、実機のたわみと最大で10mm以上の誤差 があった。これは、スライダ-レール間のガタ、ベルトによる張力、部品同士の平面取り付け 精度など、様々な要素が複雑に関係しており、単純に片持ばりのたわみとして取り扱えない ためだと考えられる。 そこで、アームのたわみによる手先位置のずれを求める関数を探索することとした。まず 第一段階として、手先位置のずれを実測し、グラフにプロットした。それが図5.6の×印であ る。たわみによるずれは、第一関節の角度θ1とアームの長さl1に関係があるものとして、こ の二つを変数にとり、それぞれx軸とy軸に設定した。サンプルは、ロボットのx軸方向の 目標値を固定して手先の高さを10cm刻みで変化させる、という試行を繰り返して得た。 次に、プロットされた×印の点群にうまくフィットする関数の検討をつけた。ここでは、点 群の形状から指数関数f(x, y) = ex2+y2 を基に、式5.15の関数を設定してパラメータ(a,b,c,d) の調整によりずれの実測値へのフィッティングを行った。 f(θ1, l1) = aeb((θ1−c)2+(l1−d)2) (5.15)

(31)

100 120 140 160 180 200 220 0 100 200 300 400 500 600 700 800 -10 0 10 20 30 40 50 60 70 80 a*exp(b*((x-c)*(x-c)+(y-d)*(y-d)))

gaps caused by deflection

θ1 [deg] l1 [mm] gap [mm] 図5.6:アームのたわみの実測値と、フィッティングした関数 図5.6の格子で描かれているのがフィッティングした関数である。パラメータの値は、それ ぞれ、a= 70, b = −0.00035, c = 173, d = 800であった。このフィッティング関数により、あ る目標位置(x, z, θb)が与えられた時に、どれくらいのたわみによる手先のずれが生じるかが 推定できる。以後、この関数をたわみ関数と呼ぶ。

5.7.3

たわみ関数を用いた目標値の再設定

たわみ関数を用いて、手先の目標位置を再設定する流れを図5.7に示し、その手順を以下 に説明する。 1. 手先の目標位置(x, z, θb)から、インバースキネマティクスによって各関節の目標角度 1, l1, θ2)を得る。 2. 第一関節の角度θ1とアームの長さl1をたわみ関数に代入し、たわみ量(∆x, ∆z, ∆θb) を求める。 3. 手先の目標位置(x, z, θb)にたわみ量(∆x, ∆z, ∆θb)を上乗せした値を、新たな目標位置 として再設定する。 4. 再設定された目標位置(x + ∆x, z + ∆z, θ + ∆θb)から、再びインバースキネマティクス

(32)

を使って各関節の目標角度1, l1, θ2)を得る。 5. 第一関節の角度θ1とアームの長さl1をたわみ関数に代入し、たわみ量(∆x,∆z,∆θb) を求める。 6. 再設定された目標位置(x + ∆x, z + ∆z, θ + ∆θb)からたわみ量(∆x,∆z,∆θb)を差し 引いた値を、始めの目標位置(x, z, θb)と比較する。両者の差分が1mm未満であれば、 (θ 1, l1, θ2)を各関節の目標角度として制御ループに渡す。差分が1mm以上ならば、その 差分を再設定された目標位置(x + ∆x, z + ∆z, θ + ∆θb)から差し引き、新たな目標位置 として再々設定し、差分が1mm未満になるまで手順4∼6を繰り返す。 上記の機能を実装し、検証実験を行った。実験の様子を図5.8に示す。黒い印がついた部分 が、手先の目標位置である。たわみ補償がない場合は、手先が垂れ下がり、目標位置からずれ ていることが分かる。このずれは、アームを伸ばし、水平にするほど大きくなっている。一 方、たわみ補償を行った場合は、ほぼ目標位置に手先を合わせることができている。様々な 目標位置を与えて調べたところ、たわみ補償実装時の目標位置からのずれは、3mm以内に抑 えられており、高精度の位置制御が実現できた。

5.8

負荷の認識

引き出しの「差し動作」において、引き出しがそれ以上押し込めなくなったことを認識し、 アームの動きを止める必要がある。もし、アームの制動が遅れると、引き出しの破損やアー ムの故障につながる。 引き出しの押し込み完了を認識する手法としては、手先に力センサ等を取り付け、センサ に大きな荷重がかかったことで押し込み完了を認識する方法が考えられる。しかし、開発し たアームは手先の重量が増すと大きなたわみを生じることや、ロボット本体からアーム先端 までの長いケーブルにより、センサの信号にノイズがのりやすい等の問題がある。 そこでモータの目標トルクと回転数の関係よりアームにかかっている負荷を認識すること で、引き出しの押し込み完了を検知することとする。回転数の計測に使用するエンコーダは、 各関節の位置制御のためにモータに付属しているものであり、新たにセンサ類を取り付ける 必要がない。 モータの目標トルクは第5.5節の式5.9で表される。この目標トルクから、モータの回転数 に適当な係数をかけたものを引いた値を、負荷値として扱うこととする。この負荷値を制御プ ログラム中で監視し、予め定めた閾値を越えた時点で、引き出しの押し込み完了と判断する。 負荷値を算出するプログラムを実装し、実験を行った。その結果を図5.9に示す。これは、 第二関節において、動作中に人間の手で負荷を与えた場合と、無負荷の場合とを比較したも のである。図5.9の下のグラフの点線で囲まれた部分が、手で負荷を与えたところである。高 いPWM比にも関わらず、負荷によってモータの回転数が減少しているため、負荷値が上昇し ている。この負荷値の上昇を捉えることによって、引き出しの押し込み完了を判断する。た

(33)

No

Yes

(34)
(35)

だし、外部から負荷を与えていないにも関わらず、起動時に高い負荷値が出てしまっている ので、起動後0.3秒間は負荷値の監視は行わないこととする。

5.9

アーム駆動モードの設定

アームは重力による影響を受けるため、同じ姿勢を維持するためには、常に各関節でトル クを発生させる必要がある。しかしながら、アームを使用しない移動時にさえトルクを発生 させ、電力を消費するのは非効率的である。 また対象操作時において、対象へのアプローチの過程でいくつかの中継姿勢をとることが 考えられる。迅速な操作実現のため、この中継姿勢への追従は可能な限り高速で行いたい。一 方、対象にアプローチする際は、破損させることがないよう、低速でアームを駆動させるこ とが望ましい。 そこで、上記の仕様を満たすため、以下の3つのアーム駆動モードを用意した。 目標角度への高速追従(中継姿勢時) 目標角度への低速追従、および負荷監視(対象操作時) 収納状態で、各モータへの出力0(移動時) 対象操作時における目標角度への低速追従は、出力PWM比の最大値を制限することで実現 した。この時、第5.8節で述べた負荷監視機能を働かせ、負荷を検知すると目標角度への追従 を一旦停止する。移動時には、まず各関節に初期姿勢を目標角度として与え、全関節が目標 角度に到達したらPWM比を0にし、電力消費を抑えることができる。状況に応じてアーム 駆動モードを選択することで、より効率的で確実な動作が可能となった。

5.10

アーム駆動の流れ

アーム駆動の流れを図5.10に示す。アームのコントローラ上では、各関節の制御ループの 他に、手先の目標位置・姿勢を受信するスレッドを動かす。ノートPCなどの統括制御部から アームの目標位置、姿勢を受信すると、たわみ補償つきインバースキネマティクスを用いて 目標角度を算出する。そして、各モータのエンコーダパルスから現在の関節角度を求め、目 標角度に収束するよう、重力補償つきPI制御を行う。この時、第5.9節で述べたモードに応 じたパラメータで制御が行われる。

5.11

アーム制御の評価・検討

重力補償つきPI制御により、アームの各関節を目標角度に追従させることができた。ゲイ ンを適切な値に調整して滑らかな減速を行うことで、アームに振動が生じるのを抑えた。ま

(36)

-10 0 10 20 30 40 50 60 0 0.5 1 1.5 2 2.5 3 3.5 4 -10 0 10 20 30 40 50 60 0 0.5 1 1.5 2 2.5 3 3.5 4 0.024 0.02 0.016 0.012 0.008 0.004 0 -0.004 0.024 0.02 0.016 0.012 0.008 0.004 0 -0.004

PWM duty [y/255], Angular Velocity [deg/sec] Load Value

Time [sec] Load Value PWM duty [y/255], Angular Velocity [deg/sec]

Time [sec]

(37)
(38)

た、たわみ補償により、アームのたわみで手先が目標位置からずれる問題を解消した。さら に、負荷認識や駆動モードを設け、アームを使いやすい環境を整えた。 これにより、第2章で述べた対象物を操作可能なアームシステムを開発することができた。 現状で対象操作に支障はないが、追加すると便利な機能としては以下のものが考えられる。 まず、図5.10に示したように、ノートPCからは、アームコントローラに対し、手先の目 標位置・姿勢などが送信されるが、ノートPCがアームの状態を知る手段はない。与えた目標 位置・姿勢に対して、アームが現在どのような動きをしているかを認識できれば、より適切 な指令をアームコントローラに送ることができる。ノートPCで取得したいアームの情報と しては、各関節の角度、各速度、手先の位置・姿勢などが考えられる。また、アームのみの 動作では振動は生じないが、アームを搭載した台車が動くと、アームが振動することがある。 アームの振動を検知し、これを打ち消すような振動抑制制御を行うことで、この問題は解消 される。 上記の機能が追加されれば、さらに高度なタスクが可能となり、伸縮アームの用途が増す と考えられる。

(39)

6

章 対象操作

6.1

動作計画

6.1.1

スイッチ操作

スイッチ操作の流れを図6.1に示す。ロボットには予め、スイッチの位置を含む簡単な地図 を持たせる。ロボットは、スイッチ操作の必要が生じると、周囲のランドマークを頼りにス イッチ付近まで移動する。そしてアームを伸ばし、スイッチを操作する。この時、対象の位 置を正確に認識し、アームの手先を対象に合わせる必要がある。 先にも述べたように、アームにはヨー方向の自由度がない。そこで対象とエンドエフェク タとの間に横方向のずれがあった場合は、台車の方向転換または切り返し動作によってその ずれをなくすこととする。

6.1.2

引き出し操作

引き出し操作の流れを図6.2に示す。引き出し操作時も、先に述べたスイッチ操作時と同様 に、ロボットには予め引き出しを含む地図を持たせておく。ロボットは、引き出し操作の必 要が生じると、周囲のランドマークを頼りに引き出し付近まで移動する。そしてアームを伸 ばし、引き出しを操作する。 引き出し操作は、エンドエフェクタを取っ手に掛け、アームを搭載した台車が後進するこ とで実現する。アームのみを使うのではなく、台車の移動を用いる理由としては、以下のこ とがあげられる。 図6.1:スイッチ操作の流れ

(40)

引き出しの中を確認するためには、取っ手を15∼20cm程度引く必要がある。エンドエ フェクタを取っ手から外れることなく水平に移動させるには、アームを固定したまま台 車が動いた方が良い。 アームの動きのみで取っ手を引くには、予めアームをある程度伸ばしておき、エンドエ フェクタを取っ手に掛けた状態でアームを縮ませる方法が考えられる。しかしながら、 アームを伸ばすほど、手先の荷重によるたわみは大きくなる。よって、アームは可能な 限り縮めた状態で引き出し操作を行うことが望ましい。 引き出しの中を確認した後は、引き出しを元の状態に戻す。その動作は以下の手順で行う。 1. エンドエフェクタの背を前面部分にあてた状態で台車が前進する。 2. 最初に取っ手を引き始めた地点よりも20mm手前で停止コマンドを発行する。 3. アームの動きによって、引き出しを押し込む。 引き出しの押し込み動作で注意しなければならないのは、それ以上押し込めなくなったら すぐにアームの動きを止めることである。もし、アームの制動が遅れると、引き出しの破損 やアームの故障につながる。そこで5.8で述べた、モータの出力トルクと回転数の関係より アームにかかっている負荷を認識することで、引き出しの押し込み完了を検知する。

6.2

システム構成

動作計画を実現するためのシステム構成について説明する。対象の操作には、開発した伸 縮アームを搭載した山彦を用いる。対象付近まで移動する際に、周囲の環境を認識するセン サとして、測域センサを用いる。また、操作時に対象を認識するため、エンドエフェクタに カメラを取り付ける。測域センサとカメラのデータはノートPCに取り込み、それぞれ処理を 行って周囲の環境や対象の位置を得る。得られた情報から、ロボットの移動経路やアームの 目標位置を設定することで、タスクの実現を目指す。ロボットやアームの制御は、ノートPC 上のLxSystem[13]によりモータ制御モジュールを介して行う。

6.3

ナビゲーションにおける環境認識

6.3.1

測域センサ URG

ロボットは、オドメトリによる自己位置推定を行い、設定された経路に追従するようフィー ドバック制御することにより、目標地点までのナビゲーションを行う。しかしながら、オドメ トリを用いた自己位置推定には、走行距離に応じて誤差が累積するため、周囲の環境を認識 して自己位置を修正する必要がある。本研究では、周囲の環境を認識するために、図6.3に示 す測域センサURG-X002S(以後、URGと呼ぶ)を用いる。URGの仕様を表6.1に示す。URG

(41)
(42)

図6.3:測域センサURG から得られる情報は、角度[rad]と距離[mm]である。ロボットが、環境に張り付けた座標系 のある点(x, y)に向きθで存在する時、URGによって得られた環境中の点の座標(xp, yp)は、 以下の式で求められる。 xp = r cos(φ + θ) + x + L cos θ (6.1) yp = r sin(φ + θ) + y + L sin θ (6.2) xp : 測距点のx座標 yp : 測距点のy座標 r : 測距距離 φ : 測距角度 x : ロボットのx座標 y : ロボットのy座標 θ : ロボットの向き L : ロボット中心からU RGまでの距離

6.3.2

最小二乗法による直線近似

屋内環境では、目標地点まで移動する際に、壁をランドマークとして用いる手法が良く見ら れる。これは、壁面の直線の傾きや距離から推定自己位置の修正を有効に行えるためである。

(43)

表6.1:測域センサURGの仕様 型式 URG-X002S 測距範囲 20∼4000mm, 240° 測距精度 20∼1000mm:±10mm, 1000∼4000mm:距離の1% 角度分解能 約0.36° 走査速度 100ms/scan 質量 約170g 外形寸法 50mm×50mm×70mm 本研究でも、対象付近への移動に壁面を用いることとし、最小二乗法を用いて測距点群か ら近似直線を求めることとする。URGで計測した環境中のn個の点(xi,yi)から、最小二乗法 によって得られる近似直線y = ax + bの係数a,bは以下の式で表される。 a = n n  i=1 xiyi− n  i=1 xi n  i=1 yi n n  i=1 x2i  n  i=1 xi 2 (6.3) b = n  i=1 x2i n  i=1 yi− n  i=1 xiyi n  i=1 xi n n  i=1 x2i  n  i=1 xi 2 (6.4) また、上式によって求められた直線と、座標(xr, yr)上のロボットとの距離dは、以下の式 で表される。 d=  (axr− yr+ b)2 1 + a2 (6.5) これらの式を用いることによって、環境中におけるロボットの位置、姿勢を推定すること が可能である。URGを用いて周囲の環境を認識することで、オドメトリによる推定自己位置 に修正を加え、より正確に目標地点までの移動を目指す。

6.4

対象物の認識

6.4.1

USB

カメラ

本研究では、壁に設置された数cm四方のスイッチのように、非常に小さいものを操作対象 としている。これらの対象を操作するためには、対象物を正確に認識する必要がある。

(44)

図6.4: USBカメラQV-700N そこで対象認識には、対象物を的確に捉えられ、なおかつ、小型軽量で先端に取り付けて もアームへの負荷が少ない、小型カメラを使用することとした。この小型カメラとして、図 6.4に示すLogicool社製のUSBカメラQV-700Nを使用する。ロボットに搭載したノートPC でカメラ画像を取り込み、画像処理を行って対象物の位置を認識する。

6.4.2

カメラキャリブレーション

カメラから得られる画像には歪みがあり、そのままでは正確な対象の位置を求めることがで きない。そこで、カメラキャリブレーションを行うことによりカメラ画像を補正し、ピンホー ルモデルとして扱えるようにする。このカメラキャリブレーションには、Camera Calibration Toolbox for Matlab[15]を使用した。

6.4.3

画像内における対象検出

カメラで取得した画像内で、対象を検出する手法について説明する。本研究では、テンプ レートマッチングによって対象を検出することとした。テンプレートマッチングは、予め登 録したテンプレート画像を原画像上で走査し、最も相関の高い場所を探索することで、対象 の位置を推定する手法である。対象とするエレベータや電灯のスイッチは概観が変わること はないため、この手法が有効だと考えた。 スイッチをテンプレート画像として登録し、USBカメラから得られた画像中で、各画素ご とのRGB値の差分の合計が最小となる位置を求める。差分値を求める画素を5画素おきに し、さらにテンプレート画像の走査位置も5画素ごととした。 図6.5にテンプレートマッチングの実験結果を示す。それぞれ、カメラ画像内で対象の位置

(45)

図6.5:テンプレート画像(上)とテンプレートマッチングを行った画像(下) を正しく推定できていることが分かる。

6.4.4

位置導出方法

上記の手法により、カメラ画像内の対象の座標が求まった。そこで、この座標を基に、対 象の環境内における位置を推定することとする。 図6.6に対象位置導出のモデルを示す。まず、対象の画像内の座標(u, v)を、中心座標から の距離(∆u, ∆v)に変換する。U軸方向、V軸方向における画像1ピクセルあたりの角度を ∆θu∆θvとし、URGによって測定した壁までの距離をLとすると、カメラを原点にとった 座標系における対象の位置(xobj, yobj, zobj)は以下の式で求められる。

xobj = L (6.6)

yobj = L tan(∆θv∆v) (6.7)

zobj = L tan(∆θu∆u) (6.8)

6.5

対象操作実験

6.5.1

スイッチ操作実験

筑波大学第三学群L棟3階の研究室前から、エレベータを操作してフロアを移動し、同4

(46)

X

obj

Z

obj

Z

X

∆θ

u*

u

u

Projected Surface Object

X

obj

Y

obj

Y

X

∆θ

v*

v

v

Projected Surface Object

Top View

Side View

図6.6:対象位置導出のモデル 1. L棟3階の研究室前からスタートする。 2. URGで左側の壁を測定し、一定の距離を保って壁と平行な直線上を移動する。 3. 一定間隔毎にURGで左側の壁を測定し、推定自己位置の修正を行う。 4. 壁沿い走行によってエレベータ付近まで移動したら、周辺の壁面との距離・角度を基に、 スイッチ前にできるだけ正確に移動する。 5. アームを伸ばし、カメラでスイッチを認識する。 6. エンドエフェクタでスイッチを操作できるよう、ロボットの位置、アームの姿勢を修正 する。 7. スイッチを操作し、ドアが開いたらエレベータに乗り込む。 8. エレベータ内でスイッチ前に移動し、5∼6と同様のことを行う。 9. スイッチを操作し、ドアが開いたらエレベータを降りる。 10. 壁沿い走行でL棟4階の研究室前まで移動する。 実験の様子を図6.7に示す。また、走行中にURGで得られたデータを図6.8に示す。

(47)

9 10 5 4 1 2 11 12 8 3 7 6 図6.7:エレベータによるフロア移動実験の様子

(48)

-8000 -6000 -4000 -2000 0 2000 4000 -5000 0 5000 10000 15000 20000 25000 30000 x [mm] y [mm] -8000 -6000 -4000 -2000 0 2000 4000 -5000 0 5000 10000 15000 20000 25000 30000 x [mm] y [mm] 3L302-1 Elevator 3L402 Elevator 3rd Floor 4th Floor 42

(49)

6.5.2

引き出し操作実験

筆者の研究室にあるメールボックスを対象とし、引き出し操作実験を行った。実験の様子 を図6.9に示す。第6.1.2小節で述べた手順で引き出しを操作し、対象物やアームに大きな負 荷をかけることなく「抜き動作」、「差し動作」を実現することができた。

6.6

対象操作の評価・検討

小型移動ロボットで対象物の操作を行うためのロボットシステムを構築し、タスクを実行 した。これにより、開発した伸縮アームで「押す」「引く」動作が可能であることを証明した。 現状では、タスクの成功率は5割程度である。主な失敗原因としては、推定した対象との相 対位置に誤差があることが考えられる。この問題に対処するためには、より正確な自己位置 推定、対象認識が必要である。今回は、最小二乗法を用いた直線近似により壁を認識し、テ ンプレートマッチングによって対象物を認識した。より精度の高い環境認識手法の選択・提 案が今後の課題である。

(50)

9 10 5 4 1 2 11 12 8 3 7 6 図6.9:引き出し操作実験の様子

(51)

7

章 おわりに

本研究では、まず実現したいタスクの具体例を示し、アームの仕様を検討した。そして、仕 様に基づき伸縮機構を有するアームの設計、製作を行った。 アームの制御においては、各関節で位置に関するPI制御を行った。ここで、アームが受け る重力の影響をキャンセルするため、重力補償項を加えた。また、アームのたわみによって 手先が目標位置からずれてしまうのを防ぐため、たわみ補償を行った。このたわみ補償では、 インバースキネマティクスで各関節角度を求める際に、たわみによる垂れ下がりを考慮して、 予め適当な量だけ上向きの目標位置を設定するものである。この制御系により、手先の位置 誤差3mm以内という、高い精度を実現することができた。 最後に、開発したアームを用いて対象操作を行った。ロボットのオドメトリで自己位置推 定を行いながら対象付近へ移動した。オドメトリには累積誤差が生じるため、測域センサに よって廊下の壁などを検出することで、推定自己位置の修正を行った。壁の検出では、測域セ ンサにより得られた壁の点群から最小二乗法で近似直線を求めることで、その傾きとロボッ トからの距離を算出した。対象操作時は、カメラによって対象を認識し、ロボットとアーム の位置合わせを行うことで、対象物の操作を実現した。 今後の課題は、ノートPCへアームの状態を知らせる機能や振動抑制制御など、アームコン トローラの機能拡張である。また、確実に対象物を操作するためには、より高い精度で周囲 の環境や対象物を認識する必要がある。

(52)

謝辞

本研究は工学博士 大矢晃久 筑波大学システム情報工学研究科コンピュータサイエンス専攻助 教授のご指導のもとに行われました。桐陰横浜大学 小柳栄次教授には、アームの設計・製作 にあたり、貴重なご助言、ご協力を頂きました。工学博士 油田信一 筑波大学副学長、工学博 士坪内孝司 筑波大学システム情報工学研究科知能機能システム専攻助教授にも多くのご助言 を頂きました。さらに、知能ロボット研究室の皆様には研究に限らず、多くの支援やアドバ イスを頂きました。以上の方々に厚くお礼を申し上げます。 最後に、精神的にも経済的にも支援してくれた家族に深く感謝します。ありがとうござい ました。

(53)

参考文献

[1] NEC:PaPeRo, http://www.incx.nec.co.jp/robot/20-03papero/index.html

[2] 東芝:ApriAlpha, http://www.toshiba.co.jp/about/-press/2003 03/pr j2001.htm

[3] PFU:MARON-1, http://www.pfu.fujitsu.com/mar-on/characteristic.html

[4] 江口 純司:“移動系の自由度も用いて物体を操作する移動マニピュレータ”,平成13年度 筑波大学 大学院 修士課程 理工学研究科 修士論文.

[5] T.Tomizawa, A.Ohya, S.Yuta : “Book Browsing System using an Autonomous Mobile Robot Teleoperated via the Internet”, Proceedings of IROS’02.

[6] 蛭田 かおり:“お茶をサービスする自律移動ロボットの開発”,平成15年度 筑波大学 大学 院 修士課程 理工学研究科 修士論文. [7] 永谷,松浦,田中:“自律移動マニピュレータによるエレベータ昇降動作の実現”,ロボティ クス・メカトロニクス講演会’03予稿集, 2A1-1F-B6 (2003-05) [8] 日下部 稔:“移動ロボットに搭載するためのマニピュレータとその制御システムの開発”, 平成9年度 筑波大学 大学院 修士課程 理工学研究科 修士論文. [9] 吉村 尚秀:“多種の作業を実現するための自律型移動マニピュレータ用自動ハンド交換シ ステムの開発”,平成11年度 筑波大学 大学院 修士課程 理工学研究科 修士論文. [10] 鈴木 昭仁:“研究用プラットフォームとしての自律移動マニピュレータの開発”,平成12 年度 筑波大学 大学院 博士課程 工学研究科 修士論文. [11] 冨沢 哲雄:“遠隔地より図書を閲覧するロボットシステムの開発”,平成14年度 筑波大学 大学院 博士課程 システム情報工学研究科 修士論文. [12] 須田信英:“PID制御” , (1992)朝倉書店 [13] 吉田 智章:“自律移動ロボットの行動制御とそのプログラミング環境に関する研究”、 平成15年度 筑波大学 大学院 博士課程 工学研究科 博士論文

(54)

[14] H.Kawata, W.Santosh, T.Mori, A.Ohya, S.Yuta : “Development of Ultra-Small Lightweight Optical Range Sensor System”, Proceedings of IROS’05.

図 2.3: メールボックスの引き出し
表 4.2: 用いるスライドレールとその仕様 1 段目 2 段目 3 段目 型番 RSR 15N RSR 12N RSR 9N 許容モーメント 63.1Nm 28.9Nm 18.4Nm レール長 350mm 370mm 375mm 質量 417g 270g 147g 図 4.2: スライドレール(左から RSR 9N 、 RSR 12N 、 RSR 15N ) モーメントとは、各スライダにおける許容モーメントを指す。 4.4 ベルト、プーリ ベルトには、タイミングベルト ( つばき製 ) を用いる。タイミン
図 4.4: M-1 型山彦に搭載した伸縮アーム 表 4.5: アームの仕様 収縮時全長 388mm 伸長時全長 1218mm アーム旋回可能範囲 225deg エンドエフェクタ旋回可能範囲 270deg 動力 DC モータ× 3 最大伸長速度 25cm/sec 可搬重量 500g 総重量 2.8kg
図 4.5: 振り下ろした伸縮アーム 4.9 開発したアームの評価・検討 開発したアームは、設計指針に則し、軽量でコンパクトにすることができた。また、モー タに電流を流して駆動実験を行ったところ、回転部、伸縮部ともにスムーズな動作を確認で きた。しかし一方で、問題点も判明した。 問題点のひとつは、たわみである。アームの支柱部分はスライドレールで構成されている。 スライドレールはステンレス製で高い剛性を持っているが、アーム全体を軽量化するため、負 荷荷重の少ない上段ほど細いレールを用いている。アームを伸長させ
+7

参照

関連したドキュメント

投排雪保守用車の最大推進力は、重量が約 600KN であ ることから排雪時の摩擦係数 0.2 とすると 120KN であり

本試験装置ではフィードバック機構を有する完全閉ループ 方式の電気・油圧サーボシステムであり,載荷条件はコンピ

を軌道にのせることができた。最後の2年間 では,本学が他大学に比して遅々としていた

以上,本研究で対象とする比較的空気を多く 含む湿り蒸気の熱・物質移動の促進において,こ

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

Windows Hell は、指紋または顔認証を使って Windows 10 デバイスにアクセスできる、よ

一方で、自動車や航空機などの移動体(モービルテキスタイル)の伸びは今後も拡大すると

手動のレバーを押して津波がどのようにして起きるかを観察 することができます。シミュレーターの前には、 「地図で見る日本