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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takumi Okamoto
October 10, 2026
Technology
1
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
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
330
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
640
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
140
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
320
The seven pitfalls of AI (revised version)
ufried
0
300
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
360
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
6
2.3k
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
130
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
160
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
280
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
250
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
0
1k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
290
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Tell your own story through comics
letsgokoyo
1
1.1k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
470
The Pragmatic Product Professional
lauravandoore
37
7.5k
Between Models and Reality
mayunak
4
490
Building Adaptive Systems
keathley
44
3.2k
WCS-LA-2024
lcolladotor
0
860
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
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