브라우저에서 가구 회전 경로 확인하기
요약
Unwedged는 브라우저 기반의 도구로, 실제 환경에서 가구를 이동시키거나 배치할 때의 정확한 경로를 시뮬레이션하고 검사하는 것을 목표로 합니다. 이 도구는 2D 평면상에 직사각형 장애물과 가구를 모델링하여, 사람이 직접 측정하고 얻은 데이터를 바탕으로 운반 가능한 경로를 보여줍니다.
핵심 포인트
- 가구 이동 경로를 정확히 시뮬레이션하는 브라우저 기반 도구입니다.
- 직사각형 바닥/장애물 및 가구 치수를 2D 평면에 모델링합니다.
- 검색 과정에서 연속 검증기(continuous verifier)를 사용하여 간격(clearance)을 보수적으로 확인합니다.
- Node.js 환경에서 사용 가능하며, SVG 경로 시트 등으로 결과물을 내보낼 수 있습니다.
저는 출입구의 너비가 그 뒤쪽의 회전에 대한 정보를 알려주지 않기 때문에 Unwedged를 만들었습니다. 저는 다이어그램으로 추측하는 대신, 측정한 바닥을 그리고 직사각형 가구를 배치하여 경로를 검사할 수 있는 작은 도구를 원했습니다.

모델 (The model)
Unwedged는 내부적으로 센티미터를 사용합니다. 프로젝트는 직사각형 바닥, 벽 또는 장애물, 가구 치수, 안전 여유 공간(safety margin), 그리고 시작 및 도착 자세(start and destination poses)를 포함합니다. 각 자세는 위치와 각도를 가집니다. 벽 직사각형은 중앙에 출입구가 있을 수 있습니다. 운반 높이(Carry height)가 모델에서 해당 개방부가 사용 가능한지 결정합니다.
저는 고정된 높이의 2D 평면상에 단단한 직사각형을 모델링합니다. 계단, 들어 올리기, 가구 구부리기 또는 그것을 운반하는 사람들은 모델링하지 않습니다. 측정값과 그러한 가정들이 세련된 애니메이션보다 더 중요합니다.
검색에서 검사된 경로로 (From a search to a checked route)
검색은 위치와 각도를 함께 탐색합니다. 기본 격자(lattice)는 10센티미터와 10도 간격이며, 레이아웃이 더 복잡할 경우 더 세밀한 옵션을 제공합니다. 제안된 모든 움직임 경계(motion edge)는 최종 경로에 사용되는 것과 동일한 연속 검증기(continuous verifier)를 통과합니다.
검증기는 세그먼트 중간점에서의 간격(clearance)을 가구의 어떤 지점이 이동할 수 있는 범위(bound)와 비교합니다. 만약 그 범위가 너무 느슨하면, 움직임을 세분화합니다. 반환되는 간격은 보수적인 하한선입니다. 정확한 최솟값은 아닙니다.
저는 Shapely를 사용하여 3,204개의 독립적으로 평가된 경로 자세(route poses)로 두 가지 성공적인 프리셋을 확인했으며, 세그먼트당 800개의 동일 시간 간격을 사용했습니다. 샘플링은 구현 오류를 포착할 수 있지만, 연속 인증서(continuous certificate)를 대체하지는 못합니다. 저장소에는 참조 검사 및 저장된 경로 회귀 사례가 포함되어 있습니다.
사용해 보기 (Trying it)
라이브 데모는 계정이 필요 없습니다. 로컬 복사본의 경우, Node.js 22.12 이상과 Git을 설치한 후 다음 명령어를 실행하세요:
npx github:Arthur031221/Unwedged
You can replay or scrub the route, save a JSON project and export an SVG route sheet. After the first visit, wait for the offline indicator before disconnecting. The cached app includes fonts and the search worker.
개선하고 싶은 점 (What I want to improve)
검색 기능은 유한한 해상도와 예산(budget)을 가지고 있습니다. 경로를 찾지 못했다고 해서 가구가 통과할 수 없다는 것을 증명하지는 않습니다. 모델에 도전하는 측정된 레이아웃이 필요하며, 에디터를 더 사용하기 쉽게 만드는 방법에 대한 피드백을 받고 싶습니다.
소스 코드, 아키텍처 노트 및 재현 가능한 검사(reproducible checks)는 Unwedged에 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기