Curieux.JY
  • JungYeon Lee
  • Post
  • Projects
  • Note

On this page

  • ๐Ÿ” Ping Review
  • ๐Ÿ”” Ring Review
    • 1. ์„œ๋ก : VLA ์‹œ๋Œ€์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ณ€ํ™”
      • 1.1 ์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ๊ณผ ๋™๊ธฐ
      • 1.2 XRoboToolkit์˜ ํ•ต์‹ฌ ๊ธฐ์—ฌ
    • 2. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ์ƒ์„ธ ๋ถ„์„
      • 2.1 ์ „์ฒด ์‹œ์Šคํ…œ ๊ฐœ์š”
      • 2.2 OpenXR ๋ฐ์ดํ„ฐ ํฌ๋งท๊ณผ ์ขŒํ‘œ๊ณ„
      • 2.3 XRoboToolkit-PC-Service์˜ ๋น„๋™๊ธฐ ์•„ํ‚คํ…์ฒ˜
    • 3. ํ•ต์‹ฌ ๊ธฐ์ˆ  ์š”์†Œ ์‹ฌ์ธต ๋ถ„์„
      • 3.1 ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ๋น„์ฃผ์–ผ ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
      • 3.2 ์ตœ์ ํ™” ๊ธฐ๋ฐ˜ ์—ญ์šด๋™ํ•™(Inverse Kinematics) ์†”๋ฒ„
      • 3.3 ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ…
    • 4. ์ง€์› ํ”Œ๋žซํผ ๋ฐ ์‘์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค
      • 4.1 ์ง€์› ๋กœ๋ด‡ ํ”Œ๋žซํผ
      • 4.2 ์‘์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค
    • 5. VLA ๋ชจ๋ธ ํ•™์Šต์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ฒ€์ฆ
      • 5.1 ์‹คํ—˜ ์„ค์ •
      • 5.2 VLA ํ•™์Šต ๋ฐ ๊ฒฐ๊ณผ
    • 6. ๊ธฐ์กด ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต ๋ถ„์„
      • 6.1 ๋ฆฌ๋”-ํŒ”๋กœ์›Œ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต
      • 6.2 VR ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต
      • 6.3 ์—‘์†Œ์Šค์ผˆ๋ ˆํ†ค ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต
      • 6.4 ๋น„์ „ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต
    • 7. ๊ธฐ์ˆ ์  ๊ณ ์ฐฐ ๋ฐ ์‹ฌ์ธต ๋ถ„์„
      • 7.1 OpenXR ํ‘œ์ค€ ์ฑ„ํƒ์˜ ์˜์˜
      • 7.2 QP ๊ธฐ๋ฐ˜ IK์˜ ์ด๋ก ์  ๋ฐฐ๊ฒฝ
      • 7.3 ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ…์˜ ๊ธฐ์ˆ ์  ๊ณผ์ œ
      • 7.4 ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ๊ณผ VLA ์„ฑ๋Šฅ์˜ ๊ด€๊ณ„
    • 8. ํ•œ๊ณ„์  ๋ฐ ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ
      • 8.1 ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ํ•œ๊ณ„
      • 8.2 ์ถ”๊ฐ€์ ์ธ ํ•œ๊ณ„ ๋ฐ ๊ฐœ์„  ๋ฐฉํ–ฅ
      • 8.3 ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ ์ œ์•ˆ
    • 9. ์‹ค๋ฌด์  ๊ณ ๋ ค์‚ฌํ•ญ
      • 9.1 ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๊ฐ€์ด๋“œ
      • 9.2 ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค
      • 9.3 VLA ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ํ†ตํ•ฉ
    • 10. ๊ด€๋ จ ์—ฐ๊ตฌ ๋ฐ ์ƒํƒœ๊ณ„
      • 10.1 ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋น„๊ตํ‘œ
      • 10.2 VLA ๋ชจ๋ธ ์ƒํƒœ๊ณ„
      • 10.3 ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ๋…ธ๋ ฅ
    • 11. ๊ฒฐ๋ก 
      • 11.1 ์ข…ํ•ฉ ํ‰๊ฐ€
      • 11.2 ๊ฐ•์  ์š”์•ฝ
      • 11.3 ์•ฝ์  ๋ฐ ๊ฐœ์„  ํ•„์š” ์˜์—ญ
      • 11.4 ํ–ฅํ›„ ์ „๋ง
  • โ›๏ธ Dig Review
    • ์†Œ๊ฐœ (๋ฐฐ๊ฒฝ๊ณผ ํ•„์š”์„ฑ)
    • XRoboToolkit ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”
    • ๊ตฌ์„ฑ ์š”์†Œ๋ณ„ ์—ญํ•  (Control, Communication, Robot Abstraction Layer)
      • ์ œ์–ด ๊ณ„์ธต: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ๋กœ๋ด‡ ๋ช…๋ น ์ƒ์„ฑ
      • ํ†ต์‹  ๊ณ„์ธต: ๋ฐ์ดํ„ฐ ๋ฐ ์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ
      • ๋กœ๋ด‡ ์ถ”์ƒํ™” ๊ณ„์ธต: ๋‹ค์ข… ๋กœ๋ด‡ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ†ตํ•ฉ
    • ์™ธ๋ถ€ ๊ธฐ์ˆ ๊ณผ์˜ ํ†ตํ•ฉ (ROS, Unity, WebRTC ๋“ฑ)
    • ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์ง€์› ๊ตฌ์กฐ
    • ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์˜ ๊ฐ•์ 
    • ํ•œ๊ณ„์  ๋ฐ ๊ฐœ์„  ํ•„์š” ์š”์†Œ
    • ๊ธฐ์กด ์›๊ฒฉ์ œ์–ด ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ๋น„๊ต
    • ๋กœ๋ด‡๊ณตํ•™์ž ๊ด€์ ์˜ ํ™œ์šฉ ๊ฐ€๋Šฅ์„ฑ, ํ™•์žฅ์„ฑ, ์—ฐ๊ตฌ ๊ธฐํšŒ
    • ์ •๋ฆฌ ๋ฐ ํ–ฅํ›„ ๋ฐœ์ „ ๋ฐฉํ–ฅ

๐Ÿ“ƒXRoboToolkit ๋ฆฌ๋ทฐ

teleop
vla
dexterity
A Cross-Platform Framework for Robot Teleoperation
Published

December 17, 2025

๐Ÿ” Ping. ๐Ÿ”” Ring. โ›๏ธ Dig. A tiered review series: quick look, key ideas, deep dive.

  • Paper Link
  • Code
  • Project

๐Ÿ” Ping Review

๐Ÿ” Ping โ€” A light tap on the surface. Get the gist in seconds.

XRoboToolkit์€ Vision-Language-Action (VLA) ๋ชจ๋ธ ํ•™์Šต์„ ์œ„ํ•œ ๋Œ€๊ทœ๋ชจ, ๊ณ ํ’ˆ์งˆ ๋กœ๋ด‡ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ์…‹์˜ ๊ธด๊ธ‰ํ•œ ํ•„์š”์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ํฌ๋กœ์Šค-ํ”Œ๋žซํผ Extended Reality (XR) ๊ธฐ๋ฐ˜ ๋กœ๋ด‡ ์›๊ฒฉ ์กฐ์ž‘(teleoperation) ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์›๊ฒฉ ์กฐ์ž‘ ๋ฐฉ์‹์˜ ์ œํ•œ๋œ ํ™•์žฅ์„ฑ, ๋ณต์žกํ•œ ์„ค์ •, ๊ทธ๋ฆฌ๊ณ  ๋ถˆ๊ท ์ผํ•œ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” OpenXR ํ‘œ์ค€์„ ์ฑ„ํƒํ•˜์—ฌ XR ์žฅ์น˜(์˜ˆ: PICO 4 Ultra, Meta Quest 3)์™€ ๋กœ๋ด‡ ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ„์˜ ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ผ๋ฐ˜ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋ด‡ ์ธก๋ฉด์—์„œ๋Š” ๋ชจ๋“ˆํ™”๋œ Python ๋ฐ C++ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ(์ •๋ฐ€ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ, ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡, ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ) ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ(MuJoCo)๊ณผ์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๋ฐฉ๋ฒ•๋ก  ๋ฐ ๊ธฐ์ˆ ์  ์„ธ๋ถ€ ์‚ฌํ•ญ:

  1. ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ (Data Streaming):
    • XRoboToolkit-PC-Service๋Š” VR ํ•˜๋“œ์›จ์–ด์—์„œ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ธฐ ์œ„ํ•œ ๋น„๋™๊ธฐ์‹, ์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • XR ๋ฐ์ดํ„ฐ ํ˜•์‹: OpenXR ์ปจ๋ฒค์…˜์— ๋”ฐ๋ผ ๋ชจ๋“  ์œ„์น˜ ๋ฐ ํšŒ์ „ ๋ฐ์ดํ„ฐ๋Š” X์ถ•์ด ์˜ค๋ฅธ์ชฝ, Y์ถ•์ด ์œ„, Z์ถ•์ด ๋’ค๋ฅผ ํ–ฅํ•˜๋Š” ์˜ค๋ฅธ์† ์ขŒํ‘œ๊ณ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์›์ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ ์‚ฌ์šฉ์ž์˜ ๋จธ๋ฆฌ ์œ„์น˜์— ์„ค์ •๋ฉ๋‹ˆ๋‹ค. 6-์ž์œ ๋„(DOF) ์ž์„ธ ๋ฐ์ดํ„ฐ๋Š” [x, y, z]์˜ 3D ์œ„์น˜ ๋ฒกํ„ฐ์™€ ์ฟผํ„ฐ๋‹ˆ์–ธ [qx, qy, qz, qw]๋กœ ๊ตฌ์„ฑ๋œ 7๊ฐœ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋กœ ํฌ๋งท๋ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ๋Š” ๋‹จ์ผ JSON ๊ฐ์ฒด๋กœ 90Hz๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ํŒŒ์‹ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ํ™œ์„ฑํ™”๋œ ํŠธ๋ž˜ํ‚น ๊ธฐ๋Šฅ์— ๊ด€๊ณ„์—†์ด ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ํŠธ๋ž˜ํ‚น ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ง€์›:
      • Head Tracking: ํ—ค๋“œ์…‹ ์ž์„ธ, ํŠธ๋ž˜ํ‚น ์‹ ๋ขฐ๋„, ์ž…๋ ฅ ๋ชจ๋“œ(์ปจํŠธ๋กค๋Ÿฌ, ์†)๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
      • Controller Tracking: ์ขŒ์šฐ ์ปจํŠธ๋กค๋Ÿฌ ์ž์„ธ์™€ ๋ฒ„ํŠผ(primaryButton, secondaryButton, menuButton), ์กฐ์ด์Šคํ‹ฑ(axisX, axisY), ์•„๋‚ ๋กœ๊ทธ ์ œ์–ด(grip, trigger) ์ƒํƒœ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.
      • Hand Gesture Tracking: XR ํ—ค๋“œ์…‹์˜ ์ž์ฒด ์† ํŠธ๋ž˜ํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด 26๊ฐœ์˜ ์† ๊ด€์ ˆ ์ž์„ธ(์—„์ง€ 4๊ฐœ, ๋‚˜๋จธ์ง€ ์†๊ฐ€๋ฝ๋‹น 5๊ฐœ, ์†๋ฐ”๋‹ฅ ๋ฐ ์†๋ชฉ ๊ด€์ ˆ)๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ด€์ ˆ์€ 6-DOF ์ž์„ธ์™€ ํŠธ๋ž˜ํ‚น ์ƒํƒœ, ๊ด€์ ˆ ๋ฐ˜๊ฒฝ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” 90Hz๋กœ ์ „์†ก๋˜์ง€๋งŒ ์นด๋ฉ”๋ผ ํ•œ๊ณ„๋กœ ์ธํ•ด 60Hz๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
      • Whole-Body Motion Capture: 24๊ฐœ์˜ ์ฃผ์š” ์ธ์ฒด ๋ชจ๋ธ ๊ด€์ ˆ์— ํ•ด๋‹นํ•˜๋Š” ํ‚คํฌ์ธํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ๊ฐ ํ•ญ๋ชฉ์€ ๊ด€์ ˆ ์ž์„ธ, ์†๋„ ๋ฐ ๊ฐ€์†๋„๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
      • Motion Tracker: PICO 4 Ultra์˜ ๊ฒฝ์šฐ ๋ณด์กฐ ๋ชจ์…˜ ํŠธ๋ž˜์ปค์˜ ๊ฐ์ฒด ํŠธ๋ž˜ํ‚น ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ž์„ธ, ์†๋„, ๊ฐ€์†๋„, ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  2. ๋กœ๋ด‡ ์ œ์–ด (Robot Control):
    • XR ํŠธ๋ž˜ํ‚น ์ƒํƒœ๋ฅผ ๋กœ๋ด‡ ๋ช…๋ น์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ์—ฌ๋Ÿฌ ์ œ์–ด ๋ชจ๋“œ(IK, ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ…, ํ—ค๋“œ ํŠธ๋ž˜ํ‚น, ๋ชจ๋ฐ”์ผ ๋ฒ ์ด์Šค ์ œ์–ด)๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
    • ์—ญ๊ธฐ๊ตฌํ•™ (Inverse Kinematics, IK): ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ์ œ์–ด๋ฅผ ์œ„ํ•ด PlaCo [19] ๊ธฐ๋ฐ˜์˜ QP(Quadratic Programming)-๊ธฐ๋ฐ˜ IK ์†”๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
      • QP ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค: \min_{\dot{q}} \sum_{i=1}^{N} w_i \|J_i(q) \dot{q} + e_i(q)\|^2 \text{s.t.} \quad l \le C(q) \dot{q} \le u ์—ฌ๊ธฐ์„œ q๋Š” ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ๊ตฌ์„ฑ, e_i(q)๋Š” ๊ฐ€์ค‘์น˜ w_i๋ฅผ ๊ฐ€์ง„ ์ž”์ฐจ ํ•จ์ˆ˜๋กœ ์ •์˜๋œ ๊ฐ ํƒœ์Šคํฌ i, J_i(q)๋Š” ํƒœ์Šคํฌ ์ž์ฝ”๋น„์•ˆ, C(q)๋Š” ์ถ”๊ฐ€ ์ œ์•ฝ ์กฐ๊ฑด ํ–‰๋ ฌ์ž…๋‹ˆ๋‹ค.
      • ํŠน์ด์ (singularities) ๊ทผ์ฒ˜์—์„œ ๋กœ๋ด‡ ์•ˆ์ •์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์กฐ์ž‘์„ฑ(manipulability)์„ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ์ •๊ทœํ™” ํ•ญ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค: m = \sqrt{\det(J(q)J(q)^\top)}
      • XR ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์šฉ ์‹œ, ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋ฆฝ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ ๋ง๋‹จ ํšจ๊ณผ๊ธฐ(end-effector) ํŠธ๋ž˜ํ‚น์ด ํ™œ์„ฑํ™”๋˜๋ฉฐ, ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ƒ๋Œ€์  ์›€์ง์ž„์„ ๋กœ๋ด‡์˜ ๋ง๋‹จ ํšจ๊ณผ๊ธฐ์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.
      • ๋ณด์กฐ ๋ชจ์…˜ ํŠธ๋ž˜์ปค(์˜ˆ: ํŒ”๊ฟˆ์น˜์— ๋ถ€์ฐฉ)๋Š” ์ถ”๊ฐ€์ ์ธ IK ์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ๊ณตํ•˜์—ฌ ๋กœ๋ด‡์˜ ์ „์‹  ์ž์„ธ๋ฅผ ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ณ , Null-space redundancy๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ, ์ธ๊ฐ„๊ณผ ์œ ์‚ฌํ•œ ์›€์ง์ž„์„ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ… (Dexterous Hand Retargeting):
      • OpenXR ์† ํŠธ๋ž˜ํ‚น ๋ชจ๋ธ์˜ ํ‚คํฌ์ธํŠธ ์œ„์น˜๋ฅผ ๋กœ๋ด‡ ํ•ธ๋“œ ๊ด€์ ˆ ๊ณต๊ฐ„์œผ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.
      • ์ด๋Š” ๋‹ค์Œ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค: \min_{q_t} \sum_{i=1}^{N} \left\|\alpha v_i^t - f_i(q_t)\right\|^2 + \beta \|q_t - q_{t-1}\|^2 \text{s.t.} \quad q_l \le q_t \le q_u ์—ฌ๊ธฐ์„œ q_t๋Š” ์‹œ๊ฐ„ t์—์„œ์˜ ๋กœ๋ด‡ ํ•ธ๋“œ ๊ด€์ ˆ ๊ตฌ์„ฑ, v_i^t๋Š” ์ธ๊ฐ„ ์† ๋ชจ๋ธ์˜ i-๋ฒˆ์งธ ํ‚คํฌ์ธํŠธ ์œ„์น˜, f_i(q_t)๋Š” ํ•ด๋‹น ๋กœ๋ด‡ ํ•ธ๋“œ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ, \alpha๋Š” ๋‹ค๋ฅธ ์† ํฌ๊ธฐ์— ๋Œ€ํ•œ ์Šค์ผ€์ผ๋ง ์ธ์ž, \beta๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ์›€์ง์ž„์„ ์œ„ํ•œ ์ •๊ทœํ™” ๊ฐ€์ค‘์น˜์ž…๋‹ˆ๋‹ค. dex retargeting [12]์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋ฐ”์ผ ๋ฒ ์ด์Šค ์ œ์–ด (Mobile Base Control): ์˜ด๋‹ˆ๋””๋ ‰์…”๋„ ํ”Œ๋žซํผ์„ ๊ฐ€์ง„ ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, XR ์ปจํŠธ๋กค๋Ÿฌ ์กฐ์ด์Šคํ‹ฑ์œผ๋กœ ๋ชจ๋ฐ”์ผ ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  3. ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „ ํ”ผ๋“œ๋ฐฑ (Stereoscopic Visual Feedback):
    • PICO 4 Ultra ํ—ค๋“œ์…‹์˜ ์˜จ๋ณด๋“œ ์นด๋ฉ”๋ผ ๋˜๋Š” ์™ธ๋ถ€ ZED Mini ์นด๋ฉ”๋ผ๋ฅผ ํ†ตํ•ด ์Šคํ…Œ๋ ˆ์˜ค ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ์ง€์ • ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™๊ณต ๊ฐ„ ๊ฑฐ๋ฆฌ(interpupillary distance)๋ฅผ ์กฐ์ •ํ•˜๊ณ  ์ดˆ์ ์„ ์•ฝ 3.3ํ”ผํŠธ์— ์„ค์ •ํ•˜์—ฌ ์กฐ์ž‘ ์ž‘์—…์— ์ ํ•ฉํ•œ 3์ฐจ์› ๊นŠ์ด ์ธ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. PICO 4 Ultra๋Š” ZED Mini์— ๋น„ํ•ด ์šฐ์ˆ˜ํ•œ ์‹œ๊ฐ์  ํ’ˆ์งˆ๊ณผ ๊ท ํ˜• ์žกํžŒ ์‹œ์•ผ(FOV)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ ์šฉ ๋ฐ ์‹œ์—ฐ:

XRoboToolkit์€ ๋“€์–ผ UR5 ๋ฐ ARX R5 ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ, Galaxea R1-Lite ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ, Shadow ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ๊ณผ MuJoCo ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์—์„œ ๊ฒ€์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • XR ์ปจํŠธ๋กค๋Ÿฌ ๊ธฐ๋ฐ˜ ์›๊ฒฉ ์กฐ์ž‘: ๋“€์–ผ ์•” ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ๋ฐ ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ์ œ์–ด์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์ •๋ฐ€ ์กฐ์ž‘๊ณผ ์•กํ‹ฐ๋ธŒ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „: 2-DOF ์•กํ‹ฐ๋ธŒ ํ—ค๋“œ(yaw, pitch)์™€ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „์„ ๊ฐ–์ถ˜ ๋“€์–ผ UR5 ์„ค์ •์—์„œ 3mm ๋“œ๋ผ์ด๋ฒ„๋ฅผ 4mm ๊ตฌ๋ฉ์— ์‚ฝ์ž…ํ•˜๋Š” ๊ณ ์ •๋ฐ€ ์ž‘์—…(0.5mm ๊ณต์ฐจ)์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
  • redundant ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ์ œ์–ด๋ฅผ ์œ„ํ•œ ๋ชจ์…˜ ํŠธ๋ž˜์ปค: Unitree G1 ์ƒ์ฒด ๋ชจ๋ธ์— ๋ณด์กฐ ๋ชจ์…˜ ํŠธ๋ž˜์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 7-DOF ๋กœ๋ด‡ ํŒ”๊ฟˆ์น˜ ์ œ์–ด์— ํ™œ์šฉ๋˜๋ฉฐ, ์ธ๊ฐ„์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ํŒ” ๊ตฌ์„ฑ์„ ๋ชจ๋ฐฉํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • MuJoCo์—์„œ์˜ ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ์ œ์–ด: ํ—ค๋“œ์…‹์˜ ์† ํŠธ๋ž˜ํ‚น ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MuJoCo ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ Shadow Hand์˜ ํ‚ค๋„ค๋งˆํ‹ฑ ๊ตฌ์กฐ๋กœ ๋งคํ•‘ํ•˜์—ฌ ๋ฏธ์„ธ ์กฐ์ž‘ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ํ‰๊ฐ€:

  • ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์—ฐ ์‹œ๊ฐ„ ๋น„๊ต: Open-TeleVision๊ณผ ๋น„๊ตํ•˜์—ฌ XRoboToolkit์€ ZED Mini - PICO 4 Ultra ๊ตฌ์„ฑ์—์„œ 82.00ms์˜ ๊ฐ€์žฅ ๋‚ฎ์€ ํ‰๊ท  ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ZED Mini - Quest 3 ๊ตฌ์„ฑ์—์„œ๋Š” Open-TeleVision(121.50ms)๋ณด๋‹ค 27ms(22%) ํ–ฅ์ƒ๋œ 94.50ms๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. PICO 4 Ultra - PICO 4 Ultra ๊ตฌ์„ฑ์€ 3.12ms๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฐ€๋ณ€์„ฑ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
  • VLA ๋ฏธ์„ธ ์กฐ์ • ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘: XRoboToolkit์„ ์‚ฌ์šฉํ•˜์—ฌ ARX R5 ๋“€์–ผ ์•” ์‹œ์Šคํ…œ์œผ๋กœ ์–‘ํŒ” ์นดํŽซ ์ ‘๊ธฐ(bimanual carpet folding) ์ž‘์—…์„ 100ํšŒ ์‹œ์—ฐํ•˜์—ฌ ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋กœ \pi^0 ๋ชจ๋ธ [3]์„ ๋ฏธ์„ธ ์กฐ์ •ํ•˜์—ฌ 100%์˜ ์„ฑ๊ณต๋ฅ ๊ณผ ์ž์œจ์ ์ธ ๋ฆฌ๊ทธ๋ž˜์Šคํ•‘ ๋ฐ ์žฌ๋ฐฐ์น˜ ๋™์ž‘์„ ๋ณด์ด๋Š” ๊ฐ•๋ ฅํ•œ ์ •์ฑ…์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก :

XRoboToolkit์€ ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„์˜ ์Šคํ…Œ๋ ˆ์˜ค ํ”ผ๋“œ๋ฐฑ, ์ตœ์ ํ™” ๊ธฐ๋ฐ˜ ์ œ์–ด ๋ฐ ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ์‹œ์Šคํ…œ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๋Š” XR ๊ธฐ๋ฐ˜ ๋กœ๋ด‡ ์›๊ฒฉ ์กฐ์ž‘์„ ์œ„ํ•œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ์—์„œ ๊ทธ ๋‹ค์šฉ์„ฑ์„ ์ž…์ฆํ–ˆ์œผ๋ฉฐ, ์ •๋ฐ€ ์กฐ์ž‘ ์ž‘์—…๊ณผ VLA ๋ชจ๋ธ ํ›ˆ๋ จ์„ ํ†ตํ•ด ๊ทธ ํšจ๊ณผ๋ฅผ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ–ฅํ›„ ์—ฐ๊ตฌ:

  • ์ €์ž‘๋™(underactuated) ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์† ๋ฆฌํƒ€๊ฒŸํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์„ .
  • Roboverse [23]์™€ ๊ฐ™์€ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ง€์› ํ™•๋Œ€.
  • ๊ฒ€์ฆ๋œ ์ „์‹  ๋ชจ์…˜ ๋ฆฌํƒ€๊ฒŸํŒ… [24]์„ ํ†ตํ•œ ํœด๋จธ๋…ธ์ด๋“œ ์›๊ฒฉ ์กฐ์ž‘ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ.
  • OpenXR ํ‘œ์ค€ํ™” ๋…ธ๋ ฅ์— ๊ธฐ์—ฌํ•˜์—ฌ ๋”์šฑ ์ผ๊ด€๋œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ ํ™•๋ณด.

๐Ÿ”” Ring Review

๐Ÿ”” Ring โ€” An idea that echoes. Grasp the core and its value.

1. ์„œ๋ก : VLA ์‹œ๋Œ€์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ณ€ํ™”

1.1 ์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ๊ณผ ๋™๊ธฐ

Vision-Language-Action(VLA) ๋ชจ๋ธ์˜ ๊ธ‰๊ฒฉํ•œ ๋ฐœ์ „์€ ๋กœ๋ด‡ ๊ณตํ•™ ๋ถ„์•ผ์— ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ œ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Physical Intelligence์˜ ฯ€โ‚€, Google DeepMind์˜ RT-2, OpenVLA ๋“ฑ ๋Œ€๊ทœ๋ชจ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ๋“ค์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ, ๋กœ๋ด‡์ด ์ž์—ฐ์–ด ์ง€์‹œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋ณต์žกํ•œ ์กฐ์ž‘ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ ์  ํ˜„์‹คํ™”๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ชจ๋ธ๋“ค์˜ ์„ฑ๋Šฅ์€ ๊ฒฐ๊ตญ ํ•™์Šต์— ์‚ฌ์šฉ๋˜๋Š” ์‹œ์—ฐ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ๊ณผ ๊ทœ๋ชจ์— ํฌ๊ฒŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋กœ๋ด‡ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์˜ ์ฃผ๋ฅ˜ ๋ฐฉ๋ฒ•์€ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜(Teleoperation)์ž…๋‹ˆ๋‹ค. ์ธ๊ฐ„ ์กฐ์ž‘์ž๊ฐ€ ๋กœ๋ด‡์„ ์›๊ฒฉ์œผ๋กœ ์ œ์–ดํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ด ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ƒํƒœ-ํ–‰๋™ ์Œ์„ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ์กด์˜ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทผ๋ณธ์ ์ธ ํ•œ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

ํ™•์žฅ์„ฑ์˜ ํ•œ๊ณ„: ALOHA, GELLO ๊ฐ™์€ ๋ฆฌ๋”-ํŒ”๋กœ์›Œ(Leader-Follower) ์‹œ์Šคํ…œ์€ ์ •๋ฐ€ํ•œ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ํŠน์ • ๋กœ๋ด‡ ํ•˜๋“œ์›จ์–ด์— ์ข…์†๋˜์–ด ์žˆ์–ด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์œผ๋กœ์˜ ํ™•์žฅ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ALOHA ๋“€์–ผ ์•” ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ $50,000 ์ด์ƒ์˜ ๋น„์šฉ์ด ๋“ค๋ฉฐ, GELLO์กฐ์ฐจ๋„ ๋‹จ์ผ ์•”๋‹น $270 ์ด์ƒ์˜ BOM ๋น„์šฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์žกํ•œ ์„ค์ • ์ ˆ์ฐจ: ๊ธฐ์กด VR/XR ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์†”๋ฃจ์…˜๋“ค์€ Unity SDK๋‚˜ WebXR ํ”Œ๋žซํผ์— ์˜์กดํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ XR ์žฅ์น˜์™€ ๋กœ๋ด‡ ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ„์˜ ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท์ด ๋ถ€์žฌํ•˜์—ฌ, ์ƒˆ๋กœ์šด ์žฅ์น˜๋‚˜ ๋กœ๋ด‡ ํ”Œ๋žซํผ์„ ํ†ตํ•ฉํ•  ๋•Œ๋งˆ๋‹ค ์ƒ๋‹นํ•œ ์—”์ง€๋‹ˆ์–ด๋ง ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ฌธ์ œ: ๋น„์ „ ๊ธฐ๋ฐ˜ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ(DexCap, UMI, AnyTeleop ๋“ฑ)์€ ์‚ฌ์šฉ์ด ํŽธ๋ฆฌํ•˜์ง€๋งŒ, ์šด๋™ํ•™์  ํŠน์ด์ (kinematic singularity) ๋ฌธ์ œ, ๋กœ๋ด‡ ์ž‘์—… ๊ณต๊ฐ„ ์ดˆ๊ณผ, ์ •๋ฐ€๋„ ๋ถ€์กฑ ๋“ฑ์˜ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.2 XRoboToolkit์˜ ํ•ต์‹ฌ ๊ธฐ์—ฌ

XRoboToolkit์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด OpenXR ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฃผ์š” ๊ธฐ์—ฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. OpenXR ๊ธฐ๋ฐ˜ ํ‘œ์ค€ํ™”: ์—…๊ณ„ ํ‘œ์ค€์ธ OpenXR์„ ์ฑ„ํƒํ•˜์—ฌ ๋‹ค์–‘ํ•œ XR ํ—ค๋“œ์…‹(PICO 4 Ultra, Meta Quest 3 ๋“ฑ)์—์„œ ๋™์ž‘ํ•˜๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ์„ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ์ €์ง€์—ฐ ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ๋น„์ „: ์ตœ์ ํ™”๋œ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ์ €์ง€์—ฐ ์–‘์•ˆ ์‹œ๊ฐ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜์—ฌ ๋ชจ์…˜ ์‹œํฌ๋‹ˆ์Šค๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ์ง๊ด€์ ์ธ ์กฐ์ž‘ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. ์ตœ์ ํ™” ๊ธฐ๋ฐ˜ ์—ญ์šด๋™ํ•™(IK) ์†”๋ฒ„: Quadratic Programming(QP) ๊ธฐ๋ฐ˜์˜ IK ์†”๋ฒ„๋ฅผ ํ†ตํ•ด ํŠน์ด์  ๊ทผ์ฒ˜์—์„œ๋„ ๋ถ€๋“œ๋Ÿฝ๊ณ  ์•ˆ์ •์ ์ธ ๋กœ๋ด‡ ๋ชจ์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์–‘ํ•œ ํŠธ๋ž˜ํ‚น ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ง€์›: ํ—ค๋“œ, ์ปจํŠธ๋กค๋Ÿฌ, ํ•ธ๋“œ, ๋ณด์กฐ ๋ชจ์…˜ ํŠธ๋ž˜์ปค ๋“ฑ ๋‹ค์–‘ํ•œ ํŠธ๋ž˜ํ‚น ๋ฐฉ์‹์„ ํ†ตํ•ฉ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜: UR5, ARX R5, Galaxea R1-Lite ๋“ฑ ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ๊ณผ MuJoCo ๊ฐ™์€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ๋Ÿฌ ์„ค๊ณ„๋ฅผ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

2. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ์ƒ์„ธ ๋ถ„์„

2.1 ์ „์ฒด ์‹œ์Šคํ…œ ๊ฐœ์š”

XRoboToolkit์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ํฌ๊ฒŒ XR ์ธก(ํด๋ผ์ด์–ธํŠธ)๊ณผ ๋กœ๋ด‡ ์ธก(์„œ๋ฒ„)์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ์ธก๋ฉด์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ†ต์‹ ํ•˜๋ฉฐ, ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

XR ์ธก ์ปดํฌ๋„ŒํŠธ:

  • XRoboToolkit-Unity-Client: XR ํ—ค๋“œ์…‹์— ๋ฐฐํฌ๋˜๋Š” Unity ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, ํฌ์ฆˆ ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ ์บก์ฒ˜์™€ ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ์‹œ๊ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ํฌ์ฆˆ ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ: ํ—ค๋“œ, ํ•ธ๋“œ, ์ปจํŠธ๋กค๋Ÿฌ, ์ „์‹ , ์˜ค๋ธŒ์ ํŠธ ํŠธ๋ž˜ํ‚น(๋ชจ์…˜ ํŠธ๋ž˜์ปค๋ฅผ ํ†ตํ•œ) ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋ด‡ ์ธก ์ปดํฌ๋„ŒํŠธ:

  • XRoboToolkit-PC-Service: C++๋กœ ๊ตฌํ˜„๋œ PC ์„œ๋น„์Šค๋กœ, XR ํ—ค๋“œ์…‹์œผ๋กœ๋ถ€ํ„ฐ ํฌ์ฆˆ ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • XRoboToolkit-PC-Service-Pybind: Python์—์„œ XR ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐ”์ธ๋”ฉ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค.
  • XRoboToolkit-Robot-Vision: PICO ํ—ค๋“œ์…‹์˜ ์˜จ๋ณด๋“œ ์นด๋ฉ”๋ผ ๋˜๋Š” ์™ธ๋ถ€ ZED Mini ์นด๋ฉ”๋ผ๋ฅผ ํ†ตํ•œ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.
  • XRoboToolkit-Teleop-Sample-Python: IK ๋ฐ ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ๋ฆฌํƒ€๊ฒŸํŒ… ์†”๋ฒ„๊ฐ€ ๊ตฌํ˜„๋œ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

2.2 OpenXR ๋ฐ์ดํ„ฐ ํฌ๋งท๊ณผ ์ขŒํ‘œ๊ณ„

XRoboToolkit์€ OpenXR ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ผ ๋ชจ๋“  ์œ„์น˜ ๋ฐ ํšŒ์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ์ˆ˜ ์ขŒํ‘œ๊ณ„(right-handed coordinate system)๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ขŒํ‘œ์ถ•์€ X์ถ•์ด ์˜ค๋ฅธ์ชฝ, Y์ถ•์ด ์œ„์ชฝ, Z์ถ•์ด ๋’ค์ชฝ์„ ํ–ฅํ•ฉ๋‹ˆ๋‹ค.

6-DOF ํฌ์ฆˆ ๋ฐ์ดํ„ฐ ํฌ๋งท:

  • 7๊ฐœ์˜ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆซ์ž๋กœ ๊ตฌ์„ฑ: 3D ์œ„์น˜ ๋ฒกํ„ฐ(x, y, z) + ํšŒ์ „ ์ฟผํ„ฐ๋‹ˆ์–ธ(qx, qy, qz, qw)
  • ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์ „์†ก

์›์  ์„ค์ •:

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ ์‚ฌ์šฉ์ž์˜ ํ—ค๋“œ ์œ„์น˜๊ฐ€ ์›์ ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ƒ๋Œ€์  ์›€์ง์ž„์ด ๋กœ๋ด‡ ์ œ์–ด์— ์ง๊ด€์ ์œผ๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

2.3 XRoboToolkit-PC-Service์˜ ๋น„๋™๊ธฐ ์•„ํ‚คํ…์ฒ˜

PC ์„œ๋น„์Šค๋Š” VR ํ•˜๋“œ์›จ์–ด๋กœ๋ถ€ํ„ฐ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ์˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•ด ๋น„๋™๊ธฐ, ์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค๊ณ„ ์„ ํƒ์˜ ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ๋…ผ๋ธ”๋กœํ‚น I/O: ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ๊ณผ ์ฒ˜๋ฆฌ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด ์‹œ์Šคํ…œ ์‘๋‹ต์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
  2. ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ: ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•  ๋•Œ๋งˆ๋‹ค ์ฝœ๋ฐฑ์ด ํ˜ธ์ถœ๋˜์–ด ์ฆ‰๊ฐ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฆฌ์†Œ์Šค ํšจ์œจ์„ฑ: ํด๋ง ๋ฐฉ์‹ ๋Œ€๋น„ CPU ์‚ฌ์šฉ๋ฅ ์„ ๋‚ฎ์ถ”๋ฉด์„œ๋„ ์ €์ง€์—ฐ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

3. ํ•ต์‹ฌ ๊ธฐ์ˆ  ์š”์†Œ ์‹ฌ์ธต ๋ถ„์„

3.1 ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ๋น„์ฃผ์–ผ ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ

ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜์—์„œ ์‹œ๊ฐ ํ”ผ๋“œ๋ฐฑ์˜ ํ’ˆ์งˆ์€ ์กฐ์ž‘์ž์˜ ์ƒํ™ฉ ์ธ์‹๊ณผ ์ž‘์—… ์ˆ˜ํ–‰ ๋Šฅ๋ ฅ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. XRoboToolkit์€ ๋‘ ๊ฐ€์ง€ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

PICO 4 Ultra ์˜จ๋ณด๋“œ ์นด๋ฉ”๋ผ:

  • ์ˆ˜ํ‰ FOV: ์•ฝ 76.35ยฐ, ์ˆ˜์ง FOV: ์•ฝ 61.05ยฐ
  • ๊ท ํ˜• ์žกํžŒ ์‹œ์•ผ๊ฐ์œผ๋กœ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์ž‘์—…์— ์ตœ์ ํ™”
  • ์šฐ์ˆ˜ํ•œ ํ†ค ์žฌํ˜„, ๋ฐ๊ธฐ, ์ƒ‰์ƒ ์ •ํ™•๋„, ๋‹ค์ด๋‚˜๋ฏน ๋ ˆ์ธ์ง€

ZED Mini ์™ธ๋ถ€ ์นด๋ฉ”๋ผ:

  • ์ˆ˜ํ‰ FOV: 82ยฐ, ์ˆ˜์ง FOV: 52ยฐ
  • ๋” ๋„“์€ ์ˆ˜ํ‰ ์‹œ์•ผ๊ฐ ์ œ๊ณต
  • ์›๊ฑฐ๋ฆฌ ๊นŠ์ด ์ •ํ™•๋„์—์„œ ์ผ๋ถ€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„

์—ฐ๊ตฌํŒ€์˜ ๊ฒฝํ—˜์  ๊ด€์ฐฐ์— ๋”ฐ๋ฅด๋ฉด, PICO 4 Ultra๊ฐ€ ์ „๋ฐ˜์ ์ธ ์‹œ๊ฐ ํ’ˆ์งˆ ์ธก๋ฉด์—์„œ ZED Mini๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์ž‘์—…์— ์ตœ์ ์ด๋ผ๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฑฐ๋ฆฌ์—์„œ ํ–ฅ์ƒ๋œ 3์ฐจ์› ๊นŠ์ด ์ธ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ €์ง€์—ฐ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ:

  • ๊ณ ํšจ์œจ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™”
  • ๋ชจ์…˜ ์‹œํฌ๋‹ˆ์Šค ์ตœ์†Œํ™”๋ฅผ ์œ„ํ•œ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ
  • ๋„คํŠธ์›Œํฌ ์กฐ๊ฑด์— ์ ์‘ํ•˜๋Š” ๋™์  ํ’ˆ์งˆ ์กฐ์ ˆ

3.2 ์ตœ์ ํ™” ๊ธฐ๋ฐ˜ ์—ญ์šด๋™ํ•™(Inverse Kinematics) ์†”๋ฒ„

๋กœ๋ด‡ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜์—์„œ IK ์†”๋ฒ„๋Š” ์ธ๊ฐ„ ์กฐ์ž‘์ž์˜ end-effector ํฌ์ฆˆ๋ฅผ ๋กœ๋ด‡์˜ ๊ด€์ ˆ ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. XRoboToolkit์€ Quadratic Programming(QP) ๊ธฐ๋ฐ˜์˜ IK ์†”๋ฒ„๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ๊ธฐ์กด ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด IK ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ :

  1. ํ•ด์„์ (Analytical) IK: ๋น ๋ฅด์ง€๋งŒ ํŠน์ • ๋กœ๋ด‡ ๊ธฐ๊ตฌํ•™์—๋งŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํŠน์ด์  ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  2. ์ˆ˜์น˜์ (Numerical) IK (Jacobian ๊ธฐ๋ฐ˜):
    • ํŠน์ด์  ๊ทผ์ฒ˜์—์„œ Jacobian ํ–‰๋ ฌ์˜ ์กฐ๊ฑด์ˆ˜(condition number)๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€
    • ๊ด€์ ˆ ์†๋„/ํ† ํฌ๊ฐ€ ๊ธ‰๋“ฑํ•˜์—ฌ ๋ถˆ์•ˆ์ •ํ•œ ์›€์ง์ž„ ๋ฐœ์ƒ
    • ๊ณ ์ •๋œ ๋„์ŠคํŽ˜์ด์Šค(nullspace) ํ• ๋‹น์œผ๋กœ ์ธํ•œ ์œ ์—ฐ์„ฑ ๋ถ€์กฑ

QP ๊ธฐ๋ฐ˜ IK์˜ ์žฅ์ :

QP ๊ธฐ๋ฐ˜ IK ์†”๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ตœ์ ํ™” ๋ฌธ์ œ๋กœ ์ •์‹ํ™”๋ฉ๋‹ˆ๋‹ค:

minimize    ||Jยทฮ”q - ฮ”x||ยฒ + ฮป||ฮ”q||ยฒ
subject to  q_min โ‰ค q + ฮ”q โ‰ค q_max
            |ฮ”q| โ‰ค ฮ”q_max
  • J: Jacobian ํ–‰๋ ฌ
  • ฮ”q: ๊ด€์ ˆ ์†๋„
  • ฮ”x: end-effector ์†๋„
  • ฮป: ์ •๊ทœํ™” ๊ณ„์ˆ˜
  • q_min, q_max: ๊ด€์ ˆ ํ•œ๊ณ„
  • ฮ”q_max: ๊ด€์ ˆ ์†๋„ ํ•œ๊ณ„

์ด ์ •์‹ํ™”์˜ ์ด์ :

  1. ํŠน์ด์  ํšŒํ”ผ: ์ •๊ทœํ™” ํ•ญ(||ฮ”q||ยฒ)์ด ํŠน์ด์  ๊ทผ์ฒ˜์—์„œ ๊ด€์ ˆ ์†๋„ ํญ์ฃผ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ œ์•ฝ ์กฐ๊ฑด ๋งŒ์กฑ: ๊ด€์ ˆ ํ•œ๊ณ„, ์†๋„ ํ•œ๊ณ„, ์‹ฌ์ง€์–ด ์ž๊ธฐ ์ถฉ๋Œ ํšŒํ”ผ๊นŒ์ง€ ๋ถ€๋“ฑ์‹ ์ œ์•ฝ์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋ถ€๋“œ๋Ÿฌ์šด ๋ชจ์…˜: ์ตœ์†Œ ๋…ธ๋ฆ„ ์†”๋ฃจ์…˜์„ ์ฐพ์œผ๋ฏ€๋กœ ์›€์ง์ž„์ด ๋ถ€๋“œ๋Ÿฝ๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  4. ์—ฌ์œ  ์ž์œ ๋„ ํ™œ์šฉ: 7-DOF ์ด์ƒ์˜ ์—ฌ์œ  ์ž์œ ๋„๋ฅผ ๊ฐ€์ง„ ๋กœ๋ด‡์˜ ๊ฒฝ์šฐ, ๋„์ŠคํŽ˜์ด์Šค ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋ถ€๊ฐ€ ๋ชฉํ‘œ(์˜ˆ: ์กฐ์ž‘์„ฑ ์ตœ๋Œ€ํ™”, ๊ด€์ ˆ ์ค‘์•™๊ฐ’ ์œ ์ง€)๋ฅผ ์ถ”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—˜๋ณด์šฐ ํŠธ๋ž˜ํ‚น์„ ํ†ตํ•œ ์—ฌ์œ  ์ž์œ ๋„ ์ œ์–ด:

XRoboToolkit์€ 7-DOF ์•”์˜ ๊ฒฝ์šฐ ๋ณด์กฐ ๋ชจ์…˜ ํŠธ๋ž˜์ปค๋ฅผ ์กฐ์ž‘์ž์˜ ํŒ”๊ฟˆ์น˜์— ๋ถ€์ฐฉํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ IK ์ œ์•ฝ์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด:

  • ์šด๋™ํ•™์  ์—ฌ์œ ๋„๋ฅผ ์ธ์ฒด ๊ณตํ•™์  ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐ
  • ์กฐ์ž‘์ž๊ฐ€ ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ์•” ๊ตฌ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ end-effector ํŠธ๋ž˜ํ‚น ์ˆ˜ํ–‰
  • ์ง๊ด€์ ์ธ ์ œ์–ด ๊ฒฝํ—˜ ์ œ๊ณต

3.3 ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ…

์ •๋ฐ€ ์กฐ์ž‘ ์ž‘์—…์„ ์œ„ํ•ด XRoboToolkit์€ ์ธ๊ฐ„ ์† ๋™์ž‘์„ ๋กœ๋ด‡ ํ•ธ๋“œ๋กœ ๋ฆฌํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ OpenXR์˜ 26-๊ด€์ ˆ ํ•ธ๋“œ ๋ชจ๋ธ์„ Shadow Hand์™€ ๊ฐ™์€ ๋กœ๋ด‡ ํ•ธ๋“œ์˜ ์šด๋™ํ•™์  ๊ตฌ์กฐ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

OpenXR ํ•ธ๋“œ ๋ชจ๋ธ (26 ๊ด€์ ˆ):

  • ์†๋ชฉ(Wrist): 1 ๊ด€์ ˆ
  • ์†๋ฐ”๋‹ฅ(Palm): ์—ฐ๊ฒฐ ๊ตฌ์กฐ
  • ๊ฐ ์†๊ฐ€๋ฝ(Thumb, Index, Middle, Ring, Pinky): 5๊ฐœ ร— 5 ๊ด€์ ˆ = 25 ๊ด€์ ˆ

๋ฆฌํƒ€๊ฒŸํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜:

ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค:

  1. ์†๊ฐ€๋ฝ ๋ ์œ„์น˜ ์ถ”์ถœ: OpenXR์—์„œ ๊ฐ ์†๊ฐ€๋ฝ ๋(Tip)์˜ 3D ์œ„์น˜๋ฅผ ์ถ”์ถœ
  2. ์†๋ชฉ ๊ธฐ์ค€ ์ •๊ทœํ™”: ์†๋ชฉ ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€ ์œ„์น˜ ๊ณ„์‚ฐ
  3. ์Šค์ผ€์ผ ์กฐ์ •: ์ธ๊ฐ„ ์†๊ณผ ๋กœ๋ด‡ ํ•ธ๋“œ์˜ ํฌ๊ธฐ ์ฐจ์ด ๋ณด์ •
  4. ์—ญ์šด๋™ํ•™ ํ•ด๊ฒฐ: ๋กœ๋ด‡ ํ•ธ๋“œ์˜ ๊ฐ ์†๊ฐ€๋ฝ์— ๋Œ€ํ•ด IK๋ฅผ ํ’€์–ด ๊ด€์ ˆ ๊ฐ๋„ ๊ณ„์‚ฐ
  5. ๊ด€์ ˆ ํ•œ๊ณ„ ํด๋ฆฌํ•‘: ๋กœ๋ด‡ ํ•ธ๋“œ์˜ ๋ฌผ๋ฆฌ์  ํ•œ๊ณ„ ๋‚ด๋กœ ๊ด€์ ˆ ๊ฐ๋„ ์ œํ•œ

ํ•œ๊ณ„์ : ๋…ผ๋ฌธ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰๋œ ํ•œ๊ณ„๋กœ, ํ˜„์žฌ ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ… ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ ๊ด€์ ˆ์ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ œ์–ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ INSPIRE Hands์™€ ๊ฐ™์ด ๊ด€์ ˆ ์›€์ง์ž„์ด ๊ธฐ๊ณ„์ ์œผ๋กœ ๊ฒฐํ•ฉ๋œ(coupled) ๋กœ๋ด‡ ํ•ธ๋“œ์—๋Š” ์ •ํ™•ํ•œ ๋ฆฌํƒ€๊ฒŸํŒ…์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


4. ์ง€์› ํ”Œ๋žซํผ ๋ฐ ์‘์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

4.1 ์ง€์› ๋กœ๋ด‡ ํ”Œ๋žซํผ

XRoboToolkit์˜ ๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ๊ณผ์˜ ํ†ตํ•ฉ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค:

์ •๋ฐ€ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ:

  • UR5: Universal Robots์˜ 6-DOF ํ˜‘๋™ ๋กœ๋ด‡. ์‚ฐ์—… ํ‘œ์ค€์œผ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋จ.
  • ARX R5: ๋“€์–ผ ์•” ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋Ÿ‰ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ.

๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ:

  • Galaxea R1-Lite: ์ด๋™ ๊ธฐ๋ฐ˜๊ณผ ๊ฒฐํ•ฉ๋œ ์กฐ์ž‘ ํ”Œ๋žซํผ์œผ๋กœ, ํ™•์žฅ๋œ ์ž‘์—… ๊ณต๊ฐ„ ์ œ๊ณต.

๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ:

  • Shadow Dexterous Hand: 24-DOF์˜ ์ธ๊ฐ„๊ณผ ์œ ์‚ฌํ•œ ๋กœ๋ด‡ ํ•ธ๋“œ๋กœ, ์ •๋ฐ€ ์กฐ์ž‘ ์ž‘์—…์— ์ ํ•ฉ.

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ:

  • MuJoCo: ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์œผ๋กœ, ์ •์ฑ… ํ•™์Šต ๋ฐ ํ‰๊ฐ€์— ํ™œ์šฉ.
  • MeshCat: ์‹œ๊ฐํ™” ๋„๊ตฌ๋กœ, ์‹ค์‹œ๊ฐ„ ๋กœ๋ด‡ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉ.

4.2 ์‘์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

๋…ผ๋ฌธ์—์„œ ์ œ์‹œ๋œ ์ฃผ์š” ์‘์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

์‹œ๋‚˜๋ฆฌ์˜ค (a): ๋“€์–ผ ์•” ์กฐ์ž‘ ๋ฐ ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ด์…˜

  • XR ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ ์–‘ํŒ” ๋™์‹œ ์ œ์–ด
  • ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ์˜ ์ด๋™๊ณผ ์กฐ์ž‘ ํ†ตํ•ฉ

์‹œ๋‚˜๋ฆฌ์˜ค (b): 2-DOF ํ—ค๋“œ ํŠธ๋ž˜ํ‚น๊ณผ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „

  • ๋“€์–ผ UR5 ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ์„ค์ •
  • ์กฐ์ž‘์ž์˜ ๋จธ๋ฆฌ ์›€์ง์ž„์— ๋”ฐ๋ฅธ ์นด๋ฉ”๋ผ ์‹œ์  ์กฐ์ ˆ
  • ๋ชฐ์ž…ํ˜• ์›๊ฒฉ ์กฐ์ž‘ ๊ฒฝํ—˜

์‹œ๋‚˜๋ฆฌ์˜ค (c): ๋ณด์กฐ ๋ชจ์…˜ ํŠธ๋ž˜์ปค๋ฅผ ํ†ตํ•œ ์—˜๋ณด์šฐ ์ œ์–ด

  • 7-DOF ์•”์˜ ์—ฌ์œ  ์ž์œ ๋„ ์ œ์–ด
  • MeshCat์„ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ์‹œ๊ฐํ™”
  • ์ธ์ฒด ๊ณตํ•™์  ์•” ๊ตฌ์„ฑ ์œ ์ง€

์‹œ๋‚˜๋ฆฌ์˜ค (d): MuJoCo ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ์˜ ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ํŠธ๋ž˜ํ‚น

  • ํ—ค๋“œ์…‹์˜ ํ•ธ๋“œ ํŠธ๋ž˜ํ‚น ๋ชจ๋“œ ํ™œ์šฉ
  • ์†๊ฐ€๋ฝ ๋ฐ ์† ์ œ์Šค์ฒ˜ ์ง์ ‘ ์บก์ฒ˜
  • Shadow Hand๋กœ์˜ ๋ฆฌํƒ€๊ฒŸํŒ…

5. VLA ๋ชจ๋ธ ํ•™์Šต์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ฒ€์ฆ

5.1 ์‹คํ—˜ ์„ค์ •

XRoboToolkit์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํŒŒ์ดํ”„๋ผ์ธ์ด VLA ํ•™์Šต์— ์ ํ•ฉํ•œ ๊ณ ํ’ˆ์งˆ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด, ์—ฐ๊ตฌํŒ€์€ ์–‘ํŒ” ์นดํŽซ ์ ‘๊ธฐ ์ž‘์—…(bimanual carpet folding task)์— ๋Œ€ํ•œ ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ:

  • ๋กœ๋ด‡: ARX R5 ๋“€์–ผ ์•” ์‹œ์Šคํ…œ
  • ์†๋ชฉ ์นด๋ฉ”๋ผ: Intel RealSense D405i ร— 2
  • ์˜ค๋ฒ„ํ—ค๋“œ ์นด๋ฉ”๋ผ: Intel RealSense D435i ร— 1

์ž‘์—… ์‹œํ€€์Šค:

  1. ์นดํŽซ์„ ์งง์€ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ๋”ฐ๋ผ ๋ฐ˜์œผ๋กœ ์ ‘๊ธฐ
  2. ๊ธด ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ๋”ฐ๋ผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ ‘๊ธฐ
  3. ์˜ค๋ฅธ์ชฝ ํŒ”๋กœ ์นดํŽซ์„ ์˜†์œผ๋กœ ๋‹น๊ธฐ๊ธฐ

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์„ธ๋ถ€์‚ฌํ•ญ:

  • ์ด ์‹œ์—ฐ ์ˆ˜: 100๊ฐœ
  • ๊ธฐ๋ก ์ฃผํŒŒ์ˆ˜: 50 FPS
  • ํ”„๋ ˆ์ž„ ๋‹น ๋ฐ์ดํ„ฐ:
    • 14์ฐจ์› ๋กœ๋ด‡ ๊ด€์ ˆ ์ƒํƒœ (์–‘ํŒ” ๊ฐ 7-DOF)
    • 14์ฐจ์› ์œ„์น˜ ์ œ์–ด ๋ช…๋ น
    • 424ร—240 RGB ์ด๋ฏธ์ง€ (3๊ฐœ ์นด๋ฉ”๋ผ)
  • ํ‰๊ท  ์ž‘์—… ์™„๋ฃŒ ์‹œ๊ฐ„: 20์ดˆ
  • ๊ด€์ฐฐ๋œ ํ–‰๋™: ์žฌํŒŒ์ง€(regrasping), ์žฌ๋ฐฐ์น˜(repositioning) ๋“ฑ

5.2 VLA ํ•™์Šต ๋ฐ ๊ฒฐ๊ณผ

์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ฯ€โ‚€ ๋ชจ๋ธ์— ๋Œ€ํ•œ Low-Rank Adaptation(LoRA) ํŒŒ์ธํŠœ๋‹์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ํŒŒ๋ผ๋ฏธํ„ฐ:

  • ํ•™์Šต ์Šคํ…: 80,000
  • ๋ฐฐ์น˜ ํฌ๊ธฐ: 16
  • ์•ก์…˜ ํ˜ธ๋ผ์ด์ฆŒ: 50 ํ”„๋ ˆ์ž„

๊ฒฐ๊ณผ:

  • 30๋ถ„ ์—ฐ์† ์šด์˜ ๋™์•ˆ 100% ์„ฑ๊ณต๋ฅ  ๋‹ฌ์„ฑ
  • ํ‰๊ท  ์ž‘์—… ์™„๋ฃŒ ์‹œ๊ฐ„: 30์ดˆ (ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๋Œ€๋น„ ์•ฝ 50% ์ฆ๊ฐ€)

๊ด€์ฐฐ๋œ ์ ์‘์  ํ–‰๋™:

ํ•™์Šต๋œ ์ •์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ์‘์  ํ–‰๋™์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค:

  1. ์ž์œจ์  ์žฌํŒŒ์ง€: ๊ทธ๋ฆฌํผ๊ฐ€ ์นดํŽซ์„ ํ™•์‹คํžˆ ์žก์ง€ ๋ชปํ–ˆ์„ ๋•Œ ์Šค์Šค๋กœ ๋‹ค์‹œ ์žก๊ธฐ ์‹œ๋„
  2. ์ง€๋Šฅ์  ์žฌ๋ฐฐ์น˜: ์นดํŽซ์ด ์ค‘์•™์—์„œ ๋ฒ—์–ด๋‚ฌ์„ ๋•Œ ์œ„์น˜ ์กฐ์ •

์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋Š” XRoboToolkit์œผ๋กœ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ์ˆœํ•œ ๋ชจ๋ฐฉ์„ ๋„˜์–ด ์ผ๋ฐ˜ํ™” ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ˜ ์ •์ฑ… ํ•™์Šต์— ์ถฉ๋ถ„ํ•œ ํ’ˆ์งˆ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


6. ๊ธฐ์กด ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต ๋ถ„์„

6.1 ๋ฆฌ๋”-ํŒ”๋กœ์›Œ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต

ALOHA / ALOHA 2:

  • ์žฅ์ : ์ง์ ‘์ ์ธ ๊ด€์ ˆ ๋งคํ•‘์œผ๋กœ ์ •๋ฐ€ํ•œ ์ œ์–ด, ํŠน์ด์  ๋ฌธ์ œ ํšŒํ”ผ
  • ๋‹จ์ : ๋†’์€ ๋น„์šฉ($50,000+), ํŠน์ • ํ•˜๋“œ์›จ์–ด์— ์ข…์†, ํ™•์žฅ์„ฑ ์ œํ•œ

GELLO:

  • ์žฅ์ : 3D ํ”„๋ฆฐํŒ… ๊ฐ€๋Šฅ, ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ๊ตฌ์„ฑ ์ง€์›
  • ๋‹จ์ : Dynamixel ๋ชจํ„ฐ ๋น„์šฉ($270+/arm), ์„ค์ • ๋ณต์žก์„ฑ

U-ARM:

  • ์žฅ์ : ์ดˆ์ €๊ฐ€($50-57), ๋น ๋ฅธ ์ ์‘์„ฑ
  • ๋‹จ์ : ์ค‘๋ ฅ ๋ณด์ƒ ๋ถ€์žฌ, ์ •๋ฐ€๋„ ์ œํ•œ

XRoboToolkit์˜ ์ฐจ๋ณ„์ :

  • XR ํ—ค๋“œ์…‹๋งŒ์œผ๋กœ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๊ฐ€๋Šฅ (์ถ”๊ฐ€ ํ•˜๋“œ์›จ์–ด ์ตœ์†Œํ™”)
  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ
  • ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ํ–ฅ์ƒ๋œ ์ƒํ™ฉ ์ธ์‹
  • ํ•ธ๋“œ ํŠธ๋ž˜ํ‚น์œผ๋กœ ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ์กฐ์ž‘ ์ง€์›

6.2 VR ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต

Open-TeleVision:

  • ์žฅ์ : ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ํ”ผ๋“œ๋ฐฑ, ์›๊ฒฉ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ (๋Œ€๋ฅ™ ๊ฐ„ ๊ฐ€๋Šฅ)
  • ๋‹จ์ : ํŠน์ • ํ•˜๋“œ์›จ์–ด ์„ค์ • ํ•„์š”, ํ†ตํ•ฉ ๋ณต์žก์„ฑ

AV-ALOHA (Active Vision ALOHA):

  • ์žฅ์ : ๋Šฅ๋™์  ์‹œ๊ฐ ์‹œ์Šคํ…œ, 6๊ฐœ ์นด๋ฉ”๋ผ ํ†ตํ•ฉ
  • ๋‹จ์ : ALOHA ํ•˜๋“œ์›จ์–ด ์˜์กด์„ฑ

XRoboToolkit์˜ ์ฐจ๋ณ„์ :

  • OpenXR ํ‘œ์ค€ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ XR ํ—ค๋“œ์…‹ ์ง€์›
  • ๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜๋กœ ์‰ฌ์šด ํ”Œ๋žซํผ ํ†ตํ•ฉ
  • QP ๊ธฐ๋ฐ˜ IK๋กœ ์•ˆ์ •์ ์ธ ๋ชจ์…˜ ์ƒ์„ฑ

6.3 ์—‘์†Œ์Šค์ผˆ๋ ˆํ†ค ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต

ACE (Cross-platform Visual-Exoskeletons):

  • ์žฅ์ : VisionPro ์—†์ด ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๊ฐ€๋Šฅ, ์žฅ์‹œ๊ฐ„ ์ž‘์—…์— ์ ํ•ฉ
  • ๋‹จ์ : ๋ฌผ๋ฆฌ์  ์ฐฉ์šฉ ํ•„์š”, ์„ค์ • ์‹œ๊ฐ„

AirExo, HOMIE:

  • ์žฅ์ : ์ฐฉ์šฉํ˜• ์ธํ„ฐํŽ˜์ด์Šค, ์ง๊ด€์  ์ œ์–ด
  • ๋‹จ์ : ํ•˜๋“œ์›จ์–ด ๋ณต์žก์„ฑ, ๋น„์šฉ

XRoboToolkit์˜ ์ฐจ๋ณ„์ :

  • ์†Œ๋น„์ž์šฉ XR ํ—ค๋“œ์…‹ ํ™œ์šฉ์œผ๋กœ ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ
  • ๋ฌผ๋ฆฌ์  ์ฐฉ์šฉ ์žฅ๋น„ ์ตœ์†Œํ™”
  • ์›๊ฒฉ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์šฉ์ด

6.4 ๋น„์ „ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ๊ณผ์˜ ๋น„๊ต

DexCap, UMI:

  • ์žฅ์ : ์‚ฌ์šฉ ํŽธ์˜์„ฑ, ์ €๋น„์šฉ
  • ๋‹จ์ : ํŠน์ด์  ๋ฌธ์ œ, ์ •๋ฐ€๋„ ๋ถ€์กฑ, ํ›„์ฒ˜๋ฆฌ ํ•„์š”

ARCap:

  • ์žฅ์ : AR ์ธํ„ฐํŽ˜์ด์Šค, ์ถฉ๋Œ ํšŒํ”ผ
  • ๋‹จ์ : ํŠน์ • ์„ค์ • ์š”๊ตฌ

XRoboToolkit์˜ ์ฐจ๋ณ„์ :

  • QP ๊ธฐ๋ฐ˜ IK๋กœ ํŠน์ด์  ๋ฌธ์ œ ์™„ํ™”
  • ์‹ค์‹œ๊ฐ„ ์Šคํ…Œ๋ ˆ์˜ค ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์ •๋ฐ€ ์ž‘์—… ์ง€์›
  • ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท

7. ๊ธฐ์ˆ ์  ๊ณ ์ฐฐ ๋ฐ ์‹ฌ์ธต ๋ถ„์„

7.1 OpenXR ํ‘œ์ค€ ์ฑ„ํƒ์˜ ์˜์˜

OpenXR์€ Khronos Group์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• XR ํ‘œ์ค€์œผ๋กœ, XR ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋Ÿฐํƒ€์ž„ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. XRoboToolkit์ด OpenXR์„ ์ฑ„ํƒํ•œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ „๋žต์  ์˜๋ฏธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค:

ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ:

  • ๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ PICO, Meta Quest, Valve Index ๋“ฑ ๋‹ค์–‘ํ•œ ํ—ค๋“œ์…‹ ์ง€์› ๊ฐ€๋Šฅ
  • ํ–ฅํ›„ ์ถœ์‹œ๋  ์ƒˆ๋กœ์šด XR ์žฅ์น˜์—๋„ ์ตœ์†Œํ•œ์˜ ์ˆ˜์ •์œผ๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅ

ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท:

  • ์ผ๊ด€๋œ ์ขŒํ‘œ๊ณ„ ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • ํ”Œ๋žซํผ ๊ฐ„ ๋ฐ์ดํ„ฐ ํ˜ธํ™˜์„ฑ
  • ํ†ตํ•ฉ ์ž‘์—… ๊ฐ„์†Œํ™”

์—์ฝ”์‹œ์Šคํ…œ ์ ‘๊ทผ:

  • ๊ธฐ์กด OpenXR ํ™•์žฅ ๊ธฐ๋Šฅ ํ™œ์šฉ ๊ฐ€๋Šฅ
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์› ๋ฐ ์ง€์†์ ์ธ ๊ฐœ์„ 

ํ•œ๊ณ„:

  • ํ˜„์žฌ ์ „์‹  ํŠธ๋ž˜ํ‚น์€ PICO์˜ 24-๊ด€์ ˆ ๋ชจ๋ธ์— ์˜์กด
  • OpenXR์— ํ‘œ์ค€ํ™”๋œ ์ „์‹  ์ •์˜๊ฐ€ ๋ถ€์žฌํ•˜์—ฌ ๋‹ค๋ฅธ XR ๋ธŒ๋žœ๋“œ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ ๊ฐ€๋Šฅ์„ฑ

7.2 QP ๊ธฐ๋ฐ˜ IK์˜ ์ด๋ก ์  ๋ฐฐ๊ฒฝ

Quadratic Programming์„ IK์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋กœ๋ด‡ ์ œ์–ด ๋ถ„์•ผ์—์„œ ํ™œ๋ฐœํžˆ ์—ฐ๊ตฌ๋˜์–ด ์˜จ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ๋ฒ•์˜ ์ด๋ก ์  ๊ธฐ๋ฐ˜์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ QP ๋ฌธ์ œ ์ •์‹ํ™”:

minimize    (1/2)x'Hx + f'x
subject to  Ax โ‰ค b
            Aeqยทx = beq

IK์—์˜ ์ ์šฉ:

๊ธฐ๋ณธ IK ๋ชฉํ‘œ(end-effector ์ถ”์ข…)์™€ ๋ถ€๊ฐ€ ๋ชฉํ‘œ(๊ด€์ ˆ ํ•œ๊ณ„, ํŠน์ด์  ํšŒํ”ผ ๋“ฑ)๋ฅผ ๊ฒฐํ•ฉ:

H = J'J + ฮปI
f = -J'ฮ”x + ฮป(q - q_ref)

์—ฌ๊ธฐ์„œ q_ref๋Š” ์„ ํ˜ธํ•˜๋Š” ๊ด€์ ˆ ๊ตฌ์„ฑ(์˜ˆ: ๊ด€์ ˆ ์ค‘์•™๊ฐ’)

ํŠน์ด์  ๊ทผ์ฒ˜์˜ ํ–‰๋™:

ํŠน์ด์ ์—์„œ Jacobian J์˜ ํ–‰๋ ฌ์‹์ด 0์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด:

  • Jโ€™J์˜ ์กฐ๊ฑด์ˆ˜๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€
  • ์ˆœ์ˆ˜ Jacobian ๊ธฐ๋ฐ˜ ๋ฐฉ๋ฒ•์€ ||ฮ”q|| โ†’ โˆž

QP์˜ ์ •๊ทœํ™” ํ•ญ ฮปI๊ฐ€ ์ด๋ฅผ ๋ฐฉ์ง€:

  • ํฐ ||ฮ”q||์— ํŽ˜๋„ํ‹ฐ๋ฅผ ๋ถ€๊ณผ
  • ํŠน์ด์  ๊ทผ์ฒ˜์—์„œ ์ถ”์ข… ์ •ํ™•๋„๋ฅผ ํฌ์ƒํ•˜๊ณ  ์•ˆ์ •์„ฑ ํ™•๋ณด
  • ฮป ์กฐ์ ˆ๋กœ ์ •ํ™•๋„-์•ˆ์ •์„ฑ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ์ œ์–ด

7.3 ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ…์˜ ๊ธฐ์ˆ ์  ๊ณผ์ œ

์ธ๊ฐ„ ์†์—์„œ ๋กœ๋ด‡ ํ•ธ๋“œ๋กœ์˜ ๋ฆฌํƒ€๊ฒŸํŒ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์  ๊ณผ์ œ๋ฅผ ์ˆ˜๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค:

์šด๋™ํ•™์  ์ฐจ์ด:

  • ์ธ๊ฐ„ ์†: 27 ๋ผˆ, 29 ๊ด€์ ˆ, ๋ณต์žกํ•œ ๊ทผ์œก-๊ฑด ์‹œ์Šคํ…œ
  • ๋กœ๋ด‡ ํ•ธ๋“œ: ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ (Shadow Hand 24-DOF, Allegro Hand 16-DOF ๋“ฑ)
  • ๊ด€์ ˆ ๋ฐฐ์น˜, ์›€์ง์ž„ ๋ฒ”์œ„, ์ž์œ ๋„๊ฐ€ ์ƒ์ด

์Šค์ผ€์ผ ๋ถˆ์ผ์น˜:

  • ์ธ๊ฐ„ ์†๊ณผ ๋กœ๋ด‡ ํ•ธ๋“œ์˜ ํฌ๊ธฐ ์ฐจ์ด
  • ๋‹จ์ˆœ ์Šค์ผ€์ผ๋ง์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•œ ํฌ์ฆˆ ์ƒ์„ฑ ๊ฐ€๋Šฅ

์ปคํ”Œ๋ง๋œ ๊ด€์ ˆ:

  • ์ผ๋ถ€ ๋กœ๋ด‡ ํ•ธ๋“œ(INSPIRE Hands ๋“ฑ)๋Š” ๊ธฐ๊ณ„์ ์œผ๋กœ ๊ฒฐํ•ฉ๋œ ๊ด€์ ˆ ๋ณด์œ 
  • ๊ฐ ๊ด€์ ˆ ๋…๋ฆฝ ์ œ์–ด ๊ฐ€์ •์˜ ๋ฆฌํƒ€๊ฒŸํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ ์šฉ ๋ถˆ๊ฐ€

์‹ค์‹œ๊ฐ„ ์ œ์•ฝ:

  • ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜์˜ ์‹ค์‹œ๊ฐ„ ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑ ํ•„์š”
  • ๋ณต์žกํ•œ ์ตœ์ ํ™”๋Š” ์ง€์—ฐ ์‹œ๊ฐ„ ์ฆ๊ฐ€

XRoboToolkit์˜ ์ ‘๊ทผ๋ฒ•:

  • OpenXR 26-๊ด€์ ˆ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ‘œ์ค€ํ™”๋œ ์ž…๋ ฅ
  • ํƒ€๊ฒŸ ๋กœ๋ด‡ ํ•ธ๋“œ์— ๋งž์ถคํ™”๋œ ๋ฆฌํƒ€๊ฒŸํŒ… ๋ชจ๋“ˆ
  • ํ˜„์žฌ๋Š” ๋…๋ฆฝ ๊ด€์ ˆ ์ œ์–ด ๋กœ๋ด‡์— ์ตœ์ ํ™”

7.4 ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ๊ณผ VLA ์„ฑ๋Šฅ์˜ ๊ด€๊ณ„

๋…ผ๋ฌธ์˜ ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” XRoboToolkit์œผ๋กœ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๊ฐ€ VLA ํ•™์Šต์— ํšจ๊ณผ์ ์ž„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ด€์ ์—์„œ ๋ถ„์„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋†’์€ ํ”„๋ ˆ์ž„ ๋ ˆ์ดํŠธ (50 FPS):

  • ์—ฐ์†์ ์ด๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ๊ถค์  ์บก์ฒ˜
  • ๊ธ‰๊ฒฉํ•œ ์›€์ง์ž„ ๋ณ€ํ™”๋„ ์ •ํ™•ํžˆ ๊ธฐ๋ก
  • Flow Matching ๊ธฐ๋ฐ˜ VLA(ฯ€โ‚€)์˜ ์—ฐ์† ์•ก์…˜ ์ƒ์„ฑ์— ์ ํ•ฉ

๋‹ค์ค‘ ์นด๋ฉ”๋ผ ๊ตฌ์„ฑ:

  • ์†๋ชฉ ์นด๋ฉ”๋ผ 2๊ฐœ + ์˜ค๋ฒ„ํ—ค๋“œ ์นด๋ฉ”๋ผ 1๊ฐœ
  • ๋‹ค์–‘ํ•œ ์‹œ์ ์˜ ์‹œ๊ฐ ์ •๋ณด ์ œ๊ณต
  • ๊ฐ€๋ฆผ(occlusion) ๋ฌธ์ œ ์™„ํ™”

๊ด€์ ˆ ์ƒํƒœ + ์ œ์–ด ๋ช…๋ น ๋™์‹œ ๊ธฐ๋ก:

  • 14์ฐจ์› ๊ด€์ ˆ ์ƒํƒœ: ์‹ค์ œ ๋กœ๋ด‡ ์ƒํƒœ
  • 14์ฐจ์› ์œ„์น˜ ์ œ์–ด ๋ช…๋ น: ์˜๋„๋œ ํ–‰๋™
  • ๋‘ ์ •๋ณด์˜ ์ฐจ์ด์—์„œ ๋กœ๋ด‡ ์—ญํ•™ ํ•™์Šต ๊ฐ€๋Šฅ

์ž์—ฐ์Šค๋Ÿฌ์šด ์ธ๊ฐ„ ํ–‰๋™ ์บก์ฒ˜:

  • ์žฌํŒŒ์ง€, ์žฌ๋ฐฐ์น˜ ๋“ฑ ์ ์‘์  ํ–‰๋™ ํฌํ•จ
  • ๋‹ค์–‘ํ•œ ์ „๋žต์„ ํ•™์Šต ๋ฐ์ดํ„ฐ์— ํฌํ•จ
  • ์ •์ฑ…์˜ ์ผ๋ฐ˜ํ™” ๋Šฅ๋ ฅ ํ–ฅ์ƒ

100% ์„ฑ๊ณต๋ฅ ์˜ ์˜๋ฏธ:

  • 100๊ฐœ ์‹œ์—ฐ๋งŒ์œผ๋กœ๋„ robustํ•œ ์ •์ฑ… ํ•™์Šต ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ ํšจ์œจ์„ฑ ๋†’์Œ
  • ์ ์‘์  ํ–‰๋™ ์ž๋ฐœ์  ๋ฐœํ˜„ = ์ง„์ •ํ•œ ์ผ๋ฐ˜ํ™”

8. ํ•œ๊ณ„์  ๋ฐ ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ

8.1 ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ ํ•œ๊ณ„

๋…ผ๋ฌธ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์ธ์ •ํ•œ ํ•œ๊ณ„์ ๋“ค์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค:

1. ์ „์‹  ํŠธ๋ž˜ํ‚น์˜ ํ”Œ๋žซํผ ์˜์กด์„ฑ

ํ˜„์žฌ XRoboToolkit์˜ ์ „์‹  ํŠธ๋ž˜ํ‚น์€ PICO์˜ 24-๊ด€์ ˆ ๋ชจ๋ธ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. OpenXR์— ํ‘œ์ค€ํ™”๋œ ์ „์‹  ํŠธ๋ž˜ํ‚น ์ •์˜๊ฐ€ ๋ถ€์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ XR ๋ธŒ๋žœ๋“œ(Meta, Valve ๋“ฑ)์˜ ํ—ค๋“œ์…‹๊ณผ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ํ–ฅ:

  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ „์‹  ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์ œํ•œ
  • ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡ ์ œ์–ด์— ์–ด๋ ค์›€

์ž ์žฌ์  ํ•ด๊ฒฐ์ฑ…:

  • ํ†ตํ•ฉ ์ „์‹  ์Šค์ผˆ๋ ˆํ†ค ๋ชจ๋ธ ์ •์˜
  • ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ๊ฐ„ ๋งคํ•‘ ๋ ˆ์ด์–ด ๊ฐœ๋ฐœ
  • OpenXR ํ‘œ์ค€์— ์ „์‹  ํ™•์žฅ ์ œ์•ˆ

2. ํœด๋จธ๋…ธ์ด๋“œ ์ „์‹  ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๋ฏธ๊ฒ€์ฆ

์ „์‹  ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ๋Š” ์ œ๊ณต๋˜์ง€๋งŒ, ์‹ค์ œ ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡์œผ๋กœ์˜ ๋ฆฌํƒ€๊ฒŸํŒ…์„ ํ†ตํ•œ ์ „์‹  ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜์€ ์•„์ง ๊ฒ€์ฆ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์˜ํ–ฅ:

  • ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡ ์‘์šฉ ์ œํ•œ
  • TWIST, SONIC ๊ฐ™์€ ์ตœ์‹  ํœด๋จธ๋…ธ์ด๋“œ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์—ฐ๊ตฌ์™€์˜ ํ†ตํ•ฉ ๋ฏธํ™•์ธ

์ž ์žฌ์  ํ•ด๊ฒฐ์ฑ…:

  • Unitree H1, Fourier Intelligence GR-1 ๋“ฑ๊ณผ์˜ ํ†ตํ•ฉ ๊ฒ€์ฆ
  • ์ „์‹  ๋ฆฌํƒ€๊ฒŸํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ ๋ฐ ๊ณต๊ฐœ

3. ์ปคํ”Œ๋ง๋œ ๊ด€์ ˆ์„ ๊ฐ€์ง„ ๋กœ๋ด‡ ํ•ธ๋“œ ์ง€์› ๋ถˆ๊ฐ€

ํ˜„์žฌ ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŸํŒ… ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ ๊ด€์ ˆ์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ œ์–ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. INSPIRE Hands์™€ ๊ฐ™์ด ๊ธฐ๊ณ„์ ์œผ๋กœ ๊ด€์ ˆ์ด ๊ฒฐํ•ฉ๋œ ๋กœ๋ด‡ ํ•ธ๋“œ์—๋Š” ์ •ํ™•ํ•œ ๋ฆฌํƒ€๊ฒŸํŒ…์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์˜ํ–ฅ:

  • ์ง€์› ๊ฐ€๋Šฅํ•œ ๋กœ๋ด‡ ํ•ธ๋“œ ์ข…๋ฅ˜ ์ œํ•œ
  • ์ €๋น„์šฉ ๋กœ๋ด‡ ํ•ธ๋“œ(์ฃผ๋กœ ์ปคํ”Œ๋ง๋œ ์„ค๊ณ„) ํ™œ์šฉ ์–ด๋ ค์›€

์ž ์žฌ์  ํ•ด๊ฒฐ์ฑ…:

  • ์ปคํ”Œ๋ง ์ œ์•ฝ์„ ๊ณ ๋ คํ•œ ์ตœ์ ํ™” ๊ธฐ๋ฐ˜ ๋ฆฌํƒ€๊ฒŸํŒ…
  • ๋กœ๋ด‡ ํ•ธ๋“œ๋ณ„ ๋งž์ถค ๋ฆฌํƒ€๊ฒŸํŒ… ๋ชจ๋“ˆ

8.2 ์ถ”๊ฐ€์ ์ธ ํ•œ๊ณ„ ๋ฐ ๊ฐœ์„  ๋ฐฉํ–ฅ

๋…ผ๋ฌธ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ถ”๊ฐ€์ ์ธ ํ•œ๊ณ„์ ๋“ค:

1. ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ฐ ์•ˆ์ •์„ฑ

์›๊ฒฉ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์‹œ๋‚˜๋ฆฌ์˜ค(์˜ˆ: Open-TeleVision์˜ ๋Œ€๋ฅ™ ๊ฐ„ ์ œ์–ด)์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ํ‰๊ฐ€๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์„  ๋ฐฉํ–ฅ:

  • ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ณด์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋„์ž…
  • ์˜ˆ์ธก ์ œ์–ด(Predictive Control) ํ†ตํ•ฉ
  • ์ง€์—ฐ ์ƒํ™ฉ์—์„œ์˜ ์•ˆ์ „ ๋™์ž‘ ์ •์˜

2. ํ–…ํ‹ฑ ํ”ผ๋“œ๋ฐฑ ๋ถ€์žฌ

ํ˜„์žฌ ์‹œ์Šคํ…œ์€ ์‹œ๊ฐ ํ”ผ๋“œ๋ฐฑ์—๋งŒ ์˜์กดํ•˜๋ฉฐ, ์ด‰๊ฐ/ํž˜ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐœ์„  ๋ฐฉํ–ฅ:

  • XR ์ปจํŠธ๋กค๋Ÿฌ์˜ ํ–…ํ‹ฑ ๊ธฐ๋Šฅ ํ™œ์šฉ
  • ํž˜ ์„ผ์„œ ๋ฐ์ดํ„ฐ์˜ ํ–…ํ‹ฑ ๋ณ€ํ™˜
  • ๊ฐ€์ƒ ํ–…ํ‹ฑ ๋ Œ๋”๋ง

3. ํ•™์Šต ๊ณก์„  ๋ฐ ์‚ฌ์šฉ์ž ์—ฐ๊ตฌ

์กฐ์ž‘์ž์˜ ์ˆ™๋ จ๋„์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์ฒด๊ณ„์  ๋ถ„์„์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์„  ๋ฐฉํ–ฅ:

  • ์ดˆ๋ณด์ž/์ˆ™๋ จ์ž ๊ฐ„ ๋น„๊ต ์—ฐ๊ตฌ
  • ์ธ์ฒด๊ณตํ•™์  ์ตœ์ ํ™”
  • ํ›ˆ๋ จ ํ”„๋กœํ† ์ฝœ ๊ฐœ๋ฐœ

4. ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ธํ”„๋ผ

100๊ฐœ ์‹œ์—ฐ์œผ๋กœ ๊ฒ€์ฆํ–ˆ์ง€๋งŒ, VLA์˜ ์ง„์ •ํ•œ ์ž ์žฌ๋ ฅ์„ ์œ„ํ•ด์„œ๋Š” ์ˆ˜์ฒœ~์ˆ˜๋งŒ ๊ฐœ ์‹œ์—ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์„  ๋ฐฉํ–ฅ:

  • ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ
  • ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
  • ํ’ˆ์งˆ ์ž๋™ ๊ฒ€์ฆ ์‹œ์Šคํ…œ

8.3 ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ ์ œ์•ˆ

XRoboToolkit์˜ ๋ฐœ์ „๊ณผ ๋กœ๋ด‡ ํ•™์Šต ์ƒํƒœ๊ณ„ ํ™•์žฅ์„ ์œ„ํ•œ ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค:

1. ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡ ํ†ตํ•ฉ

์ตœ๊ทผ ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡(Unitree H1, Tesla Optimus, Figure ๋“ฑ)์˜ ๊ธ‰๊ฒฉํ•œ ๋ฐœ์ „์— ๋งž์ถฐ, XRoboToolkit์˜ ์ „์‹  ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๊ธฐ๋Šฅ์„ ํœด๋จธ๋…ธ์ด๋“œ ํ”Œ๋žซํผ์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

2. ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ

์‹œ๊ฐ ์™ธ์— ์ฒญ๊ฐ(๋กœ๋ด‡ ์†Œ๋ฆฌ), ์ด‰๊ฐ(ํž˜/์ ‘์ด‰ ์ •๋ณด), ๊ณ ์œ ์ˆ˜์šฉ๊ฐ๊ฐ(proprioception) ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ฉํ•˜์—ฌ ๋”์šฑ ๋ชฐ์ž…๊ฐ ์žˆ๊ณ  ์ •๋ฐ€ํ•œ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. AI ์–ด์‹œ์Šคํ„ดํŠธ ํ†ตํ•ฉ

ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์ค‘ AI ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ ์กฐ์ž‘์ž๋ฅผ ๋ณด์กฐํ•˜๋Š” Shared Autonomy ์ ‘๊ทผ๋ฒ•์„ ํ†ตํ•ฉํ•˜๋ฉด:

  • ์กฐ์ž‘์ž ํ”ผ๋กœ ๊ฐ์†Œ
  • ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํšจ์œจ ํ–ฅ์ƒ
  • ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ์œ ์ง€

4. ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท ๋ฐ ๋ฒค์น˜๋งˆํฌ

๋กœ๋ด‡ ํ•™์Šต ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ Open X-Embodiment, DROID ๊ฐ™์€ ๋…ธ๋ ฅ๊ณผ ์—ฐ๊ณ„ํ•˜์—ฌ:

  • ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ํฌ๋งท ์ •์˜
  • ๋ฒค์น˜๋งˆํฌ ํƒœ์Šคํฌ ์„ค์ •
  • ๋ฐ์ดํ„ฐ ๊ณต์œ  ์ธํ”„๋ผ ๊ตฌ์ถ•

5. ์‹œ๋ฎฌ๋ ˆ์ด์…˜-์‹ค์ œ ํ†ตํ•ฉ

XRoboToolkit์˜ MuJoCo ์ง€์›์„ ํ™•์žฅํ•˜์—ฌ:

  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ์˜ ์‚ฌ์ „ ํ›ˆ๋ จ
  • Sim-to-Real ์ „์ด ํŒŒ์ดํ”„๋ผ์ธ
  • ์•ˆ์ „ํ•œ ์ •์ฑ… ๊ฒ€์ฆ

9. ์‹ค๋ฌด์  ๊ณ ๋ ค์‚ฌํ•ญ

9.1 ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๊ฐ€์ด๋“œ

XRoboToolkit์„ ์‹ค์ œ๋กœ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” ์—ฐ๊ตฌ์ž/๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์‹ค๋ฌด์  ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

์ตœ์†Œ ์š”๊ตฌ์‚ฌํ•ญ:

XR ์ธก:

  • PICO 4 Ultra ํ—ค๋“œ์…‹ (User OS 5.12 ์ด์ƒ)
  • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฒ„์ „ ํŠน๋ณ„ ๊ถŒํ•œ (VST ์นด๋ฉ”๋ผ ์ ‘๊ทผ์šฉ)

PC ์ธก:

  • Ubuntu 22.04 (Linux x86)
  • ์ถฉ๋ถ„ํ•œ USB 3.0 ํฌํŠธ (๋กœ๋ด‡ ์—ฐ๊ฒฐ์šฉ)
  • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ (ํ—ค๋“œ์…‹๊ณผ ํ†ต์‹ )

์„ค์น˜ ๋‹จ๊ณ„:

  1. PC ์„œ๋น„์Šค ์„ค์น˜:

    # Ubuntu 22.04์šฉ deb ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ ํ›„
    sudo dpkg -i xrobotoolkit-pc-service.deb
  2. ํ—ค๋“œ์…‹ ์•ฑ ์„ค์น˜:

    # PICO 4 Ultra์—์„œ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ ํ™œ์„ฑํ™” ํ›„
    adb install XRoboToolkit-PICO-1.1.1.apk
  3. Python ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ์ƒ˜ํ”Œ ์‹คํ–‰:

    git clone https://github.com/XR-Robotics/XRoboToolkit-Teleop-Sample-Python
    cd XRoboToolkit-Teleop-Sample-Python
    pip install -r requirements.txt
    python teleop.py

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ํŒ:

  • ํ—ค๋“œ์…‹ ์—ฐ๊ฒฐ ์‹คํŒจ: ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ™•์ธ, ๋ฐฉํ™”๋ฒฝ ์„ค์ • ๊ฒ€ํ† 
  • ์ง€์—ฐ ์‹œ๊ฐ„ ์ฆ๊ฐ€: ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ ํ™•์ธ, ๋‹ค๋ฅธ ํŠธ๋ž˜ํ”ฝ ์ตœ์†Œํ™”
  • IK ์‹คํŒจ: ๋กœ๋ด‡ ๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ ํ™•์ธ, ์ดˆ๊ธฐ ์ž์„ธ ์กฐ์ •

9.2 ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค

๊ณ ํ’ˆ์งˆ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์œ„ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ:

ํ™˜๊ฒฝ ์„ค์ •:

  • ์ผ๊ด€๋œ ์กฐ๋ช… ์กฐ๊ฑด ์œ ์ง€
  • ๋ฐฐ๊ฒฝ ํด๋Ÿฌํ„ฐ ์ตœ์†Œํ™”
  • ๋ช…ํ™•ํ•œ ์ž‘์—… ๊ณต๊ฐ„ ์ •์˜

์กฐ์ž‘์ž ํ›ˆ๋ จ:

  • ์‹œ์Šคํ…œ ์ˆ™์ง€ ์‹œ๊ฐ„ ํ™•๋ณด (์ตœ์†Œ 30๋ถ„ ๊ถŒ์žฅ)
  • ์‰ฌ์šด ์ž‘์—…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ ์ง„์  ๋‚œ์ด๋„ ์ฆ๊ฐ€
  • ์ •๊ธฐ์  ํœด์‹์œผ๋กœ ํ”ผ๋กœ ๋ฐฉ์ง€

๋ฐ์ดํ„ฐ ๋‹ค์–‘์„ฑ:

  • ๋‹ค์–‘ํ•œ ์ดˆ๊ธฐ ์กฐ๊ฑด์—์„œ ์‹œ์—ฐ ์ˆ˜์ง‘
  • ์˜๋„์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ์ „๋žต ์‚ฌ์šฉ
  • ์‹คํŒจ ๋ณต๊ตฌ ํ–‰๋™ ํฌํ•จ

ํ’ˆ์งˆ ๊ฒ€์ฆ:

  • ์ˆ˜์ง‘ ์ฆ‰์‹œ ๋ฐ์ดํ„ฐ ํ™•์ธ
  • ๋ถˆ๋Ÿ‰ ์‹œ์—ฐ ์ œ๊ฑฐ/์žฌ์ˆ˜์ง‘
  • ํ†ต๊ณ„์  ๋ถ„ํฌ ํ™•์ธ

9.3 VLA ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ํ†ตํ•ฉ

XRoboToolkit ๋ฐ์ดํ„ฐ๋ฅผ VLA ํ•™์Šต์— ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ:

๋ฐ์ดํ„ฐ ํฌ๋งท ๋ณ€ํ™˜:

  • HDF5 ๋˜๋Š” TFRecord ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜
  • LeRobot, Open X-Embodiment ํฌ๋งท ํ˜ธํ™˜์„ฑ ํ™•๋ณด

์ „์ฒ˜๋ฆฌ:

  • ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ • (VLA ๋ชจ๋ธ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถค)
  • ์ •๊ทœํ™” ์ ์šฉ
  • ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• (์„ ํƒ์ )

ํ•™์Šต ์„ค์ •:

  • ฯ€โ‚€ LoRA ํŒŒ์ธํŠœ๋‹: batch_size=16, steps=80,000
  • OpenVLA: ํ‘œ์ค€ ์„ค์ • ํ™œ์šฉ
  • RT-X: ๋ฐ์ดํ„ฐ ํ˜ผํ•ฉ ์ „๋žต ๊ณ ๋ ค

10. ๊ด€๋ จ ์—ฐ๊ตฌ ๋ฐ ์ƒํƒœ๊ณ„

10.1 ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋น„๊ตํ‘œ

์‹œ์Šคํ…œ ์ œ์–ด ๋ฐฉ์‹ XR ์ง€์› ๋น„์šฉ ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ ํŠน์ง•
XRoboToolkit End-effector + QP IK โœ“ (OpenXR) ์ค‘ ๋†’์Œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ, ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „
ALOHA Joint Mapping โœ— ๊ณ  ($50k+) ๋‚ฎ์Œ ์ •๋ฐ€ ์ œ์–ด, ๋“€์–ผ ์•”
GELLO Joint Mapping โœ— ์ค‘ ($270+/arm) ์ค‘ 3D ํ”„๋ฆฐํŒ…, ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ
Open-TeleVision End-effector + IK โœ“ (VisionPro) ๊ณ  ์ค‘ ๋ชฐ์ž…ํ˜•, ์›๊ฒฉ ์ œ์–ด
ACE End-effector + IK โœ“ (VisionPro) ๊ณ  ์ค‘ ์—‘์†Œ์Šค์ผˆ๋ ˆํ†ค, ํ–…ํ‹ฑ
U-ARM Joint Mapping โœ— ์ € ($50-57) ๋†’์Œ ์ดˆ์ €๊ฐ€, ๋น ๋ฅธ ์ ์‘

10.2 VLA ๋ชจ๋ธ ์ƒํƒœ๊ณ„

XRoboToolkit์œผ๋กœ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ VLA ๋ชจ๋ธ๋“ค๊ณผ ํ˜ธํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

ฯ€โ‚€ (Physical Intelligence):

  • Flow Matching ๊ธฐ๋ฐ˜ ์—ฐ์† ์•ก์…˜ ์ƒ์„ฑ
  • 50Hz ์ œ์–ด ์ฃผํŒŒ์ˆ˜
  • 3B ํŒŒ๋ผ๋ฏธํ„ฐ VLM ๋ฐฑ๋ณธ

OpenVLA:

  • ์˜คํ”ˆ์†Œ์Šค VLA
  • Llama 2 ๊ธฐ๋ฐ˜
  • ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ๋ฐ์ดํ„ฐ ํ•™์Šต

RT-2 (Google DeepMind):

  • PaLM-E ๋ฐฑ๋ณธ
  • ์–ธ์–ด-๋น„์ „-์•ก์…˜ ํ†ตํ•ฉ
  • ์ œ๋กœ์ƒท ์ผ๋ฐ˜ํ™”

Octo:

  • ํŠธ๋žœ์Šคํฌ๋จธ ๊ธฐ๋ฐ˜
  • ๋‹ค์ค‘ ๋กœ๋ด‡ ๋ฐ์ดํ„ฐ ํ•™์Šต
  • ํšจ์œจ์  ํŒŒ์ธํŠœ๋‹

10.3 ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ๋…ธ๋ ฅ

XRoboToolkit์˜ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ ํ‘œ์ค€๊ณผ์˜ ํ˜ธํ™˜์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

Open X-Embodiment:

  • Google DeepMind ์ฃผ๋„
  • ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ
  • ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ํฌ๋งท ์ •์˜

DROID:

  • ๋ถ„์‚ฐ ๋กœ๋ด‡ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
  • ํ‘œ์ค€ํ™”๋œ ํƒœ์Šคํฌ ์ •์˜
  • ํ’ˆ์งˆ ๊ฒ€์ฆ ํ”„๋กœํ† ์ฝœ

LeRobot (Hugging Face):

  • ์˜คํ”ˆ์†Œ์Šค ๋กœ๋ด‡ ํ•™์Šต ํ”„๋ ˆ์ž„์›Œํฌ
  • ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ํฌ๋งท
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๊ณต์œ 

11. ๊ฒฐ๋ก 

11.1 ์ข…ํ•ฉ ํ‰๊ฐ€

XRoboToolkit์€ VLA ์‹œ๋Œ€์˜ ๋Œ€๊ทœ๋ชจ ๋กœ๋ด‡ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์ด๋ผ๋Š” ์‹œ์˜์ ์ ˆํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ฒด๊ณ„์ ์ธ ์ ‘๊ทผ๋ฒ•์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. OpenXR ํ‘œ์ค€ ์ฑ„ํƒ์„ ํ†ตํ•œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ, QP ๊ธฐ๋ฐ˜ IK๋ฅผ ํ†ตํ•œ ์•ˆ์ •์ ์ธ ๋กœ๋ด‡ ์ œ์–ด, ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•œ ํ™•์žฅ์„ฑ์€ ์ด ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•ต์‹ฌ ๊ฐ•์ ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ ฯ€โ‚€ ๋ชจ๋ธ ํŒŒ์ธํŠœ๋‹ ์‹คํ—˜์—์„œ 100๊ฐœ ์‹œ์—ฐ๋งŒ์œผ๋กœ 100% ์„ฑ๊ณต๋ฅ ์„ ๋‹ฌ์„ฑํ•˜๊ณ , ํ•™์Šต๋œ ์ •์ฑ…์ด ์ ์‘์  ํ–‰๋™์„ ์ž๋ฐœ์ ์œผ๋กœ ๋ฐœํ˜„ํ•œ ๊ฒƒ์€ XRoboToolkit์˜ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด VLA ํ•™์Šต์— ์ถฉ๋ถ„ํ•จ์„ ์ž…์ฆํ•ฉ๋‹ˆ๋‹ค.

11.2 ๊ฐ•์  ์š”์•ฝ

  1. OpenXR ๊ธฐ๋ฐ˜ ํ‘œ์ค€ํ™”: ๋‹ค์–‘ํ•œ XR ํ—ค๋“œ์…‹ ์ง€์›์œผ๋กœ ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ
  2. ์ €์ง€์—ฐ ์Šคํ…Œ๋ ˆ์˜ค์Šค์ฝ”ํ”ฝ ๋น„์ „: ๋ชฐ์ž…๊ฐ ์žˆ๊ณ  ์ง๊ด€์ ์ธ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๊ฒฝํ—˜
  3. QP ๊ธฐ๋ฐ˜ IK: ํŠน์ด์  ๊ทผ์ฒ˜์—์„œ๋„ ์•ˆ์ •์ ์ธ ๋กœ๋ด‡ ๋ชจ์…˜ ์ƒ์„ฑ
  4. ๋‹ค์–‘ํ•œ ํŠธ๋ž˜ํ‚น ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ: ์ปจํŠธ๋กค๋Ÿฌ, ํ•ธ๋“œ, ์ „์‹  ํŠธ๋ž˜ํ‚น ํ†ตํ•ฉ
  5. ๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜: ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ๊ณผ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ง€์›
  6. ์˜คํ”ˆ์†Œ์Šค ๊ณต๊ฐœ: ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฐธ์—ฌ ๋ฐ ๋ฐœ์ „ ๊ฐ€๋Šฅ

11.3 ์•ฝ์  ๋ฐ ๊ฐœ์„  ํ•„์š” ์˜์—ญ

  1. ์ „์‹  ํŠธ๋ž˜ํ‚น์˜ ํ”Œ๋žซํผ ์˜์กด์„ฑ: OpenXR ํ‘œ์ค€ํ™” ๋ถ€์žฌ
  2. ํœด๋จธ๋…ธ์ด๋“œ ๊ฒ€์ฆ ๋ถ€์กฑ: ์ „์‹  ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ ๋ฏธ๊ฒ€์ฆ
  3. ์ปคํ”Œ๋ง ๊ด€์ ˆ ๋ฏธ์ง€์›: ํŠน์ • ๋กœ๋ด‡ ํ•ธ๋“œ ํ˜ธํ™˜์„ฑ ์ œํ•œ
  4. ํ–…ํ‹ฑ ํ”ผ๋“œ๋ฐฑ ๋ถ€์žฌ: ์ด‰๊ฐ ์ •๋ณด ํ™œ์šฉ ๋ถˆ๊ฐ€
  5. ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ธํ”„๋ผ ๋ฏธ๋น„: ๋ถ„์‚ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ ํ•„์š”

11.4 ํ–ฅํ›„ ์ „๋ง

XRoboToolkit์€ ๋กœ๋ด‡ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜๊ณผ VLA ํ•™์Šต์˜ ๊ต์ฐจ์ ์—์„œ ์ค‘์š”ํ•œ ์œ„์น˜๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡์˜ ๊ธ‰๊ฒฉํ•œ ๋ฐœ์ „, ๊ธฐ๋ฐ˜ ๋ชจ๋ธ์˜ ์„ฑ์ˆ™, ๊ทธ๋ฆฌ๊ณ  ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ˆ˜์š” ์ฆ๊ฐ€๋Š” ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ค‘์š”์„ฑ์„ ๋”์šฑ ๋ถ€๊ฐ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PICO(ByteDance)๊ฐ€ ์ฃผ๋„ํ•˜๊ณ  ํ•™๊ณ„(Georgia Tech, George Mason University)๊ฐ€ ํ˜‘๋ ฅํ•˜๋Š” ์ด ํ”„๋กœ์ ํŠธ๋Š” ์‚ฐํ•™ ํ˜‘๋ ฅ์˜ ์ข‹์€ ์˜ˆ์‹œ์ด๋ฉฐ, ์˜คํ”ˆ์†Œ์Šค ๊ณต๊ฐœ๋ฅผ ํ†ตํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ฐœ์ „์— ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. SII 2026 ์ฑ„ํƒ์€ ์ด ์—ฐ๊ตฌ์˜ ํ•™์ˆ ์  ๊ฐ€์น˜๋ฅผ ์ธ์ •๋ฐ›์€ ๊ฒƒ์ด๋ฉฐ, ํ–ฅํ›„ ๋” ๋งŽ์€ ์—ฐ๊ตฌ์ž์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋กœ๋ด‡ ํ•™์Šต์˜ ๋ฐœ์ „์— ๊ธฐ์—ฌํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋ฌธํ—Œ

  1. Zhao, Z., Yu, L., Jing, K., & Yang, N. (2025). XRoboToolkit: A Cross-Platform Framework for Robot Teleoperation. arXiv:2508.00097.
  2. Black, K., et al. (2024). ฯ€โ‚€: A Vision-Language-Action Flow Model for General Robot Control. Physical Intelligence.
  3. Zhao, T., et al. (2023). Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ALOHA). RSS 2023.
  4. Wu, P., et al. (2024). GELLO: A General, Low-Cost, and Intuitive Teleoperation Framework for Robot Manipulators. CoRL 2024.
  5. Cheng, X., et al. (2024). Open-TeleVision: Teleoperation with Immersive Active Visual Feedback. CoRL 2024.
  6. Kim, M. J., et al. (2024). OpenVLA: An Open-Source Vision-Language-Action Model. arXiv:2406.09246.
  7. Wang, X., et al. (2024). ACE: A Cross-platform Visual-Exoskeletons System for Low-Cost Dexterous Teleoperation. CoRL 2024.
  8. He, Z., et al. (2024). TWIST: Teleoperated Whole-Body Imitation System. arXiv:2505.02833.

โ›๏ธ Dig Review

โ›๏ธ Dig โ€” Go deep, uncover the layers. Dive into technical detail.

์†Œ๊ฐœ (๋ฐฐ๊ฒฝ๊ณผ ํ•„์š”์„ฑ)

๋กœ๋ด‡์˜ ์ž์œจ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ธ๊ณต์ง€๋Šฅ ์—ฐ๊ตฌ์—๋Š” ๋Œ€๊ทœ๋ชจ ๊ณ ํ’ˆ์งˆ ๋กœ๋ด‡ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ์…‹์˜ ํ™•๋ณด๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ Vision-Language-Action (VLA) ๋ชจ๋ธ ๋“ฑ ์ตœ์‹  ๋กœ๋ด‡ ํ•™์Šต ๊ธฐ๋ฒ•๋“ค์€ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ์ธ๊ฐ„ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ์ฃผ์š” ์ˆ˜๋‹จ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์›๊ฒฉ ์กฐ์ž‘(teleoperation)์ธ๋ฐ, ๊ธฐ์กด ์›๊ฒฉ์ œ์–ด ๋ฐฉ๋ฒ•๋“ค์€ ๊ฐ๊ฐ ํ•œ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋ฆฌ๋”-ํŒ”๋กœ์›Œ(Leader-Follower) ๋ฐฉ์‹: ์ธ๊ฐ„ ๋™์ž‘์„ ๋กœ๋ด‡์— ๊ธฐ๊ณ„์ ์œผ๋กœ ๋”ฐ๋ผํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‚ฎ์€ ์ง€์—ฐ๊ณผ ์ง๊ด€์  ์ œ์–ด๊ฐ€ ์žฅ์ ์ด์ง€๋งŒ, ํŠน์ • ๋กœ๋ด‡์— ๋งž์ถ˜ ์ „์šฉ ํ•˜๋“œ์›จ์–ด๊ฐ€ ํ•„์š”ํ•˜์—ฌ ํ™•์žฅ์„ฑ๊ณผ ์ ‘๊ทผ์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
  • ๋น„์ „ ๊ธฐ๋ฐ˜ ์›๊ฒฉ์กฐ์ž‘: ์นด๋ฉ”๋ผ ์˜์ƒ์„ ๋ณด๋ฉฐ ์กฐ์ด์Šคํ‹ฑ ๋“ฑ์œผ๋กœ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹ค์–‘ํ•œ ๋กœ๋ด‡์— ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ถˆ์•ˆ์ •ํ•œ ์ถ”์  ์„ฑ๋Šฅ๊ณผ ๋†’์€ ์ง€์—ฐ(latency)์œผ๋กœ ์ธํ•ด ์ œ์–ด ์ •ํ™•๋„์™€ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ์ €ํ•˜๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ˜„์‹ค(VR/XR) ๊ธฐ๋ฐ˜ ์›๊ฒฉ์กฐ์ž‘: ์ƒ์šฉ HMD(Headset)๋ฅผ ํ™œ์šฉํ•ด ์ž…์ฒด์  ์‹œ๊ฐ ํ”ผ๋“œ๋ฐฑ๊ณผ ์ง๊ด€์ ์ธ ์ œ์Šค์ฒ˜ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ ๋‹ค์ˆ˜ ๋กœ๋ด‡ ํ”Œ๋žซํผ์— ์ผ๋ฐ˜ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ๋งํ•œ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๊ธฐ์กด XR ์›๊ฒฉ์ œ์–ด ์†”๋ฃจ์…˜๋“ค์€ ์„ค์ •์ด ๋ณต์žกํ•˜๊ณ  ๊ฐœ๋ณ„ HMD์šฉ Unity SDK๋‚˜ WebXR ํ”Œ๋žซํผ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์™€ ์ถ”๊ฐ€ ์ง€์—ฐ์„ ์ดˆ๋ž˜ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ XR ๋””๋ฐ”์ด์Šค์™€ ๋กœ๋ด‡ ์ œ์–ด๊ธฐ ์‚ฌ์ด์— ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท์ด ๋ถ€์žฌํ•ด, ์ƒˆ๋กœ์šด XR ๊ธฐ๊ธฐ๋‚˜ ๋กœ๋ด‡์„ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์ƒ๋‹นํ•œ ํ†ตํ•ฉ ์ž‘์—…์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ByteDance PICO ์—ฐ๊ตฌ์ง„์€ OpenXR ํ‘œ์ค€ ๊ธฐ๋ฐ˜์˜ ํฌ๋กœ์Šคํ”Œ๋žซํผ ์›๊ฒฉ์ œ์–ด ํ”„๋ ˆ์ž„์›Œํฌ์ธ XRoboToolkit์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. XRoboToolkit์€ XR ๊ธฐ๊ธฐ์™€ ๋กœ๋ด‡ ํ”Œ๋žซํผ/์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์•„์šฐ๋ฅด๋Š” ๋ชจ๋“ˆ์‹ ์†Œํ”„ํŠธ์›จ์–ด ํ‚คํŠธ๋กœ, ์ €์ง€์—ฐ ์Šคํ…Œ๋ ˆ์˜ค ๋น„๋””์˜ค ํ”ผ๋“œ๋ฐฑ, ์ตœ์ ํ™” ๊ธฐ๋ฐ˜ ์—ญ๊ธฐ๊ตฌํ•™(IK), ๊ทธ๋ฆฌ๊ณ  ๋จธ๋ฆฌ/์†/์ปจํŠธ๋กค๋Ÿฌ/๋™์ž‘ํŠธ๋ž˜์ปค ๋“ฑ ๋‹ค์–‘ํ•œ ์ถ”์  ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ง€์›์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” XRoboToolkit ๋…ผ๋ฌธ์„ ๋ฐ”ํƒ•์œผ๋กœ, ๋กœ๋ด‡๊ณตํ•™์ž์˜ ๊ด€์ ์—์„œ XRoboToolkit์˜ ์ „์ฒด ์•„ํ‚คํ…์ฒ˜, ๊ตฌ์„ฑ ์š”์†Œ๋ณ„ ์—ญํ• , ์™ธ๋ถ€ ๊ธฐ์ˆ ๊ณผ์˜ ํ†ตํ•ฉ ๋ฐฉ์‹(ROS, Unity, WebRTC ๋“ฑ), ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์ง€์› ๊ตฌ์กฐ, ์„ค๊ณ„์ƒ์˜ ๊ฐ•์ ๊ณผ ํ•œ๊ณ„, ๊ธฐ์กด ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ๋น„๊ต, ๊ทธ๋ฆฌ๊ณ  ํ™œ์šฉ ๊ฐ€๋Šฅ์„ฑ ๋ฐ ํ–ฅํ›„ ๋ฐœ์ „ ๋ฐฉํ–ฅ์„ ์‹ฌ์ธต์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

XRoboToolkit ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”

๊ทธ๋ฆผ 1. XRoboToolkit ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ „์ฒด ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”. Green ์ƒ‰ ๋ธ”๋ก์€ XR ๋””๋ฐ”์ด์Šค ์ธก ๊ตฌ์„ฑ ์š”์†Œ๋“ค (ํœด๋จผ ์ธํ„ฐํŽ˜์ด์Šค), Blue ์ƒ‰ ๋ธ”๋ก์€ ๋กœ๋ด‡ PC ์ธก ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ค‘์•™์˜ XRoboToolkit ๋ชจ๋“ˆ๋“ค์ด XR ์žฅ์น˜์™€ ๋กœ๋ด‡ ์‹œ์Šคํ…œ์„ ์—ฐ๊ฒฐํ•˜๋ฉฐ, ์‹ค์‹œ๊ฐ„ ์›๊ฒฉ์กฐ์ž‘๊ณผ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

XRoboToolkit์€ ํฌ๊ฒŒ XR ๋””๋ฐ”์ด์Šค ์ธก๊ณผ ๋กœ๋ด‡ ์ธก์œผ๋กœ ๋‚˜๋‰˜์–ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. XR ๋””๋ฐ”์ด์Šค ์ธก์—๋Š” Unity ๊ธฐ๋ฐ˜ XR ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด VR/AR ํ—ค๋“œ์…‹(์˜ˆ: PICO 4, Meta Quest 3)์— ์„ค์น˜๋˜์–ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋จธ๋ฆฌ ์œ„์น˜/์ž์„ธ, ์–‘์† ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ์†๊ฐ€๋ฝ ๊ด€์ ˆ ์›€์ง์ž„, ์ „์‹  ๋™์ž‘(์ถ”๊ฐ€ ๋ชจ์…˜ ํŠธ๋ž˜์ปค ํ™œ์šฉ ์‹œ) ๋“ฑ์„ OpenXR ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…์ฒด์  ์‹œ๊ฐ ํ”ผ๋“œ๋ฐฑ(stereoscopic visual feedback)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋ด‡ ์ธก์—๋Š” PC(Service) ๋ชจ๋“ˆ๊ณผ ๋กœ๋ด‡ ์ œ์–ด ๋ชจ๋“ˆ(IK/๋””๋ ‰์Šคํ„ฐ๋ฆฌํƒ€๊ฒŒํŒ…)์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. XR ํ—ค๋“œ์…‹์—์„œ ์ˆ˜์ง‘๋œ ์ž์„ธ/์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด PC ์„œ๋น„์Šค(XRoboToolkit-PC-Service)๋ผ๋Š” C++ ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๊ณ , ์ด ์„œ๋น„์Šค๋Š” ๋„์ฐฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์ด์–ธํŠธ(๋กœ๋ด‡ ์ œ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” C++ ์„œ๋น„์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜, Pybind ๊ธฐ๋ฐ˜ Python ์ธํ„ฐํŽ˜์ด์Šค(XRoboToolkit-PC-Service-Pybind)๋ฅผ ํ†ตํ•ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐ›์€ ์‚ฌ์šฉ์ž ์ถ”์  ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์—ญ๊ธฐ๊ตฌํ•™ IK solver์™€ ์†๋™์ž‘ ๋งคํ•‘(๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ๋ฆฌํƒ€๊ฒŒํŒ…) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋กœ๋ด‡ ์ œ์–ด ๋ช…๋ น์„ ์‚ฐ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ XRoboToolkit-Teleop-Sample-Python ๋“ฑ์œผ๋กœ ์ œ๊ณต๋˜๋ฉฐ, UR5, ARX R5 ๊ฐ™์€ ๋กœ๋ด‡ ํŒ”, Galaxea R1-Lite์™€ ๊ฐ™์€ ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ, Shadow ๋กœ๋ด‡ ์† ๋“ฑ ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ๊ณผ, MuJoCo ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ๊นŒ์ง€ ์—ฐ๋™ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ, ๋กœ๋ด‡ ์ธก์—๋Š” Robot Vision ๋ชจ๋“ˆ์ด ์กด์žฌํ•˜์—ฌ ๋กœ๋ด‡์— ์žฅ์ฐฉ๋œ ์Šคํ…Œ๋ ˆ์˜ค ์นด๋ฉ”๋ผ (์˜ˆ: PICO ํ—ค๋“œ์…‹ ์นด๋ฉ”๋ผ ๋˜๋Š” ์™ธ๋ถ€ ZED Mini ์นด๋ฉ”๋ผ)๋กœ๋ถ€ํ„ฐ ์˜์ƒ์„ ๋ฐ›์•„๋“ค์ธ ๋’ค, ์ด๋ฅผ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ธ์ฝ”๋”ฉํ•˜์—ฌ XR ๋””๋ฐ”์ด์Šค ์ธก Unity ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด XRoboToolkit ์•„ํ‚คํ…์ฒ˜๋Š” XR HMD & ์ปจํŠธ๋กค๋Ÿฌ โ†”๏ธŽ Unity XR ํด๋ผ์ด์–ธํŠธ โ†”๏ธŽ PC ํ†ต์‹  ์„œ๋น„์Šค โ†”๏ธŽ ๋กœ๋ด‡ ์ œ์–ด/์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๊ฐ ๋ชจ๋“ˆ์ด ํ‘œ์ค€ํ™”๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท๊ณผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•จ์œผ๋กœ์จ ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ์„ฑ ์žˆ๋Š” ์›๊ฒฉ์ œ์–ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ๋ณ„ ์—ญํ•  (Control, Communication, Robot Abstraction Layer)

XRoboToolkit์˜ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์ œ์–ด, ํ†ต์‹ , ๋กœ๋ด‡ ์ถ”์ƒํ™”๋ผ๋Š” ๊ณ„์ธต์  ์—ญํ• ์„ ๋‚˜๋ˆ„์–ด ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ณ„์ธต๋ณ„ ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ์—ญํ• ์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

์ œ์–ด ๊ณ„์ธต: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ๋กœ๋ด‡ ๋ช…๋ น ์ƒ์„ฑ

์ œ์–ด ๊ณ„์ธต์€ ์‚ฌ์šฉ์ž์˜ ๋™์ž‘์„ ๋กœ๋ด‡ ์ œ์–ด ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค. XRoboToolkit์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ œ์–ด ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š”๋ฐ, ํฌ๊ฒŒ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์—ญ๊ธฐ๊ตฌํ•™(IK), ์† ๋™์ž‘์„ ๋กœ๋ด‡ ์†์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŒํŒ…, ๋จธ๋ฆฌ ์›€์ง์ž„์„ ๋กœ๋ด‡ ์นด๋ฉ”๋ผ ์ œ์–ด์— ๋ฐ˜์˜ํ•˜๋Š” ํ—ค๋“œ ํŠธ๋ž˜ํ‚น, ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡ ๋ฒ ์ด์Šค ์กฐ์ž‘ ๋“ฑ์ด ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • ์—ญ๊ธฐ๊ตฌํ•™ ๊ธฐ๋ฐ˜ ํŒ” ์ œ์–ด: ์‚ฌ์šฉ์ž๊ฐ€ VR ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์›€์ง์ด๋ฉด, ๊ทธ ๋ณ€์œ„๋ฅผ ๋กœ๋ด‡ ํŒ” ๋ง๋‹จํšจ๊ณผ๊ธฐ(End-Effector)์˜ ๋ชฉํ‘œ ์œ„์น˜ ๋ณ€ํ™”๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. XRoboToolkit์€ Quadratic Programming (QP) ๊ธฐ๋ฐ˜์˜ IK ์†”๋ฒ„๋ฅผ ํƒ‘์žฌํ•˜์—ฌ, ๋กœ๋ด‡ ๊ด€์ ˆ์˜ ๋ชฉํ‘œ ๊ฐ๋„๋ฅผ ์‹ค์‹œ๊ฐ„ ์ตœ์ ํ™”๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์†”๋ฒ„๋Š” Pinocchio ๋ฌผ๋ฆฌ ์—”์ง„์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๋ฉฐ, ์ถ”๊ฐ€์ ์ธ ์ œ์•ฝ๊ณผ ์ •๊ทœํ™”๋ฅผ ์‰ฝ๊ฒŒ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด ํŠน์ด์  ๊ทผ์ฒ˜์—์„œ๋„ ์•ˆ์ •์ ์ธ ๋™์ž‘์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ Manipulator์˜ ์กฐ์ž‘ ๊ฐ€๋Šฅ๋„(manipulability)๋ฅผ ๋†’์ด๋Š” ์ •๊ทœํ™” ํ•ญ์„ ์ถ”๊ฐ€ํ•˜์—ฌ, ํŠน์ด์  ๋ถ€๊ทผ์—์„œ ๊ด€์ ˆ ์›€์ง์ž„์ด ๊ฐ‘์ž๊ธฐ ๋ถˆ์•ˆ์ •ํ•ด์ง€์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปจํŠธ๋กค๋Ÿฌ ๊ทธ๋ฆฝ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์•ผ๋งŒ ๋กœ๋ด‡ ํŒ”์ด ๋”ฐ๋ผ ์›€์ง์ด๋„๋ก ํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋ฆฝ์„ ์žก์€ ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์ƒ๋Œ€ ์›€์ง์ž„(relative motion) ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด VR ํ™˜๊ฒฝ์—์„œ ์†์„ ์›€์ง์ผ ๋•Œ ๋กœ๋ด‡์ด 1:1๋กœ ์ฆ‰๊ฐ ๋”ฐ๋ผ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์žก์€ ์ˆœ๊ฐ„์˜ ์ž์„ธ ๋Œ€๋น„ ๋ณ€ํ™”๋งŒ ๋”ฐ๋ผ์˜ค๊ฒŒ ํ•ด ์•ˆ์ •์ ์ด๊ณ  ์ง๊ด€์ ์ธ ์กฐ์ž‘๊ฐ์„ ์ค๋‹ˆ๋‹ค. ๋” ๋‚˜์•„๊ฐ€, ๋ณด์กฐ ํŠธ๋ž˜์ปค(์˜ˆ: ํŒ”๊ฟˆ์น˜์— ๋ถ€์ฐฉ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ๊ฐ„ ํŒ”๊ฟˆ์น˜์˜ ์œ„์น˜๋ฅผ ์ถ”์ ํ•ด IK ๊ณ„์‚ฐ์— ์ถ”๊ฐ€ ์ œ์•ฝ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” 7์ž์œ ๋„ ์ด์ƒ์˜ ์—ฌ์œ ์ž์œ ๋„(์ž‰์—ฌ, redundant)๋ฅผ ๊ฐ€์ง€๋Š” ๋กœ๋ด‡ํŒ”์— ์‚ฌ๋žŒ์ด ํŒ”๊ฟˆ์น˜๋ฅผ ์›€์ง์—ฌ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ž์„ธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ์ž‘์—…๊ณต๊ฐ„ ๋‚ด์—์„œ ์ธ์ฒด๊ณตํ•™์ ์ธ ํŒ” ์›€์ง์ž„์„ ๋กœ๋ด‡์ด ๋ณด์ด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฑ์Šคํ„ฐ๋Ÿฌ์Šค ์† ๋ฆฌํƒ€๊ฒŒํŒ…: VR ํ—ค๋“œ์…‹์˜ ์† ์ถ”์  ๊ธฐ๋Šฅ(์˜ˆ: PICO ํ—ค๋“œ์…‹์˜ ์นด๋ฉ”๋ผ ๊ธฐ๋ฐ˜ ์† ์ถ”์ )์œผ๋กœ ์–ป์€ ์–‘์†์˜ 26๊ฐœ ๊ด€์ ˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋ด‡ ์†์˜ ๊ด€์ ˆ ๊ณต๊ฐ„์— ๋งคํ•‘ํ•˜์—ฌ, ์ •๋ฐ€ ์กฐ์ž‘์— ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. XRoboToolkit์€ OpenXR ํ‘œ์ค€์˜ ์† ๋ชจ๋ธ ๊ด€์ ˆ ์ขŒํ‘œ(์—„์ง€ 4๊ด€์ ˆ, ๋‚˜๋จธ์ง€ ์†๊ฐ€๋ฝ ๊ฐ 5๊ด€์ ˆ, ์†๋ฐ”๋‹ฅ+์†๋ชฉ ๋“ฑ ์ด 26๊ฐœ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ฐ ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์†๊ฐ€๋ฝ์˜ 6-์ž์œ ๋„ ์ž์„ธ ์ •๋ณด๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋ด‡ ํ•ธ๋“œ(Shadow Hand ๋“ฑ)์˜ ํ‚คํฌ์ธํŠธ ์œ„์น˜์— ์‹ค์‹œ๊ฐ„ ๋Œ€์‘์‹œ์ผœ, ์ธ๊ฐ„ ์†์˜ ์ž์„ธ๋ฅผ ๋กœ๋ด‡ ์†๊ฐ€๋ฝ ๊ฐ๋„๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, ์‹œ๊ฐ„ t์—์„œ ์ธ๊ฐ„ ์† ๋ชจ๋ธ์˜ i๋ฒˆ์งธ ๊ด€์ ˆ ์œ„์น˜๋ฅผ , ๋กœ๋ด‡ ์†์˜ ๋Œ€์‘ ์ง€์  ์œ„์น˜๋ฅผ ๋ผ ํ•  ๋•Œ, ** ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋กœ๋ด‡ ์† ๊ด€์ ˆ ๊ตฌ์„ฑ ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์† ํฌ๊ธฐ ์ฐจ์ด๋ฅผ ๋ณด์ •ํ•˜๊ธฐ ์œ„ํ•œ ์Šค์ผ€์ผ๋ง ์ธ์ž๋‚˜ ํ•ด๊ฐ€ ๋ถˆ์•ˆ์ •ํ•  ๋•Œ๋ฅผ ๋Œ€๋น„ํ•œ ์ •๊ทœํ™” ํ•ญ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์„ ํ†ตํ•ด ๋ณ„๋„ ์žฅ๋น„ ์—†์ด HMD ํ•˜๋‚˜๋งŒ์œผ๋กœ ์„ฌ์„ธํ•œ ์†๋™์ž‘ ํ…”๋ ˆ์˜ต์ด ๊ฐ€๋Šฅํ•ด์กŒ์œผ๋ฉฐ, ์‹ค์ œ Shadow Robot ์†** ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ†ตํ•ด VR ์†์ง“์œผ๋กœ ๋ฌผ์ฒด๋ฅผ ์žก๊ณ  ์กฐ์ž‘ํ•˜๋Š” ์‹คํ—˜์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‹œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ—ค๋“œ ํŠธ๋ž˜ํ‚น ๋ฐ ์‹œ์„  ์ œ์–ด: ์‚ฌ์šฉ์ž์˜ ๋จธ๋ฆฌ ์›€์ง์ž„(ํšŒ์ „/์œ„์น˜ ์ถ”์ )์„ ๋กœ๋ด‡์˜ ์‹œ๊ฐ ์„ผ์„œ ๋ฐฉํ–ฅ ์ œ์–ด์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด XRoboToolkit์„ ๋“€์–ผ UR5 ๋กœ๋ด‡ํŒ”์— ์ ์šฉํ•œ ์‚ฌ๋ก€์—์„œ, 2์ž์œ ๋„(์ขŒ์šฐ ํšŒ์ „, ์ƒํ•˜ ํšŒ์ „) ์ง๋ฒŒ์— VR ํ—ค๋“œ์…‹(PICO 4)์„ ๋ถ€์ฐฉํ•˜๊ณ , ์ด๋ฅผ ๋กœ๋ด‡์˜ ๋Šฅ๋™ ์Šคํ…Œ๋ ˆ์˜ค ์นด๋ฉ”๋ผ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ฐ„ ์šด์˜์ž๊ฐ€ ๋จธ๋ฆฌ๋ฅผ ๋Œ๋ฆฌ๋ฉด ์ง๋ฒŒ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋”ฐ๋ผ ๋Œ๋ฉด์„œ, ์›๊ฒฉ ๋กœ๋ด‡ ํ˜„์žฅ์˜ ์‹œ์•ผ ๋ฐฉํ–ฅ์ด ๋™์ผํ•˜๊ฒŒ ๋ณ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ Roll(์™ผ์ชฝ๊ธฐ์šธ์ž„/์˜ค๋ฅธ์ชฝ๊ธฐ์šธ์ž„) ํšŒ์ „์ถ•์€ ์ œ์™ธํ•˜์—ฌ, ์‹œ๊ฐ ์ž…๋ ฅ๊ณผ ์‚ฌ์šฉ์ž ๋‚ด์ด๊ฐ๊ฐ์˜ ๋ถˆ์ผ์น˜๋กœ ์ธํ•œ ๋ฉ€๋ฏธ๋ฅผ ๋ฐฉ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋จธ๋ฆฌ-์นด๋ฉ”๋ผ ์—ฐ๋™์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ์›๊ฒฉ ํ™˜๊ฒฝ์„ ์ž์œจ์ ์œผ๋กœ ๋‘˜๋Ÿฌ๋ณผ ์ˆ˜ ์žˆ๊ณ , ํŠนํžˆ ์ •๋ฐ€ ์ž‘์—…์‹œ ๊นŠ์ด๊ฐ ์žˆ๋Š” ์‹œ๊ฐ ์ •๋ณด๋ฅผ ์–ป์–ด ์ž‘์—… ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋™ ํ”Œ๋žซํผ ์ œ์–ด: XR ์ปจํŠธ๋กค๋Ÿฌ์˜ ์กฐ์ด์Šคํ‹ฑ ์ž…๋ ฅ์„ ์ด์šฉํ•ด ์ด๋™ํ˜• ๋กœ๋ด‡์˜ ์ฃผํ–‰์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ์ชฝ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์กฐ์ด์Šคํ‹ฑ ์ถ•์€ ์ „ํ›„/์ขŒ์šฐ ๋ณ‘์ง„ ์ด๋™์†๋„๋ฅผ, ๋‹ค๋ฅธ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์กฐ์ด์Šคํ‹ฑ์€ ํšŒ์ „ ์†๋„๋ฅผ ๋งคํ•‘ํ•จ์œผ๋กœ์จ, VR ์†์—์„œ ๊ฒŒ์ž„ํ•˜๋“ฏ์ด ์›๊ฒฉ์ง€์˜ ๋กœ๋ด‡ ์ด๋™์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ํŒ” ์กฐ์ž‘๊ณผ ๋ณ‘ํ–‰ํ•˜์—ฌ, ์‚ฌ๋žŒ ํ•œ ๋ช…์ด ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ๋ฅผ ์›€์ง์—ฌ๊ฐ€๋ฉฐ ์ž‘์—…ํ•˜๋Š” ๋ณตํ•ฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํ†ต์‹  ๊ณ„์ธต: ๋ฐ์ดํ„ฐ ๋ฐ ์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ

ํ†ต์‹  ๊ณ„์ธต์€ XR ๋””๋ฐ”์ด์Šค์™€ ์›๊ฒฉ ๋กœ๋ด‡ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์‚ฌ์šฉ์ž ์ถ”์  ๋ฐ์ดํ„ฐ(ํฌ์ฆˆ, ์ž…๋ ฅ)์™€ ์Šคํ…Œ๋ ˆ์˜ค ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ์ €์ง€์—ฐ(low-latency)์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

XRoboToolkit์€ ์ „์šฉ SDK ๊ธฐ๋ฐ˜์˜ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. XRoboToolkit-PC-Service(C++)๋Š” ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋กœ ๋™์ž‘ํ•˜์—ฌ, VR ํ•˜๋“œ์›จ์–ด๋กœ๋ถ€ํ„ฐ ์ˆ˜์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์—ฐ ์—†์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Unity๋กœ ์ž‘์„ฑ๋œ XR ํด๋ผ์ด์–ธํŠธ๋Š” ์ด PC ์„œ๋น„์Šค์™€ ๋„คํŠธ์›Œํฌ ์†Œ์ผ“์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด, JSON ํ˜•ํƒœ๋กœ ํŒจํ‚น๋œ ์ถ”์  ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๋‹น 90ํšŒ(90 Hz) ์ „์†กํ•ฉ๋‹ˆ๋‹ค. OpenXR์˜ ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋“  ํŠธ๋ž˜ํ‚น ์ขŒํ‘œ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์ •์˜ํ–ˆ์œผ๋ฉฐ(Fig.2(a)), JSON ์˜ค๋ธŒ์ ํŠธ ๋‚ด์— ๋จธ๋ฆฌ, ์–‘์† ์ปจํŠธ๋กค๋Ÿฌ, ์†๊ฐ€๋ฝ ๊ด€์ ˆ, ์ „์‹  ๊ด€์ ˆ, ๋ณด์กฐ ํŠธ๋ž˜์ปค ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋‹ด์•„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผํ…Œ๋ฉด ํ—ค๋“œ์…‹์˜ ์œ„์น˜์™€ ์ฟผํ„ฐ๋‹ˆ์–ธ(q)์„ [px, py, pz, qx, qy, qz, qw]์˜ 7๊ฐœ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ , ๊ฐ ์†๊ฐ€๋ฝ ๊ด€์ ˆ์˜ 6-DoF ํฌ์ฆˆ 26๊ฐœ ๋“ฑ๋„ ๋ฐฐ์—ด๋กœ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹จ์ผ JSON ํŒจํ‚ท ๊ตฌ์กฐ ๋•๋ถ„์— ํด๋ผ์ด์–ธํŠธ ์ธก ํŒŒ์‹ฑ์ด ๋‹จ์ˆœํ•ด์กŒ๊ณ , ํ™œ์„ฑํ™”๋œ ํŠธ๋ž˜ํ‚น ๋ชจ๋“œ์— ์ƒ๊ด€์—†์ด ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ ํ•„๋“œ ๊ตฌ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ์˜ ๊ฒฝ์šฐ, XRoboToolkit์€ ๋งž์ถค ์„ค๊ณ„ํ•œ ์ €์ง€์—ฐ ์˜์ƒ ์ „์†ก ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ์–ธ๊ธ‰๋˜์ง„ ์•Š์•˜์ง€๋งŒ, ์˜์ƒ ์†ก์ˆ˜์‹ ์„ ์œ„ํ•ด WebRTC์™€ ์œ ์‚ฌํ•œ P2P ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ์ˆ ์ด๋‚˜ ํ•˜๋“œ์›จ์–ด ์ธ์ฝ”๋”ฉ์„ ํ™œ์šฉํ•œ ๊ฒƒ์œผ๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” ์ž์ฒด ๊ตฌํ˜„ํ•œ ์†”๋ฃจ์…˜์ด ๊ธฐ์กด Open-TeleVision ๋Œ€๋น„ ์šฐ์ˆ˜ํ•œ ์ง€์—ฐ ์„ฑ๋Šฅ์„ ๋ณด์˜€๋‹ค๊ณ  ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ—˜ ๊ฒฐ๊ณผ XRoboToolkit์˜ ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์—ฐ์€ ZED Mini ์นด๋ฉ”๋ผ โ†’ PICO HMD ๊ตฌ์„ฑ์—์„œ ํ‰๊ท  82.0ms๋กœ, Open-TeleVision (ZEDโ†’Quest)์˜ 121.5ms๋ณด๋‹ค ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ PICO ์ž์ฒด ์นด๋ฉ”๋ผ๋ฅผ ์ด์šฉํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ(ํ—ค๋“œ์…‹โ†’ํ—ค๋“œ์…‹)์—์„œ๋„ ์•ฝ 100ms ์ง€์—ฐ์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ, ๋ณ„๋„ PC ์—†์ด๋„ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ํ•ด์ƒ๋„ 1280ร—720, 60 FPS, 1Mbps ๋น„ํŠธ๋ ˆ์ดํŠธ ์กฐ๊ฑด์„ ๋งž์ถ”์–ด ๊ณต์ • ๋น„๊ตํ–ˆ์œผ๋ฉฐ, XRoboToolkit์˜ ๊ฒฝ์šฐ ์ง€์—ฐ ํŽธ์ฐจ๋„ ๋” ์ž‘์•„ ์•ˆ์ •์ ์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค (ํ‘œ II ์ฐธ์กฐ). ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋Š” ๋„คํŠธ์›Œํฌ ์ง€์—ฐ๊ณผ ํŒจํ‚ท ์†์‹ค์„ ์ตœ์†Œํ™”ํ•˜๋Š” ์ตœ์ ํ™” ๋•๋ถ„์ด๋ฉฐ, ์‹ค์ œ GitHub ๋ฌธ์„œ์—๋„ โ€œ<100ms latency, <1% packet lossโ€ ๋‹ฌ์„ฑ์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜๋ฉด, XRoboToolkit์˜ ํ†ต์‹  ๊ณ„์ธต์€ ๊ณ ์ฃผํŒŒ์ˆ˜ ๋ชจ์…˜ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ๊ณผ ์Šคํ…Œ๋ ˆ์˜ค ์˜์ƒ ์ŠคํŠธ๋ฆผ์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ, OpenXR ๊ธฐ๋ฐ˜ ํ‘œ์ค€ํ™” ๋ฐ์ดํ„ฐ ํฌ๋งท๊ณผ ๋งž์ถคํ˜• ์ €์ง€์—ฐ ํ”„๋กœํ† ์ฝœ๋กœ ์›๊ฒฉ ํ˜„์‹ค๊ฐ(telepresence)์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋ด‡ ์ถ”์ƒํ™” ๊ณ„์ธต: ๋‹ค์ข… ๋กœ๋ด‡ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ†ตํ•ฉ

๋กœ๋ด‡ ์ถ”์ƒํ™” ๊ณ„์ธต์€ ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ํ”Œ๋žซํผ์ด๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์„ ์†์‰ฝ๊ฒŒ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. XRoboToolkit์˜ ์„ค๊ณ„ ์ฒ ํ•™์€ ๋กœ๋ด‡ ์ข…์†์ ์ธ ๋ถ€๋ถ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋กœ๋ด‡์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋ชจ๋“ˆ๋งŒ ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•˜๋ฉด ๋˜๋„๋ก ํ•˜๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋กœ๋ด‡ ์ธก ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ Python ๋ฐ C++ ๋ชจ๋“ˆ๋กœ ๊ฐœ๋ฐฉํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ๋กœ๋ด‡ ์ œ์–ด ์ฝ”๋“œ๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ XRoboToolkit์˜ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์‹ค์ œ ๋กœ๋ด‡์˜ ๊ฒฝ์šฐ, Universal Robots UR5๋‚˜ ARX R5 ํŒ”์— ๋Œ€ํ•œ ์ œ์–ด๋Š” XRoboToolkit-Python ์ƒ˜ํ”Œ ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ๋กœ๋ด‡์˜ API ํ˜ธ์ถœ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. UR5์˜ ๊ฒฝ์šฐ ROS2 ํ™˜๊ฒฝ์—์„œ ํŒ” ์ œ์–ด ํ† ํ”ฝ์œผ๋กœ IK ๊ฒฐ๊ณผ๊ฐ’(๊ด€์ ˆ๊ฐ๋„ ๋ช…๋ น)์„ publishํ•˜๊ฑฐ๋‚˜, UR ์ž์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜ˆ: RTDE or MoveIt)๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ XRoboToolkit ํ”„๋กœ์ ํŠธ์—๋Š” ROS2 ํ†ตํ•ฉ ๋ชจ๋“ˆ(XRoboToolkit-Teleop-ROS)๋„ ๋ณ„๋„๋กœ ์ œ๊ณต๋˜์–ด, ROS 2 ์—์ฝ”์‹œ์Šคํ…œ์—์„œ PICO XR ์›๊ฒฉ์ œ์–ด๋ฅผ ์†์‰ฝ๊ฒŒ ํ™œ์šฉํ•˜๋„๋ก ๋•๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ROS ์—ฐ๋™์„ ํ†ตํ•ด, ๊ธฐ์กด ๋กœ๋ด‡ ์šด์˜ ์†Œํ”„ํŠธ์›จ์–ด์— XRoboToolkit์„ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ๋ถ™์—ฌ ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, ํ˜„์žฌ๋Š” MuJoCo ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์›์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” MuJoCo๋กœ ๋งŒ๋“  ๋กœ๋ด‡ ๋ชจ๋ธ์„ XRoboToolkit Python ์ƒ˜ํ”Œ์— ๋“ฑ๋กํ•˜์—ฌ, VR ์ œ์–ด ์ž…๋ ฅ์ด ์˜ค๋ฉด MuJoCo ๋‚ด๋ถ€์˜ ๋กœ๋ด‡ ๊ด€์ ˆ์— ๋ช…๋ น์ด ๊ฐ€๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ์‹ค์‹œ๊ฐ„ ๋ Œ๋”๋งํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ MeshCat๊ณผ์˜ ์—ฐ๋™ ์˜ˆ์‹œ๋„ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด๋Š” 3D ์›น ๋น„์ฃผ์–ผ๋ผ์ด์ œ์ด์…˜ ๋„๊ตฌ์ธ MeshCat์„ ํ†ตํ•ด ํ…”๋ ˆํ”„๋ ˆ์ฆŒ์Šค UI๋ฅผ ๊ตฌ์„ฑํ•œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ Unitree G1 ํœด๋จธ๋…ธ์ด๋“œ ์ƒ์ฒด๋ฅผ MeshCat์œผ๋กœ ๋„์›Œ๋†“๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ํŒ”๊ฟˆ์น˜ ํŠธ๋ž˜์ปค๊นŒ์ง€ ํ™œ์šฉํ•œ VR ์กฐ์ž‘์„ ํ•˜๋ฉด ํ•ด๋‹น ์›€์ง์ž„์ด MeshCat ์ƒ์˜ 3D ๋ชจ๋ธ์— ์‹ค์‹œ๊ฐ„ ๋ฐ˜์˜๋˜๋Š” ์‹์ž…๋‹ˆ๋‹ค.

๋กœ๋ด‡ ์ถ”์ƒํ™” ๊ณ„์ธต์˜ ๊ฐ•๋ ฅํ•œ ์ ์€, ์ƒˆ๋กœ์šด ๋กœ๋ด‡์ด๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋“  ๊ณตํ†ต๋œ ๋ฐ์ดํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค(XR ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ โ†’ ๋กœ๋ด‡ ๋ช…๋ น)๋งŒ ๋งž์ถ”๋ฉด XRoboToolkit์˜ ๋‚˜๋จธ์ง€ ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ •๋ฐ€ ์‚ฐ์—…์šฉ ๋กœ๋ด‡ํŒ”, ํœด๋จธ๋…ธ์ด๋“œ, ์ด๋™ํ˜• ๋กœ๋ด‡, ๋กœ๋ด‡ ์†, ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋“ฑ ์ด๊ธฐ์ข… ์‹œ์Šคํ…œ์„ ํ•˜๋‚˜์˜ XR ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์กฐ์ข…ํ•˜๋Š” ํ†ตํ•ฉ ํ™˜๊ฒฝ์ด ํ˜„์‹คํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌํŒ€์€ ๋…ผ๋ฌธ์—์„œ UR5, ARX R5, Galaxea R1-Lite, Shadow Hand, MuJoCo ๋“ฑ์„ ์—ฐ๋™ ์‹œ์—ฐํ•˜์˜€์œผ๋ฉฐ, ์•ž์œผ๋กœ๋„ ์ถ”๊ฐ€ ๋กœ๋ด‡/์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ง€์›์ด ์šฉ์ดํ•˜๋‹ค๊ณ  ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

์™ธ๋ถ€ ๊ธฐ์ˆ ๊ณผ์˜ ํ†ตํ•ฉ (ROS, Unity, WebRTC ๋“ฑ)

XRoboToolkit์˜ ๊ฐœ๋ฐœ ๋ฐ ํ™œ์šฉ์—๋Š” ์—ฌ๋Ÿฌ ์™ธ๋ถ€ ๊ธฐ์ˆ  ์Šคํƒ์ด ํ™œ์šฉ๋˜์—ˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์— ๋Œ€ํ•œ ํ†ตํ•ฉ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • Unity (OpenXR): XRoboToolkit์˜ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Unity ๊ฒŒ์ž„์—”์ง„์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Unity๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์œผ๋กœ์˜ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ, PICO๋‚˜ Quest ๋“ฑ์˜ Android ๊ธฐ๋ฐ˜ VR ํ—ค๋“œ์…‹์— ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์œผ๋กœ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , PC VR ํ™˜๊ฒฝ์œผ๋กœ๋„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XRoboToolkit Unity ํด๋ผ์ด์–ธํŠธ๋Š” OpenXR ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๊ธฐ๊ธฐ ์ œ์–ด์™€ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š”๋ฐ, OpenXR ํ‘œ์ค€์„ ์ฑ„ํƒํ•จ์œผ๋กœ์จ ๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์—ฌ๋Ÿฌ XR ๋””๋ฐ”์ด์Šค์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, PICO ์ „์šฉ SDK๋‚˜ Oculus SDK ๊ฐ๊ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹ , OpenXR ํ†ตํ•ฉ์œผ๋กœ ํ˜ธํ™˜์„ฑ๊ณผ ํ‘œ์ค€ํ™”๋ฅผ ๋‹ฌ์„ฑํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Unity ๋‚ด์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ํŒจ๋„ ๋“ฑ์„ ํ†ตํ•ด PC ์„œ๋น„์Šค์™€์˜ ์—ฐ๊ฒฐ(IP, ์—ฐ๊ฒฐ ์ƒํƒœ ๋“ฑ)์„ ์„ค์ •ํ•˜๊ณ , ํŠธ๋ž˜ํ‚น ํŒจ๋„์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ UI๊ฐ€ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์›๊ฒฉ ๋น„์ „ ํŒจ๋„์„ ํ†ตํ•ด ์˜์ƒ ์ŠคํŠธ๋ฆผ์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํŒจ๋„๋กœ ๋…นํ™” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ UI๋“ค์€ ๋ชจ๋‘ Unity ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋˜์–ด ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ๋†’์˜€๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š” ์‹œ Unity ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ(์˜ˆ: ๋‹ค๋ฅธ ์นด๋ฉ”๋ผ ์†Œ์Šค ์ถ”๊ฐ€ ๋“ฑ)์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ROS (Robot Operating System): ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ XRoboToolkit์€ ROS์™€๋„ ์—ฐ๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ROS1์˜ rospy/roscpp ๋˜๋Š” ROS2์˜ rclpy/rclcpp๋ฅผ ํ†ตํ•ด XRoboToolkit์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ œ์–ด ๋ช…๋ น์„ ๋กœ๋ด‡ ํ† ํ”ฝ์œผ๋กœ ํผ๋ธ”๋ฆฌ์‹œํ•˜๊ฑฐ๋‚˜, ๋ฐ˜๋Œ€๋กœ ๋กœ๋ด‡ ์ƒํƒœ๋ฅผ ๊ตฌ๋…ํ•ด ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ XRoboToolkit-Teleop-ROS2 ๋ชจ๋“ˆ์€ PICO XR ํ—ค๋“œ์…‹์„ ROS2 ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜์—ฌ, ์˜ˆ์ปจ๋Œ€ /joy ํ† ํ”ฝ์ฒ˜๋Ÿผ ํ—ค๋“œ์…‹/์ปจํŠธ๋กค๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ROS ๋ฉ”์‹œ์ง€๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ธฐ์กด ROS ๊ธฐ๋ฐ˜ ์Šคํƒ์— ํฐ ๋ณ€๊ฒฝ ์—†์ด XR ์›๊ฒฉ์ œ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ง๋ถ™์ผ ์ˆ˜ ์žˆ์–ด, ๋กœ๋ด‡ ์—ฐ๊ตฌ์ž๋“ค์ด ์ต์ˆ™ํ•œ ROS ํ™˜๊ฒฝ๊ณผ์˜ ํ†ตํ•ฉ์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ROS ์ƒํƒœ๊ณ„์˜ ๋‹ค์–‘ํ•œ ์„ผ์„œ ๋“œ๋ผ์ด๋ฒ„๋‚˜ ๋ชจ์…˜ ํ”Œ๋ž˜๋‹ ํˆด๊ณผ ์กฐํ•ฉํ•˜์—ฌ, XRoboToolkit์„ ์›๊ฒฉ ์กฐ์ž‘ + ์ž์œจ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ: ์‚ฌ๋žŒ์ด XR๋กœ ์กฐ์ž‘ํ•˜๋‹ค๊ฐ€ ROS ์ž์œจ์ฃผํ–‰์œผ๋กœ ์ „ํ™˜ ๋“ฑ).
  • WebRTC ๋ฐ ๋„คํŠธ์›Œํฌ ์ŠคํŠธ๋ฆฌ๋ฐ: XRoboToolkit์€ ์›น ๊ธฐ์ˆ (WebRTC)์„ ์ „๋ฉด์— ๋‚ด์„ธ์šฐ์ง„ ์•Š์•˜์ง€๋งŒ, ๊ทผ๋ณธ์ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์ ์—์„œ WebRTC์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋ฒ•์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. WebRTC๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์˜์ƒ/์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ํ‘œ์ค€์ ์œผ๋กœ ์“ฐ์ด๋Š” P2P ํ”„๋กœํ† ์ฝœ๋กœ, ๋‚ฎ์€ ์ง€์—ฐ๊ณผ ํŒจํ‚ท ์†์‹ค ๋Œ€์‘์ด ๊ฐ•์ ์ž…๋‹ˆ๋‹ค. XRoboToolkit ๊ฐœ๋ฐœํŒ€์€ PC์™€ HMD ๊ฐ„ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ P2P ์—ฐ๊ฒฐ๊ณผ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•œ ์ปค์Šคํ…€ ํ”„๋กœํ† ์ฝœ์„ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ, ๊ฒฐ๊ณผ์ ์œผ๋กœ 100ms ์ดํ•˜์˜ ์˜์ƒ ์ง€์—ฐ ๋ฐ 1% ๋ฏธ๋งŒ์˜ ํŒจํ‚ท ์†์‹ค์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜์˜ ๋ทฐ์–ด๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, XRoboToolkit์˜ ์˜์ƒ ์ŠคํŠธ๋ฆผ์„ WebRTC๋กœ ๊ฒŒ์ดํŠธ์›จ์ดํ•˜์—ฌ ์†ก์ถœํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ GitHub ์ €์žฅ์†Œ์—๋Š” Jetson Orin์šฉ ์˜์ƒ ์†ก์‹ ๊ธฐ(XRoboToolkit-Orin-Video-Sender)๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด๋Š” NVIDIA Orin์—์„œ ์นด๋ฉ”๋ผ ์˜์ƒ์„ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋กœ ๋ณด๋‚ด๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ์„ ํ™•์žฅํ•˜๋ฉด ์›น ๋Œ€์‹œ๋ณด๋“œ๋‚˜ ์›๊ฒฉ ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€์—๋„ XRoboToolkit์˜ ์‹ค์‹œ๊ฐ„ ์˜์ƒ์„ ๋„์šฐ๋Š” ๋“ฑ, WebRTC๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์ง€์› ๊ตฌ์กฐ

XRoboToolkit์˜ ํฌ๋กœ์Šคํ”Œ๋žซํผ ์ง€์›์€ ๋‘ ์ธก๋ฉด์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: XR ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ํ”Œ๋žซํผ ๋‹ค๋ณ€ํ™”์™€ ๋กœ๋ด‡ ์‹œ์Šคํ…œ ์ธก์˜ ํ™˜๊ฒฝ ๋‹ค์–‘ํ™”์ž…๋‹ˆ๋‹ค.

  • XR ํด๋ผ์ด์–ธํŠธ ์ธก ๋ฉ€ํ‹ฐํ”Œ๋žซํผ: OpenXR ๊ธฐ๋ฐ˜ Unity ํด๋ผ์ด์–ธํŠธ๋Š” ์Šคํƒ ๋“œ์–ผ๋ก  VR ํ—ค๋“œ์…‹(์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๋ฐ˜) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ PC ๊ธฐ๋ฐ˜ VR ํ—ค๋“œ์…‹(Windows)์—๋„ ์ด์‹ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ณต์‹์ ์œผ๋กœ PICO 4์™€ Meta Quest 3์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋‚˜, OpenXR์„ ์ง€์›ํ•˜๋Š” HTC Vive, Valve Index, Windows Mixed Reality ๋“ฑ๋„ ์ด๋ก ์ ์œผ๋กœ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. Unity ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ๋ฐ”์ผ(Android)๋กœ ๋นŒ๋“œํ• ์ง€ ๋ฐ์Šคํฌํ†ฑ์œผ๋กœ ๋นŒ๋“œํ• ์ง€๋งŒ ์„ ํƒํ•˜๋ฉด ๋˜๋ฏ€๋กœ, ํ•˜๋“œ์›จ์–ด ์ œ์•ฝ์—์„œ ์ž์œ ๋กœ์šด XR ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค. ํ•œํŽธ, WebXR๊ณผ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ VR๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด๋Š” ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ์ถ”๊ฐ€ ์ง€์—ฐ๊ณผ ํ˜ธํ™˜์„ฑ ์ด์Šˆ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ๋ฐฉ์‹์„ ์ทจํ•˜์—ฌ, VR/AR HMD ๊ธฐ๊ธฐ์˜ ์„ฑ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋ฉด์„œ๋„ ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์— ๋Œ€์‘ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ XRoboToolkit์€ ๋ชจ๋ฐ”์ผ VR (์˜ˆ: PICO), ์ฝ˜์†”ํ˜• VR (์˜ˆ: Quest), PC VR ๋“ฑ XR ๋””๋ฐ”์ด์Šค ํ”Œ๋žซํผ ์ „๋ฐ˜์„ ํฌ๊ด„ํ•˜๋Š” ์œ ์—ฐ์„ฑ์„ ๊ฐ–์ถ”์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋กœ๋ด‡ PC ์ธก ๋ฉ€ํ‹ฐํ”Œ๋žซํผ: ๋กœ๋ด‡ ์ œ์–ด์™€ ์˜์ƒ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” PC ์„œ๋น„์Šค/๋กœ๋ด‡ ๋ชจ๋“ˆ์€ Windows, Linux(x86), ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค(Jetson Orin) ๋“ฑ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค . ์˜ˆ๋ฅผ ๋“ค์–ด ZED Mini ์นด๋ฉ”๋ผ๋Š” Windows 11 ๋žฉํ†ฑ์— ์—ฐ๊ฒฐํ•ด ์“ฐ๊ธฐ๋„ ํ•˜๊ณ , Jetson Orin์— ์—ฐ๊ฒฐํ•ด ํ—ค๋“œ์…‹๊ณผ ์ง์ ‘ ํ†ต์‹ ์‹œํ‚ค๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. PICO 4 ํ—ค๋“œ์…‹ ์ž์ฒด๋„ ์•ˆ๋“œ๋กœ์ด๋“œ OS์ด์ง€๋งŒ ๊ฐ•๋ ฅํ•œ SoC๋ฅผ ๊ฐ–์ถ˜ ์ผ์ข…์˜ ์ปดํ“จํ„ฐ์ด๋ฏ€๋กœ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ PC ์—†์ด HMD๋งŒ์œผ๋กœ ์›๊ฒฉ์ œ์–ด๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (PICO 4 โ†’ PICO 4 ์ŠคํŠธ๋ฆฌ๋ฐ ์‹œ๋‚˜๋ฆฌ์˜ค). ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ์กฐํ•ฉ์„ ์ง€์›ํ•˜๋Š” ์ด์œ ๋Š”, XRoboToolkit์ด ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ๋กœ ๋ชจ๋“ˆ๋“ค์„ ๋А์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•˜๊ณ  ์žˆ๊ณ , ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ธ ์–ธ์–ด(C++, Python)๋กœ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋…ธํŠธ๋ถ-์™€์ดํŒŒ์ด ํ™˜๊ฒฝ์ด๋“  ๊ณ ์ • ์›Œํฌ์Šคํ…Œ์ด์…˜-์ด๋”๋„ท ํ™˜๊ฒฝ์ด๋“ , ํ˜น์€ ROS๊ฐ€ ๊ตฌ๋™๋˜๋Š” ๋กœ๋ด‡ ์ปดํ“จํ„ฐ๋“ , ์ž๊ธฐ๊ฐ€ ์ฒ˜ํ•œ ์กฐ๊ฑด์— ๋งž์ถฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์—์„œ ์˜ˆ์‹œ๋กœ ๋“  ์ด์ค‘ UR5 ํŒ” + ๋Šฅ๋™ ์Šคํ…Œ๋ ˆ์˜ค ํ—ค๋“œ ๋ฐ๋ชจ์˜ ๊ฒฝ์šฐ Windows PC๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๊ณ , ๋ชจ๋ฐ”์ผ ๋งค๋‹ˆํ“ฐ๋ ˆ์ดํ„ฐ Galaxea R1-Lite์˜ ๊ฒฝ์šฐ Jetson ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ๋™ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ XRoboToolkit์€ HMD/PC ์กฐํ•ฉ์— ์œ ์—ฐ์„ฑ์„ ๋‘์–ด, ์—ฐ๊ตฌ์‹ค ๋ฐ์Šคํฌํƒ‘๋ถ€ํ„ฐ ํ˜„์žฅ ๋กœ๋ด‡์˜ ์˜จ๋ณด๋“œ ์ปดํ“จํ„ฐ๊นŒ์ง€ ์•„์šฐ๋ฅด๋Š” ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์›๊ฒฉ์ œ์–ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‹คํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์˜ ๊ฐ•์ 

XRoboToolkit์˜ ์„ค๊ณ„์—๋Š” ๊ธฐ์กด ๋Œ€๋น„ ๋‹๋ณด์ด๋Š” ์žฅ์ ๋“ค์ด ๋‹ค์ˆ˜ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๊ฐ•์ ์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ํ‘œ์ค€ํ™”์™€ ๋ชจ๋“ˆํ™”: OpenXR ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ์ฑ„ํƒ์œผ๋กœ HMD/์ปจํŠธ๋กค๋Ÿฌ ์ž…๋ ฅ์ด ํ‘œ์ค€ํ™”๋˜์–ด, ์ƒˆ๋กœ์šด XR ๊ธฐ๊ธฐ๋„ ์‰ฝ๊ฒŒ ์ง€์› ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋ด‡ ์ธก๋„ Python/C++ ๋ชจ๋“ˆ๋กœ ์ถ”์ƒํ™”๋˜์–ด ๋‹ค์–‘ํ•œ ๋กœ๋ด‡์„ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜ ๋•๋ถ„์— ์‹œ์Šคํ…œ ํ†ตํ•ฉ ๋ถ€๋‹ด์ด ํฌ๊ฒŒ ๊ฒฝ๊ฐ๋ฉ๋‹ˆ๋‹ค.
  • ์ €์ง€์—ฐ ์„ฑ๋Šฅ: ์ตœ์ ํ™”๋œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ๊ณผ ํšจ์œจ์ ์ธ ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ 100ms ์ˆ˜์ค€์˜ ๋‚ฎ์€ ์˜์ƒ ์ง€์—ฐ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์›๊ฒฉ ์กฐ์ž‘์‹œ ์‚ฌ์šฉ์ž ๋ฉ€๋ฏธ ๊ฐ์†Œ์™€ ๋ฐ˜์‘์„ฑ ํ–ฅ์ƒ์œผ๋กœ ์ด์–ด์ ธ, ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํ’ˆ์งˆ๊ณผ ์กฐ์ž‘ ์„ฑ๊ณต๋ฅ ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค. Open-TeleVision ๋Œ€๋น„ ์šฐ์ˆ˜ํ•œ ์ง€์—ฐ ์„ฑ๋Šฅ์€ ์ด๋ฅผ ์ž˜ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค (121ms โ†’ 82ms ๊ฐ์†Œ).
  • ํ’๋ถ€ํ•œ ์ถ”์  ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ง€์›: ๋‹จ์ˆœํžˆ ์ปจํŠธ๋กค๋Ÿฌ 6-DoF ์ž…๋ ฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†๊ฐ€๋ฝ ๊ด€์ ˆ 26-DoF, ์ „์‹  24-๊ด€์ ˆ ๋ชจ์…˜์บก์ฒ˜, ๋ณด์กฐ ๋ฌผ์ฒด ํŠธ๋ž˜์ปค ๋“ฑ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์„ ๋™์‹œ์— ์ˆ˜์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ •๊ตํ•œ ์กฐ์ž‘(์˜ˆ: ์†๋™์ž‘)๋ถ€ํ„ฐ ํœด๋จธ๋…ธ์ด๋“œ ์ „์ฒด ์ž์„ธ ์ œ์–ด๊นŒ์ง€ ํญ๋„“๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์–ด, ๋ณต์žกํ•œ ์ธ๊ฐ„ ๋™์ž‘ ์‹œ์—ฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฐ ์‹ค์ œ ๋กœ๋ด‡ ๋™์‹œ ์ง€์›: ํ•˜๋‚˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(MuJoCo)๊ณผ ์‹ค์ œ ๋กœ๋ด‡ ๋ชจ๋‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ์‹คํ—˜ํ•˜๊ณ , ๊ณง๋ฐ”๋กœ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ์‹ค์ œ ๋กœ๋ด‡์— ์ ์šฉํ•˜๋Š” ์‹์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜-ํ˜„์‹ค ํ†ตํ•ฉ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ๊ณผ ์žฌํ˜„์„ฑ ํ–ฅ์ƒ์— ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ตœ์ ํ™”: XRoboToolkit Unity ์•ฑ์—๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํŒจ๋„์ด ์žˆ์–ด, ์›๊ฒฉ์กฐ์ž‘ ์ค‘ ๋ชจ์€ ๋ฐ์ดํ„ฐ(ํฌ์ฆˆ ํŠธ๋ž˜ํ‚น ๋กœ๊ทธ + ์Šคํ…Œ๋ ˆ์˜ค ์˜์ƒ)๋ฅผ ์ž๋™์œผ๋กœ ๋กœ์ปฌ ์ €์žฅํ•˜๊ณ  ํƒ€์ž„์Šคํƒฌํ”„๋กœ ์ธ๋ฑ์‹ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ์—ฐ๊ตฌ์ž๊ฐ€ ๋ณ„๋„ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ์—†์ด๋„ ๋ฐ์ดํ„ฐ์…‹์„ ์†์‰ฝ๊ฒŒ ์ถ•์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ˆ˜์ง‘๋œ ์‹œๆผ” ๋ฐ์ดํ„ฐ๋กœ ์‹ค์ œ VLA ๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•œ ๊ฒฐ๊ณผ, 100% ์„ฑ๊ณต๋ฅ ์˜ ์ž์œจ ์ •์ฑ…์„ ํ•™์Šต์‹œํ‚ค๋Š” ๋“ฑ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์˜ ์šฐ์ˆ˜์„ฑ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž ์นœํ™”์„ฑ๊ณผ ์˜คํ”ˆ์†Œ์Šค: XRoboToolkit์€ ๋…ผ๋ฌธ๊ณผ ํ•จ๊ป˜ ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด GitHub์—์„œ SDK์™€ ์ƒ˜ํ”Œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Unity ํด๋ผ์ด์–ธํŠธ, C++ ์„œ๋น„์Šค, Python ์ƒ˜ํ”Œ, ROS2 ํŒจํ‚ค์ง€๊นŒ์ง€ ๋ชจ๋‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜์—ฌ, ๋กœ๋ด‡๊ณตํ•™ ์—ฐ๊ตฌ์ž๋“ค์ด ์ž์‹ ๋“ค์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ˆ˜์ • ๋ฐ ํ™•์žฅํ•˜๊ธฐ์— ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Discord ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ํ™œ๋ฐœํ•œ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด, ์˜คํ”ˆ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„ ๋ฐœ์ „ ๊ฐ€๋Šฅ์„ฑ๋„ ๋†’์Šต๋‹ˆ๋‹ค.

ํ•œ๊ณ„์  ๋ฐ ๊ฐœ์„  ํ•„์š” ์š”์†Œ

์™„๋ฒฝํ•ด ๋ณด์ด๋Š” XRoboToolkit์—๋„ ๋ช‡ ๊ฐ€์ง€ ์ œํ•œ์‚ฌํ•ญ๊ณผ ํ–ฅํ›„ ๋ณด์™„์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค:

  • XR ๋””๋ฐ”์ด์Šค ๊ฐ„ ์™„์ „ํ•œ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ: OpenXR๋กœ ๋งŽ์€ ๋ถ€๋ถ„ ํ‘œ์ค€ํ™”ํ–ˆ์ง€๋งŒ, ์ „์‹  ์ถ”์ ์˜ ๊ฒฝ์šฐ ํ˜„์žฌ PICO 4๊ฐ€ ์ œ๊ณตํ•˜๋Š” 24 ๊ด€์ ˆ ๋ชจ๋ธ์— ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. OpenXR์— ์•„์ง ์ „์‹  ๋ชจ๋ธ ํ‘œ์ค€์ด ์—†์–ด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ธ๋ฐ, ๋งŒ์•ฝ ๋‹ค๋ฅธ HMD ์ œ์กฐ์‚ฌ์˜ ์ „์‹  ์ถ”์  ์ŠคํŽ™์ด ๋‹ค๋ฅด๋ฉด ๊ณง๋ฐ”๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, XR ๋””๋ฐ”์ด์Šค๋งˆ๋‹ค Skeletal ๋ชจ๋ธ์ด ์ƒ์ดํ•œ ์ ์€ ํ˜„ ์‹œ์ ์—์„œ ์ œ์•ฝ์ž…๋‹ˆ๋‹ค.
  • ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡์— ๋Œ€ํ•œ ๊ฒ€์ฆ ๋ถ€์กฑ: ์ „์‹  ํŠธ๋ž˜ํ‚น ๋ฐ์ดํ„ฐ๋ฅผ ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡์— ๋งคํ•‘ํ•˜์—ฌ ์›๊ฒฉ์กฐ์ž‘ํ•œ ์‚ฌ๋ก€๋Š” ์•„์ง ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์˜ ์ „์‹  ๋™์ž‘ โ†’ ๋กœ๋ด‡ ๋ชจ์…˜์œผ๋กœ ๋ฆฌํƒ€๊ฒŒํŒ…ํ•˜๋Š” ๊ฒƒ์€ ์ถ”๊ฐ€์ ์ธ ๋ชจ์…˜ ๋ณ€ํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์•ˆ์ •ํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„์—์•ผ ์ด ๋ถ€๋ถ„์„ ๊ตฌํ˜„ยท๊ฒ€์ฆํ•˜์—ฌ ์‚ฌ๋žŒ ํ˜•ํƒœ ๋กœ๋ด‡์˜ XR ์›๊ฒฉ์กฐ์ž‘๋„ ๊ฐ€๋Šฅํ•ด์งˆ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
  • ์† ๋ฆฌํƒ€๊ฒŒํŒ…์˜ ํ•œ๊ณ„: ํ˜„์žฌ ํ•ธ๋“œ ๋ฆฌํƒ€๊ฒŒํŒ… ๊ธฐ๋ฒ•์€ ๊ฐ ์†๊ฐ€๋ฝ ๊ด€์ ˆ์ด ๋…๋ฆฝ์ ์œผ๋กœ ์›€์ง์ธ๋‹ค๋Š” ์ „์ œ๋ฅผ ๋‘ก๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๋กœ๋ด‡ ์†(์˜ˆ: INSPIRE Hand ๋“ฑ)์€ ๋‹ค์ˆ˜์˜ ๊ด€์ ˆ์ด ๊ธฐ๊ณ„์ ์œผ๋กœ ์—ฐ์‡„ ๊ตฌ๋™๋˜์–ด ์›€์ง์ž„์ด ๋ฌถ์—ฌ์žˆ๋Š” underactuated ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ํ˜„ ๋ฐฉ์‹์€ ์ •ํ™•ํžˆ ๋Œ€์‘์ด ์•ˆ ๋˜๋ฉฐ, ๊ตฌ์† ์กฐ๊ฑด์„ ๊ณ ๋ คํ•œ ๋ฆฌํƒ€๊ฒŒํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ง€์› ๋ฒ”์œ„ ์ œํ•œ: MuJoCo ์ด์™ธ์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ(PyBullet, Gazebo, IsaacGym ๋“ฑ)์€ ์•„์ง XRoboToolkit์— ๊ธฐ๋ณธ ์ง€์›๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—†๋‹ค ๋ณด๋‹ˆ, ๊ฐ๊ฐ ๋ณ„๋„ ์—ฐ๋™ ์ž‘์—…์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ธ Roboverse ๋“ฑ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”ํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, ์ด๋ฅผ ์ˆ˜์šฉํ•˜๋ฉด ๋ฉ€ํ‹ฐ-์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ˜ธํ™˜์„ฑ์ด ํ–ฅ์ƒ๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ธก๋ฉด: PICO 4 Ultra์˜ ๊ฒฝ์šฐ ์˜์ƒ ํ’ˆ์งˆ์ด๋‚˜ ์‹œ์•ผ๊ฐ ์ธก๋ฉด์—์„œ ZED Mini๋ณด๋‹ค ์šฐ์ˆ˜ํ–ˆ๋‹ค๊ณ  ํ•˜์ง€๋งŒ, ์•„์ง VR HMD์˜ ํ•ด์ƒ๋„๋‚˜ ๊ด‘ํ•™ ์„ฑ๋Šฅ ํ•œ๊ณ„๋กœ ์ธํ•ด ์žฅ์‹œ๊ฐ„ ์›๊ฒฉ ์ž‘์—…์‹œ ์‹œ๊ฐ์  ํ”ผ๋กœ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ HMD๋ฅผ ๋จธ๋ฆฌ์— ์“ฐ๋Š” ๋ถ€๋‹ด ๋•Œ๋ฌธ์—, ๋…ผ๋ฌธ์—์„œ ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ—ค๋“œ์…‹์„ ๋ชฉ์— ๊ฑธ๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€ํ˜• ์‚ฌ์šฉ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•˜๋“œ์›จ์–ด์˜ ํ•œ๊ณ„์ด์ง€๋งŒ, ์žฅ์‹œ๊ฐ„ ํ…”๋ ˆ์˜ต์˜ ์ธ์ฒด๊ณตํ•™์  ๋ฌธ์ œ๋„ ์ถ”ํ›„ ํ•ด๊ฒฐํ•ด์•ผ ์™„์„ฑ๋„ ๋†’์€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด ์›๊ฒฉ์ œ์–ด ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ๋น„๊ต

XRoboToolkit์ด ์ œ์‹œํ•˜๋Š” ์ ‘๊ทผ๋ฒ•์„, ์•ž์„œ ์†Œ๊ฐœํ–ˆ๋˜ ๋‹ค๋ฅธ ์›๊ฒฉ์กฐ์ž‘ ํŒจ๋Ÿฌ๋‹ค์ž„๋“ค๊ณผ ๋น„๊ตํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ํ•˜๋“œ์›จ์–ด ๋ฆฌ๋”-ํŒ”๋กœ์›Œ ๋ฐฉ์‹ vs. XRoboToolkit: ๋ฆฌ๋”-ํŒ”๋กœ์›Œ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋งˆ์Šคํ„ฐ ๋กœ๋ด‡ ํŒ”์„ ์ธ๊ฐ„์ด ์กฐ์ž‘ํ•˜๋ฉด, ์›๊ฒฉ ์Šฌ๋ ˆ์ด๋ธŒ ๋กœ๋ด‡ ํŒ”์ด ๋˜‘๊ฐ™์ด ๋”ฐ๋ผํ•˜๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์ง€์—ฐ์ด ๊ฑฐ์˜ ์—†๊ณ  ๊ฐ๊ฐ ํ”ผ๋“œ๋ฐฑ(ํ–…ํ‹ฑ ๋“ฑ)์„ ์ฃผ๊ธฐ๋„ ์šฉ์ดํ•˜์ง€๋งŒ, ๋กœ๋ด‡ ์ข…๋ฅ˜๋ณ„๋กœ ๋งž์ถค ์„ค๊ณ„๋œ ๋งˆ์Šคํ„ฐ ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด XRoboToolkit์€ ์ƒ์šฉ HMD์™€ ์ปจํŠธ๋กค๋Ÿฌ๋งŒ์œผ๋กœ ๋ฒ”์šฉ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๋กœ๋ด‡์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ HMD ์„ธํŠธ๋กœ ์—ฌ๋Ÿฌ ๋กœ๋ด‡์„ ์กฐ์ข…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์šฉ ์ธก๋ฉด์—์„œ๋„ ์ „๋ฌธ ํ•˜๋“œ์›จ์–ด ์—†์ด ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ฌผ๋ฆฌ์  1:1 ๋Œ€์‘ ์žฅ์น˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ด‰๊ฐ ํ”ผ๋“œ๋ฐฑ ๋ถ€์žฌ๋Š” ํ•œ๊ณ„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆœ์ˆ˜ ์นด๋ฉ”๋ผ+์กฐ์ด์Šคํ‹ฑ ํ…”๋ ˆ์˜ต vs. XRoboToolkit: ๊ธฐ์กด์— ํ”ํžˆ ์“ฐ์ด๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋กœ๋ด‡์— ๋ถ€์ฐฉ๋œ ์นด๋ฉ”๋ผ ์˜์ƒ(2D)์„ ๋ชจ๋‹ˆํ„ฐ๋กœ ๋ณด๋ฉด์„œ ํ‚ค๋ณด๋“œ/์กฐ์ด์Šคํ‹ฑ์œผ๋กœ ์›๊ฒฉ ์กฐ์ข…ํ•˜๋Š” ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์ˆ  ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ๋„ ์ ๊ฒŒ ์“ฐ์ง€๋งŒ, ๊นŠ์ด ์ •๋ณด ๋ถ€์กฑ๊ณผ ๋‚ฎ์€ ๋ชฐ์ž…๊ฐ์œผ๋กœ ์ •๋ฐ€ ์ž‘์—…์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. XRoboToolkit์˜ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „๊ณผ VR ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ํ•ด์†Œํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์น˜ ํ˜„์žฅ์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ž…์ฒด๊ฐ ์žˆ๊ฒŒ ์ƒํ™ฉ์„ ์ธ์ง€ํ•˜๊ณ  ์†์œผ๋กœ ์ง์ ‘ ๋ฌผ์ฒด๋ฅผ ๋งŒ์ง€๋Š” ๋“ฏํ•œ ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณต์žกํ•œ ์‚ฝ์ž… ์ž‘์—…์ด๋‚˜ ๋ฏธ์„ธ ์กฐ์ž‘์—์„œ ์„ฑ๊ณต๋ฅ ๊ณผ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Œ์„ ์‹คํ—˜์œผ๋กœ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค (์ง€๋ฆ„ 3mm ๋“œ๋ผ์ด๋ฒ„๋ฅผ 4mm ํ™€์— ๋ผ์šฐ๋Š” ์ž‘์—…์„ 0.5mm ์—ฌ์œ ๋กœ ์ˆ˜ํ–‰ ์„ฑ๊ณต).
  • ๊ธฐ์กด XR ๊ธฐ๋ฐ˜ ์›๊ฒฉ์ œ์–ด ์†”๋ฃจ์…˜ vs. XRoboToolkit: ์—ฐ๊ตฌ๊ณ„์™€ ์‚ฐ์—…๊ณ„์—์„œ๋„ VR์„ ํ™œ์šฉํ•œ ์›๊ฒฉ์ œ์–ด ์—ฐ๊ตฌ๋“ค์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์ˆ˜๋Š” Unity์šฉ ๊ฐœ๋ณ„ HMD SDK(์˜ˆ: Oculus Integration)๋‚˜ WebXR์„ ์ด์šฉํ•ด ๊ตฌํ˜„๋˜์–ด ๋””๋ฐ”์ด์Šค ์ข…์†์ ์ด๊ณ  ์„ธ๋ถ€ ํŠœ๋‹์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. Open-TeleVision ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ๋Šฅ๋™ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „์„ VR๋กœ ์ œ๊ณตํ•˜๋Š” ์ฒด๊ณ„๋ฅผ ์ œ์•ˆํ–ˆ์ง€๋งŒ, XRoboToolkit๊ณผ ๋น„๊ตํ•ด ๊ตฌํ˜„์˜ ๋ณต์žก์„ฑ์ด๋‚˜ ์ง€์—ฐ ๋ฉด์—์„œ ์•„์ง ๋ถ€์กฑํ–ˆ๋˜ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. XRoboToolkit์€ ์ด๋“ค๋กœ๋ถ€ํ„ฐ ๊ตํ›ˆ์„ ์–ป์–ด, OpenXR+๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์ด๋ผ๋Š” ์„ ํƒ๊ณผ ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ํ˜ธํ™˜์„ฑ๊ณผ ์„ฑ๋Šฅ ๋‘ ๋งˆ๋ฆฌ ํ† ๋ผ๋ฅผ ์žก์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์•ž์„  ํ”„๋กœ์ ํŠธ๋“ค์ด ๋กœ๋ด‡ ํŠน์ • ์‹œ๋‚˜๋ฆฌ์˜ค(์˜ˆ: ํŠน์ • ๊ณต์ •) ์œ„์ฃผ์˜€๋‹ค๋ฉด, XRoboToolkit์€ ๋ฒ”์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ ๋‹ค์–‘ํ•œ ์ ์šฉ ์˜ˆ์‹œ(๋“€์–ผ ์•”, ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡, ์† ์กฐ์ž‘ ๋“ฑ)๋ฅผ ๋ณด์—ฌ์ฃผ์–ด ๋ฒ”์šฉ์„ฑ์„ ์ž…์ฆํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ƒ์šฉ ์›๊ฒฉ์šด์šฉ ์ œํ’ˆ vs. XRoboToolkit: ํ˜น์‹œ ํ…Œ์Šฌ๋ผ์˜ Optimus ์กฐ์ข…์ด๋‚˜ ๊ธฐํƒ€ ์‚ฐ์—…์šฉ ์†”๋ฃจ์…˜๊ณผ ๋น„๊ตํ•ด๋ณด๋ฉด, XRoboToolkit์€ ์˜คํ”ˆ์†Œ์Šค์ด๊ณ  ํ•™์ˆ  ๊ฒ€์ฆ์ด ๋˜์—ˆ๋‹ค๋Š” ์ ์—์„œ ์ฐจ๋ณ„ํ™”๋ฉ๋‹ˆ๋‹ค. ์ƒ์šฉ ์ œํ’ˆ์€ ํ์‡„์ ์ด์–ด์„œ ์—ฐ๊ตฌ ํ™œ์šฉ์— ์ œ์•ฝ์ด ์žˆ์ง€๋งŒ, XRoboToolkit์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„ ๊ฐœ๋ฐœ๋กœ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ›์•„๋“ค์ด๊ณ , ์—ฐ๊ตฌ์ž๋“ค์ด ์ง์ ‘ ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ ๊ฐœ์„ ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ•™์ˆ -์‚ฐ์—… ํ˜‘๋ ฅ์ด๋‚˜ ํ”„๋กœํ† ํƒ€์ดํ•‘ ๊ด€์ ์—์„œ ํฐ ์ด์ ์ž…๋‹ˆ๋‹ค.

๋กœ๋ด‡๊ณตํ•™์ž ๊ด€์ ์˜ ํ™œ์šฉ ๊ฐ€๋Šฅ์„ฑ, ํ™•์žฅ์„ฑ, ์—ฐ๊ตฌ ๊ธฐํšŒ

XRoboToolkit์€ ๋กœ๋ด‡๊ณตํ•™ ์—ฐ๊ตฌ์ž์™€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋งค๋ ฅ์ ์ธ ๋„๊ตฌ๋กœ ๋‹ค๊ฐ€์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ํ™œ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ์„ ์งš์–ด๋ณด๋ฉด:

  • ๋Œ€๊ทœ๋ชจ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ํ•™์Šต: ์ธ๊ฐ„์ด VR๋กœ ํŽธํ•˜๊ฒŒ ๋กœ๋ด‡์„ ์กฐ์ž‘ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ธฐ์กด๋ณด๋‹ค ๋ฐฉ๋Œ€ํ•œ ์‹œ์—ฐ ๋ฐ์ดํ„ฐ์…‹์„ ํ™•๋ณดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด HMD๋งŒ ์“ฐ๋ฉด ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํฌ๋ผ์šฐ๋“œ์†Œ์‹ฑ ์›๊ฒฉ์กฐ์ž‘๋„ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ชจ์€ ๋ฐ์ดํ„ฐ๋กœ ๋กœ๋ด‡ ํ•™์Šต(ๆจกๅ€ฃๅญฆ็ฟ’)์„ ์ง„ํ–‰ํ•˜๋ฉด, ์—ฐ๊ตฌํŒ€์ด ๋…ผ๋ฌธ์—์„œ VLA ๋ชจ๋ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์ธ ๊ฒƒ์ฒ˜๋Ÿผ, ๋ณด๋‹ค ๊ฐ•๊ฑดํ•œ ์ •์ฑ…์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณง ๋กœ๋ด‡์˜ ์ž์œจ์„ฑ ํ–ฅ์ƒ๊ณผ ์ผ๋ฐ˜ํ™” ๋Šฅ๋ ฅ ์ œ๊ณ ๋กœ ์ด์–ด์ ธ, ๋กœ๋ด‡ ํ•™์Šต ์—ฐ๊ตฌ์˜ ๊ฐ€์†์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ํœด๋จธ๋…ธ์ด๋“œ ์กฐ์ž‘ ์—ฐ๊ตฌ: XRoboToolkit์˜ ์ „์‹  ์ถ”์ ๊ณผ VR ์ธํ„ฐํŽ˜์ด์Šค๋Š”, ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡ ์›๊ฒฉ์กฐ์ž‘ ์—ฐ๊ตฌ์— ์ƒˆ๋กœ์šด ๊ธธ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ธ๊ฐ„์ด HMD์™€ ๋ชจ์…˜์ŠˆํŠธ(๋˜๋Š” ๋ช‡ ๊ฐœ์˜ ํŠธ๋ž˜์ปค)๋งŒ์œผ๋กœ ํœด๋จธ๋…ธ์ด๋“œ ๋กœ๋ด‡์„ ์›๊ฒฉ์œผ๋กœ ์กฐ์ž‘ํ•˜๋ฉฐ, ๋™์‹œ์— ๋กœ๋ด‡์˜ ์‹œ์  ์˜์ƒ์„ VR๋กœ ๋ณด๋ฉด์„œ ์›๊ฒฉ ์ž„๋ฌด ์ˆ˜ํ–‰์„ ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํœด๋จธ๋…ธ์ด๋“œ์˜ ์žฌ๋‚œ ๋Œ€์‘, ์šฐ์ฃผ ์›๊ฒฉ ์ž‘์—… ๋“ฑ์˜ ์—ฐ๊ตฌ์—์„œ ์‚ฌ๋žŒ์˜ ๋ชจ์…˜์„ ์–ผ๋งˆ๋‚˜ ๋กœ๋ด‡์— ์ž˜ ํˆฌ์˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ์‚ฌ๋žŒ-๋กœ๋ด‡ ๊ณต๋™์ž‘์—…์€ ์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ์ง€ ๋“ฑ์˜ ์ƒˆ๋กœ์šด ์‹คํ—˜์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ถ๊ทน์ ์œผ๋กœ๋Š” ์ „์‹  ํ…”๋ ˆํ”„๋ ˆ์ฆŒ์Šค ๋กœ๋ด‡ ๊ฐœ๋ฐœ์—๋„ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (ํ–ฅํ›„ ์ „์‹  ๋ฆฌํƒ€๊ฒŒํŒ… ๊ธฐ์ˆ ์ด ์ถ”๊ฐ€๋˜๋ฉด).
  • ํ˜‘๋™ ๋ฐ ๋‹ค์ค‘ ๋กœ๋ด‡ ํ…”๋ ˆ์˜ต: ํ•˜๋‚˜์˜ XR ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์—ฌ๋Ÿฌ ๋กœ๋ด‡์„ ๋™์‹œ์— ์ œ์–ดํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ๋กœ๋ด‡์„ ๊ณต๋™ ์ œ์–ดํ•˜๋Š” ํ˜‘๋™ ํ…”๋ ˆ์˜ต ์—ฐ๊ตฌ๋„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XRoboToolkit์€ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ์ด๋ฏ€๋กœ, ์ด๋ก ์ ์œผ๋กœ ํ•œ ๋กœ๋ด‡์— ์—ฌ๋Ÿฌ HMD ์‚ฌ์šฉ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๋กœ๋ด‡์— ๋ช…๋ น ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ ํ•œ ์‚ฌ๋žŒ์€ ๋ชจ๋ฐ”์ผ ๋กœ๋ด‡์„ ์šด์ „ํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ ๋กœ๋ด‡ ํŒ”์„ ์กฐ์ž‘ํ•˜๋ฉฐ, VR ์ƒ์—์„œ๋Š” ๊ฐ™์€ ๊ฐ€์ƒ ๊ณต๊ฐ„์—์„œ ํ˜‘์—…ํ•˜๋Š” ์‹์˜ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์›๊ฒฉ ์ž‘์—…๋„ ๋ฏธ๋ž˜์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ธ๊ฐ„-๋กœ๋ด‡ ์ƒํ˜ธ์ž‘์šฉ(HRI) ์‹คํ—˜ ํ”Œ๋žซํผ: ์‚ฌ๋žŒ์˜ ์›€์ง์ž„๊ณผ ์˜๋„๊ฐ€ VR์„ ํ†ตํ•ด ๋กœ๋ด‡์— ์ „๋‹ฌ๋˜๊ณ , ๋กœ๋ด‡์˜ ๋ฐ˜์‘์€ ๋‹ค์‹œ VR๋กœ ํ”ผ๋“œ๋ฐฑ๋˜๋Š” ํ๋ฃจํ”„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” HRI ์—ฐ๊ตฌ์—๋„ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์˜ ์กฐ์ž‘ ํŒจํ„ด, ํ”ผ๋กœ๋„, ๋ชฐ์ž…๊ฐ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ํ…”๋ ˆํ”„๋ ˆ์ฆŒ์Šค UX๋ฅผ ๊ณ„๋Ÿ‰ํ™”ํ•˜๊ฑฐ๋‚˜, ์ž์œจ๋กœ๋ด‡ ๊ฐœ์ž… ํƒ€์ด๋ฐ ์—ฐ๊ตฌ (shared autonomy) ๋“ฑ์— ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ByteDance ์—ฐ๊ตฌ์ง„์€ XRoboToolkit์„ ํ™œ์šฉํ•œ ์ž์œจ๋ณด์กฐ ํ…”๋ ˆ์˜ต ์—ฐ๊ตฌ๋„ ์ง„ํ–‰ํ•˜์—ฌ, VR ์กฐ์ž‘ ์ค‘ ํŠน์ • ์„ฌ์„ธํ•œ ์†๋™์ž‘์€ AI๊ฐ€ ๋Œ€์‹  ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์‹คํ—˜์„ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค (๋…ผ๋ฌธ Gallery์—์„œ End-to-End Dexterous Arm-Hand VLA Policies ์‚ฌ๋ก€).
  • ๊ต์œก ๋ฐ ๊ธฐ์ˆ  ํ™•์‚ฐ: ๋กœ๋ด‡๊ณตํ•™์„ ๋ฐฐ์šฐ๋Š” ํ•™์ƒ๋“ค์ด XRoboToolkit์„ ํ†ตํ•ด, ๊ฐ’๋น„์‹ผ ๋กœ๋ด‡ ํ•˜๋“œ์›จ์–ด ์—†์ด๋„ VR๋กœ ๊ฐ€์ƒ์˜ ๋กœ๋ด‡์„ ์ง์ ‘ ์กฐ์ข…ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋กœ๋ด‡ ์ œ์–ด ๊ต์œก์ด๋‚˜ ํ…”๋ ˆ๋กœ๋ณดํ‹ฑ์Šค ๊ฒฝ์ง„๋Œ€ํšŒ ๋“ฑ์— ํ™œ์šฉํ•˜์—ฌ ๊ธฐ์ˆ  ํ™•์‚ฐ์„ ์ด‰์ง„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค์ด๋ฏ€๋กœ ํ•™๊ต๋‚˜ ๊ธฐ๊ด€์—์„œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ธฐ๋„ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, XRoboToolkit์€ ๋ฒ”์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๊ฐ–์ถ˜ ํ…”๋ ˆ๋กœ๋ณดํ‹ฑ์Šค ํ”Œ๋žซํผ์œผ๋กœ์„œ, ์—ฐ๊ตฌ์ž์—๊ฒŒ๋Š” ์ƒˆ๋กœ์šด ์‹คํ—˜ ๊ธฐํšŒ๋ฅผ, ์—”์ง€๋‹ˆ์–ด์—๊ฒŒ๋Š” ์‹ค์šฉ์  ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ์ž ์žฌ๋ ฅ์ด ํฝ๋‹ˆ๋‹ค.

์ •๋ฆฌ ๋ฐ ํ–ฅํ›„ ๋ฐœ์ „ ๋ฐฉํ–ฅ

XRoboToolkit์€ ํฌ๋กœ์Šคํ”Œ๋žซํผ XR ์›๊ฒฉ์กฐ์ž‘ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ ํ˜„ ์‹œ์ ์˜ ๋ฌธ์ œ๋“ค์„ ์ƒ๋‹น ๋ถ€๋ถ„ ํ•ด๊ฒฐํ•œ ํ˜์‹ ์ ์ธ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. OpenXR ํ‘œ์ค€์— ๊ธฐ๋ฐ˜ํ•œ ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค, ์‚ฌ๋žŒ์˜ ๋‹ค์–‘ํ•œ ์›€์ง์ž„์„ ๋ฐ›์•„๋“ค์ด๋Š” ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ง€์›, ๊ณ ์„ฑ๋Šฅ์˜ ์ €์ง€์—ฐ ์ŠคํŠธ๋ฆฌ๋ฐ, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋’ท๋ฐ›์นจํ•˜๋Š” ๋ชจ๋“ˆํ˜• ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด, ์ ‘๊ทผ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ์ €์ž๋“ค์ด ๋‹ค์–‘ํ•œ ์‹คํ—˜์„ ํ†ตํ•ด ์ž…์ฆํ–ˆ๋“ฏ์ด, ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋Š” ๋กœ๋ด‡ ํ•™์Šต์— ๋ฐ”๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ํ’ˆ์งˆ๊ณผ ๋‹ค์–‘์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ ๋กœ๋ด‡์— ๋ฒ”์šฉ์ ์œผ๋กœ ์ ์šฉ๋จ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์•„์ง ๋‚จ์€ ๊ณผ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€์˜ ๋ถ€์žฌ๋กœ ์ธํ•œ ์ „์‹  ์ถ”์  ๋ฐ์ดํ„ฐ ํ˜ธํ™˜ ๋ฌธ์ œ, ๊ธฐ๊ณ„์  ์ œ์•ฝ์„ ๊ณ ๋ คํ•œ ์†๋™์ž‘ ๋งคํ•‘ ๊ธฐ์ˆ , ์—ฌ๋Ÿฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ง€์› ๋“ฑ์ด ๊ทธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์ €์ž๋“ค์€ ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์ธ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, OpenXR ํ‘œ์ค€ํ™” ์ž‘์—… ์ฐธ์—ฌ๋ฅผ ํ†ตํ•ด XR ๋””๋ฐ”์ด์Šค ๊ฐ„ ํ˜ธํ™˜์„ฑ ๊ฐ•ํ™”๋ฅผ ์ถ”์ง„ํ•˜๊ณ , ์† ๋ฐ ์ „์‹  ๋ฆฌํƒ€๊ฒŒํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์„ , Roboverse ๊ฐ™์€ ๋ฉ€ํ‹ฐ-์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ง€์› ๋“ฑ์„ ํ–ฅํ›„ ์—ฐ๊ตฌ ๋ฐฉํ–ฅ์œผ๋กœ ์ œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ SII 2026 ํ•™ํšŒ์— ์ฑ„ํƒ๋œ ๊ฒƒ์„ ๊ณ„๊ธฐ๋กœ, ํ•™๊ณ„์™€ ์‚ฐ์—…๊ณ„์˜ ํญ๋„“์€ ํ”ผ๋“œ๋ฐฑ๊ณผ ๊ธฐ์—ฌ๋ฅผ ๋ฐ›์•„ ๊พธ์ค€ํžˆ ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, XRoboToolkit์€ ๋กœ๋ด‡๊ณตํ•™์ž๋“ค์—๊ฒŒ ๊ฐ•๋ ฅํ•œ XR ์ธํ„ฐํŽ˜์ด์Šค ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ์›๊ฒฉ ๋กœ๋ด‡ ์กฐ์ž‘๊ณผ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์˜ ํŒ๋„๋ฅผ ๋ฐ”๊พธ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ์‚ฌ๋žŒ์˜ ๋Šฅ์ˆ™ํ•œ ์กฐ์ž‘ ๋Šฅ๋ ฅ์„ ๊ฑฐ๋ฆฌ์™€ ํ”Œ๋žซํผ์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด ๋กœ๋ด‡์—๊ฒŒ ์ด์‹ํ•จ์œผ๋กœ์จ, ํ–ฅํ›„ ๋ณด๋‹ค ๋˜‘๋˜‘ํ•œ ๋กœ๋ด‡๊ณผ ํšจ์œจ์ ์ธ ์ธ๊ฐ„-๋กœ๋ด‡ ํ˜‘์—…์„ ์‹คํ˜„ํ•˜๋Š” ๋ฐ‘๊ฑฐ๋ฆ„์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์ง€์†์ ์ธ ๊ฐœ์„ ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•์žฅ์„ ํ†ตํ•ด, XR-๋กœ๋ณดํ‹ฑ์Šค ์œตํ•ฉ ์—ฐ๊ตฌ์˜ ํ™œ์„ฑํ™”์™€ ์›๊ฒฉ ๋กœ๋ด‡์ œ์–ด ๊ธฐ์ˆ ์˜ ์„ฑ์ˆ™์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•˜๊ธธ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

Copyright 2026, JungYeon Lee