Haptic Rendering 8

HDAPI - 2. Programming

햅틱 디바이스 명령문은 세팅과 게팅(set, get : 그냥 알아들어먹어) 상태와 연관된 모든 명령문이 포함되어있다. 장치 명령문이 실행되면 servo loop가 스케줄러 콜백에 의해 실행되고 곧바로 Getting 상태로 바꾼다. 프레임이 시작되고 끝나면, 기타 여러가지를 적용하고 해제하고 한다. 초기화 장치와 스케줄러가 사용되기 전에 초기화를 시켜야하는데, 장치는 PHANToM 컨트롤 패널 아래의 PHANToM Configurations에 정의되어있고, 만약 하나의 디바이스만 연결되어있다면 "Default PHANToM"이라고 되어있을 것이다. HHD hHD = hdInitDevice(HD_DEFAULT_DEVICE); - 디바이스 초기화 - 디바이스들이 PHANToM Configurations에서 캘..

HDAPI - 1. Developing Options

개발 옵션 설정 부분 HDAPI를 사용하려면 1. 런타임 라이브러리 옵션을 멀티 스레드 DLL로 2. 아래 그림의 "추가 포함 디렉토리" 경로 설정을 한다. $ (OH_SDK_BASE) \include : HD 라이브러리의 메인 포함파일 $ (OH_SDK_BASE) \utilities\include : 유틸리티를 위한 포함 디렉토리 - (OH_SDK_BASE) : 오픈햅틱스 환경변수 이걸 하구나면 #include #include #include 요놈들이 가능하다. 3. 라이브러리 모듈을 연결한다 hd.lib와 hdu.lib는 반드시 써줘야한다. hd.lib : HDAPI 라이브러리 hdu.lib : HDU 라이브러리 (HD 유틸리티들) snapconstraints.lib : 햅틱 인터페이스 제한사항 구현..

HDAPI - 0. Overview

OpenHaptics보다는 HDAPI, HLAPI를 많이 쓸거같다. HDAPI가 뭔지는 설명을 했고.... 간단한 Haptic Plane 예제의 단계 스탭들이다. 1. 장치 초기화 2. 스케줄러 콜백을 생성하고 햅틱장치가 면을 뚫었을 때의 장치위치와 힘을 결정한다. 3. 장치의 힘을 적용하고 4. 스케줄러를 시작한다. 5. 애플리케이션이 종료될 때 장치와 스케줄러를 비운다. 장치 장치는 전형적으로, 관리자 상태, 파라미터 세팅, 포스 전송을 포함하는데, 장치 인터페이스 역시 여러개의 장치를 관리할 수 있다. 그래서 장치 루틴은 몇개의 카테고리가 있는디 Device Initialization : 장치와 통신할 수 있는 모든 필수적인 부분을 포함하고 있다. 이건 일반적으로 handle을 만들어서 포스 적용,..

Voxelizer - Making a Point Shell

이런 대인배를 봤나 Voxmap은 없지만, Mesh의 Point Shell을 만들어주는 소스를 구했다. 소스 실행방법이 쉽지만은 않으니 요약을 해두겠다. Dan Morris - Voxelizer http://techhouse.brown.edu/~dmorris/projects/voxelizer/ 자 그럼 먼저 Voxmap Point-Shell 은 무엇인가. - Haptic Rendering시 두개의 메시를 Voxel map(Voxmap)과 Point Shell로 표현한 것 - Voxmap 메시와 Point Shell 메시가 충돌했을 때, Point Shell의 노말(초록색화살표)에 대입되는 탄젠트 평면을 만든다. - 그 탄젠트 평면과 Voxmap의 객체의 경계와의 거리(d)를 통해 Point Shell M..

'06 - Haptics and Physical Simulation for Virtual Bone Surgery

2006년 8월 Stanford의 Dan Morris의 박사학위 논문 http://techhouse.brown.edu/~dmorris/projects/bonesim/bonesim.html#app2 http://techhouse.brown.edu/~dmorris/ - Dan Morris의 홈페이지 Solid Mechanics http://en.wikipedia.org/wiki/Solid_mechanics Plasticity http://en.wikipedia.org/wiki/Plasticity_(physics) Elasticity http://en.wikipedia.org/wiki/Elasticity_(physics) Young's modulus http://en.wikipedia.org/wiki/Youn..

Haptic Feedback for Augmented Reality

2012.8.30에 작성된 내용입니다. 오늘 내 세미나 내용 피피티를 통째로 올리고 싶었지만 파일 전송 한계가 2M.. 처음 Tactile Feedback for Augmented Reality 였지만, Tactile은 질감에 대한 이야기이고, Haptic은 질감, 물리적 특성 모두를 포함하는 단어이다. 단어 선택이 잘못되었었다. 그래서, 제목 수정 서론 아는얘기는 스킵하고, 증강현실서 지금까지의 연구는 대부분 시각적인 측면에서만 고려되어왔다. 하지만, 증강현실이라는 것은 모든 감각이 증강되어야한다. 그 뜻은 즉, 꼭 카메라를 통한 것만이 증강현실이 아니라 청각, 촉각, 후각, 심지어 미각까지 모든 감각을 만족시켜야한다. 인간의 오감 중 시각이 가장 의존도가 높기 때문에 현재의 증강현실은 시각적 측면에 ..

OpenHaptics - 1. Creating a shape

#include 이게바로 Win32 QuickHaptics 헤더, QuickHaptics의 micro API를 사용하려면 맨위에 요고를 넣어줘야한다 그럼 그 아래 WinMain 들어오고 코딩시작 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) hInstance : 애플리케이션 인스턴스 핸들, 윈도우를 참조하구 이벤트 핸들링하고, 메시지 처리하고 hPrevInstance : 항상 널널널NULL lpCmdLine : 애플리케이션 시작될 때 커맨드라인 입력구문 내용 nCmdShow : 어떤 애플리케이션 윈도우가 지금 실행되고 있는지 알려준다. 그런데, 다시말하지만 이건 WinMain용이고..

OpenHaptics - 0. Overview

OpenGL처럼 오픈햅틱라이브러리라 생각하자. 이론도 중요하지만, 일단 구현부터 차근차근 해보자. 위 그림은 QuickHaptics API의 프로그램 흐름도로, 1. 작업공간을 먼저 정의(윈도우)하는 것을 가장 먼저, 2. 도형(햅틱 렌더링 대상)들을 정의하고, 3. 커서를 정의한다. 이런 구조인데... 그럼 우선 HLAPI와 HDAPI가 뭔지부터 아주짧고 간단하게만 살펴보자 HLAPI : High-Level haptics scene rendering API로, OpenGL과 비슷한 프로그래밍 구조를 갖고있다. 그렇기 때문에 빠르고 쉽게 그래픽 응용프로그램에 햅틱을 연결할 수 있다. HLAPI는 HDAPI의 위에 있다고 보면 되는데, 그 이유는 아래서 설명 HDAPI : Low-Level foundati..