Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
cie-inspector
Search
Takumi Okamoto
October 10, 2026
Technology
8
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
cie-inspector
ROSConJP 2026のLTで発表した内容です。
Takumi Okamoto
October 10, 2026
Other Decks in Technology
See All in Technology
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
150
Consistency for mere mortals - A gentle guide to consistency
ufried
0
120
AIエージェント時代、Kaggleにどう取り組むか
takanao
2
500
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
210
1週間、Opus封印でお願いします
kintotechdev
1
460
Software Engineering in an AI-Driven World
erikjhordan_rey
0
110
20261031_IoTLT_vol140_kitazaki_v1.pdf
kitazaki
0
170
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
210
コードレビューをなくして見えたもの
henteko
0
130
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
190
AIエージェントに業務知識を届ける仕組みづくり - Knowledge Catalogを活用した知識基盤の構築
hekuchan
0
120
(swiftc) NonCopyableとライフタイム修飾子
teamhimeh
0
170
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.5k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
500
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
The Curious Case for Waylosing
cassininazir
1
610
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
670
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
Transcript
cie-inspector ビルドせず‧実⾏せず、ROS 2 の callback / CallbackGroup 構造を ソースコードから抽出する NO
BUILD NO ROS NO RUN ROSConJP 2026 Lightning Talk / Takumi Okmaoto a.k.a @MrBearing2 2026/8/4-/5 つくばカピオ
callback 単位でスケジューリングを設定できる時代 CallbackIsolatedExecutor (CIE) CallbackGroup ごとに専⽤の OS スレッドを割り当てる Executor(TIER IV
/ Autoware) Node cg_sensor thread 0 cg_control thread 1 default thread 2 Linux のスケジューリング属性を callback 単位で policy(SCHED_FIFO 等)‧priority‧CPU affinity を YAML 1枚で設定 設定を書くために必要な情報 どのノードに‧どんな callback があり‧どの CallbackGroup に属するか policy / priority / affinity を thread ごとに適⽤ 設定ファイルを書くには、CallbackGroup のトポロジ を事前に知る必要がある
その情報、いまは「実⾏しないと」得られない CIE の prerun ツール 実機でアプリを本当に⾛らせて callback group ID を列挙
ros2 node info 組込みターゲットでは それが重い 起動中のノードに問い合わせる(起動が前提) 設定を書きたいのは 実⾏の前 なのに、 トレース(CARET / ros2_tracing) 情報は 実⾏の後 にしか⼿に⼊らない 計測ビルド + 実⾛⾏が必要 「どう分離するか」を考える段階で、構造が⾒えない
ソースだけで抽出する ― cie-inspector workspace src/ ソースツリー Phase 1 package.xml +
CMake 軽量パース Python + tree-sitter Phase 2 tree-sitter で C++ を構⽂解析 uv Phase 3 roscope XML 統合 (remap 解決) JSON インベントリ / サマリ表 / CIE 設定スケルトン (YAML) tree-sitter だから launch 層は roscope に委譲 コンパイル不能‧ヘッダ⽋損でも解析できる(libclang 不使⽤‧ビルド環 境不要) roscope はノード起動境界まで、その内側を cie-inspector が担当(補 完関係)
出⼒: サマリから CIE 設定の下書きまで ① callback / CallbackGroup インベントリ ②
CIE (cie_thread_configurator) 実形式のスケルトン $ uvx cie-inspector extract ~/ws/src --format table NODE GROUP TYPE MEM --------------- ------------- -------------- --demo_pkg/talker sensor_group_ MutuallyExcl. 1 worker_group_ Reentrant 1 default_group MutuallyExcl. 3 $ cie-inspector resolve ~/ws/src \ --roscope-xml resolved.launch.xml \ --format cie-yaml 値は⼊れない。 policy / priority / affinity は TODO のまま出⼒。 スケジューリングの判断は⼈間の仕事、 構造の列挙は機械の仕事。 callback_groups: # demo_pkg/talker sensor_group_ - id: /talker@Subscription(/lidar/scan) policy: TODO priority: TODO affinity: TODO - id: /talker@Timer(500000000) ...
実⾏する前に、構造は分かる $ uvx cie-inspector extract ~/ros2_ws/src --format table $ roscope
resolve app.launch.py -o resolved.launch.xml $ uvx cie-inspector resolve ~/ros2_ws/src --roscope-xml resolved.launch.xml --format cie-yaml CIE 設定の下書きが数秒で unresolved が次の作業を⽰す roscope と2コマンドで連携 prerun の前にトポロジを把握 実機で確認すべき箇所だけが残る launch 層 + ノード内部で完結 URL : https://github.com/MrBearing/cie-inspector