CS277-Experimental Haptics
이번 학기에 듣는 수업 중의 하나. Haptics에 관심이 있어서 수강을 하게 됐는데, 개인별로 haptic device를 나눠주는 것을 보고 푹 빠졌다..고나 할까...
위에 보이는 것이 바로 수업에서 제공되는 haptic device인 FALCON. End effector가 3-DOF (Degree of Freedom)을 가지고 있다. CS277을 가르치는 instructor 중의 한 명인 Francois 라는 사람이 만들었다고 하는데, 참 대단한 사람인 것 같다. 기존의 haptic device는 1000불을 호가할 정도로 비쌌다고 하는데 이 사람이 만든 이 Falcon은 200불 미만이라는 것. 이번 학기가 끝나고 기회가 된다면 가지고 싶을 정도로 멋진 물건이다! 전원을 연결했을 때 NOVINT 마크에 불들어오는 거 보고 예뿌다는 생각이 잠깐...-0-
아무튼, 관련 드라이버를 설치한 후, 전원과 USB를 연결하면 셋팅은 완료된다. 그리고나서 내가 짠 프로그램을 돌리면 Falcon과 연결이 되어 3D 시뮬레이션이 가능하다.
첫 번째 과제는 openGL을 이용해 여러 3D 도형들을 만든다음(Visual Rendering), 그 도형을 시뮬레이션 상에서 Falcon으로 느낄 수 있도록 구현하는 것 즉, Haptic Rendering을 하는 것이었다. 그것을 완료하면, 도형들의 재질을 다르게 만드는 것(Texturing) 까지가 첫 번째 숙제였다. 지난 가을학기에 CS248(Computer Graphics) 수업을 듣지 않아 OpenGL을 처음 접하는 거였는데, 나름 흥미로운 라이브러리라는 생각이 들었다. 어쩌면 OpenCV보다 더 흥미로울지도...;;; 아무튼, OpenGL을 처음 써보는 나로서는 Viewport를 조정하는 것과 더불어 도형을 그리는 것부터가 난관이었다. 도형을 그려야 Haptic Rendering을 하던지 하지... 사실 가장 하고 싶은 부분은 그거였는데...ㄷㄷ; 어느정도의 시간을 투자하여 조사를 한 덕에 Visual Rendering 부분은 완료하였지만, 나중에 Haptic Rendering할 때 OpenGL 때문에 고생한 걸 생각하면, 나중을 위해서라도 미리 좀 더 다뤄봐야겠다는 생각이 든다. 아래 사진은 결과물~!
(보시려면 클릭!)
CS277 HW1 result (more..)
Haptic Rendering은 크게 Collision Detection, Reaction Force Calculation 부분으로 나뉠 수 있다. 시뮬레이션 상의 도형과 Haptic device의 Cursor(avatar라고도 불리는 이것은 device의 end-effector, 즉 힘이 작용되는 끝부분이라고 생각하면 된다)가 충돌을 했는지를 검사하고, 만약 그렇다면 충돌한 위치를 이용하여 반작용의 힘(Reaction force)를 계산하면 되는 것이다. 여기서 어떻게 충돌을 정확히 검사할 것인가에 대한 문제는 아직도 이슈가 되고 있고, 나 또한 관심을 가지는 부분이기도 하다.
요놈을 가지고 어떤 프로젝트를 할까 구상 중인데, 몇 가지 아이디어는 생각해 뒀지만 딱 '이거다!' 하는 건 아직 없다. 참신한 아이디어가 필요한 때...!!
Posted by ingStory

