아무튼 저기에는 Nao Robot이 나오고 있는데.. Nao Robot을 내가 처음으로 알게된건.. 2012년 여수 엑스포였다. 그 때 당시에는 시간 때문에 로봇관이 종료되던 것을.. 다른 사람들이 따지거나 우리 아빠도 따져서 겨우 들어갔던건데.. 그러다 보니.. 그 때는 Nao Robot을 보여주지는 않았다. 가만히 앉아있는건 보였던 것 같은데.. 뭐 그래도 이후에 다시 여수 엑스포를 찾아보면서 알게 되긴 했는데.. 개인적으로 내가 제일 좋아하는 로봇 중에 하나이다. 프랑스의 알데바란에서 제작하고 현재는 일본 소프트 뱅크로 인수 되면서.. 아직까지도 판매하고 있는 Nao Robot.. 2000만원이지만.. 언젠가는 사보고 싶다.
그런데 한가지 별로였던 건.. 도데체 왜 저 책에는 Darwin OP가 안나왔던 것인가이다.. 현재 내가 제일 좋아하는 로봇인데..!!
뭐 다른 나라 로봇이라서 안나온 것도 있겠지만.. Darwin OP도 우승을 많이 한걸로 알고 있는데.. 그런 귀여운 로봇이 안나왔다는게.. 조금 아쉽긴 하다.. 내가 Darwin OP를 처음에 본 것도 여수 엑스포인데.. 거기에서 축구를 하던 것이.. 아직도 기억에 남는다.. 내가 분명 7살일텐데.. 어떻게 그걸 기억하고 있는거지..
그리고 내가 어릴 때 로봇을 판매하던 사이트에.. Darwin OP 2가 2000만원에 판매하던걸 본적이 있다.
그 때는 돈에 감각이 없어서 어른 되면 사야지 했는데.. 지금은 단종되기도 했고.. 그 돈이 얼마나 큰 돈인지도 알게 되었다..
아무튼 Darwin OP 로봇을 계기로 데니스 홍에 대해서도 알게 되고.. 얼마 전에는 안될과학 영상에서 Darwin OP가 오픈소스라는 것도 알게 되었는데.. 이것 때문에 무조건 군대를 가기전이든 가고난 후든 만들고 싶다고 생각했다.
그래서 예전에 구상한게.. Darwin OP 2에 들어가는 모터는.. MX 28T로 개당 26만원 하던데.. 이거를 우리 집에 있는 AX 12A 모터로 바꿔서 제작하면 되지 않을까 라는 생각을 했었다. 다만 문제가 몇가지 있어서.. 현재는 미루고 있는데..
첫번째는 내가 Fusion 360 같은 CAD를 못 만진다는 것과.. 두번째는 Darwin OP 2의 메인보드나 관련 부품들은 더 이상 판매하지 않는 다는 점이다.. 물론 대체 부품은 있지만.. 이런 점 때문에.. 제작은 더욱 어려워질 것이라고 생각했다.
그래서 데니스 홍 페이스북을 살펴보다가 Robex에 데니스 홍의 RoMeLa 연구소 로봇들이 온다고 해서.. 경기도 일산에서 바로 부모님과 2024년 10월 26일에 운전해서 간적이 있었는데.. 시간이 거의 끝나기 전이라서 로봇은 많이 없었지만.. 내가 그 토록 보고 싶던 Darwin OP 2가 전시되어 있었다..!! (그 전에 실제로 봤던 로봇은 Darwin OP.. 밖에.. 없던..)
아무튼 사실 데니스 홍과도 실제로 얘기하면서 메인보드는 어떻게 하면 구할 수 있을까요? 라는 것과 AX 12A로 만들어보고 싶은데 몇가지 문제가 있을까요? 라는 질문 등을 하고 싶었는데.. 내가 사람들과 얘기를 잘 못한다는 것을 잊고 있었다.. 끝날 때 되더니 사람들은 다 가고 정리하고 있었는데.. 그 때 솔직히 가서.. 물어보고 싶었는데.. 결국 못 물어보고 나왔다.. 언제 다시 볼 수 있을지도 모르는데.. 지금 생각하면.. 왜 그냥 나왔을까.. 라는 생각만 든다..
내가 어릴 때 부터 사람들을 도와줄 수 있는 로봇을 제작하자 라는 마음을 먹고 지금까지 유지하고 있는데 그런 로봇을 만들기 위해선 RoMeLa 연구소를 가는 것을 1순위 목표로 하고 싶은데.. 결국 내 성적이나.. 관련된 문제로.. 포기를 해야하나..라는 생각 밖에 들지 않기는 하다..
아무튼.. 지금 생각하면 왜 말을 걸지 않고.. 그냥 나왔는지.. 후회만 된다..
뭐.. 그래도 언젠가는.. Darwin OP 2를 만들고 싶기에 어떤 구조인지 파악하기 위해서 사진도 찍긴 했었다..!
MX 28T와 AX 12A의 모터 사이즈가 달르고 힘이나 성능이 달라서 솔직히 만들 수 있을지는 모르겠지만.. 최대한 빠른 시일 내로 CAD 쓰는 방법을 독학해서 라도 AX 12A를 MX 28T 크기와 동일하기 쓸 수 있는 케이스를 만들어서 3D Printer으로 저렴하게 제작해보고 싶다..!!
아무튼 첫번째 사진에 대해서 너무.. 많이 쓴 것 같지만.. 암튼..
두번째 사진은 로봇 디자인에 관련된 얘기인데.. 로봇을 만들기 위해서는 어떤 디자인이 필요한지에 대한 인터뷰이다.
로봇을 디자인할 때는 단순히 멋진 디자인이 아닌 기능성과 균형이 중요하다는 얘기와 애니메이션 로봇과 현실 로봇의 차이에 대해서 말하고 있다. 또한 메카닉 디자인에선 로봇의 관절과 동작이 자연스럽게 보이도록 제작해야한다고 하는데.. 지금 봐서 알았지만.. 내가 좋아하는 로봇의 디자인 이름이 메카닉 디자인인걸.. 처음 알았다..
Sony의 Aibo는 뭔가 진짜 같은 느낌이 들도록 디자인 한 것 같은데.. 내가 좋아하는 로봇을 생각해보면.. 다윈 OP 로봇, 나오 로봇, 메로 로봇, 제니보 로봇 등 전부 메카닉 디자인인 것 같다..
아무튼 난 단순하게 생기거나 제니보나 Darwin OP 같은 로봇들이 귀엽고 신기해서 역시 좋은 것 같다..
아무튼 이번 책 내용도 이전에 올린 14권과 방향만 다를 뿐 거의 같은 내용이다. 그렇기 때문에.. 제작하는 것에 대한건 패스!
이렇게 조립하여.. 왼쪽 팔과 오른쪽 팔 모두 완성했다!!
그리고 임시로 겹쳐보았는데..!
팔만 봐도 신기하고 뭔가 귀엽다!!
암튼 22권 조립은 끝!!
참고로.. 지금까지 쌓은 박스가..
이정도다..
암튼 로봇 만들고 싶고.. RoMeLa 연구소..에 가서 데니스 홍과 로봇에 대해서 얘기를 해보고 싶다..
잘만 되던 VCPKG가 갑자기 OpenCV, VTK 등등을 빌드 할려니 pkgconf를 빌드하는 과정에서 에러가 났다.
결국 하루 동안 계속 문제점을 찾다가 해결 방법을 찾았다..
일단 나는 이런 오류가 떴다. 참고로 vcpkg install pkgconf:x64-windows 해서 나온 에러다.
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
Command failed: "C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" install -v
Working Directory: C:/dev/vcpkg/buildtrees/pkgconf/x64-windows-dbg
Error code: 1
See logs for more information:
C:\dev\vcpkg\buildtrees\pkgconf\package-x64-windows-dbg-out.log
C:\dev\vcpkg\buildtrees\pkgconf\package-x64-windows-dbg-err.log
Call Stack (most recent call first):
installed/x64-windows/share/vcpkg-tool-meson/vcpkg_install_meson.cmake:33 (vcpkg_execute_required_process)
ports/pkgconf/portfile.cmake:67 (vcpkg_install_meson)
scripts/ports.cmake:192 (include)
error: building pkgconf:x64-windows failed with: BUILD_FAILED
See https://learn.microsoft.com/vcpkg/troubleshoot/build-failures?WT.mc_id=vcpkg_inproduct_cli for more information.
Elapsed time to handle pkgconf:x64-windows: 6.1 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+pkgconf
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[pkgconf]+Build+error+on+x64-windows&body=Copy+issue+body+from+C%3A%2Fdev%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
Traceback (most recent call last):
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\meson.py", line 27, in <module>
sys.exit(mesonmain.main())
^^^^^^^^^^^^^^^^
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\mesonmain.py", line 291, in main
return run(sys.argv[1:], launcher)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\mesonmain.py", line 282, in run
return CommandLineParser().run(args)
^^^^^^^^^^^^^^^^^^^
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\mesonmain.py", line 67, in __init__
from . import mconf, mdist, minit, minstall, mintro, msetup, mtest, rewriter, msubprojects, munstable_coredata, mcompile, mdevenv, mformat
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\mconf.py", line 20, in <module>
from . import mintro
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\mintro.py", line 23, in <module>
from .ast import IntrospectionInterpreter, BUILD_TARGET_FUNCTIONS, AstConditionLevel, AstIDGenerator, AstIndentationGenerator, AstJSONPrinter
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\ast\__init__.py", line 19, in <module>
from .interpreter import AstInterpreter
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\ast\interpreter.py", line 25, in <module>
from ..interpreter import (
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\interpreter\__init__.py", line 33, in <module>
from .interpreter import Interpreter, permitted_dependency_kwargs
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\interpreter\interpreter.py", line 19, in <module>
from ..wrap import wrap, WrapMode
File "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\mesonbuild\wrap\wrap.py", line 9, in <module>
import urllib.request
File "urllib\request.py", line 88, in <module>
File "http\client.py", line 71, in <module>
File "email\parser.py", line 12, in <module>
File "email\feedparser.py", line 27, in <module>
File "email\_policybase.py", line 9, in <module>
File "email\utils.py", line 29, in <module>
File "socket.py", line 51, in <module>
^
ImportError: DLL load failed while importing _socket: 지정된 모듈을 찾을 수 없습니다.
[0/1] "C:\dev\vcpkg\downloads\tools\python\python-3.11.8-x64\python.exe" "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\meson.py" "install" "--no-rebuild"
FAILED: meson-internal__install
"C:\dev\vcpkg\downloads\tools\python\python-3.11.8-x64\python.exe" "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\meson.py" "install" "--no-rebuild"
ninja: build stopped: subcommand failed.
이 오류를 보면 vcpkg에서 다운로드 받는 python-3.11.8에서 meson.py를 실행해서 설치를 하는데 _socket과 관련된 DLL 파일을 찾을 수 없어 발생한 문제이다.
일단 뭐 파이썬 홈페이지 가서 3.11.8를 받아서 설치하고 dll 파일을 가져오면 아마도 될 것 같긴 하지만..
혹시 실패할 수도 있고.. 제일 중요한건 그거까지 하기가 귀찮았다.. 내가 기본으로 설치한게 3.12.6이라서.. 저걸 깔면 나중에 또 지워야 하고 해서.. 귀찮았다.
그래서 혹시 몰라서 내가 기본으로 깔아둔 3.12.6 버전의 파이썬으로 빌드가 될까 해서 해봤더니..
python "C:\dev\vcpkg\downloads\tools\meson-1.5.2-dd4692\meson.py" "install" "--no-rebuild"
Installing pkgconf-5.dll to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\bin
Installing pkgconf.lib to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\lib
Installing pkgconf-5.pdb to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\bin
Installing pkgconf.exe to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\bin
Installing pkgconf.pdb to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\bin
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\libpkgconf\libpkgconf.h to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\../include\pkgconf/libpkgconf
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\libpkgconf\stdinc.h to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\../include\pkgconf/libpkgconf
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\libpkgconf\iter.h to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\../include\pkgconf/libpkgconf
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\libpkgconf\bsdstubs.h to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\../include\pkgconf/libpkgconf
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\libpkgconf\libpkgconf-api.h to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\../include\pkgconf/libpkgconf
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\man/pkgconf.1 to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/man\man1
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\man/pkg.m4.7 to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/man\man7
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\man/pc.5 to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/man\man5
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\man/pkgconf-personality.5 to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/man\man5
Installing C:\dev\vcpkg\buildtrees\pkgconf\x64-windows-dbg\meson-private\libpkgconf.pc to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\lib\pkgconfig
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\pkg.m4 to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/aclocal
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\AUTHORS to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/doc/pkgconf
Installing C:\dev\vcpkg\buildtrees\pkgconf\src\conf-2.3.0-07e4a066bf.clean\README.md to C:/dev/vcpkg/packages/pkgconf_x64-windows/debug\share/doc/pkgconf
빌드가 엄청 잘된다;;
일단 이 문제는 VCPKG에서 기본으로 설치하는 Python 3.11.8 버전의 어떤 라이브러리의 DLL 모듈이 없어서 에러났다니깐.. 그냥 VCPKG에서 빌드할 때 Python을 다른걸로 바꾸면 되는게 아닌가 하고 생각을 했다.
그래서 VCPKG에서 어느쪽에서 파이썬이 있는지 찾고 다운로드 하는지 찾아봤더니.. 한 파일이 나왔다.
이렇게 한 후에 다시 vcpkg install pkgconf:x64-windows를 해보면?!!
Computing installation plan...
The following packages will be built and installed:
pkgconf:x64-windows@2.3.0
Detecting compiler hash for triplet x64-windows...
Compiler found: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe
Restored 0 package(s) from C:\Users\pkdpm\AppData\Local\vcpkg\archives in 91.2 us. Use --debug to see more details.
Installing 1/1 pkgconf:x64-windows@2.3.0...
Building pkgconf:x64-windows@2.3.0...
-- Found Python version '3.12.6 at C:/Users/cheongpark/AppData/Local/Programs/Python/Python312/python.exe'
-- Using meson: C:/dev/vcpkg/downloads/tools/meson-1.5.2-dd4692/meson.py
-- Using cached pkgconf-pkgconf-pkgconf-2.3.0.tar.gz.
-- Cleaning sources at C:/dev/vcpkg/buildtrees/pkgconf/src/conf-2.3.0-07e4a066bf.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/dev/vcpkg/downloads/pkgconf-pkgconf-pkgconf-2.3.0.tar.gz
-- Using source at C:/dev/vcpkg/buildtrees/pkgconf/src/conf-2.3.0-07e4a066bf.clean
-- Found external ninja('1.11.0').
-- Configuring x64-windows-dbg
-- Getting CMake variables for x64-windows
-- Configuring x64-windows-dbg done
-- Configuring x64-windows-rel
-- Configuring x64-windows-rel done
-- Package x64-windows-dbg
-- Package x64-windows-rel
-- Fixing pkgconfig file: C:/dev/vcpkg/packages/pkgconf_x64-windows/lib/pkgconfig/libpkgconf.pc
-- Fixing pkgconfig file: C:/dev/vcpkg/packages/pkgconf_x64-windows/debug/lib/pkgconfig/libpkgconf.pc
-- Installing: C:/dev/vcpkg/packages/pkgconf_x64-windows/share/pkgconf/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 125 ms.
Elapsed time to handle pkgconf:x64-windows: 16 s
pkgconf:x64-windows package ABI: 2aa878a6cc6bcbd98fbe97e87caf0270763d6f45acecb8cd2d758d0e269baeab
Total install time: 16 s
pkgconf provides pkg-config modules:
# a library for accessing and manipulating development framework configuration
libpkgconf
-- Found Python version '3.12.6 at C:/Users/pkdpm/AppData/Local/Programs/Python/Python312/python.exe'
세번째 사진은 현재도 사용되고 있는 보컬로이드에 대한 내용인 것 같다. 예전에 음성 합성이 신기해서 보컬로이드에 대한 것도 많이 찾아봤었는데.. 도데체 일본은 어떻게 그 옛날 부터 보컬로이드 같은 신기한 기술을 성능이 별로 좋지 못한 컴퓨터에서도 잘 돌아가도록 만들었는지가 굉장히 궁금하다.. 일본은 진심으로 뭔가 한가지 목표를 가지면 그것에 대해서 어떻게든 만들려는 사람들 밖에 없는 것 같은 느낌이 든다.. 예전에 유튜브 영상을 보다가 피아노를 연주하면 그 피아노 노래에 맞는 보컬로이드를 자동으로 부르는 보컬로이드를 만들었던데.. 속도를 느리게 하든 빠르게 하든 편곡을 하든 다 인식하는게 굉장히 신기했었다.. 도데체 어떻게 그걸 다 인식하는거고 그걸 어떻게 만든걸까..
뭐 보컬로이드는 현재의 TTS 보다는 성능이 떨어지지만 어떻게 그 초창기 부터 노래를 하는 보컬로이드를 만들 수 있었는지..
아 그리고 지금 만들고 있는 Robi 로봇의 SD 카드에 있던 내용을 누가 온라인에 올렸어서 확인해봤었는데.. Robi에는 음성 합성으로 음성을 만들어내는건 아닌 것 같고 미리 녹음된 것을 재생하는 방식인 것 같다. 뭐.. Robi의 성능을 생각하면 당연한거겠지만..
아무튼 조립 시작! 그런데.. 한가지 문제는 부품을 찍었던 사진이 없다.. 조립 사진은 있는데..
첫번째 사진은 10년 이상의 역사를 가진 로봇에 대한 얘기인데.. 그러면 지금은 20년 이상의 역사를 가졌다는 얘기인데.. 현재의 로봇 청소기를 생각하면 20년 이상이나 지났는데 왜 아직도 로봇 청소기는 장애물을 잘 회피하지 못할까 라는 생각이 든다.. 뭐 인공지능이 최근에야 굉장히 활발해져서 이제야 그나마 회피를 잘하게 되기는 했는데.. 왜 케이블 같은건 완벽하게 회피를 못할까라는 생각이 들었다.
그리고 한가지 생각난게 예전에 2022년도에 어떤 모르는 할아버지와 내 친구들과 캠핑장을 갔다 왔었는데, 나중에는 그 할아버지의 가족분들과도 캠핑장을 갔었다. 그 때 할아버지의 딸이신 분이 예전에 다른 사람들에게 받은 것들을 자신도 베풀어야 한다면서 뭔가를 나와 내 친구들에게 필요하면 가져가라고 주셨었는데, 그 때 나는 로봇 청소기를 선택한적이 있었다. 아마 아이클레보 아르떼 라는 유진 로봇의 청소기 일텐데, 2022년도에 받았었지만 굉장히 오래된 로봇 청소기이다.. (그 때 지하철을 타고 맥도날드에 들르면서 가지고 다녔던 기억이..) 아무튼 로봇 청소기를 가져왔는데 리모컨이 없어서 주문하고 이랬었는데.. 동작시켜봤을 때 굉장히 신기했다.. 현재의 로봇 청소기들 보다 특이한 위치인 위쪽을 바라보는 카메라와 충돌 센서 같은 것들 만으로도 현재도 뒤쳐지지 않는 청소능력을 갖춘것이.. 굉장히 신기했다. 도데체 어떻게 그 센서 만으로 정확하게 자기 위치를 기억하고 움직이는건지.. 가장 신기한건 어떤 방을 다 치우고 다시 돌아갈 때 정확하게 들어왔던 문으로 빠르게 돌아가는거하고 자기 집을 자동으로 찾아가는게 제일 신기했다..
그리고 유진 로봇 하니 생각난 것 중에 하나가.. 실버로봇, PaPeRo 같이 생긴 아이로비 라는 로봇인데.. 굉장히 귀엽다!
두번째 사진은 오타마톤을 제작한 분과의 인터뷰 얘기 같은데 내용은 잘 모르겠지만, 오타마톤에 대한 기억이 생각났다.
예전에 어릴 때 형아가 일본에 가니깐 선물을 사올 수 있다고 했어서 그 때 내가 오타마톤을 사다달라고 했었던 기억이 있다. 지금은 아트박스에 가도 팔지만 그 때는 인터넷이나 직구로 밖에 구할 수 없던.. 그래서 사왔을 때 굉장히 좋았었는데 처음에 잘 해보다가 결국 연주가 너무 어려워서 포기하고 방치하다가 현재는 완전히 고장나버린.. 그런 기억이 있다..
게임용으로 지원하는 SDK이고 이 SDK를 사용해서 아이트래킹이 지원되는 게임을 만드는 것 같다.
그래서 이걸 쓰기위해 보니 메일을 보내서 요청하라고 적혀있다.. 그래서 보냈더니..
한국어로 답변이 왔는데.. 아이트래커에 해킹을 시도하거나 다르게 이용을 하는 경우가 있어서 SDK를 못 준다는 말만 왔었다.. 개인적으로 사용할 것이라고 얘기해도 불가능이라고 했다.
그래서 그냥 포기할까 하고 한가지 생각이 들었다. 이 회사는 유명하니깐 누군가가 Github에 올려놓지 않았을까 하고..
그래서 찾아보니 진짜로 있었다. 32비트, 64비트 모두 Github에 아이트래커 프로젝트를 올리면서 같이 올려진 것들이 있다.
그래서 나는 이걸 다운받아서 시도했더니 아이트래커에 접근이 됬었던 것!
(근데 한가지 슬픈건.. 이 SDK가 C++과 C#만 가능한데.. 연구원에서.. 교수님과 나만 C++이 가능했던 것.. 그래서 이 연구와 관련된 프로그램을 제작하는건 모두 내가 맡아서 했었다.. 파이썬으로 실행할 수 있는 것이 github에 있던데.. 더 별로여 보여서 그냥 C++로 하기로 했다..)
일단 Stream Engine을 살펴보니 잘은 모르겠지만 내가 보고 있는 시선의 위치만 가져올 수 있는 것 같다. 뭐.. 게임 용이라 그런 것 같은데.. 아니면 내가 제대로 안 찾아본 것일 수도 있고..
아무튼 내가 보고 있는 위치만 가져올 수 있으니깐.. 사용할 수 있는 OSC는 "/tracking/eye/CenterPitchYaw" 이거다. 이거는 문서에 잘 설명 되어있다.
그리고 눈을 감았는지에 대한건 "/tracking/eye/EyesClosedAmount" 이걸 사용하면 될 것 같다.
아무튼 이걸 알았으니 이제 예제 코드를 실행해볼껀데, 그냥 실행하면 이런 오류가 난다. 아마도 내꺼가 Github에서 가져와서 버전이 낮은 것 때문에 그런 것 같은데..
// Connect to the first tracker found
tobii_device_t* device = NULL;
result = tobii_device_create(api, url, TOBII_FIELD_OF_USE_STORE_OR_TRANSFER_FALSE, &device);
assert(result == TOBII_ERROR_NO_ERROR);
여기 코드에서 TOBII_FIELD_OF_USE_STORE_OR_TRANSFER_FALSE 이게 오류가 난다.
그냥 해결 방법은 그냥 저거 빼고
사진에 나온거 2개 중에 아무거나 넣으면 된다.
그리고
이런 오류 나면.. 뭐 다르게 해결하는 방법이 있지만 빠르게 테스트 하기 위해 맨 상단에 이걸 넣는다.
#define _CRT_SECURE_NO_WARNINGS
아무튼 이러면 오류가 사라진다.
이제 실행해보면 Tobii Eye Tracker이 정상적으로 연결 되어있는 경우 작동하는데 해보면 내가 보고 있는 시선이 x, y로 나올꺼다. 그런데 내가 눈을 감거나 감지할 수 없는 영역을 쳐다보면 아무것도 출력이 안되는데.. 이걸 알 수 있다는 것은 눈을 깜박이는 것을 알 수 있다는 것이다! 확실히 알기 위해 코드를 수정했다!
void gaze_point_callback(tobii_gaze_point_t const* gaze_point, void* /* user_data */)
{
// Check that the data is valid before using it
if (gaze_point->validity == TOBII_VALIDITY_VALID)
printf("Gaze point: %f, %f\n",
gaze_point->position_xy[0],
gaze_point->position_xy[1]);
else // 추가
printf("Gaze Error\n"); // 추가
}
// 추가 라고 되어있는 것이 내가 추가한건데 그냥 인식 안되면 출력하라는거다..
이렇게 하면 정상적으로 눈을 깜으면 Gaze Error이 표시되고 감지 영역에서 눈을 움직이면 쳐다보는 곳이 잘 출력된다..!