掃除ロボットの掃除時間について

ネットワークシステム研究室
指導教員 坂本 直志
13EC070 富岡 康太

目次

第1章 はじめに
第2章 準備
2.1 天井関数
2.2 Coverage Path Planning(CPP)
第3章 関連研究
3.1 A Survey on Coverage Path Planning for Robotics[4]
3.2 Multi-robot System for Vacuum Cleaning Domain[5]
3.3 家庭用掃除ロボットのシステム設計[6]
第4章 掃除時間に関するアルゴリズムについて
4.1 研究の目標
4.2 問題の前提
4.3 問題 1
4.4 問題 2
4.5 考察
第5章 結論
5.1 まとめ
5.2 今後の課題
参考文献
付録

第1章 はじめに

近年、家庭用掃除ロボットのルンバが人気である。ルンバとは、iRobot が製造・販売するロボット掃除機である。ルンバは、個々の部屋や小規模の部屋を掃除する事が可能である。このルンバの動作アルゴリズムは、ルンバ 800 シリーズとルンバ 900 シリーズで異なる。ルンバ 800 シリーズでは、文献[1]の「ルンバの動きと稼働範囲のイメージ」はルンバの動きから部屋全てを清掃する事は出来るが、清掃が終わった個所を何度も掃除している事が分かる。一方、ルンバ 900 シリーズでは、文献[2]の清掃エリアのルンバの動きを見るとルンバ 800 シリーズとは全く異なり、一度しか掃除しない面積が直感的に広く効率的な動作になっている事が理解できる。ルンバ 900 シリーズの方が、[2]にある記述の「清掃できる面積は最大 112 畳(185m²)」となっており、ルンバ 800 シリーズは、[3]のカタログより「最大 25 畳」となっており、ルンバ 900 シリーズは、最大稼働面積が 4 倍以上になっている。この様に、動作が効率的である方がバッテリー稼働可能時間が限られる為、清掃できる面積が増えている。つまり、大規模な部屋において、ルンバの動作が効率的である必要が出てくる。また、文献[4]既存研究ではロボットの動作に注目しており、時間に関して数学的に求められていない。本稿では、清掃ロボットの掃除アルゴリズムを障害物の無い長方形の部屋を対象に用いた時の時間を数学理論を用いて時間効率を述べる。

第2章 準備

2.1 天井関数

天井関数として⌈x⌉とし、x 以上の最小の整数とする。なお、広く知られるガウス記号とは次の関係にある。

⌈x⌉ = -|-x|

2.2 Coverage Path Planning(CPP)

Coverage Path Planning とは、与えられてた平面領域に対して、単位面積を持つロボットが全ての点をカバーするためのロボットの移動経路を定めることである。ロボットが移動経路を定めるにあたり、様々な制約を考えられる。例えば、未知の領域に対して、ロボットがセンサーを用いて領域を観測しながら、自律的に経路を決定し最終的に自走しながら全ての点をカバーするのと、領域が与えられ、ロボットはセンサーを持たずに受けた指示に従ってすべての点をカバーするように移動するのでは、全く解決法が異なる。

第3章 関連研究

3.1 A Survey on Coverage Path Planning for Robotics[4]

Galceran らは、CPP に関しての論文を 2013 年から過去十年間に達成された成果に焦点を当て、最も成功した CPP 手法のレビューの提示と報告されたフィールドアプリケーションを議論している。彼らの調査した論文で、移動ロボットのカバレッジ操作を実行する為に満たさなければならない要件が定義されている。要件は次のとおりである。

  1. ロボットは、対象領域内の全てのポイントを完全に移動する必要である。
  2. ロボットは、重複する経路なしで領域を埋める必要である。
  3. 経路を何も繰り返さずに連続的かつ規則的に操作することが必要である。
  4. ロボットは全ての障害をよけなければならない。
  5. 単純な運動軌道(例えば、直線や円)である。(制御を簡単にするために)
  6. 利用可能な条件下では、最適な経路が望ましい。

しかし、複雑な環境でこれらの基準をすべて満たす事は必ずしも可能ではない。また、Choset の調査で提案された物で、ロボットはオフラインとオンラインのいずれかに分類する事が出来る。オフラインアルゴリズムは、静止した情報のみに依存しており、環境は事前に分かっているものと想定される。しかし、多くのシナリオでは、環境に関する完全な事前知識が非現実的であると仮定される。オンラインアルゴリズムは、対象となる環境の完全な事前知識を想定せず、リアルタイムにセンサを利用して、ターゲット空間を掃引される。議論されたアプローチで使用される一般的な根本的な考え方を反映し、いくつかの section毎に以下の様に分類して解説されている。

内容は、ロボットの動作や障害物への対応、領域の分解に注目している。本稿では、これらの要件や分類を参考にしている。

3.2 Multi-robot System for Vacuum Cleaning Domain[5]

Nikitenko らは、複数の清掃ロボットによって、格納庫の様な大きな屋内エリアを清掃する。為のマルチロボット掃除システムを提案している。彼らの手法は、ユーザーが、ユーザーインターフェースをしようして、清掃動作を要求する事によって、開始される。この要求は、サーバーに送信され、全体の清掃領域を責任領域と呼ばれる小さなサブ領域に分ける。各ロボットは、責任領域を割り当てられる。割り当てられた後、ローカライゼーションの目的の為のウェブカメラ、追加のバンパーを割り当てる。その後、ロボットは責任領域に移動し、清掃動作を実行します。清掃が完了したら、次の未割り当ての責任領域をそのロボットに割り当てる。全てのエリアが適切に清掃されるまで、処理が続けられる。本稿では、全体の清掃領域を責任領域に分ける場合に、均等な時間による領域の切り分けをする事により、更なる効率化に役立つと着想を得ている。

3.3 家庭用掃除ロボットのシステム設計[6]

荒井らは、家庭用掃除ロボットの開発コンセプトおよび、試作機の設計について報告している。このロボットは、部屋の外壁に沿って 1 周し、走行経路から得た部屋の形状データを用いて所定の走行パターンによって、清掃を行う。本稿では、彼らの動作アルゴリズムを参考にしている。

第4章 掃除時間に関するアルゴリズムについて

4.1 研究の目標

(m, n)∈R×Rの(mは縦、nは横とする。)長方形領域を掃除ロボットを用いた時の掃除時間の上限と下限を数学的に求める事を目標とする。但し、現状では部分問題しか解けていない。

4.2 問題の前提

領域の前提

ロボットの前提

また、オフライン問題、オンライン問題を考える。

オフライン問題

ロボットに、m,n、ロボットを置く位置を予め与える。

オンライン問題

ロボットを領域内、任意の位置に置く。

さらに問題を簡単に考えるため、以下の様な部分問題を考える。

  1. 初期ロボットの進行方向を一辺と平行にする。
  2. ロボットの初期位置を左下に限定する。
  3. mまたは、mとn両方を整数に限定する。
図1.掃除イメージ
図1.掃除イメージ

4.3 問題 1

解法

オフラインの場合

一般性を失わず(0,0)∪(m,n)のうち、m≦1とし、図 1-1 の様に初期座標(x,y)初期角度θ。とする。

アルゴリズム

  1. 0≦y。≦n/2のときは、θ = π/2になるようn/2<y。≦nのときは、θ=-π/2になるよう回転する。
  2. |y。-n/2|前進し、領域の中線に来るようにする。
  3. 1/2<x。≦m/2のとき、θ = π , m/2 <x。≦m-1/2のとき、θ = 0となるように回転する。
  4. x 軸の端点まで前進する。
  5. 180°(π)回転する。
  6. もう一方の端点まで前進する。(終了)

掃除時間

掃除時間≦2α + n/2 + α + m/2 - 1/2 + 2α + m - 1

= 5α + n/2 + 3m/2 - 3/2・・・➀

となる。

図 1-1.任意の位置(x,y,θ)に置いたとき
図 1-1.任意の位置(x,y,θ)に置いたとき

4.4 問題 2

解法

オフラインの場合

オフライン部分問題 1,2 のとき、部屋の四隅を(0,0),(n,0),(0,m),(n,m)と置き、(0,0)から(0,m)の一辺と進行方向を平行にする。

アルゴリズム

縦の場合

  1. m - 1前進する。
  2. 右に 90°回転する。
  3. 1 前進する。
  4. 右に 90°回転する。
  5. 1〜4 を⌈n⌉ - 1回繰り返す。
  6. m - 1前進する(終了)

横の場合

  1. 右に90°回転する。
  2. n - 1前進する。
  3. 左に 90°回転する。
  4. 1 前進する。
  5. 左に 90°回転する。
  6. 1〜4 を⌈m⌉ - 1回繰り返す。
  7. n - 1前進する(終了)

掃除時間

縦の場合

1〜5 までの掃除時間= m - 1 + α + 1 + α
+m - 1 + α + 1 + α
+m - 1 + α + 1 + α・・・
の⌈n⌉ - 1回繰り返し、(⌈n⌉ - 1)(m + 2α) + m - 1時間となる。
掃除時間= ⌈n⌉m - m + 2α⌈n⌉ + m - 1
= ⌈n⌉m + 2α⌈n⌉ - 2α - 1・・・➁

横の場合

最初に右に 90°回転する以外は上記と同様に、

掃除時間= ➁ + α
= ⌈m⌉n + 2α⌈m⌉ - 2α - 1 + α
= ⌈m⌉n + 2α⌈m⌉ - α - 1・・・➂
図 2-1.縦にジグザグ走行
図 2-1.縦にジグザグ走行
図 2-2.横にジグザグ走行
図 2-2.横にジグザグ走行

➁と➂の差を取って比較すると、

⌈n⌉m + 2α⌈n⌉ - 2α - 1 - (⌈m⌉n + 2α⌈m⌉ - α)-1)
=⌈n⌉m-⌈m⌉n + 2α⌈n⌉ - 2α⌈m⌉ - α
=⌈n⌉m-⌈m⌉n + 2α(⌈n⌉ - ⌈m⌉ - 1/2)

x = ⌈n⌉ - n, y = ⌈m⌉ - mと置くと、

=xm-yn + 2α(⌈n⌉ - ⌈m⌉ - 1/2)・・・➃

➃が正ならば横、負ならば縦の方が掃除時間が短い。

n,mが整数の場合、x = 0, y = 0となり、➃に代入すると

2α(n - m - 1/2)

となり、α ∈ R、n と mが整数なので、2α(n - m - 1/2)は、n と mの差によって正負が決まる。よって、➃の正負が明らかになり、縦と横の掃除時間が短い方が明らかになる。

縦と横の差が無い場合

xm - yn + 2α(⌈n⌉ - ⌈m⌉ - 1/2)=0
y=xm/n + 2α(⌈n⌉ - ⌈m⌉ - 1/2)/n=0・・・➄
x=yn/m - 2α(⌈n⌉ - ⌈m⌉ - 1/2)/m=0・・・➅

n,mは実数で、➄はxy 軸上に傾きがm/n切片が2α(⌈n⌉ - ⌈m⌉ - 1/2)/nの右肩上がりの直線で表す事ができる。また、x, yの定義域は、0 ≦ x, y < 1となる。

y < 1のαの条件を求めると、x = 0, y < 1を➄に代入すると

α < n/(2(⌈n⌉ - ⌈m⌉ - 1/2))・・・➆

x < 1のαの条件を求めると、x < 1, y = 0を➅に代入すると

α < m/(2(⌈m⌉ - ⌈n⌉ + 1/2))・・・➇

α∈Rより、7は(m + 1/2) < n、8はn < (m + 1/2)となる。

まとめると、(m + 1/2) < nのときn/(2(⌈n⌉ - ⌈m⌉ - 1/2)) < α、n < (m + 1/2)のときm/(2(⌈m⌉ - ⌈n⌉ + 1/2)) < αの場合は端数によるはみ出す領域よりも回転の回数が少ない方が早くなる為、(m + 1/2) < nは横、n < (m + 1/2)は縦に掃引する方が時間は短くなる。

図 2-3.縦に y 横に x の余りがある時の縦にジグザグ走行。
図 2-3.縦に y 横に x の余りがある時の縦にジグザグ走行。
図 2-4.縦に y 横に x の余りがある時の横にジグザグ走行
図 2-4.縦に y 横に x の余りがある時の横にジグザグ走行
図 2-5.縦軸を y,横軸を x とした5の定義域と x=1 と y=1 を通る時の傾き 0.5 の線
図 2-5.縦軸を y,横軸を x とした5の定義域と x=1 と y=1 を通る時の傾き 0.5 の線

解法

オンライン部分問題 1,2,3 のとき、オンライン解法では、ロボットはあらかじめ、m,n を知らない提案解法では、初めに m,n を求める。

アルゴリズム

  1. 壁にぶつかるまで直進する。(進んだ距離を計測する。)
  2. 右に 90°回転する。
  3. 壁にぶつかるまで直進する。(進んだ距離を計測する。)
  4. 1 だけ前進する。
  5. 問題 2 の整数の場合に掃除時間が小さい方と同様の動作を行う。

掃除時間

掃除時間≦m - 1 + n - 1 + 2α + 1 + (⌈n - 1⌉)(m - 1)+2α(⌈n - 1⌉ - 1) - 1
= ⌈n⌉m + 2α⌈n⌉ - 2α - 1・・・➈

また、横に掃引する場合は、

掃除時間= ⌈m⌉n + 2α⌈m⌉ - α - 1・・・➉
図 2-6.直進、右ターン直進後に縦にジグザグ走行
図 2-6.直進、右ターン直進後に縦にジグザグ走行
図 2-7.直進、右ターン直進後に横にジグザグ走行
図 2-7.直進、右ターン直進後に横にジグザグ走行

4.5 考察

問題 2 のオフラインとオンラインでは、共に同じ式になったが、オンラインの場合は m,n が整数である必要がある。

縦と横のジグザグ走行に関して、数学的に示した。また、mまたはnに小数点以下が存在する時、➁と➂の差の式により縦と横の時間の小さい方が明らかにできる。また、αの値によっては、mとnの大小のみで縦と横の小さい方が明らかに出来る。

αが非常に小さい値の場合、⌈n⌉mと⌈m⌉nの比較によって、縦と横の小さい方が明らかになるが、ガウス記号が入った大小比較は、図 3 のグラフを見ると、複雑なグラフになっており、そのままmとnの大小比較にならず、⌈n⌉mと⌈m⌉nの式に代入して計算した後の値を比較する事で明らかに出来る。

複雑な形の部屋や文献[5]の様な大きな領域を一定の領域毎に分ける時に、領域を掃除時間で分ける事が有用だと考えられる。関連研究[4]や[6]と異なり、障害物の無い長方形の部屋のみを想定しており、長方形以外の部屋の形、例えば台形や円形にそのまま用いる事ができない。複雑な形の部屋に用いるには、新たな動作や部屋を長方形の形に分解する工夫が必要である。

図 3. z = ⌈x⌉yと⌈y⌉xの三次元グラフ
図 3. z = ⌈x⌉yと⌈y⌉xの三次元グラフ

第5章 結論

5.1 まとめ

この論文では、領域とロボットの前提を決め、オンライン問題とオフライン問題に大きく分け、更に問題を簡単に考えるために部分問題に分けて、いくつかの動作を数学的な理論により掃除時間を示した。

特に、ジグザグ走行に関して議論した。

結論として、障害物の無い長方形の一定の動作に関しての掃除時間を数学的に明らかにした。

5.2 今後の課題

長方形以外の部屋の形や障害物がある場合の動作は示せていない。

特定の部屋の掃除時間が一定以下になる事が不可能な事は示せていない。

問題 1 のオンライン問題に関しては示せていない。

問題 2 の別解として、付録の図 3,4 の様な動作を考案したが数学的に示せていない。

また、m,n が整数の場合は、ジグザグ走行が最適と考えられるが GOAL の位置や m,nが整数以外の場合は示せていない。

参考文献

[1]アイロボット公式サイト「800 シリーズ|ロボット掃除機 ルンバ」
<https://www.irobot-jp.com/roomba/feature.html>2016 年 12 月 20 日アクセス.
[2]アイロボット公式サイト「900 シリーズ|ロボット掃除機 ルンバ」
< https://www.irobot-jp.com/product/900series/smart.html>2016 年 12月 20 日アクセス.
[3]アイロボット公式サイト PressRelease|2014.02.18」
< http://www.irobot-jp.com/press/pdf/20140218.pdf2016 年 12 月 20 日アクセス.
[4]「A Survey on Coverage Path Planning for Robotics」著者:Enric Galceran,Marc Carreras
< http://ac.els-cdn.com/S092188901300167X/1-s2.0-S092188901300167X-main.pdf?_tid=a17bead4-03d2-11e7-867f-00000aacb360&acdnat=1488959064_3019eecbf39a8b7586289a42d02f33a5 >2017 年 1 月 10 日アクセス.
[5]「Multi-robot System for Vacuum Cleaning Domain」著者:Agris Nikitenko,Janis Grundspenkis, Aleksis Liekna, Martins Ekmanis, Guntis Kulikovskis,and Ilze Andersone
< https://link.springer.com/chapter/10.1007/978-3-319-07551-8_39>2017 年 1 月 10 日アクセス.
[6]「家庭用掃除ロボットのシステム設計」著者:荒井穣,細田祐司,柄川索,小関篤志,田島泰治,朝康博,岡田祐子(日立)
<https://www.jstage.jst.go.jp/article/jacc/48/0/48_0_165/_pdf>2017 年 1 月 10 日アクセス.

付録

図 4.回転走行を用いた動き
図 4.回転走行を用いた動き
図 5.往復走行を用いた動き
図 5.往復走行を用いた動き