안녕하세요, PiPER의 3D 모델 관련하여 몇가지 문의가 있습니다.
- PiPER 3D 모델이 아래 두군데 있는데 혹시 어떤 것이 더 정확한지 알 수 있을까요?
- 위의 두 링크 안에 모두 piper_description.csv, piper_description.urdf가 있는데 그 안에 들어있는 mass나 기타 물리적인 속성값들이 다 다릅니다. 혹시 PiPER에 해당하는 정확한 mass를 알 수 있을까요?
안녕하세요, PiPER의 3D 모델 관련하여 몇가지 문의가 있습니다.
piper_isaac_sim과 piper_ros(noetic) 양쪽의 piper_description.urdf / piper_description.csv 네 파일을 모두 받아 링크별 mass·CoM·inertia를 직접 비교하고 공식 스펙으로 검증한 결과를 공유합니다. 결론부터 말하면 "두 repo가 서로 다르다"기보다는, 같은 repo 안의 .urdf와 .csv가 다른 것이 핵심입니다.
두 repo의 URDF는 사실상 동일합니다. base_link~link8의 mass, CoM, inertia가 전부 같고, 의미 있는 차이는 단 한 곳입니다.
piper_isaac_sim의 link7/link8(그리퍼 핑거) inertia가 물리적으로 invalid합니다. iyy = -1.13e-6으로 들어가 있는데, 이는 ixy 값이 iyy 자리에 잘못 복사된 오타입니다. 관성텐서 고유값이 -3.55e-6(음수)이 나와 positive-definite 조건이 깨집니다.piper_ros(noetic)는 같은 자리가 iyy = 7.81e-6**으로 정상입니다(고유값 전부 양수).→ 정확도로는 piper_ros(noetic) URDF가 우위입니다. isaac_sim 쪽을 쓴다면 link7/8 iyy 한 군데만 고쳐 쓰면 됩니다. Pinocchio 등에 그대로 로드하면 inertia validity check에서 막힐 수 있습니다(단, 0.025 kg짜리 prismatic 핑거라 arm 중력보상 자체에는 영향이 거의 없음).
체감되는 큰 차이는 repo 간이 아니라 한 repo 안에서 .csv와 .urdf의 mass가 다른 것입니다.
| 링크 | URDF mass (kg) | CSV mass (kg) |
|---|---|---|
| base_link | 1.02 | 0.334 |
| link1 | 0.71 | 0.215 |
| link2 | 1.17 | 0.464 |
| link3 | 0.50 | 0.220 |
| link4 | 0.38 | 0.132 |
| link5 | 0.383 | 0.134 |
| link6 | 0.007 | 0.007 |
| gripper_base | 0.45 | (없음) |
| link7 / link8 | 0.025 / 0.025 | 0.030 / 0.030 |
| arm 합계 (그리퍼 제외) | 4.17 | 1.50 |
| 전체 합계 | 4.67 | 1.57 |
.csv는 SolidWorks URDF Exporter가 export 시점에 함께 생성한 원본 요약표인데, 합계가 1.57 kg으로 비현실적입니다(밀도가 잘못 잡힌 초기 CAD에서 나온 값으로 추정). 반면 URDF는 export 이후 mass를 실측치로 손수 수정한 버전이고, .csv는 그때 갱신되지 않고 남은 옛 파일로 보입니다.
공식 스펙으로 교차 검증됩니다. AgileX 공식 PiPER 무게는 4.2 kg(그리퍼 미포함 arm 기준)인데, URDF의 arm-only 합계 4.17 kg과 정확히 일치합니다. CSV의 1.5 kg은 실물과 전혀 맞지 않습니다.
정리하면:
iyy 한 곳뿐.gripper_base + link7/8)을 어디에 반영할지 명확히 하세요.link7/link8의 parent가 base_link로, joint7/8 origin이 base_link 기준 z = 0.1358로 잡혀 있습니다. 실제 운동학 체인(end flange 기준)과 맞는지 한 번 확인해보길 권합니다..csv(구버전, 1.57 kg) ↔ .urdf(실측 반영, 4.67 kg).