2025年5月31日
箱庭まつり #3 箱庭技術アップデート in 福井!
複数のソフトウェアプラットフォーム
を連携させる技術について
宮本 信彦
国立研究開発法人産業技術総合研究所
情報・人間工学領域 インテリジェントシステム研究部門
研究員
2
1. 自己紹介
2. 研究紹介
1. 最近の発表した事
2. ロボット用ミドルウェアについて
3. ミドルウェア相互運用機能
4. ChoreonoidとOpenRTM-aist連携機能
3. 箱庭に求めるロボット用ミドルウェア連携機能とは?
4. 開催予定のイベントの紹介
目次
研究紹介
4
ロボット用ミドルウェアについて
• ロボットの開発にロボット用ミドルウェアが盛んに利用されており,ソフトウェアモジュール
の再利用により開発の効率化が可能
• 機能を一定の規格に基づいてソフトウェアモジュールに分割するコンポーネント指向開発
• ソフトウェアモジュールの組み合わせでシステムを構成
RTミドルウェアのコンセプトと構成例
https://openrtm.org/
ROSの構成例
:ノード :トピック
カメラ
アーム
制御
マーカー
認識
画像
データ
座標変換
マーカー
位置
手先目標
位置
5
RTミドルウェアとは?
• RT = Robot Technology cf. IT
• ≠Real-time
• 単体のロボットだけでなく、さまざまなロボット技術に基づく
機能要素をも含む (センサ、アクチュエータ, 制御スキーム、ア
ルゴリズム、etc….)
• RT-Middleware (RTM)
• RT要素のインテグレーションのためのミドルウエア
• RT-Component (RTC)
• RT-Middlewareにおけるソフトウエアの基本単位
RT-Middleware
+ + + + +
産総研版RTミドルウエア
OpenRTM-aist
6
ロボット用ミドルウエアについて
• ロボットシステム構築を効率化するための共通機
能を提供する基盤ソフトウエア
• 「ロボットOS」と呼ばれることもある
• インターフェース・プロトコルの共通化、標準化
• 例として
• モジュール化・コンポーネント化フレームワークを提供
• モジュール間の通信をサポート
• パラメータの設定、配置、起動、モジュールの複合化(結合)
機能を提供
• 抽象化により、OSや言語間連携・相互運用を実現
• 2000年ごろから開発が活発化
• 世界各国で様々なミドルウエアが開発・公開されている
7
従来のシステムでは…
Controller
Controller
software
互換性のあるインターフェース同士は接続可能
Robot Arm
Control software
Robot Arm2
8
従来のシステムでは…
ロボットによって、インターフェースは色々
互換性が無ければつながらない
Robot Arm1
Robot Arm2
Controller
software
Humanoid’s Arm
Control software
Robot Arm
Control software
Controller
9
RTミドルウエアでは…
compatible
arm interfaces
RTミドルウエアは別々に作られた
ソフトウエアモジュール同士を繋ぐ
ための共通インターフェース
を提供する
ソフトウエアの再利用性の向上
RTシステム構築が容易になる
Controller
software
Arm A
Control software
Arm B
Control software
Robot Arm1
Robot Arm2
Controller
10
ロボットソフトウェア開発の方向
コンポーネント指向開発
従来型開発
カメラ
マイク 頭・腕駆動 音声合成
ステレオビジョン 対話
音声認識
顔認識
ミドルウェア
ステレオビジョン
対話
音声認識
顔認識
カメラ
マイク 頭・腕駆動
音声合成
 様々な機能を融合的に設計
 実行時の効率は高いが、柔軟性に欠ける
 システムが複雑化してくると開発が困難に
 大規模複雑な機能の分割・統合
 開発・保守効率化(機能の再利用等)
 システムの柔軟性向上
11
RTコンポーネントの主な機能
Inactive Active
Error
アクティビティ・実行コンテキスト
ライフサイクルの管理・コアロジックの実行
共通の状態遷移
センサRTC
複合実行
制御RTC
アクチュエータRTC
エンコーダ
コンポーネント
アクチュエータ
コンポーネント
制御器
コンポーネント
1
TI s
TDs
Kp
+
-
目標値
位置
位置
トルク
データポート
• データ指向ポート
• 連続的なデータの送受信
• 動的な接続・切断
データ指向通信機能
サーボの例
• 定義可能なインターフェースを持つ
• 内部の詳細な機能にアクセス
– パラメータ取得・設定
– モード切替
– etc…
サービスポート
画像
データ
3Dデプス
データ
ステレオビジョンの例
ステレオビジョン
インターフェース
・モード設定関数
・座標系設定関数
・キャリブレーション
・etc…
サービスポート
ステレオビジョン
コンポーネント
データポート
サービス指向相互作用機能
名前
値
セット名
名前
値
セット名
複数のセットを
動作時に
切り替えて
使用可能
コンフィギュレーション
• パラメータを保持する仕組み
• いくつかのセットを保持可能
• 実行時に動的に変更可能
12
アクティビティ
• RTCには非アクティブ、アクティブ、エラーの状態があり、それぞれの状態
に応じたコールバック関数が呼ばれる仕組み
• 例えばシミュレータと連携する場合、シミュレーション開始時にRTCをア
クティブ化、終了時に非アクティブ化する必要がある
13
実行コンテキスト
• 各RTCに実装したロボット制御等の処理は、実行コンテキストにより駆動される
• 具体的には、RTCのコールバック関数が実行コンテキストにより呼ばれる
• デフォルトの設定では周期的に実行するが、シミュレーション用の実行コンテキストもある
• 通常はRTCと実行コンテキストは1対1だが、1つの実行コンテキストに複数のRTCを関連付けることで同
期実行ができる
非同期実行
同期実行
14
データポート・サービスポート
サービスポート
サービスプロバイダ
ロボットアーム制御機能共通インタフェース
• データポートは連続したデータを通信するためのポート
• サービスポートは複雑なやり取りができるポート
• 特定のタイミングで処理を実行して、その結果を取得する等
• 目標位置の設定(手先が目標位置に到達時に
処理を返す)
• パラメータの設定、取得
15
既存のロボット用ミドルウェア
• MOOS
• Urbi
• Miro
• MCA2
• OPEN-R
• Carmen
• OpenRDK
• OROCOS
• CCA
• Orca
• Microsoft Robotics Developer Studio
• RSNP
• ORiN
• OpenRTM-aist(RTミドルウェア)
• OpenRTM.NET
• RTMSafety
• ROS
• ROS2
• YARP
• Player/Stage
• MIRA
• 通信機能のみの提供から、コンポーネント開発ツールを提供するミドルウェア
もある。ORiNのように商用のミドルウェアもある。
• 対応プログラミング言語・対応OSも様々。
複数のロボット用ミドルウェアが連携する事で、より高度なシステムを開発できる
16
なぜ箱庭に興味を持ったか?
• 理由1:箱庭PDUや箱庭ブリッジでMQTTやROSとの通信機能をサポートしてお
り、似たような事をやってそう
• 理由2:今までに以下のようなChoreonoidとOpenRTM-aistを連携するプラグイ
ンや、Unity、 CoppeliaSim (V-REP)とOpenRTM-aist連携ソフトウェアの開発
を行ったが、メンテナンスもろくにできていないので、箱庭が間に入る事でど
のシミュレータでも簡単に連携できるようになってくれたら嬉しい
目標速度 センサデータ
17
異種のソフトウェアプラットフォームを連携について
• 一般的なロボット用ミドルウェアは以下のような機能を外部から使用できる
• モジュール間通信機能
• コンポーネントの管理
• その他
機能概要 対応する機能(OpenRTM-aist) 対応する機能(ROS2)
メッセージの通信(今回説明する) データポート Publisher、Subscriber
コマンドレベルの通信 サービスポート サービス
その他 アクション
機能概要 対応する機能(OpenRTM-aist) 対応する機能(ROS2)
コンポーネントの登録、一覧取得 マネージャ
ネームサービス
DDSのDiscovery機能
コンポーネントの管理・動的起動 マネージャ component_container
詳細情報取得 RTC、ポート、実行コンテキスト、
マネージャが情報を提供
機能概要 対応する機能(OpenRTM-aist) 対応する機能(ROS2)
コンポーネントの状態管理 実行コンテキスト LifecycleNode
実行同期 実行コンテキスト
外部から設定可能なパラメータ コンフィギュレーションパラメータ ros2 param
シミュレータとRTCの連携機能の紹介
19
イベント駆動
実行コンテキスト
イベント駆動
実行コンテキスト
イベント駆動
実行コンテキスト
シミュレーション用の実行コンテキスト
• シミュレーション用のイベント駆動実行コンテキストで、シミュレーション
更新時にtickコマンドを呼ぶことで同期する
• 独自の実行コンテキストの作成により、様々なシミュレータに対応可能
Choreonoid
tickコマンド tickコマンド tickコマンド
RTCのソースコードの変更は不要
で、起動時に設定で実行コンテキ
ストを変更する。
箱庭に求めるロボット用ミドルウェア連携機能とは?
21
箱庭に求めるロボット用ミドルウェア連携機能
アセット
アセット
アセット
RTC
箱庭ブリッジ
箱庭を使う事で、ロボット用ミドルウェ
アからどのシミュレータでも同じ手順で
接続できたら個人的にはうれしい
22
箱庭コンダクタ
共有メモリ
マスターデータ
箱庭のサンプルプログラム(pdu_communicationの構造)
asset_plant asset_controller
hako-cmd
PDU
共有メモリ
Robot_motor Robot_pos
hako_conductor_start関数
共有メモリ確保
アセットの登録など
シミュレーション開始
アセット一覧取得等
hako_asset_register関数
共有メモリ確保
共有メモリ読み書き
共有メモリ読み書き
23
箱庭ブリッジの構造
アセット
箱庭ブリッジ
(ShmProxy)
共有メモリ
Zenoh
箱庭ブリッジ
(ROSProxy)
Zenoh ROSノード
ROSノード
24
箱庭に求めるロボット用ミドルウェア連携機能(コンポーネントの状態管理)
hako-cmd
箱庭コンダクタ
箱庭ブリッジ
Zenoh
Query/Reply
(もしくは
gRPC?)
OpenRTM-aist
※他のロボット用ミドルウェアでも同様の構成のはず
RTC
シミュレーション
開始
アクティブ化
箱庭ブリッジ
(ShmProxy)
Zenoh
Query/Reply
(もしくはgRPC?)
25
箱庭に求めるロボット用ミドルウェア連携機能(シミュレータとの同期)
※他のロボット用ミドルウェアでも同様の構成のはず
箱庭コア
時刻管理
スケジューリング管理
箱庭ブリッジ
箱庭用
実行コンテキスト
Zenoh
Query/Reply
(もしくはgRPC?)
OpenRTM-aist
箱庭ブリッジ
Zenoh
Query/Reply
(もしくはgRPC?)
時間設定等
26
箱庭に求めるロボット用ミドルウェア連携機能(データポート・サービスポート)
※他のロボット用ミドルウェアでも同様の構成のはず
アセット
箱庭ブリッジ
(ShmProxy)
Zenoh
Query/Reply
(もしくはgRPC?)
箱庭ブリッジ
Zenoh
Query/Reply
(もしくは
gRPC?)
OpenRTM-aist
箱庭コンダクタ
RTC
データ
送信
データ
受信
サービス
提供
サービス
利用
データ
送信
データ
受信
サービス
提供
サービス
利用
もしくは、Zenoh用
通信インターフェー
スを実装して、RTC
でロードして使う構
成もある
開催予定のイベント紹介
28
開催予定のイベント紹介
RTミドルウェア講習会
• 毎年2~4回程度開催
• 6月4日(水)にROBOMECH2025のチュー
トリアルとして開催
• 募集人数:10名程度
• 対面とZoomのハイブリッド開催
• 対面の場合はやまぎん県民ホール会議室1(山形
県山形市)で参加
• RTミドルウェア初心者向けの講習会
• https://connpass.com/event/344120/
29
開催予定のイベント紹介
RTミドルウェアサマーキャンプ
• 毎年夏に1週間開催
• 今年:8月25~29日
• 募集人数:20名程度
• 参加費:無料(宿泊費除く)
• 場所:産総研つくばセンター
• 座学と実習を1週間行い、最後にそれぞれが成
果を発表
• 産総研内のさくら館に宿泊しながら夜通し?
コーディングを行う!
• 提案:この界隈の人で箱庭に興味がある人も
いるので、2日目に箱庭に詳しい人に話をして
もらえないでしょうか?(オンライン可)

More Related Content

PDF
東京工業大学「ロボット技術・ロボットミドルウェア」
PDF
OpenEL for Robot(Japanese)
PDF
131111 東工大授業「ロボット技術」資料
PDF
UnityとROSの連携について
PDF
Unity道場 ロボティクス 秋のLT祭り 2021
PDF
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
PPTX
2015 0227 OSC-Spring Tokyo NETMF
PDF
ROSによる今後のロボティクスのあり方
東京工業大学「ロボット技術・ロボットミドルウェア」
OpenEL for Robot(Japanese)
131111 東工大授業「ロボット技術」資料
UnityとROSの連携について
Unity道場 ロボティクス 秋のLT祭り 2021
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
2015 0227 OSC-Spring Tokyo NETMF
ROSによる今後のロボティクスのあり方

Similar to 箱庭祭#3 発表資料 公開用(複数のソフトウェアプラットフォームを連携させる技術について) (20)

PDF
オルターブースが実践する .NET Core “ガチ” 開発
PDF
160705-w01 RTミドルウエア講習会・早稲田大
PDF
ロボットサービス開発の現場から
PDF
Io t,ai時代のソフトウェア
PDF
201110 02 Polytech center 2
PDF
05.日本マイクロソフト(株)_発表資料
PDF
第1回HPC OPS研究会 Opening Remarks
PDF
Portable RT-Middleware environment on a USB memory for the robot programing ...
PDF
AIエージェント勉強会~マイクロソフトの最新技術発表を受けて~ (2025/07)
PDF
ソニーのディープラーニングツールで簡単エッジコンピューティング
PDF
130522 00
PPTX
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
PPTX
【講演資料】ハード+ソフトの協調アジャイル開発
PDF
Cytoscapeの現状とCyberinfrastructure
PDF
BitVisor Summit 3 「BitVisorの現状と今後」
PPTX
2024_09_06_JAWS-UG山梨 【第1回】勉強会_AWS Amplify Gen2で高速プロトタイピング.pptx
PDF
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
PDF
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
PDF
30分で分かる!OSの作り方 ver.2
オルターブースが実践する .NET Core “ガチ” 開発
160705-w01 RTミドルウエア講習会・早稲田大
ロボットサービス開発の現場から
Io t,ai時代のソフトウェア
201110 02 Polytech center 2
05.日本マイクロソフト(株)_発表資料
第1回HPC OPS研究会 Opening Remarks
Portable RT-Middleware environment on a USB memory for the robot programing ...
AIエージェント勉強会~マイクロソフトの最新技術発表を受けて~ (2025/07)
ソニーのディープラーニングツールで簡単エッジコンピューティング
130522 00
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
【講演資料】ハード+ソフトの協調アジャイル開発
Cytoscapeの現状とCyberinfrastructure
BitVisor Summit 3 「BitVisorの現状と今後」
2024_09_06_JAWS-UG山梨 【第1回】勉強会_AWS Amplify Gen2で高速プロトタイピング.pptx
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
自社でつくれる生産性向上ツール 必要だと思ったらすぐに作れるビジネスアプリ
30分で分かる!OSの作り方 ver.2
Ad

箱庭祭#3 発表資料 公開用(複数のソフトウェアプラットフォームを連携させる技術について)