自律移動ロボット（AMR）のOpen-RMFへの対応方法

26st/Sep/2023
グエン

ジュイヒン

Panasonic Asia Pacific Co. Ltd目次
RMFの開発された背景
RMFの機能RMFを使うにあたって

Robotics Middleware Framework (RMF)のコンセプト
全ての異業異社のAMRを一つの集中管理システムでコントロールし、施設内の全てのインフラ連携を可能にする
UI

各ロボットのインフラ連携
Lift

Autonomous Door

各ロボットのUIを統合

第２レイヤー

第１レイヤーAGV System by
Robot Vendor A

AGV System by
Robot Vendor B
各ロボットの交通整理

AGV System by
Robot Vendor C©️ Panasonic Asia Pacific Pte. Ltd. 2022

3

シンガポール政府によるRMFの開発ロードマップ*2*2 : This roadmap was provided by Advanced Remanufacturing and Technology Centre
https://www.a-star.edu.sg/artc©️ Panasonic Asia Pacific Pte. Ltd. 2022

4

シンガポールにおけるロボット導入マップ©️ Panasonic Asia Pacific Pte. Ltd. 2022

5

RMFの必要性
Changi General Hospitalでのケース•

各ロボットは各々フリートマネジメントシステムを使用。
⇒各ロボットの現在位置は共有化されていないため、ロボットの交通渋滞が発生する。

ロボットの交通渋滞⇒ 各ロボットはそれぞれ別々のエレベーターを占有。
各社のロボットは互いのエレベーターには乗れない。
新たに導入したロボットにエレベーターを割り振れないため、そのロボットはフロア間移動ができない。

ロボットの社会実装の障壁になっている
Panasonic

Swisslog

各ロボットは各専用のエレベーターを使用している*1

お掃除ロボット

お掃除ロボットは自動で階移動できず、マニュアルで移動*1 : Swisslog uses an AGV lift, and Panasonic uses a staff lift for each AGV.
©️ Panasonic Asia Pacific Pte. Ltd. 2022

6目次
RMFの開発された背景
RMFの機能RMFを使うにあたって

RMFの概要
RMFの詳細・RMFはROS2で構成されており、誰でも使用可能
RMFのソース
https://github.com/open-rmf
RMFのデモ環境
https://github.com/open-rmf/rmf_demos
評価環境の作成
https://osrf.github.io/ros2multirobotbook/traffic-editor.html
RMFのドキュメント
https://osrf.github.io/ros2multirobotbook

・実際のロボットの動き（Gazebo）

・RMFで制御されているロボットの様子（Rviz）©️ Panasonic Asia Pacific Pte. Ltd. 20228

（参考）RMFを使った３次元シュミレーション環境の作成
RMFではロボットを実際の現場に導入する前に事前に仮想環境でシュミレーションをするためのツールが用意されている※１※１:評価環境はGazebo、検証用のロボットは自前で用意する必要有
環境地図※2※2:寸法と位置関係が分かれば何でも良い
ex:CAD図、SLAMで作成した地図、 etc
専用のエディタ

シュミレーション環境©️ Panasonic Asia Pacific Pte. Ltd. 20229

（参考）RMFにおける評価環境の作成（参考）RMFを使った３次元シュミレーション環境の作成（例）シンガポールの自社オフィスを模擬したシュミレーション環境
我々のオフィスでSLAMで作成した地図をベースに評価環境を作成

３時間程度で作成が可能です。 もちろん、複数階の建物 エレベーター 自動ドア も設置可能です。
©️ Panasonic Asia Pacific Pte. Ltd. 202210

（参考）RMFを使った３次元シュミレーション環境方法
https://www.jmfrri.gr.jp/document/library/4319.html

Coming soon

©️ Panasonic Asia Pacific Pte. Ltd. 2022

11

RMFの特徴である３つの対応レベル
RMFの特徴である３つの対応レベルRMFでは様々のロボットを想定し、ロボットの対応レベルを以下の３つの分類し、それぞれのレベルに応じて制御方法を変更している
対応レベル
高注意！！
RMFでインフラ連携させたい場合はFull Control 一択！！

“Full control” : robot waypointcontrol

中低＊＊ロボット以外の障害物になりうるものも含む

無対応”Full control”: RMF側でロボットの経路生成を行う。ロボットは、RMFから経路を与えられた際に、与えられた経路に沿って目的地まで自律移動を行う。
”Traffic Light”: ロボット自身が経路生成を行い、目的地まで自律移動を行う。しかし、ロボットはRMFから“一時停止”と“移動再開”の指示だけは受ける。
また、常時RMFに走行予定の経路をRMFに通知する義務がある。
”Read only”: ロボット自身が経路生成を行い、目的地まで自律移動を行う。
RMFの指示には何も従わない。

©️ Panasonic Asia Pacific Pte. Ltd. 202212

（参考）ロボット以外の障害物とは？
RMFにおける自律移動しない移動障害物の取り扱い方
・RMFでは病院内でベットや運搬用のコンテナがロボットの進路を塞ぐ可能性も考慮し、これらの機器にBeaconを取り付けて位置を管理する機能がある。
・ロボットの経路生成時にはこれらの障害物も考慮されて経路が生成される。

©️ Panasonic Asia Pacific Pte. Ltd. 2022

13

RMFの複数台制御の方法
AMRのすれ違い制御の方法
RMFでは各ロボットの経路情報をもとに、ロボット同士の衝突を事前に検出し、衝突を回避する経路を再生して各ロボットをコントロールする。
注意！！：良く勘違いされるが、同じ廊内ですれ違いを制御するわけでは無い、同じ廊下にAMRが２台来ないようにする（例）
各ロボットA、Bがそれぞれ地点AからBへ、地点BからAに同時に移動する時、各ロボットが一番最短のコースで経路まで行く経路が生成される。しかし、左の様に経路がバッティングしてしまう。

地点A
ロボットA

ロボットB

地点B

そこで、RMFはいずれか一方のロボットの経路（ここではロボットBの経路）をバッティング（通過時間も考慮して）しないように経路を再生成しロボットBに指示を出す。
退避する経路が生成できない場合は、衝突しない位置まで一度退避する。

©️ Panasonic Asia Pacific Pte. Ltd. 2022

14

RMFの経路設定方法
RMF内の経路はTraffic editorで簡単に設定が可能
ロボットが通過するWayPoint・ターゲットポイント・走行レーン・自動ドア・エレベーターを設定する
評価環境の作成

https://osrf.github.io/ros2multirobotbook/traffic-editor.html©️ Panasonic Asia Pacific Pte. Ltd. 2022

15

RMF制御時の各レーンでの速度制御
RMFで各レーンごとに最高速度を設定できる事が可能
ただし、データのみが配信される状態なので、実際に利用する場合はロボット側の対応が必須

Setting of Lane©️ Panasonic Asia Pacific Pte. Ltd. 2022

16

RMF制御時のAMRの各ポイントでの角度制御
AMRの各ポイントでの目標角度は過去の経路の角度に依存
各ポイントで任意の角度を設定不能©️ Panasonic Asia Pacific Pte. Ltd. 2022

17

RMF制御時の自動ドア、エレベーター連携
RMF制御時はRMFが各AMRのインフラ連携のタイミングを司る
各AMRがインフラ直前直後のWaypointに到着時にRMFがインフラを制御します
エレベーター

ドア開位置
エレベーター
走行経路

呼出位置・リリース位置

ドア閉位置
自動ドア

©️ Panasonic Asia Pacific Pte. Ltd. 2022

18

RMFを使った異社異種ロボット・自動ドア・エレベーター連携のデモ©️ Panasonic Asia Pacific Pte. Ltd. 2022

19

19

RMFの充電動作への対応
RMFの目的地の種類でドッキングポイントとゆう設定があり、目的地到着後特定の動作を開始する事ができるようにタスクを割り当てることが可能©️ Panasonic Asia Pacific Pte. Ltd. 2022

20

目次
RMFの開発された背景
RMFの機能RMFを使うにあたって

RMFを用いたAMRの制御システム構成（例）自動充電器

エレベーター

自動ドア

SIerが用意
AMRメーカーが用意

InternetInternet

WebSocket

Server PC (Server room)

Lift adapter

Door adapter

メンテナンススタッフ用UI

Fleet adapter (Server)
Internet

Staff UI
スタッフ端末WebSocket
Maintainer UI(RMF-Web)
管理端末©️ Panasonic Asia Pacific Pte. Ltd. 202222

Fleet adapterの作成方法
Fleet adapterは以下の２つのサンプルを使う事で簡単に作成が可能
Fleer Adapterのひな形を使う場合

Free Fleet を使う場合
ServerServerRMF Core
ROS2 Topic 通信

RMF Core
ROS2 Topic 通信

Fleet Adapter

Fleet Adapter Lib

Fleet Adapter Lib

Fleet Adapter

ROS2 Topic 通信

API Function

Free Fleet (Server)
DDS 通信Robot

ROSに関係無い！

API 通信Free Fleet (client)
Topic 通信

（ROS/ROS2両方用意されている）

Robot

API Server
独自 通信

Navigation1/2 (Move base)

独自 Navigation SW

メリット

デメリット

メリット

デメリット

ROSで動作するロボットであれば、すぐに動作可能

DDS通信の縛りがある

独自の通信方式が採用可能

APIを自分で用意する必要がある

ROSで動作しないロボットはカスタマイズが必要

ROSを採用してないロボットでも動作可能Free Fleet: https://github.com/openrmf/rmf_ros2/tree/main/rmf_fleet_adapter/src/full_control

C++: https://github.com/open-rmf/rmf_ros2/tree/main/rmf_fleet_adapter
Python: https://github.com/open-rmf/rmf_ros2/tree/main/rmf_fleet_adapter_python©️ Panasonic Asia Pacific Pte. Ltd. 202223

３つの対応レベルに応じたAPIAMRのRMFのインターフェース
・RMFでは基本的に３つのリクエストと、１つの状態通知を要しており、各対応レベル毎に必要なAPIを用いる

AMR system
From RMF to AMR Fleet Manager•ModeRequest--- pause/resume motion•DestinationRequest--- set destination•PathRequest--- set complete paths
From AMR Fleet Manager to RMF•FleetState--- state reporting”Full control”: PathRequest と FleetState”Traffic Light”: ModeRequest とFleetState”Read only”: FleetState©️ Panasonic Asia Pacific Pte. Ltd. 2022

24

RMFの状態通知の特徴
ステータス情報（FleetState）のメッセージタイプ
・RMFの中で各ロボットは、目的地までの経路情報を求められる
理由：①：自動ドアやエレベーターに搭乗する意思は、経路情報から汲み取るため②：各ロボットの経路を事前に把握し、それぞれのロボットに対して最適な経路を再設計するため

RobotState message:
https://github.com/open-rmf/rmf_internal_msgs/blob/main/rmf_fleet_msgs/msg/RobotState.msg
Datatype

Data NamestringStringstringfloat32
Location
Location[]
RobotMode

name
model
task_idbattery_percent
location
pathmode

Data to be Sent
HOSPI’s ID
HOSPI
Task ID
Battery level
HOSPI’s current location
List of waypoints for HOSPIHOSPI’s status

Location message:
builtin_interfaces/Time
Float32
float32
float32
stringtunknown

X

X coordinate

Y

Y coordinate

Yaw

Yaw angle (radians)level_namelevel number©️ Panasonic Asia Pacific Pte. Ltd. 2022

25

RMFを使う前のAMR側の準備
RMFを使ってフロア間移動をする場合は、ROS Navigationにフロア切替機能を追加が必要
・実現するための代表的な方法
同一地図内でロボットの位置を移動させる

Navigation用の地図を物理的に切り替える

2F

1F

2F

1F

Point(X,Y,θ)PointB(X ,Y ,θ )B

B

B

PointA(X ,Y ,θ )Point(X,Y,θ)

A

A

A

:Map origin:Map origin

Change Floor = Change map = Republish new map topic

Change Floor = Change position = Resend initial pose again◼ Send coordinates to RMF◼ Send coordinates to RMF(X,Y,θ) => (X,Y,θ) in 1F(X,Y,θ) => (X,Y,θ) in 2F

メリット

デメリット

メリット

デメリット

地図を統合する必要なし

Mapsever の改造が必要

Mapsever の改造が必要なし

各階毎に座標変換が異なる

地図内で座標変換が１回で済む

各階の座標の統一が必要(X ,Y ,θ ) => (X,Y,θ) in 1FAAA(X ,Y ,θ ) => (X,Y,θ) in 2F
B

B

B

地図の統合が必要©️ Panasonic Asia Pacific Pte. Ltd. 2022

26

RMFを使ったインフラ連携
各インフラに合わせてSIerによってノードのカスタマイズが必要

ドア

PLCを使ったIO制御？
WebAPIを使った制御？
無線IOユニット使った制御？

リフト

PLCを使ったIO制御？
WebAPIを使った制御？
©️ Panasonic Asia Pacific Pte. Ltd. 2022

27

RMFとROS2 Navigationを用いたエレベーターとの連携

28©️ Panasonic Asia Pacific Pte. Ltd. 2022

28