PPT html로 제작(1차 디자인만)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PACK — 최종 발표 (팀 MYMY)</title>
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css" />
<style>
:root{
--ink:#1a1a1a; --ink2:#2b2b2b; --grey:#9e9e9e; --line:#d6d6d6;
--soft:#eeeeee; --soft2:#f6f7f4; --acc:#e1f86f; --white:#fff;
--kr:'S-Core Dream','Pretendard',-apple-system,sans-serif;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ background:#c9ccd1; font-family:var(--kr); color:var(--ink2);
word-break:keep-all; overflow-wrap:break-word; }
body{ padding:28px 0; }
.deck{ display:flex; flex-direction:column; align-items:center; gap:26px; }
.slide{ position:relative; width:min(96vw,1360px); aspect-ratio:16/9;
background:var(--white); border-radius:10px; overflow:hidden;
box-shadow:0 18px 44px rgba(20,25,40,.16); container-type:inline-size; }
.body{ position:absolute; inset:0; display:grid; grid-template-columns:14.5cqw 1fr; }
.rail{ border-right:1px solid var(--line); padding:4.8cqw 0 0 3cqw; display:flex; flex-direction:column; gap:1.7cqw; }
.rail .r{ font-size:1.5cqw; color:#c6c6c6; font-weight:500; }
.rail .r.on{ color:var(--ink); font-weight:700; }
.rail .r.on::before{ content:""; display:inline-block; width:1.3cqw; height:1.3cqw; background:var(--acc); margin-right:.6cqw; vertical-align:middle; border-radius:2px; }
.main{ position:relative; padding:4.4cqw 5cqw 7.6cqw; display:flex; flex-direction:column; height:100%; overflow:hidden; }
/* 위계 5단계 */
.tag{ font-size:1.65cqw; color:var(--grey); font-weight:700; letter-spacing:.08em; }
.title{ font-size:3.6cqw; font-weight:700; color:var(--ink); margin-top:.35cqw; line-height:1.1; letter-spacing:-.01em; }
.lead{ font-size:2.4cqw; color:#3f3f3f; margin-top:1.5cqw; line-height:1.46; font-weight:600; }
.huge{ font-size:4cqw; font-weight:700; line-height:1.3; color:var(--ink); letter-spacing:-.01em; }
.sub{ font-size:2.05cqw; color:#616161; line-height:1.55; margin-top:2.1cqw; font-weight:400; }
/* 형광펜: 글자 전체를 덮는 solid 마커 (한 가지로 통일) */
.hl,.ul{ background:var(--acc); padding:.02em .12em; border-radius:3px;
-webkit-box-decoration-break:clone; box-decoration-break:clone; font-weight:700; color:var(--ink); }
.cards{ display:grid; gap:1.7cqw; margin-top:2cqw; }
.cards.c4{ grid-template-columns:repeat(4,1fr); }
.cards.c3{ grid-template-columns:repeat(3,1fr); }
.cards.c2{ grid-template-columns:repeat(2,1fr); }
.card{ border:1px solid var(--line); border-radius:10px; padding:1.8cqw; }
.card .no{ font-size:1.55cqw; color:var(--grey); font-weight:700; }
.card .ch{ font-size:2.45cqw; font-weight:700; color:var(--ink); margin-top:.25cqw; }
.card .cb{ font-size:2cqw; color:#636363; margin-top:.85cqw; line-height:1.5; font-weight:400; }
.card .cb b{ color:#333; font-weight:600; }
.card .cb .li2{ display:block; }
.flow{ display:flex; gap:1.1cqw; margin-top:2.2cqw; }
.step{ flex:1; border:1px solid var(--line); border-radius:10px; padding:1.5cqw 1.2cqw; }
.step .n{ font-size:2.4cqw; font-weight:700; }
.step .l{ display:block; font-size:1.95cqw; margin-top:.45cqw; line-height:1.36; color:#4a4a4a; }
.step.key{ background:var(--soft2); border-color:#c4c9bc; }
.steps{ margin-top:1.8cqw; display:flex; flex-direction:column; gap:1.25cqw; }
.li{ display:flex; gap:1.3cqw; align-items:flex-start; }
.li .k{ font-size:2.1cqw; font-weight:700; color:var(--grey); min-width:3cqw; }
.li .t{ font-size:2.1cqw; line-height:1.42; color:#3f3f3f; }
.two{ display:grid; grid-template-columns:1fr 1fr; gap:2.6cqw; margin-top:1.8cqw; }
.two h4{ font-size:2.15cqw; font-weight:700; margin-bottom:.9cqw; }
.two ul{ list-style:none; display:flex; flex-direction:column; gap:.8cqw; }
.two li{ font-size:2cqw; line-height:1.4; color:#4d4d4d; padding-left:1.4cqw; position:relative; }
.two li::before{ content:""; position:absolute; left:0; top:.78cqw; width:.6cqw; height:.6cqw; background:var(--grey); border-radius:50%; }
.media{ background:repeating-linear-gradient(45deg,#f1f1f1,#f1f1f1 12px,#ececec 12px,#ececec 24px);
border:1.5px dashed #c2c2c2; border-radius:10px; display:grid; place-items:center; color:#9a9a9a; font-size:2cqw; font-weight:600; text-align:center; }
.media.big{ flex:1; margin-top:1.8cqw; }
.arch{ margin-top:1.8cqw; display:flex; flex-direction:column; gap:1.2cqw; }
.arow{ display:flex; align-items:center; gap:1cqw; font-size:1.95cqw; flex-wrap:wrap; }
.node{ border:1px solid var(--line); border-radius:8px; padding:.85cqw 1.3cqw; font-weight:700; }
.node.lead{ background:var(--ink); color:#fff; border-color:var(--ink); }
.node.dash{ border-style:dashed; color:var(--grey); font-weight:600; }
.arr{ color:var(--grey); } .arr b{ color:#4a4a4a; }
/* 비교표 */
.cmp{ width:100%; border-collapse:collapse; margin-top:2cqw; }
.cmp th,.cmp td{ text-align:left; padding:1.05cqw 1.3cqw; border-bottom:1px solid var(--line); font-size:2.05cqw; }
.cmp th{ font-size:1.75cqw; color:var(--grey); font-weight:700; }
.cmp td:first-child, .cmp th:first-child{ color:var(--grey); font-weight:600; width:20%; }
.cmp .our{ background:var(--soft2); font-weight:700; color:var(--ink); }
.cmp thead .our{ color:var(--ink); }
.cmp.fb th:first-child, .cmp.fb td:first-child{ width:44%; color:#4a4a4a; font-weight:500; }
.cmp.four td, .cmp.four th{ font-size:1.9cqw; padding:.9cqw 1.1cqw; }
.cmp.four td:first-child, .cmp.four th:first-child{ width:14%; }
/* KPI 수치 */
.kpi{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.6cqw; margin-top:2cqw; }
.kpi .k{ border:1px solid var(--line); border-radius:10px; padding:1.7cqw 1.5cqw; }
.kpi .num{ font-size:3.5cqw; font-weight:800; color:var(--ink); line-height:1; }
.kpi .lab{ font-size:1.95cqw; color:#5c5c5c; margin-top:.8cqw; line-height:1.35; }
.note{ font-size:1.6cqw; color:var(--grey); margin-top:1.4cqw; }
/* 용어 각주 (슬라이드 하단) */
.fn{ margin-top:auto; padding-top:1cqw; font-size:1.5cqw; color:#a2a2a2; line-height:1.5; }
.fn b{ color:#6f6f6f; font-weight:700; }
/* 현장 가치 (비즈니스 포인트) */
.val{ margin-top:1.7cqw; font-size:2.1cqw; color:#2f2f2f; display:flex; align-items:baseline; gap:1cqw; line-height:1.45; font-weight:500; }
.val .vtag{ flex:none; font-size:1.5cqw; font-weight:700; color:#59691b; background:var(--acc); padding:.3em .85em; border-radius:20px; letter-spacing:.02em; }
/* 용어 정리 페이지 */
.gloss{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1cqw 2.6cqw; margin-top:2.2cqw; }
.gloss .g{ font-size:1.95cqw; line-height:1.4; color:#5c5c5c; }
.gloss .g b{ color:var(--ink); font-weight:700; }
/* 개념도(다이어그램) */
.dgm{ flex:1; margin-top:1.6cqw; display:grid; place-items:center; }
.dgm svg{ width:100%; height:100%; }
.foot{ position:absolute; left:14.5cqw; right:0; bottom:0; height:5cqw; padding:0 5cqw;
display:flex; align-items:center; justify-content:space-between; }
.foot .b{ font-size:1.45cqw; color:#b5b5b5; font-weight:700; letter-spacing:.03em; }
.foot .p{ font-size:1.45cqw; color:#b5b5b5; }
/* 표지 */
.cover{ position:absolute; inset:0; padding:7cqw; display:flex; flex-direction:column; justify-content:center; }
.cover .top{ position:absolute; top:5.4cqw; left:7cqw; right:7cqw; display:flex; justify-content:space-between; align-items:baseline; }
.cover .proj{ font-size:1.55cqw; color:var(--grey); font-weight:700; letter-spacing:.18em; }
.cover .team{ font-size:1.7cqw; color:var(--grey); font-weight:600; }
.cover .team b{ color:var(--ink); font-weight:700; font-size:2cqw; margin-left:.2cqw; }
.cover .tl{ font-size:4.7cqw; font-weight:700; line-height:1.24; color:var(--ink); letter-spacing:-.015em; }
.cover .st{ font-size:2.35cqw; color:#4a4a4a; margin-top:1.9cqw; font-weight:500; }
.cover .acr{ display:grid; grid-template-columns:repeat(2,auto); gap:.55cqw 3.4cqw; margin-top:2.4cqw; }
.cover .acr div{ font-size:1.7cqw; color:#7a7a7a; font-weight:400; }
.cover .acr b{ color:var(--ink); font-weight:700; margin-right:.15em; }
.cover .meta{ position:absolute; bottom:5.4cqw; left:7cqw; right:7cqw; display:flex; justify-content:space-between; align-items:flex-end; }
.cover .meta .l{ display:flex; flex-direction:column; gap:.55cqw; }
.cover .m1{ font-size:1.45cqw; color:#a2a2a2; }
.cover .m2{ font-size:1.8cqw; color:#2b2b2b; font-weight:500; }
.cover .m2 b{ color:var(--ink); font-weight:700; }
.cover .m2 .sep{ color:#c2c2c2; margin:0 .55em; font-weight:400; }
.cover .m3{ font-size:1.45cqw; color:#a2a2a2; }
.cover .big{ font-size:8cqw; font-weight:800; line-height:1; color:var(--ink); }
.cover .big .d{ color:var(--acc); }
.closing{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.closing .ty{ font-size:4.6cqw; font-weight:700; }
.closing .qa{ font-size:2.3cqw; color:#666; margin-top:1.2cqw; }
.closing .link{ font-size:1.8cqw; color:#8a8a8a; margin-top:3cqw; }
@media print{ body{ padding:0; background:#fff; } .deck{ gap:0; } .slide{ width:100%; border-radius:0; box-shadow:none; break-after:page; } }
</style>
</head>
<body>
<div class="deck" id="deck">
<!-- S1 표지 -->
<section class="slide" data-sec="cover">
<div class="cover">
<div class="top">
<div class="proj">PROJECT · PACK</div>
<div class="team">TEAM · <b>MYMY</b></div>
</div>
<div class="tl">한 대가 다 하지 않는다 —<br><span class="hl">함께 집고, 나눠 나른다.</span></div>
<div class="st">이동 피킹 연동 자율주행 운반 로봇</div>
<div class="acr">
<div><b>P</b>recise Picking · 정밀 피킹</div>
<div><b>A</b>utonomous Arm · 자율 로봇팔</div>
<div><b>C</b>ollaborative Convoy · 협업 군집 운반</div>
<div><b>K</b>it · 통합 시스템</div>
</div>
<div class="meta">
<div class="l">
<div class="m1">로보테크 AI 자율주행로봇 개발자 과정 2기</div>
<div class="m2"><b>팀장</b> 윤우영 <span class="sep">|</span> <b>팀원</b> 길민준 · 김아영 · 안효민</div>
<div class="m3">2026. 05. 15 ~ 07. 16 · 발표 2026. 07. 16</div>
</div>
<div class="big">PACK<span class="d">.</span></div>
</div>
</div>
</section>
<!-- S2 목차 -->
<section class="slide" data-sec="cover">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">CONTENTS</div>
<div class="title">목차</div>
<div class="cards c4" style="margin-top:2.4cqw;">
<div class="card"><div class="no">01</div><div class="ch">Intro</div><div class="cb">개요 · 기획의도 · 내용</div></div>
<div class="card"><div class="no">02</div><div class="ch">System</div><div class="cb">구성 · 구조 · 장비</div></div>
<div class="card"><div class="no">03</div><div class="ch">Scenario</div><div class="cb">동작 시나리오 · 시연</div></div>
<div class="card"><div class="no">04</div><div class="ch">Tech</div><div class="cb">핵심 기술</div></div>
<div class="card"><div class="no">05</div><div class="ch">Design</div><div class="cb">설계 고찰</div></div>
<div class="card"><div class="no">06</div><div class="ch">Effect</div><div class="cb">활용방안 · 기대효과</div></div>
<div class="card"><div class="no">07</div><div class="ch">Team</div><div class="cb">팀 구성 · 일정</div></div>
<div class="card"><div class="no">08</div><div class="ch">Review</div><div class="cb">총평 · 향후</div></div>
</div>
</div></div>
</section>
<!-- S3 Intro 주제·배경 -->
<section class="slide" data-sec="Intro">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">INTRO · 01 — 주제 · 선정 배경</div>
<div class="title">왜 이 프로젝트인가</div>
<div class="huge" style="margin-top:2.4cqw; font-size:3.7cqw;">로봇팔은 <span class="hl">비싸고</span>, 컨베이어는 <span class="hl">고정적</span>이다.</div>
<div class="sub">한 대에 수천만 원인 로봇팔을 여러 대 두기 어렵고, 컨베이어는 한 번 깔면 바꾸기 힘들다.<br>예산·공간이 부족한 <b>낙후 환경일수록 자동화 진입장벽이 높다.</b></div>
</div></div>
</section>
<!-- S4 Intro 기획의도·차별화 -->
<section class="slide" data-sec="Intro">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">INTRO · 01 — 기획의도 · 차별화</div>
<div class="title">비싼 것은 1대, 싼 것은 여러 대</div>
<table class="cmp">
<thead><tr><th></th><th>기존 자동화</th><th class="our">PACK (우리)</th></tr></thead>
<tbody>
<tr><td>로봇팔</td><td>여러 대 (고가)</td><td class="our">1대만</td></tr>
<tr><td>운반</td><td>컨베이어 (고정)</td><td class="our">저가 로봇 N대 (유연)</td></tr>
<tr><td>확장</td><td>라인 재시공</td><td class="our">팔로워만 추가</td></tr>
</tbody>
</table>
<div class="lead">특화 포인트 — <span class="hl">이동 피킹(모바일 매니퓰레이션)</span> + 마커 기반 군집 협업 운반</div>
</div></div>
</section>
<!-- S5 Intro 프로젝트 내용 -->
<section class="slide" data-sec="Intro">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">INTRO · 01 — 프로젝트 내용</div>
<div class="title">무엇을 만들었나</div>
<div class="cards c3">
<div class="card"><div class="ch">구현 내용</div><div class="cb">로봇팔 자동 피킹<span class="li2">군집 추종 주행</span><span class="li2">ArUco+엔코더 측위</span><span class="li2">MQTT · ROS2 통신</span></div></div>
<div class="card"><div class="ch">컨셉</div><div class="cb"><b>리더 1대 + 팔로워 N대</b><span class="li2">집기는 리더가,</span><span class="li2">운반은 편대가 분업</span></div></div>
<div class="card"><div class="ch">훈련 연관성</div><div class="cb">임베디드 · ROS2 자율주행<span class="li2">컴퓨터비전 · 통신</span><span class="li2">부트캠프 전 과정 활용</span><span class="li2">+ 이전(PURE) 자산 재사용</span></div></div>
</div>
</div></div>
</section>
<!-- S6 System 구성 -->
<section class="slide" data-sec="System">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">SYSTEM · 02 — 구성</div>
<div class="title">시스템 구성</div>
<div class="cards c4">
<div class="card"><div class="ch">TurtleBot3</div><div class="cb">리더 · 6축 로봇팔 탑재</div></div>
<div class="card"><div class="ch">F1</div><div class="cb">4WD 팔로워 · 운반</div></div>
<div class="card"><div class="ch">F2</div><div class="cb">4WD 팔로워 · 운반</div></div>
<div class="card"><div class="ch">통신</div><div class="cb">ROS2 · MQTT · Serial</div></div>
</div>
<div class="lead">리더 터틀봇 위에 로봇팔이 있고, 뒤를 <span class="hl">F1 · F2가 줄지어 따른다.</span></div>
</div></div>
</section>
<!-- S7 System 구조/데이터 흐름 -->
<section class="slide" data-sec="System">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">SYSTEM · 02 — 프로젝트 구조</div>
<div class="title">시스템 구조 & 데이터 흐름</div>
<div class="arch">
<div class="arow"><span class="node lead">리더(터틀봇)</span><span class="arr">— <b>팔 명령 (MQTT)</b> →</span><span class="node">로봇팔</span></div>
<div class="arow"><span class="node lead">리더 후면 마커</span><span class="arr">— <b>위치</b> →</span><span class="node">F1</span><span class="arr">— <b>F1 위치</b> →</span><span class="node">F2</span></div>
<div class="arow"><span class="node dash">서버</span><span class="arr">···· 미션만 전달 ····</span><span class="hl">없어도 로봇이 자율 동작</span></div>
</div>
<div class="lead"><span class="hl">앞차의 위치를 뒤차가 보며</span> 서로 연결 — 화살표마다 오가는 데이터를 표기.</div>
<div class="fn"><b>MQTT</b> 기기끼리 가볍게 메시지를 주고받는 통신 · <b>ROS2</b> 로봇 프로그램들을 잇는 소프트웨어 플랫폼</div>
</div></div>
</section>
<!-- S8 System 활용 장비·개발환경 -->
<section class="slide" data-sec="System">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">SYSTEM · 02 — 활용 장비 · 개발환경</div>
<div class="title">활용 장비 및 재료</div>
<div class="cards c3">
<div class="card"><div class="ch">로봇 · 구동</div><div class="cb">TurtleBot3 Waffle Pi<span class="li2">자체 제작 6축 로봇팔(서보+PCA9685)</span><span class="li2">Arduino UNO ×3</span><span class="li2">4WD 섀시 · 쿼드러처 엔코더 ×2</span></div></div>
<div class="card"><div class="ch">센서 · 비전</div><div class="cb">Pi / USB 카메라<span class="li2">ArUco 마커 맵</span><span class="li2">LDS 라이다</span></div></div>
<div class="card"><div class="ch">개발환경</div><div class="cb">Ubuntu 22.04 · ROS2 Humble<span class="li2">Python · Arduino IDE</span><span class="li2">OpenCV · Mosquitto MQTT</span><span class="li2">Raspberry Pi · rosbridge</span></div></div>
</div>
</div></div>
</section>
<!-- S9 Scenario 전체 흐름 -->
<section class="slide" data-sec="Scenario">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">SCENARIO · 03 — 동작 흐름</div>
<div class="title">동작 시나리오 — 전체 흐름</div>
<div class="flow">
<div class="step"><span class="n">01</span><span class="l">시스템 실행</span></div>
<div class="step"><span class="n">02</span><span class="l">편대 출발 · 추종</span></div>
<div class="step key"><span class="n">03</span><span class="l">1구역<br>F1 적재 · 복귀</span></div>
<div class="step key"><span class="n">04</span><span class="l">2구역<br>F2 적재 · 복귀</span></div>
<div class="step"><span class="n">05</span><span class="l">작업 확인</span></div>
<div class="step"><span class="n">06</span><span class="l">동작 종료</span></div>
</div>
<div class="lead">터틀봇이 앞장서 편대로 출발하고, 구역마다 로봇팔이 짐을 <span class="hl">팔로워에 싣는다.</span> 실은 팔로워는 <span class="hl">홈으로 복귀</span>한다.</div>
</div></div>
</section>
<!-- S10 Scenario 구역 상세 + 예외 -->
<section class="slide" data-sec="Scenario">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">SCENARIO · 03 — 구역별 흐름</div>
<div class="title">구역별 흐름</div>
<div class="two">
<div><h4>1구역 · <span class="hl">F1 적재</span></h4>
<ul><li>도착 → 지정 위치 정지</li><li>로봇팔이 1번 짐 인식(카메라)</li><li>로봇팔이 F1에 적재</li><li>F1 대열 이탈 → 홈 복귀</li></ul></div>
<div><h4>2구역 · <span class="hl">F2 적재</span></h4>
<ul><li>터틀봇+F2 이동 → 정지</li><li>로봇팔이 2번 짐 인식</li><li>로봇팔이 F2에 적재</li><li>F2 홈 복귀 → 운반 완료</li></ul></div>
</div>
<div class="card" style="margin-top:1.6cqw; border-style:dashed;">
<div class="ch" style="font-size:2.05cqw;">예외 — 이탈 / 마커 소실</div>
<div class="cb">앞차를 놓치면 자동 정지 후 위치를 다시 찾아 복귀 (정상 흐름과 분리 처리)</div>
</div>
</div></div>
</section>
<!-- S11 Scenario 시연 -->
<section class="slide" data-sec="Scenario">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">SCENARIO · 03 — DEMO</div>
<div class="title">전체 시연</div>
<div class="media big">[ 영상 — 전체 동작 시연 (한 번에 재생) ]</div>
</div></div>
</section>
<!-- Tech ① 측위·군집 추종 (시나리오: 편대 출발·추종 단계) -->
<section class="slide" data-sec="Tech">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">TECH · 04 — ① 측위 · 군집 추종</div>
<div class="title">먼저, 편대는 어떻게 따라가나</div>
<div class="steps">
<div class="li"><span class="k">·</span><span class="t"><span class="hl">ArUco 마커 + 엔코더 융합</span> 측위 (멀티마커 solvePnP)</span></div>
<div class="li"><span class="k">·</span><span class="t">마커 우선 + 맵 보조 — 마커가 안 보여도 위치 유지</span></div>
<div class="li"><span class="k">·</span><span class="t">일정 간격 유지 추종 상태머신(FSM), 리더 → F1 → F2</span></div>
<div class="li"><span class="k">·</span><span class="t">앞차를 놓치면 <b>스스로 정지</b> (안전)</span></div>
</div>
<div class="fn"><b>ArUco</b> QR 같은 위치 표식 · <b>solvePnP</b> 마커 보고 위치 역산 · <b>FSM</b> 상황별 다음 행동 결정 · <b>엔코더</b> 바퀴 회전으로 이동 측정</div>
</div></div>
</section>
<!-- Tech ① 미디어 -->
<section class="slide" data-sec="Tech">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">TECH · 04 — ① 측위 · 군집 추종</div>
<div class="title">측위 — 마커 맵 & 편대</div>
<div class="media big">[ 다이어그램 — 마커 맵 측위 / 편대 추종 ]</div>
</div></div>
</section>
<!-- Tech ② 로봇팔 피킹 (시나리오: 구역 도착 후 인식·적재 단계) -->
<section class="slide" data-sec="Tech">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">TECH · 04 — ② 로봇팔 피킹</div>
<div class="title">그리고, 도착하면 어떻게 집나</div>
<div class="steps">
<div class="li"><span class="k">·</span><span class="t">6축 로봇팔 — 관절로 짐을 파지</span></div>
<div class="li"><span class="k">·</span><span class="t"><span class="hl">MQTT 무선 제어</span> (라즈베리파이 → 아두이노 게이트웨이)</span></div>
<div class="li"><span class="k">·</span><span class="t">카메라로 짐을 인식해 팔로워 적재 위치에 정확히 올림</span></div>
<div class="li"><span class="k">·</span><span class="t">순운동학 충돌 방지 · 비상정지 안전장치 내장</span></div>
</div>
<div class="fn"><b>MQTT</b> 기기 간 경량 통신 · <b>순운동학</b> 관절 각도로 팔 끝 위치를 계산</div>
</div></div>
</section>
<!-- Tech ② 미디어 -->
<section class="slide" data-sec="Tech">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">TECH · 04 — ② 로봇팔 피킹</div>
<div class="title">로봇팔 — 피킹 장면</div>
<div class="media big">[ 사진 — 로봇팔 파지 / 적재 ]</div>
</div></div>
</section>
<!-- 피드백 → 적용 (수행 경과) -->
<section class="slide" data-sec="Design">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">PROGRESS · 수행 경과 — 피드백 & 개선</div>
<div class="title">피드백 & 개선</div>
<table class="cmp fb">
<thead><tr><th>받은 피드백 / 문제</th><th class="our">적용 · 보완</th></tr></thead>
<tbody>
<tr><td>서버에 의존하지 말 것 (멘토)</td><td class="our">모듈 간 MQTT 직접 통신으로 전환 — 서버 끊겨도 자율</td></tr>
<tr><td>종료 후 속도 잔류 → 낙하 사고</td><td class="our">종료 시 정지 처리 · 전체 수치 재측정</td></tr>
<tr><td>연속 서보 주차 성능 저하</td><td class="our">step & measure 방식으로 롤백</td></tr>
<tr><td>다중 마커 PnP 위치 튐</td><td class="our">재투영오차 · 신뢰도 가중 필터 보강</td></tr>
</tbody>
</table>
</div></div>
</section>
<!-- S16 Design 고찰 -->
<section class="slide" data-sec="Design">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">DESIGN · 05 — 설계 고찰</div>
<div class="title">설계 고찰 — 더 나은 구조</div>
<div class="cards c3" style="margin-top:2cqw;">
<div class="card"><div class="ch">배타적 실행</div><div class="cb">주행 중엔 팔 정지, 피킹 중엔 바퀴 정지 → <span class="hl">전압 강하 방지</span></div></div>
<div class="card"><div class="ch">통신 구조</div><div class="cb">서버가 다 처리 → 모듈끼리 직접 → <span class="hl">서버 끊겨도 자율 동작</span></div></div>
<div class="card"><div class="ch">연결 방식</div><div class="cb">복잡한 중간 다리보다 직접 연결이 빠르고 장애에 강하다</div></div>
</div>
<div class="lead">"어떻게 하면 더 나았을까"를 고민한 것이 큰 수확이었다.</div>
</div></div>
</section>
<!-- S17 Effect 활용방안·기대효과 (수치) -->
<section class="slide" data-sec="Effect">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">EFFECT · 06 — 활용방안 · 기대효과</div>
<div class="title">기존 대비 기대효과</div>
<div class="kpi">
<div class="k"><div class="num"><span class="hl">-60%</span></div><div class="lab">초기 도입 비용<br>(팔 1대 + 저가 N대)</div></div>
<div class="k"><div class="num"><span class="hl">-90%</span></div><div class="lab">레이아웃 변경 시간<br>(재시공 불필요)</div></div>
<div class="k"><div class="num"><span class="hl">-70%</span></div><div class="lab">운반 인건비<br>(자동 편대 운반)</div></div>
<div class="k"><div class="num"><span class="hl">+1대</span></div><div class="lab">팔로워 추가마다<br>처리량 선형 확장</div></div>
</div>
<div class="lead" style="font-size:2.1cqw;">활용 분야 — 물류센터 · 공항/항만 · 농업 · 병원 (리더 작업만 교체)</div>
<div class="note">* 기존 컨베이어·고정 로봇팔 대비 임시 추정치 (실측 검증 예정)</div>
</div></div>
</section>
<!-- S18 Team 팀 구성·역할 + 멘토 -->
<section class="slide" data-sec="Team">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">TEAM · 07 — 팀 구성 및 역할</div>
<div class="title">팀 구성 · 역할</div>
<div class="cards c4" style="margin-top:1.6cqw;">
<div class="card"><div class="ch" style="font-size:2.1cqw;">윤우영 <span style="font-size:1.55cqw;color:#a2a2a2;">팀장</span></div><div class="cb">추종 · 군집 제어 · 측위</div></div>
<div class="card"><div class="ch" style="font-size:2.1cqw;">길민준</div><div class="cb">로봇팔 · 비전 피킹</div></div>
<div class="card"><div class="ch" style="font-size:2.1cqw;">김아영</div><div class="cb">비전 · 마커 · 캘리브레이션</div></div>
<div class="card"><div class="ch" style="font-size:2.1cqw;">안효민</div><div class="cb">통신 · 통합 · 테스트</div></div>
</div>
<div class="card" style="margin-top:1.8cqw; border-style:dashed;">
<div class="ch" style="font-size:2.05cqw;">멘토 지원내역</div>
<div class="cb">주제 · 시스템 아키텍처 피드백 · 통신 구조(서버 의존 최소화) 조언 · 발표 구성 · 스토리텔링 피드백</div>
</div>
</div></div>
</section>
<!-- S18b Plan 수행 절차 -->
<section class="slide" data-sec="Team">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">PLAN · 07 — 수행 절차 및 방법</div>
<div class="title">수행 절차 · 일정</div>
<div class="lead" style="font-size:2.1cqw; margin-top:1.2cqw;">사전 기획 → 수행 → 완료 순으로 진행</div>
<table class="cmp four">
<thead><tr><th>구분</th><th>기간</th><th>활동</th><th>비고</th></tr></thead>
<tbody>
<tr><td>사전 기획</td><td>05.15~05.22</td><td>주제 선정 · 역할 분담 · 부품/환경 선정</td><td>기획서</td></tr>
<tr><td>환경 · 기초</td><td>05.23~06.05</td><td>ROS2 세팅 · 로봇팔 펌웨어 · 안전장치</td><td>M1 팔 제어</td></tr>
<tr><td>무선 · 피킹</td><td>06.06~06.19</td><td>MQTT 게이트웨이 · 자동 피킹</td><td>M2 피킹</td></tr>
<tr><td>추종 · 측위</td><td>06.20~07.03</td><td>4WD · 엔코더 · ArUco 융합 측위</td><td>M3 측위</td></tr>
<tr><td>군집 · 통합</td><td>07.04~07.16</td><td>편대 추종 · 통합 · 시연</td><td>발표</td></tr>
</tbody>
</table>
<div class="note">* 기간은 계획 기준 임시값 — 실제 진행에 맞춰 조정</div>
</div></div>
</section>
<!-- S19 Review 멤버별 -->
<section class="slide" data-sec="Review">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">REVIEW · 08 — 멤버별 총평</div>
<div class="title">멤버별 총평</div>
<div class="cards c4" style="margin-top:1.6cqw;">
<div class="card"><div class="ch" style="font-size:2.1cqw;">윤우영</div><div class="cb"><b>담당</b> 추종·군집·측위<span class="li2"><b>성과</b> 리더–F1–F2 편대 추종</span><span class="li2"><b>배움</b> 편대 안정화의 어려움</span></div></div>
<div class="card"><div class="ch" style="font-size:2.1cqw;">길민준</div><div class="cb"><b>담당</b> 로봇팔·비전<span class="li2"><b>성과</b> MQTT 제어·자동 피킹</span><span class="li2"><b>배움</b> 하드웨어가 방법을 좌우</span></div></div>
<div class="card"><div class="ch" style="font-size:2.1cqw;">김아영</div><div class="cb"><b>담당</b> 비전·마커<span class="li2"><b>성과</b> ArUco 인식·캘리브</span><span class="li2"><b>배움</b> 측위 정밀도 튜닝</span></div></div>
<div class="card"><div class="ch" style="font-size:2.1cqw;">안효민</div><div class="cb"><b>담당</b> 통신·통합<span class="li2"><b>성과</b> 브리지·오도메트리</span><span class="li2"><b>배움</b> 통합 검증의 중요성</span></div></div>
</div>
</div></div>
</section>
<!-- S20 Review 자체 평가 의견 -->
<section class="slide" data-sec="Review">
<div class="body"><div class="rail"></div><div class="main">
<div class="tag">REVIEW · 08 — 자체 평가 의견</div>
<div class="title">자체 평가 의견</div>
<div class="cards c3" style="margin-top:1.6cqw;">
<div class="card"><div class="ch">달성도 · 완성도</div><div class="cb">로봇팔 무선제어 · 자동 피킹 <b>완성</b><span class="li2">측위 · 군집 추종 <b>동작</b></span><span class="li2">통합 인계 마무리 단계</span><span class="li2">→ 기획 의도 부합 ○</span></div></div>
<div class="card"><div class="ch">잘한 점 <span style="font-size:1.5cqw;color:#a2a2a2;">(비교)</span></div><div class="cb">Amazon Kiva · 트럭 군집주행처럼 <b>컨베이어를 이동 로봇으로 대체</b><span class="li2">→ 우리는 <span class="hl">저비용 리더+팔로워</span>로 소규모 현장을 겨냥</span></div></div>
<div class="card"><div class="ch">느낀 점 · 성과</div><div class="cb">안전 설계 · 통신 구조의 교훈<span class="li2">단순·안정이 화려함을 이긴다</span><span class="li2">→ 자율주행 · 로보틱스 · 임베디드 <b>실무 역량</b> (경력 연관)</span></div></div>
</div>
<div class="lead" style="font-size:2.1cqw;">향후 — 인계 자동화 완성 · 편대 N대 확장 · 적재/하역 자동화 · 실환경 검증</div>
</div></div>
</section>
<!-- S21 마무리 -->
<section class="slide" data-sec="closing">
<div class="closing">
<div class="ty">감사합니다</div>
<div class="qa">Q & A</div>
<div class="link">팀 MYMY · 프로젝트 PACK · github.com/steeze1213/PACK</div>
</div>
</section>
</div>
<script>
var SECTIONS = ["Intro","System","Scenario","Tech","Design","Effect","Team","Review"];
var slides = document.querySelectorAll('.slide');
slides.forEach(function(sl,i){
var rail = sl.querySelector('.rail');
if(rail){ rail.innerHTML = SECTIONS.map(function(s){ return '<div class="r'+(sl.dataset.sec===s?' on':'')+'">'+s+'</div>'; }).join(''); }
var main = sl.querySelector('.main');
if(main){ var f=document.createElement('div'); f.className='foot';
f.innerHTML='<span class="b">PACK · MYMY</span><span class="p">'+String(i+1).padStart(2,'0')+' / '+String(slides.length).padStart(2,'0')+'</span>';
main.appendChild(f); }
});
var cur=0;
function go(n){ cur=Math.max(0,Math.min(slides.length-1,n)); slides[cur].scrollIntoView({behavior:'smooth',block:'center'}); }
document.addEventListener('keydown',function(e){
if(['ArrowDown','ArrowRight',' ','PageDown'].includes(e.key)){ e.preventDefault(); go(cur+1); }
if(['ArrowUp','ArrowLeft','PageUp'].includes(e.key)){ e.preventDefault(); go(cur-1); }
});
</script>
</body>
</html>























'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/07/08 (0) | 2026.07.08 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/07/07 (1) | 2026.07.07 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/07/03 (0) | 2026.07.03 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/07/01 (0) | 2026.07.01 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/06/30 (0) | 2026.06.30 |