Haply - gkgkgk1215/else GitHub Wiki

Reference

Overview

  • Haply์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Œ: SDK Service, HardwareAPI

  • SDK Service๋Š” background์—์„œ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์Œ. ์›น์†Œ์ผ“์„ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ˜•ํƒœ

  • HaplyHardwareAPI๋Š” Python ๋ชจ๋“ˆ๋กœ์จ, ์ง์ ‘์ ์œผ๋กœ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ ํฌํŠธ์— ์ ‘๊ทผํ•˜์—ฌ ์ •๋ณด๋ฅผ ์†ก์ˆ˜์‹ 

  • Hub๋Š” ๋””๋ฐ”์ด์Šค์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋Š” GUI tool์ด๋ฉฐ, Service๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ. Calibration์— ํ•„์š”ํ•จ.

  • Service์™€ HardwareAPI๋Š” ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ. ์‹œ๋ฆฌ์–ผ ํฌํŠธ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•จ.

  • Service๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์„ ์ ์œ ํ•˜๊ณ  ์žˆ์–ด์„œ, ๋‹ค๋ฅธ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•˜๋Š” Geomagic Touch Device๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ.

udev rules

  • Add a udev rule to create a symlink for the device
sudo gedit /etc/udev/rules.d/99-inverse.rules
# /etc/udev/rules.d/99-inverse.rules

# Inverse3 (Left)
SUBSYSTEM=="tty", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0483", ATTRS{serial}=="18091350", MODE:="0666", SYMLINK+="Inverse_L"

# Inverse3 (Right)
SUBSYSTEM=="tty", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0483", ATTRS{serial}=="18091430", MODE:="0666", SYMLINK+="Inverse_R"

# VerseGrip Stylus (Left)
SUBSYSTEM=="tty", ATTRS{idVendor}=="2fe3", ATTRS{idProduct}=="0100", ATTRS{serial}=="861E8EE5F9FB9832", MODE:="0666", GROUP="plugdev", SYMLINK+="Versegrip_L"

# VerseGrip Stylus (Right)
SUBSYSTEM=="tty", ATTRS{idVendor}=="2fe3", ATTRS{idProduct}=="0100", ATTRS{serial}=="B8E4ACC522B3A02F", MODE:="0666", GROUP="plugdev", SYMLINK+="Versegrip_R"
  • Reload udev rules and apply the changes
sudo udevadm control --reload-rules
sudo udevadm trigger

Haply Python Module

pip install HaplyHardwareAPI

Haply SDK Service

sudo dpkg -i haply-inverse-service-ubuntu2404-amd64-3.4.17.deb
  • Start Service
# start
systemctl start haply-inverse-service.service

# stop
systemctl stop haply-inverse-service.service

# enable
systemctl enable haply-inverse-service.service

# disable
systemctl disable haply-inverse-service.service

Channel

Haply ์ธ๋ฒ„์Šค ์„œ๋น„์Šค์—๋Š” ๋‘ ๊ฐœ์˜ ๋™์  ํ†ต์‹  ์ฑ„๋„์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ๋””๋ฐ”์ด์Šค์˜ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ๋ฐ ๋™์ž‘์„ ์œ„ํ•œ ์ฑ„๋„์ด๊ณ ( ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ฑ„๋„ ์ฐธ์กฐ)์™€ ์ฃผ์š” ์ด๋ฒคํŠธ ๋ฐ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•œ ๋‹จ๋ฐฉํ–ฅ ์ฑ„๋„( ์ด๋ฒคํŠธ ์ฑ„๋„ ์ฐธ์กฐ).

Haply Hub (Optional)

Right click -- Option -- Execute as a program

Double click to execute

Coordinate

Haply ์˜ค๋ฅธ์† ์ขŒํ‘œ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ X๋Š” ์˜ค๋ฅธ์ชฝ์„, Y๋Š” ์•ž์ชฝ์„, Z๋Š” ์œ„์ชฝ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ขŒํ‘œ๊ณ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ(์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”), ํ•ด๋‹น ์ขŒํ‘œ๊ณ„์—์„œ๋Š” ์„œ๋น„์Šค๋Š” ํ•ด๋‹น ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ƒˆ ์ขŒํ‘œ๊ณ„๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ชจ๋“  ์ถœ๋ ฅ์ด ์ƒˆ ์ขŒํ‘œ๊ณ„์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค, ๋ชจ๋“  ์ž…๋ ฅ๋„ ๊ทธ ์ขŒํ‘œ๊ณ„์—์„œ ์ด๋ฃจ์–ด์งˆ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์˜ค๋ฅธ์ชฝ์˜ Z-Up ์‹œ์Šคํ…œ๊ณผ์˜ ๋ณ€ํ™˜์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘

  1. ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘

  2. Calibration ์ˆ˜ํ–‰ (grip์ด ์—†๋Š” ์ƒํƒœ์—์„œ calibration์„ ํ•˜๋ฉด ๋” ์ •ํ™•ํ•จ)

  3. ์„œ๋น„์Šค stop

  4. GTD(๋˜๋Š” ๋‹ค๋ฅธ ํ–…ํ‹ฑ ์žฅ์น˜) USB ์—ฐ๊ฒฐ ๋ฐ ์„ธํŒ…

  5. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ (detect_inverse3s์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ฒƒ. ํฌํŠธ ๊ฐ„์„ญ/์ถฉ๋Œ ์œ ์˜)

Trouble Shooting

  • ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋žจ์—์„œ reading position์—์„œ ํฌํŠธ๊ฐ€ ์—ด๋ ธ๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋‹ซํžˆ๋ฉด์„œ ๋ช…๋ น์ด ์•ˆ๋จนํžˆ๋Š” ๋ฌธ์ œ. Service๋ฅผ ์ข…๋ฃŒ ํ›„ HardwareAPI๋ฅผ ์‹คํ–‰์‹œ์ผœ์•ผ ํ•จ.
dmesg -w
  • Service ์‚ฌ์šฉ์‹œ Geomagic Touch ๋ถˆ๋Šฅ. HardwareAPI ์‹œ์ž‘์‹œ์— ํฌํŠธ ์ž๋™ํƒ์ƒ‰ ๊ธˆ์ง€ (์ถฉ๋Œ ๋ฐœ์ƒ)