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
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
Refining Active Record
shugo
0
150
しろおびから始める!ログ活用の第一歩
shumei_ito
0
940
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
110
その Valkey 使いこなしていますか?
onk
PRO
5
1.4k
Classmethod Company Deck
satoshi7
1
640
継続的なAIコスト最適化
bgpat
1
330
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
710
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
160
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
560
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
130
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Building Adaptive Systems
keathley
44
3.2k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Become a Pro
speakerdeck
PRO
31
6.3k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
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