모델 충돌 감지의 기본 원리

STL 및 OBJ 모델 소개

STL 모델

STL은 3D Systems 회사에서 개발한 3D 파일 폼맷입니다. STL 모델은 수많은 삼각형 메시(삼각형 면의 집합체로 면 한 장 한 장이 평면으로 구성된 다각형 면) 또는 삼각형 면으로 이루어져 있어, 삼각형 메시마다 세 꼭짓점의 3D 좌표와 메시의 법선 벡터로 설명됩니다. Mech-Viz 프로젝트에서 보통 STL 모델을 사용하여 로봇 클램프를 만들거나 시나리오를 구축합니다. 아래 그림과 같습니다.

../../../../_images/stl_models_application.png

OBJ 모델

OBJ는 하나의 3D 모델 파일 포맷으로 주로 다각형(Polygons) 모델을 지원하며 곡선(Curves), 표면(Surfaces)과 점군 재질(Point Group Materials) 모델도 지원합니다. 간단히 말하면 STL모델은 표면 정보만 갖추고 속이 비어 있는 것이고 OBJ 모델은 솔리드화 되어 있는 것입니다. OBJ 모델의 효과는 아래 그림과 같습니다.

../../../../_images/obj_models_application.png

참고

OBJ 파일은 텍스트 파일로 직접 워드패드를 통해 열어서 읽거나 편집할 수 있습니다.

STL 모델 충돌 감지 원리

STL은 삼각형 메시 모델로 표면 정보만 가지고 내부 구조가 없음으로 포인트 클라우드의 충돌 감지 과정에서 모델 표면의 포인트 클라우드만 감지하고 내부 포인트 클라우드의 충돌을 감지&계산하지 않습니다. STL모델의 구조는 아래 그림과 같습니다.

../../../../_images/stl_cillision_detection_principle_1.png

아래 그림에서 노란색 부분은 충돌이 존재하는 삼각형 메시를 의미하고 오렌지색 부분은 충돌이 발생한 포인트 클라우드를 의미합니다. 보시다시피 충돌 감지 과정에선 모델 표면의 충돌 결과만 검출했습니다.

../../../../_images/stl_cillision_detection_principle_2.png

OBJ 모델 충돌 감지 원리

OBJ 모델의 충돌 감지 과정은 클램프 모델을 여러 개의 솔리드 볼록다면체로 분해하는 것입니다. 아래 그림과 같습니다.

../../../../_images/obj_cillision_detection_principle_1.png

엔드 이펙터 모델을 여러 개의 볼록다면체로 분해한 후 각 솔리드 볼록다면체와 포인트 클라우드 사이의 충돌 감지를 “솔리드화 감지” 라고 할 수 있습니다. 즉 엔드 이펙터 모델 내부에서 충돌이 발생한 포인트 클라우드까지도 감지되어 결과의 정확성이 더욱 높습니다.

아래 그림은 OBJ 모델의 충돌 감지 결과입니다. 보시다시피 모델 표면의 충돌 뿐만 아니라 내부의 충돌도 감지했습니다.

../../../../_images/obj_cillision_detection_principle_2.png