日本ソフトウェア科学会第 33 回大会 (2016 年度) 講演論文集

目標物到達機構を持つ自律的な小型ロボットの制御を行う BDI エージェントの構築
樽井 志織

兼松 明未

新出 尚之

我々は，実世界で自律的に目的を達成するロボットの実現を目指して研究を行っている．このようなロボットの実現には，人間と同様に目的達成の意図を保持してそれを実行しようとする，BDI エージェントを用いるのが適していると考えられる．そこで我々は，安価な小型ロボットを使用して，目的達成のプランを選んで実行する BDI エー
ジェントを実現することを目指し，そのために必要な，プラン内で基本行為を行うためのライブラリの構築を行っている．本論文ではその 1 つとして，ロボットが目標物に到達するという行為を行う機能を学習によって実現することについて述べ，また，BDI エージェントがこの機能をプラン内で用いることによって，いくつかの経由地を経て最終的に行きたい場所に到達するという目的を達成する例を示す．

きていなかった．この機能は，実世界で活動するには1 はじめに必要とされる機会が多いと考えられる．

近年，機械学習技術の発達につれて，ロボットに人

そこで本研究では，ロボットが画像認識を行い，学間の持つ様々なスキルを習得させ，実世界で活用す習の結果を利用して目標物を識別し，その目標物を探るという可能性が広がってきている．しかし，ロボッして接近するといった行動を取るための機能を実現

トが何らかの目的を持ち，それを達成するためには，し，これを基本行為として目的達成のためにプラン内個々のスキルを基本行為として獲得するとともに，そで用いることを容易にするようなライブラリとしてれらの基本行為を，目的を達成するための手段として構築した．

周囲の環境に応じて適切に選んで実行する能力が必要となる．そこで我々は，機械学習によって獲得した

2 学習機能能力を用いて実世界で行動するエージェントの構築を

1 節で述べたように，目標物を認識するためのラ試みている．

イブラリを構築するにあたって，学習機能を利用し先行研究 [4] [6] では，自律的に行動するエージェンた．本研究で使用するロボットとして，実験の再現をトを構築する足掛かりとして，安価なロボットを対象行いやすい安価な小型ロボットを想定しているため，に，ロボットが活動する環境に動的に適応した移動能使用するライブラリに関しても利用のしやすさを重力を獲得できるよう，ロボットの車輪の部分をコント視し，機能を作成する際に使用するライブラリにはロールするモーターの動作を機械学習を利用して調OpenCV を使用した．また，言語については先行研整し，一定の距離あるいは一定の方向に移動するとい究に合わせて Python を使用している．これの詳細にう基本行為を実現できるライブラリの構築を行った．

ついては三節にて述べる．

しかし，何らかの目標物に到達する機能はまだ実現で本研究ではこの OpenCV がサポートしている学習機能の 1 つである traincascade を使用し学習を行っ

Developing BDI agent for controlling autonomous
small robot with ability to reach target object.
Shiori Tarui, Akemi Kanematsu, Naoyuki Nide, 奈良女子大学人間文化研究科, Nara Women’s University.

た．目標物の写った画像である正解画像と目標物の写っていない非正解画像を収集し，正解画像内の目標物が存在する座標と個数を traincascade へ与える．

学習の方法は Haar-Like 特徴・LBP 特徴・HOG 特徴

3. 2 NXT Python の拡張の 3 つから選択することが可能で，今回は Haar-Like

NXT を制御するためのライブラリはいくつか存

特徴を選択した．そして学習した結果である cascade

在している．我々は，メモリ管理が不要であること，ファイルを小型ロボットの制御プログラムで読み込GUI の設計が容易であることなどをはじめ，開発がみ，目標物の認識を行うことが可能になる．

容易であることを考慮し，開発言語として Python を選択したため，Python を使用したライブラリである

3 小型ロボットの制御

NXT Python を選択した．しかしこのライブラリは，本節では研究にて使用した小型ロボットについて述

モーターの回転数を直接制御するといった下位レベべる．

ルの制御命令が基になっており，複雑な行動をロボットに行わせようとすると，下位レベルの制御命令を

3. 1 小型ロボットについて

いくつも組み合わせてプログラムを記述する必要が実験に使用するロボットには教育用 LEGO Mind-あった．このようにプログラムを記述すると，上位レ

storms NXT（以下 NXT と記載） [2] を採用した．安ベルの制御命令でプログラムを記述するよりもプロ価なロボットを使用することで，使える機会を増やす

グラムが長くなり，記述ミスが増加してしまうといっとともに，実験の再現を行いやすくするためである．

たことや，改良を行い辛いといった欠点となる．このまた，従来研究で得られていた既存ライブラリの開欠点を改善するため，先行研究 [5] ではライブラリの発に NXT を用いていたことからの継続性も考慮して拡張が行われた．この拡張されたライブラリは NXTいる．

Python+と名前が付けられ，下位レベルの制御命令NXT は LEGO 社から販売されていたロボットで，を組み合わせて作成された上位レベルの制御命令を頭脳の役割を果たしているインテリジェントブロック使用することや，構築された学習機能によって環境やにさまざまな形や機能が備わったブロックを組み合わロボット毎にモーターのパワーの大きさを学習するこせて，自由にロボットの製作を行う事ができる．インとなどが可能である．また，プログラミングに慣れなテリジェントブロックには出力ポートが 3 つ，入力い者であってもロボットの操作が行えるように，スラポートが 4 つ存在していて，センサーやモーターのイダやボタンで視覚的にロボットのポートやモーター機能が備わっているブロックを接続することで，コン出力の大きさなどの設定を行うことができる GUI もピュータから指示を送りロボットの操作を行ったり，備えている．

ロボットが感知した環境の情報をコンピュータで受け取ったりする．また NXT の制御プログラムは，USBの接続または Bluetooth の通信でコンピュータから転送することが可能であり，本研究では USB による通信によって NXT の操作を行った．

3. 3 拡張ライブラリと ROS によるロボットの制御
自律的に目標を達成するエージェントの構築にあたり，ロボットの制御部の開発を容易にするため，本研

なお本研究のロボットでは，NXT のインテリジェ

究ではロボット開発用のフレームワークである ROS

ントブロックにロボットの移動のためのモーターを左（Robot Operating System） [3] を使用して，NXT右 1 つずつで計 2 つ接続している．また，NXT のセPython+を利用するエージェントの構築に取り組ん

ンサーとは別にカメラをロボットに装着し，それをコだ．ROS はオープンソースで提供されているロボッ

ンピュータへ接続してロボットの目標物の認識を行っ

ト製作のためのオペレーティングシステムで，構築している．

たプログラムの再利用を支援することを目的としてる．ROS では，ソフトウェアの構造の一単位であるパッケージが存在し，その中のライブラリの実行ファイルなどをノードと呼んでいて，このノード同士がROS クライアントライブラリによって通信を行うこジェント側の制御プログラムを jason フォルダ，小とによって，異なるノードがお互いにやりとりしなが型ロボット側の制御プログラムを scripts フォルダとら協調して動作を行う．これにより，ロボットの各機し，jason ros という名前の ROS パッケージを作成能を独立したプログラムとして作成して，それらを結した．なおこの scripts フォルダは ROS の実行可能合することによる開発を可能としている．

スクリプトを格納する scripts フォルダと同一のもの

こ の ROS を 使った エ ー ジェン ト 部 と NXTである．jason フォルダ内には，BDI エージェントのPython+の仲介および実装については 5 節にて述

環境プログラムである mas2j ファイルとゴール・プべる．

ランのプログラムである asl ファイルがあり，これらは Jason によって用いられる．scripts フォルダには

4 BDI エージェントの構築

主なプログラムとして，Jason と通信を行うプログ

自律的に目的を達成する小型ロボットの自律エーラムである tcp と，目標物の検出を行うプログラム

ジェント構築にあたって，ロボットを制御する側のラである haar like，そして NXT の制御・通信を行う

イブラリとは異なり，よりエージェントの構築に適しプログラムである nxt の 3 つが格納されている．こたプラットフォームである Jason [1] を使用した．これらは ROS でのノードにあたり，パッケージである

れは BDI エージェント構築のためのプログラミング

jason ros を動かせば 3 つのノードが動きだし，3 節

言語である AgentSpeak のインタプリタである．BDI

後半で述べたよう動作を行う．これら 3 つのノード

エージェントとは Belief（信念），Desire（願望），は ROS クライアントライブラリによって通信を行う

Intention（意図）の 3 つの心理状態を使って行動のが，エージェント側のプログラムとはクライアントラ決定を行うエージェントである．エージェントはまイブラリで通信を行わないので，ロボット側の通信はず，信念と願望から目標を導きだし，この目標を達成ノードのうちの一つが TCP を介して通信を行っていさせる手段であるプランを選択してこれを意図とする．
（図 1）

る．次にこの意図つまり手段を実行して，実行後のJason と ROS が起動されると，まず nxt ノードがエージェント外部の変化を知覚し，その知覚をもとにNXT と ROS の通信を行う．NXT と通信が可能であして再び信念と願望から目標を導き出す．このサイクれば接続した後，この情報を tcp ノードへと送信し，ルによって目的を達成するのが BDI エージェントでこれを受け取った tcp ノードはエージェント側へと状ある．Jason はこの AgentSpeak を拡張した言語のイ況を伝える．接続が完了すると，次にエージェント側ンタプリタであり，Prolog に似た形でエージェントから到達すべき目標物の情報が tcp ノードに渡されが目的を達成するためのプランを記述する．さらに，る．これが haar like に伝わると，haar like はまず目

エージェントが置かれている外部環境を表すプログ

標物の cascade ファイルが存在しているかどうかをラムを Java で実装すれば，環境とエージェントが相確認し，これが確認できれば tcp ノードを通してエー互作用することで知覚を得たり行為を実行したりすジェントにファイルの有無が伝えられる．ファイルがることが可能となる．われわれはこれを用いて，エー存在し，目標物の認識が可能な場合，haar like と nxtジェントが我々のライブラリで実現される基本行為をは目標物の認識，出来ない場合は捜索などを行い，目プラン内で用いることを可能とし，プランをエージェ

標物に対して何らかの行動を取ることが出来る．なおントが選択することにより，ロボットが環境に応じて本研究では，目標物を認識した後一定距離まで接近柔軟な行動をとることを可能とする。

するという行動を目標としてプログラムを構築した．

NXT が設定された目標を達成し，または達成が不可

5 実装

能であることが認識された場合，この情報がまた tcp

3 節にて述べた小型ロボットを制御する機能を，4ノードを介してエージェントに伝えられ，伝えられた節にて述べた BDI エージェントにて制御する．エー

情報を基にエージェントの環境が更新され，更新されライブラリ
ROS

Jason
tcp

BDIエージェント

環境

haar_like

nxt

TCP通信

Bluetooth通信
NXT

ノード

図1

Jason および ROS による実装た環境から次の目標が設定される．

6. 1. 1 条件 1
NXT の視界内に目標物を設置した場合，初めから

6 検証

目標物を認識しているので，NXT は目標物を捜索す

6. 1 検証内容ることはなく，認識した目標物へと接近した．

構築したエージェントが目標物に対し，自律的な行

6. 1. 2 条件 2

動を行うことが可能であるか，実際に目標物と，達成

NXT の視界外に目標物を設置した場合，初めは目すべき目的を設定して検証を行った．目標物は市販の標物を認識できないため，まず回転の動作で周囲を熊のぬいぐるみ，カエルのぬいぐるみなどを設定し，確認して，目標物を捜索する行動から開始する．その目標物が写った正解画像と目標物が写っていない不後，視界の外に置かれていた目標物を発見することに正解画像を各 2000 枚程度収集した．前述の通り学習成功し，目標物へと接近した．には Haar-Like 特徴量を使用し，あらかじめ cascade

6. 1. 3 条件 3ファイルの作成を行った．また，エージェントの達成

上記の 1 と 2 の目標物に加えて，新たに 1 つ目標すべき目的には，認識させたぬいぐるみを捜索，認識物を追加した．まずエージェントは 1 つ目の目標物

し，距離が離れている場合には一定距離まで接近するへの接近を達成すべき目標とし，NXT に信号を送る．という行動を設定した．なお，認識させる目標物は複NXT は 1 つ目の目標物が周囲に存在しているかどう数設定することも可能で，この場合 1 番目に指定されかを確認し，目標物を認識した後に 1 つ目の目標物にた目標物に接近した後，そこから 2 番目に指定され接近した．1 つ目の目標を達成すれば，次はエージェた目標物を捜索して接近することで目的達成となる．

ントの指示を受けて 2 つ目の目標物の捜索を開始す

まず，障害物のない空間に NXT と目標物であるぬる．1 つ目と同じく周囲を確認し，2 つ目の目標物をいぐるみを設置する．条件を 1．目標物は 1 つで視界発見してから問題なく接近することが出来た．に入っている場合，2．空間に存在しているが視界に入っていない場合，3．目標物が 2 つでどちらも空間に存在している場合，の 3 つの条件に分けて検証を行った．
また他に目標物の認識率に関する実験も行った．この実験の結果については発表時に述べる．

7 まとめ
本研究において構築された BDI エージェントは，達成すべき目的と外部の環境を考慮し，あらかじめ記述されているプランライブラリから適切な手段を選んで，自律的に目的を達成することが出来た．今回達成すべき目的には，単純に目標物に接近する事のみ

ランの拡張，学習方法の検討などを通じて，更なるラを設定したが，これをプログラマが自らの望ましいイブラリの発展を行っていく．

目的へと組み直すことにより，より有意義にエージェントを活用することが可能である．このような今後の謝辞 本研究では，奈良女子大学理学部学生学会等参加支援経費の支援を受けた．

発展として，本研究で検証した行動の他にも，1 つ目の目標物が見つからなかった場合におけるプランや，

参 考 文 献目標物捜索の際に障害物が存在していると想定した[1] H.Bordini, R., Hübner, J. F., and Wooldridge,
M.: programming multi-agent systems in AgentSpeak using Jason (Wiley Series in Agent Technology), Wiley Interscience, 2007.
[2] Lego Group: LEGO.com エデュケーションオフィ
シャルサイト, http://education.lego.com/.
[3] Open Source Robotics Foundation: ROS.org,http://www.ros.org/.
[4] 江川鈴菜: 強化学習による環境別のロボットの基本行
為の獲得について, 2014 年度卒業論文, 奈良女子大学理学部情報科学科, 2015.
[5] 小島侑子: 小型ロボット制御のための汎用ライブラリの構築, 2011 年度修士論文, 奈良女子大学大学院人間文化研究科, 2012.
[6] 樽井志織: 小型ロボット制御のための汎用ライブラリの拡張, 2014 年度卒業論文, 奈良女子大学理学部情報科学科, 2015.

プランなどの構築が挙げられる．また，本研究では機械学習に Haar-Like 特徴量を収集する方法を使用したが，他の特徴量を使用してエージェント構築を行うことや，他の学習方法を導入することで，より効率よく自律的に目的を達成するエージェントを構築出来る可能性も挙げられる．
また本研究の課題として，エージェントを稼働させるコンピュータによってはエージェントのロボット制御の指示と目標物の認識のタイミングが合わず，NXT の動作が想定とずれてしまうといった問題点などが存在する．今後これらの課題を解決し，新たなプ