企画番号：１
企画タイトル：強化学習の実践（ロボカップへの出場）

プロジェクトリサーチ活動報告書～強化学習の実践～

2022/11/01
No.1
Y200301 安田尚平

Y200244 小林陸人

Y200226 柏村峻

Y200278 濱田崇志

Y200260 谷水周平

概要・目的
本プロジェクトの目的は 2 つある。Robot Operating System(ROS)を勉強し、活用能力を身につけ、ロボットを思うように制御できるようになることと、ロボットの「経路探索」へ強化学習を適用することを検討し、強化学習に関する知識と活用能力を身につけると共に，大会への出場を目指すことである。
・計画
６月：ROS と強化学習について勉強し、どのようにロボットを動かしているのか、ロボットを動かすためにはなにを実装すればよいかをメンバー全員が理解する。また、大会ではシミュレーション環境で競技が行われるため，それらの環境を構築する。
７月：ロボットをシミュレータ上で大会において出題される課題をこなせる状態にする。
８月、9 月：強化学習のプログラムをシミュレータ上のロボットに実装できるか検討し、10 月に開催される大会に出場できる状態にする。
10 月：10 月 24、25 日に開催されるロボカップジャパンオープン 2022 @ホームシミュレーション
OPL への最終調整を行い、出場する。
・調査方法
ROS や強化学習の必要な基礎知識については、書籍を読むことによる勉強と、可能であれば、アドバイザーの先生によるゼミを通して勉強することによって身に付ける。基礎知識の学習と並行して、大会において実行するためのプログラムを作成する。プログラムは「画像処理」、「アーム制御」、「自然言語処理」、「経路探索」の４つのパートによって構成する。「経路探索」のプログラムについては、実世界を想定すると、家庭の床には様々な障害物が落ちている可能性があり、ロボットはそれを避けて進む必要がある。つまり、シミュレータ上でも、ロボットが障害物を避けるように設計する必要があるため、強化学習手法を用いることによって実現する。
・活動経過
まず ROS や強化学習の知識を身につけることと大会ルール、システムを確認及び理解をチームで行うことから始めた。その際、作業過程で自分たちのシステムを作るために必要な知識であるもの（画像認識、経路探索、自然言語処理など）について、チームで共有し、各々で勉強を 7 月まで行った。
8 月からは大会システム「経路探索」・「自然言語処理」の部分の実装を始め、10 月からは、大会システム作成の続きや本番用の大会環境の構築、ポスター作成、報告書作成を行った。
・成果と結果
強化学習の経路計画への適応において、勉強は行ったものの実装までには至らなかった。
2022 年 10 月 24、25 日に開催されたロボカップジャパンオープン 2022 @ホームシミュレーショ
ン OPL に出場した。結果は 6 チーム中 5 位タイであった。
1

報告書
・目的
本プロジェクトの目的は 2 つある。１つ目は、Robot Operating System(ROS)を勉強し、活用能力を身につけ、ロボットを思うように制御できるようになることである。２つ目は、ロボカッ
プジャパンオープン 2022 @ホームシミュレーション OPL において出題される３つの課題（Handyman タスク、InteractiveCleanup タスク、HumanNavigation タスク）共通で必要な処理であるロボットの「経路探索」へ強化学習を適用することを検討し，それぞれのタスクに応じた経路構築方法に学習を導入することを目指し、強化学習に関する知識と活用能力を身につけると共に，大会への出場を目指すことである。

・計画
６月：ROS と強化学習について勉強し、どのようにロボットを動かしているのか、ロボットを動かすためにはなにを実装すればよいかをメンバー全員が理解する。また、大会ではシミュレーション環境で競技が行われるため、それらの環境を構築する。
７月：ロボットをシミュレータ上で大会において出題される課題をこなせる状態にする。
８、９月：強化学習のプログラムをシミュレータ上のロボットに実装できるか検討し、10 月に開催される大会に出場できる状態にする。
10 月：10 月 24、25 日に開催されるロボカップジャパンオープン 2022 @ホームシミュレーシ
ョン OPL への最終調整を行い、大会に出場する。

・調査方法：ROS や強化学習の必要な基礎知識については、書籍を読むことによる勉強と、可能であれば、アドバイザーの先生によるゼミを通して勉強することによって身に付ける。基礎知識の学習について、ROS は基礎理論を理解できるようになり、強化学習は「経路探索」を強化学習手法によってロボットに学習させられるようになるまで勉強する。基礎知識の学習と並行して、大会において実行するためのプログラムを作成する。プログラムは「画像処理」、「アーム制御」、「自然言語処理」、「経路探索」の４つのパートによって構成する。「画像処理」、「アーム制御」、「自然言語処理」のプログラムについては、既存のライブラリを使用する。
「経路探索」のプログラムについては、実世界を想定すると、家庭の床には様々な障害物が落ちている可能性があり、ロボットはそれを避けて進む必要がある。つまり、シミュレータ上でも、ロボットが障害物を避けるように設計する必要があるため、強化学習手法を用いることによって実現する。

2

・活動経過：・チーム全体の活動経過
まず ROS や強化学習の知識を身につけることと大会ルール、システムを確認及び理解をチームで行うことから始めた。その際、作業過程で自分たちのシステムを作るために必要な知識であるもの（画像認識、経路探索、自然言語処理など）について、チームで共有し、各々で勉強を 7 月まで行った。
8 月からは大会システム「経路探索」と「自然言語処理」の部分の実装を始め、10 月から
は、大会システム作成の続きや本番用の大会環境の構築、ポスター作成、報告書作成を行い、10 月 24、25 日に大会に出場した。

・個人の活動内容（安田 尚平）：Robot Operating System (ROS) の勉強をした。ROS の勉強のために、書籍[1]に掲載されているプログラムを実際に動かした。書籍から学習した内容は、ROS の基本的な概念、基本的な機能である publish、subscribe、service、actionlib である。tf 変換の概念や navigation、環境地図作成については、RoboCup 大会用システムを作成する時に web サイトなどから学んだ。
強化学習の勉強のために書籍を読んだ。行動選択手法として、ε-greedy 法と soft-max 法、強化学習手法として、SARSA、Q-Learning などの代表的な手法を理解した。また、逆強化学習や ProfitSharing 法など発展的な手法についてもその概要を勉強した。強化学習は勉強したものの、ロボット制御に応用することは出来なかった。
大会用プログラムを作成するために、大会の競技環境を整える必要があった。競技環境の構築途中で、1 つのエラーに引っかかり、半月程エラーの原因を探る作業をしていた。結局、エラーの原因は ROS のバージョンと Unity のバージョンの不一致であることが分かり、解決することが出来た。
大会用プログラムを作成するために、大会運営側から公開されている ROS パッケージの内容を理解することから始めた。その後、自分自身でパッケージのメインとなる node 用プ
ログラムを作成した。メイン node 用プログラムは、Unity 側との通信と、navigation プログラムの呼び出しを担っている。また、今回は画像認識やアーム制御には着手出来なかったが、それらのプログラム呼び出しも同様に出来ると考えられる。navigation パッケージとして、move_base と emcl を用いたが、最後まで自己位置推定が出来ず、自律移動は出来なかった。
大会当日は、私が ROS のプログラムを実行した。変数の値として予想していない文字列が Unity 側から送られてきたことが原因で、環境地図を HSR に与えることが出来なかった。
大会は 2 日間の日程で行われた。最終日に表彰式があり、出席した。
3（小林 陸人）：チームの中で、命令文章から目的地の要素を抽出して配信するプログラム作成、報告書の作成、大会用の環境構築の中における通信関係の主導、その他の大会環境構築、経路探索のシステム実装の補助を担った。
システム作成に関して取り組んだものは 2 つある。1 つ目は Handyman タスクでロボットへの命令文を要素分解し、目的地の場所を抽出して、その位置情報を配信するプログラムを作成した。作成時、大会運営側が公開している Robot Operating System (ROS)と Unity のシステムの内容を理解することから始め、Unity 側と ROS 側での情報をやりとりする必要があり、Unity と ROS 間で自分が欲しい情報をどのように受け渡しするかという点に苦労した。
2 つ目は環境地図作成機能の修正である。既存に存在している slam-gmapping のパッケージのパラメータを大会用ロボットに合うように、修正を行った。
大会環境の構築の中における通信関係において具体的には、大会で使用する AWS を使用した仮想マシンを行った。この際、研究室外から研究室のグローバル IP を使用するために、植村先生に手伝っていただきながら、VPN の設定を行った。
その他の大会環境構築は、Unity と ROS に大会に必要となるパッケージを導入した。
この作業において、ROS や Unity から始めた。ROS に関しては、書籍[1]によるロボットアプ
リケーション開発からは基礎知識、Web 上からは経路計画、環境地図作成の方法を実際に稼働させながら学習した。Unity に関しては ROS に関連することのみ Web 上から学習した。
（柏村 峻）：
ロボットを動かすために Robot Operating System (ROS) の勉強をした。ROS の勉強のために、書籍[1]に掲載されているプログラムを実際に動かした。大会で使用する AWS について学ぶため AWS のアカウントを作成し、公式のチュートリアルを視聴して実際に実行した。実際に使用するために AWS 上に ubuntu をインストールし動かした。競技内で HSR を動かすた
めに、実際に競技で使用される仮想空間の環境地図を作成した。プロジェクトリサーチ会計担当として必要な物品を調べ補助申請用の書類と決算書類を作成した。龍谷祭内で行われるポスターセッション用のポスターを作成した。大会に参加し、その後他チームの観戦をした。
（濱田 崇志）：ロボットの動かし方を学ぶために、Robot Operating System(ROS)の学習をした。ROS の基本的操作や具体的な概念を書籍[1]、web サイトから学び、実際に掲載されているプログラ
ムを仮想マシン(VMware）上に入れた Ubuntu の中の ROS で実行した。公式サイトのチュートリアルを参考に PC に大会環境で使用する Unity をインストールし、Unity と Ubuntu を競技環境が行えるように構築することで、大会用のサンプルプログラムを動かした。大会運営
主催のロボカップジャパンオープン 2022 @ホームシミュレーション OPL 講習会に参加し、大会の概要説明と他に参加しているチームの開発の工夫点を学んだ。10 月 24、25 日に開催された大会に参加し、他チームの試合と表彰式を観戦した。

4

（谷水周平）：ロボットを動かす方法を学ぶために、Robot Operating System (ROS) の勉強をした。ROSの概念や操作を、書籍[1][2]や web サイトから学んだ。プログラムを、VMware (仮想マシン) 上の Ubuntu 内の ROS で実行した。画像処理のプログラムを書籍[3]や web サイトなどから学んだ。大会では他チームとの試合と表彰式を観戦した。
[1] Morgan Quigley, Brian Gerkey, William D. Smart樹, 由谷 哲夫

著, 河田 卓志

監訳, 松田 晃一, 福地 正

訳, プログラミング ROS :Python によるロボットアプリケーション開発, オライリー・ジャパン, 2017[2]小倉崇,ROS ではじめるロボットプログラミング : フリーのロボット用「フレームワーク」,
工学社, 2015[3] Adrian Kaehler, Gary Bradsk,詳解 OpenCV3 : コンピュータビジョンライブラリを使った画像処理・認識,オライリー・ジャパン, 2018

・成果・結果2022 年 10 月 24、25 日に開催されたロボカップジャパンオープン 2022 @ホームシミュレー
ション OPL に出場した、結果は 6 チーム中 5 位タイだった。
最終的に私たちの成果としては、Handyman タスクにおける送られてきた命令から目的地の座標をロボットに与えるための必要な複数のプログラムを作成、目的地までの経路計画を行うのに必要なパッケージである move_base や emcl の実装を行った。
大会本番では、複数ある Unity のレイアウトの環境地図から正しい環境地図を選択しロボットに与えるというプログラムにおいて、変数の値として予想していない文字列が Unity 側から送られてきたことが原因で、環境地図をロボットに与えることが出来なかったため、自己位置推定が出来ず、自律移動は出来なかった。
今回のプロジェクトリサーチの活動は結果こそ振るわなかったものの、活動を行った結果、自分たちの興味があるものについての学習を行うことが出来た点、大会に出場するといった得がたい経験をした点、研究を行うときの計画を立てることの重要さや研究活動の困難さの一端に触れることができたという点で自分たちにとって大きな糧になったと感じている。
今回の活動で、解決に至らなかった問題の解消や作成途中のプログラムの完成、そして触れることが出来なかった画像処理、アーム制御について次回の大会に向け活動していきたい。

5