Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 50 additions & 9 deletions MACGYVBOT-DECK/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -178,20 +178,61 @@ <h1 class="divider-title">COMMAND</h1>

<section class="slide">
<div class="topbar"><span class="brand-mini"><img src="assets/macgyvbot.png" alt="" />MacGyvBot</span><span class="page-no"></span></div>
<div class="kicker">Command / LLM</div>
<h2>Command๋Š” ์ž์—ฐ์–ด๋ฅผ robot task intent๋กœ ๋ฐ”๊พธ๋Š” ์ž…๊ตฌ์ž…๋‹ˆ๋‹ค</h2>
<div class="kicker">Command / Pipeline</div>
<h2>์ž์—ฐ์–ด ๋ช…๋ น์„ Task๋กœ ๋ฐ”๊พธ๋Š” Command Pipeline</h2>
<div class="slide-body">
<div class="decision-panel">
<div class="proof-panel">
<span class="id">IMPLEMENTATION</span>
<h3>LLM parser + rule fallback</h3>
<p>์‚ฌ์šฉ์ž ๋ช…๋ น์—์„œ action, tool name, target mode๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. LLM์ด ๋А๋ฆฌ๊ฑฐ๋‚˜ ์‹คํŒจํ•ด๋„ ๋Œ€ํ‘œ ๋ช…๋ น์€ ๊ทœ์น™ ๊ธฐ๋ฐ˜ parser๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.</p>
<div class="proof-metric"><strong>CMD</strong><span>โ€œ๋ Œ์น˜ ๊ฐ€์ ธ์™€โ€, โ€œ์ด๊ฑฐ ์ •๋ฆฌํ•ดโ€, pause, resume</span></div>
<span class="id">INTERFACE ENTRY</span>
<h3>Voice / GUI Text โ†’ typed ROS command</h3>
<p>์Œ์„ฑ STT์™€ GUI ํ…์ŠคํŠธ ์ž…๋ ฅ์„ ๊ฐ™์€ command path๋กœ ํ†ตํ•ฉํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ํ•œ๊ตญ์–ด ๋ช…๋ น์„ task coordinator๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐํ™”๋œ command๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.</p>
<div class="proof-metric"><strong>CMD</strong><span>bring, return, pause, resume, cancel, home</span></div>
</div>
<div class="signal-stack">
<div class="callout-line"><span class="label">WHY</span><p>์‚ฌ์šฉ์ž๋Š” ์ •ํ•ด์ง„ ๋ฌธ๋ฒ•์œผ๋กœ ๋งํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ task coordinator๊ฐ€ ๋ฐ›์„ ์•ˆ์ •์ ์ธ intent๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.</p></div>
<div class="callout-line"><span class="label">VOCAB</span><p>๊ณต๊ตฌ๋ช…๊ณผ ๋™์ž‘ ํ‘œํ˜„์„ ์ •๊ทœํ™”ํ•ด ๊ฐ™์€ ๋ช…๋ น์„ ๊ฐ™์€ task intent๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.</p></div>
<div class="callout-line"><span class="label">FALLBACK</span><p>LLM ์‘๋‹ต์ด ๋Šฆ๊ฑฐ๋‚˜ ์‹คํŒจํ•ด๋„ ๊ธฐ๋ณธ ๋ช…๋ น์€ ๊ทœ์น™ ๊ธฐ๋ฐ˜ parser๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.</p></div>
<div class="signal-row"><span class="id">01</span><b>Input</b><span>microphone STT์™€ GUI ์ž…๋ ฅ์„ /stt_text๋กœ ํ†ตํ•ฉ</span><span class="state">ROS</span></div>
<div class="signal-row"><span class="id">02</span><b>Fast path</b><span>โ€œ๋ฉˆ์ถฐโ€, โ€œ์žฌ๊ฐœโ€, โ€œ์ทจ์†Œโ€ ๊ฐ™์€ ์ œ์–ด ๋ช…๋ น์€ LLM ์ „์— ์ฆ‰์‹œ ์ฒ˜๋ฆฌ</span><span class="state">SAFE</span></div>
<div class="signal-row"><span class="id">03</span><b>Parser</b><span>LLM parser์™€ rule parser๊ฐ€ action/tool/target์„ ์ •๊ทœํ™”</span><span class="state">NLP</span></div>
<div class="signal-row"><span class="id">04</span><b>Command</b><span>ToolCommand ๋˜๋Š” RobotTaskControl typed message๋กœ publish</span><span class="state">TASK</span></div>
</div>
</div>
</div>
</section>

<section class="slide">
<div class="topbar"><span class="brand-mini"><img src="assets/macgyvbot.png" alt="" />MacGyvBot</span><span class="page-no"></span></div>
<div class="kicker">Command / Prompt Engineering</div>
<h2>Schema์™€ Context ๊ธฐ๋ฐ˜ LLM Parser</h2>
<div class="slide-body">
<div class="proof-rig prompt-rig">
<div class="table">
<div class="row head"><div>์‚ฌ์šฉ์ž ํ‘œํ˜„</div><div>์ •๊ทœํ™” ๊ฒฐ๊ณผ</div><div>์ฒ˜๋ฆฌ ์˜๋„</div></div>
<div class="row"><div>๋“œ๋ผ์ด๋ฒ„ ๊ฐ€์ ธ๋‹ค์ค˜</div><div><span class="mono">bring / screwdriver</span></div><div>๊ณต๊ตฌ ์š”์ฒญ</div></div>
<div class="row"><div>์ŠคํŒจ๋„ˆ ์ค˜</div><div><span class="mono">bring / wrench</span></div><div>๋ณ„์นญ ์ •๊ทœํ™”</div></div>
<div class="row"><div>์ด๊ฑฐ ์ •๋ฆฌํ•ด</div><div><span class="mono">return / unknown</span></div><div>์ง€์‹œ์–ด ์œ ์ง€</div></div>
<div class="row"><div>๋ฉˆ์ถฐ</div><div><span class="mono">pause / unknown</span></div><div>fast control</div></div>
</div>
<div class="signal-stack">
<div class="signal-row"><span class="id">SCHEMA</span><b>์‘๋‹ต ํ˜•์‹ ์ œํ•œ</b><span>action, tool_name, target_mode, confidence</span><span class="state">JSON</span></div>
<div class="signal-row"><span class="id">CONTEXT</span><b>๋ช…๋ น ์˜๋ฏธ ์ฃผ์ž…</b><span>bring, return, pause, resume, cancel, home</span><span class="state">LLM</span></div>
<div class="signal-row"><span class="id">VOCAB</span><b>๊ณต๊ตฌ ๋ณ„์นญ ์ •๊ทœํ™”</b><span>๋ Œ์น˜, ์ŠคํŒจ๋„ˆ, ๋ชฝํ‚ค๋ Œ์น˜ โ†’ wrench</span><span class="state">TOOL</span></div>
<div class="signal-row"><span class="id">GUARD</span><b>fallback๊ณผ ํ˜ผ์„  ๋ฐฉ์ง€</b><span>rule parser ๋ณด์กฐ, unsupported drill ์ œ๊ฑฐ</span><span class="state">SAFE</span></div>
</div>
</div>
</div>
</section>

<section class="slide">
<div class="topbar"><span class="brand-mini"><img src="assets/macgyvbot.png" alt="" />MacGyvBot</span><span class="page-no"></span></div>
<div class="kicker">Operator GUI</div>
<h2>๋กœ๋ด‡ ์ƒํƒœ ํ™•์ธ๊ณผ ์ˆ˜๋™ ์ œ์–ด๋ฅผ ํ†ตํ•ฉํ•œ Operator GUI</h2>
<div class="slide-body">
<div class="proof-rig operator-gui-rig">
<div class="placeholder image-fill"><img src="assets/operator-gui-command-interface.png" alt="MacGyvBot operator GUI screenshot" /></div>
<div class="signal-stack operator-gui-stack">
<div class="signal-row"><span class="id">STATUS</span><b>Robot Status</b><span>๋กœ๋ด‡ยท์นด๋ฉ”๋ผยทDetector ์ƒํƒœ ํ™•์ธ</span><span class="state">UI</span></div>
<div class="signal-row"><span class="id">CHAT</span><b>Chat / TTS</b><span>์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ์•ˆ๋‚ด๋งŒ chat์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  TTS๋Š” chat ๋ฉ”์‹œ์ง€๋งŒ ๋ฐœํ™”</span><span class="state">UX</span></div>
<div class="signal-row"><span class="id">LOG</span><b>Task Log</b><span>๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณผ topic/status/error detail์€ log panel๋กœ ๋ถ„๋ฆฌ</span><span class="state">DBG</span></div>
<div class="signal-row"><span class="id">GRIP</span><b>Gripper Control</b><span>์•ˆ์ „ ์ƒํƒœ์—์„œ๋งŒ slider์™€ ์ˆซ์ž ์ž…๋ ฅ์œผ๋กœ RG2 gripper ํญ ์ œ์–ด</span><span class="state">SAFE</span></div>
</div>
</div>
</div>
Expand Down
37 changes: 37 additions & 0 deletions MACGYVBOT-DECK/styles/common.css
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,31 @@ ul.clean-list li::before {
align-items: stretch;
}

.proof-rig.prompt-rig .table {
margin-top: 0;
height: 100%;
}

.proof-rig.prompt-rig .signal-stack {
height: 100%;
align-content: stretch;
}

.proof-rig.prompt-rig .signal-row {
grid-template-columns: 72px .9fr 1.35fr 58px;
min-height: 82px;
}

.proof-rig.operator-gui-rig .operator-gui-stack {
height: 100%;
align-content: stretch;
}

.proof-rig.operator-gui-rig .signal-row {
grid-template-columns: 76px 1fr 1.28fr 54px;
min-height: 76px;
}

.system-map,
.proof-panel,
.results-board,
Expand Down Expand Up @@ -892,6 +917,18 @@ ul.clean-list li::before {
}
.placeholder b { display: block; font-size: 28px; margin-bottom: 10px; color: #fff; }
.placeholder span { display: block; font-size: 18px; line-height: 1.35; max-width: 520px; }
.placeholder.image-fill {
padding: 0;
overflow: hidden;
background: #07090a;
border-style: solid;
}
.placeholder.image-fill img {
width: 100%;
height: 100%;
display: block;
object-fit: contain;
}

.failure-media-grid {
display: grid;
Expand Down
Loading