삼각형 수만 줄이면 좋은 모델인가
메시 경량화는 정점/면 수와 자산 비용을 줄이는 작업이다. 목표는 파일 크기나 표시 속도만이 아니라 필요한 형상 특징을 보존하는 것이다. 시각 메시의 작은 구멍이나 모서리를 줄여도 되는지와 충돌 계산에서 그 특징이 필요한지는 다를 수 있다. 텍스처와 법선·축·원점·단위도 확인한다. 얼굴처럼 보이는 방향이 맞아도 링크 장착 프레임이 틀릴 수 있으며, 다운로드한 자산의 숫자가 자동으로 m라는 보장도 없다.
가상 CAD 자산의 상자 치수가 200/100/100이고 문서 단위가 mm라면 실제 길이는 0.2/0.1/0.1 m다. 이 숫자를 m로 읽는 소비자에게 그대로 주면 길이가 1000배 커진다. 세 축에 scale=0.001을 적용하는 것이 이번 단위 계약의 변환이다. 모든 메시가 같은 단위를 쓴다고 하거나 파일 이름만으로 scale을 추정하지 않는다. 시각과 충돌 자산, origin의 이동 값이 모두 같은 길이 기준인지 확인한다.
충돌 형상은 visual보다 간단한 상자·구·볼록 근사 등으로 만들 수 있다. 근사가 실제 형상을 과대 포함하면 충돌이 더 일찍 잡히거나 통과 가능한 공간을 막을 수 있다. 과소 근사하면 실제로 닿는 부분을 놓칠 수 있다. 가상 물체 폭이 0.10 m이고 장애물 간격이 0.11 m라면 방향과 여유를 생략한 단순 폭 비교에서는 통과한다. collision 폭을 0.12 m로 잡으면 같은 비교에서 막힌다. 반대로 실제 폭 0.10을 collision 0.08로 줄이고 간격이 0.09면 모델은 통과라 해도 실제 폭은 들어가지 않는다.
이 숫자 비교는 정적 폭의 일차 검사일 뿐 회전 경로와 센서 오차·변형을 포함한 안전 판정이 아니다. 오목한 구멍을 볼록 껍질로 채우면 그 안을 통과하는 경로를 잃을 수 있다. 반대로 면을 많이 썼다는 이유로 더 정확한 접촉이나 더 안정된 시뮬레이션이 보장되지는 않는다. 공식 URDF 충돌 자료의 단순 형상 근사를 실제 과제의 접촉/빈 공간과 대조한다.
관성은 어느 점과 축의 숫자인가
M08.01의 질량 1 kg, 크기 (0.2,0.1,0.1) m인 균질 상자 관성은 질량중심의 정렬 축에서 대각 약 (0.00166667,0.00416667,0.00416667) kg·m²다. 비대각은 0이다. URDF inertial origin은 질량중심의 위치와 관성 기준축을 링크에 대해 놓는다. CAD가 다른 점이나 축에서 계산한 행렬이라면 이 계약에 맞춰야 한다. ‘같은 부품의 관성’이라는 이름만으로 숫자를 그대로 복사하지 않는다.
먼저 기준점은 같고 표현 축만 바꾼다면 회전으로 텐서를 옮긴다. R은 기존 관성 축의 벡터를 새 좌표로 바꾸는 회전행렬, 상첨자 T는 전치다.
상자를 z축으로 90도 돌려 새 축에서 표현하면 x/y의 역할이 바뀌어 대각은 (0.00416667,0.00166667,0.00416667)이다. 질량이나 물체 자체의 분포가 바뀐 것이 아니라 표현 축이 바뀐 경우다. 일반 회전에서는 비대각 항이 생길 수도 있으므로 대각 세 값만 섞는 일반 규칙으로 쓰지 않는다.
기준점을 질량중심 C에서 다른 점 O로 옮길 때는 평행축 정리를 쓴다. 두 프레임의 축 방향은 같고 r은 O에서 C로 향하는 m 단위 벡터, m은 질량이다. 단위행렬은 E라고 써 관성 I와 구분한다.
링크 끝점 O에서 중심까지 r=(0.1,0,0) m면 y/z 관성에 각각 0.01 kg·m²가 더해진다. 끝점 관성은 약 (0.00166667,0.01416667,0.01416667)이다. 이 값을 COM 원점의 inertial에 그대로 넣으면 기준점을 중복 해석하게 된다. 반대로 CAD가 끝점 기준 관성을 줬다면 어떤 방향의 정리가 필요한지와 원래 질량/중심을 확인해야 한다. 회전과 평행축 이동을 함께 할 때에는 r과 행렬을 같은 축으로 맞춘다.
크기를 바꾸면 질량 가정도 고른다
길이를 모든 방향으로 s배 늘린 같은 형상은 질량을 어떻게 두는지에 따라 관성 스케일이 다르다. 질량을 고정하면 거리 제곱 때문에 관성은 s²배다. 같은 밀도를 유지해 부피와 질량도 s³배라면 관성은 s⁵배다. s=2이면 각각 4배와 32배다. 같은 밀도에서는 질량도 8배다. visual의 mesh scale만 바꾸고 inertial은 그대로 둔 것이 어떤 물체를 의도하는지 명시해야 한다. 비균일 스케일은 한 개 s로 이 규칙을 적용할 수 없다.
질량을 실제로 모르면 메시의 겉모양만으로 내부 빈 공간이나 재질을 확정하지 않는다. 자동 추정에 균질 밀도나 닫힌 부피 같은 가정이 들어갔다면 기록한다. 여러 부품을 합칠 때는 각 부품의 질량중심·축을 맞춰 관성을 합해야 하며 링크 전체 질량만 더하고 관성은 하나를 남기는 식으로 처리하지 않는다.
양수처럼 보여도 물리적으로 맞지 않을 수 있다
관성 텐서는 대칭이어야 하고 일반적인 유한 부피 강체의 주관성은 양수여야 한다. 주관성은 텐서의 주축에서 얻는 대각값, 즉 고유값이다. 대각이 양수라는 것만으로 일반 비대각 행렬의 양의 성질을 보장하지는 않는다. 또 양의 주관성만으로 모든 물리 조건이 끝나는 것도 아니다. 세 주관성 A, B, C는 각 순서에서 A+B≥C를 만족해야 한다.
이유는 질점 합에서도 볼 수 있다. 한 정렬 축에서 Ixx+Iyy−Izz는 각 질점의 2m_i z_i²를 더한 값이므로 음수가 될 수 없다. 따라서 대각 (1,1,3) kg·m²는 대칭이고 양의 고유값을 갖지만 1+1<3이라 비음수 질량 분포의 관성으로 부적합하다. 자동 보정 옵션으로 세 값을 바꿔 파싱시킬 수 있다고 원래 부품이 검증된 것은 아니다. MuJoCo의 공식 관성 조건 설명은 이런 조건과 보정 옵션의 차이를 확인하는 자료이며, 여기서 그 옵션을 실행하거나 특정 엔진에 모델을 승인하지 않는다.
품질 기록에는 단위/축과 자산 개정·원본/경량화본·collision 근사의 허용 오차·질량/COM/관성의 출처와 가정·기준점/축 변환·수치 검사를 남긴다. 기존 2.7 관성과 3.1 모델의 실제 적용 단계에서도 이 증거를 유지한다.