PiPER 3D 모델 관련 문의

안녕하세요, PiPER의 3D 모델 관련하여 몇가지 문의가 있습니다.

  1. PiPER 3D 모델이 아래 두군데 있는데 혹시 어떤 것이 더 정확한지 알 수 있을까요?
    1. https://github.com/agilexrobotics/piper_isaac_sim ,
    2. piper_ros/src/piper_description at noetic · agilexrobotics/piper_ros · GitHub
  2. 위의 두 링크 안에 모두 piper_description.csv, piper_description.urdf가 있는데 그 안에 들어있는 mass나 기타 물리적인 속성값들이 다 다릅니다. 혹시 PiPER에 해당하는 정확한 mass를 알 수 있을까요?

PiPER 3D 모델(URDF/CSV) mass 값 차이 정리

piper_isaac_simpiper_ros(noetic) 양쪽의 piper_description.urdf / piper_description.csv 네 파일을 모두 받아 링크별 mass·CoM·inertia를 직접 비교하고 공식 스펙으로 검증한 결과를 공유합니다. 결론부터 말하면 "두 repo가 서로 다르다"기보다는, 같은 repo 안의 .urdf.csv가 다른 것이 핵심입니다.

1. 두 repo 중 어느 게 정확한가

두 repo의 URDF는 사실상 동일합니다. base_link~link8의 mass, CoM, inertia가 전부 같고, 의미 있는 차이는 단 한 곳입니다.

  • piper_isaac_simlink7/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 중력보상 자체에는 영향이 거의 없음).

2. 진짜 불일치는 “같은 repo 안 .csv ↔ .urdf”

체감되는 큰 차이는 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는 그때 갱신되지 않고 남은 옛 파일로 보입니다.

3. 정확한 mass — URDF 값을 사용

공식 스펙으로 교차 검증됩니다. AgileX 공식 PiPER 무게는 4.2 kg(그리퍼 미포함 arm 기준)인데, URDF의 arm-only 합계 4.17 kg과 정확히 일치합니다. CSV의 1.5 kg은 실물과 전혀 맞지 않습니다.

정리하면:

  • mass는 URDF 값 채택, CSV는 무시.
  • arm 링크들의 inertia는 positive-definite + triangle inequality를 모두 통과하며, radius of gyration도 링크 치수 대비 타당합니다(예: link2를 iyy로 환산 시 k ≈ 0.24 m로 ~285 mm 장축 링크에 합당). URDF mass와 물리적으로 일관됩니다.
  • 유일한 수리 포인트는 isaac_sim의 link7/8 iyy 한 곳뿐.

4. 추가 점검 포인트 (동역학/운동학 쓰는 경우)

  • 그리퍼 포함 여부에 따라 총질량이 4.17(arm) ↔ 4.67(arm+그리퍼)로 갈립니다. end-effector 페이로드 보정 시 이 0.5 kg(gripper_base + link7/8)을 어디에 반영할지 명확히 하세요.
  • URDF 트리에서 link7/link8의 parent가 base_link로, joint7/8 origin이 base_link 기준 z = 0.1358로 잡혀 있습니다. 실제 운동학 체인(end flange 기준)과 맞는지 한 번 확인해보길 권합니다.

요약

  1. 두 repo의 URDF는 거의 동일 → 둘 중 **piper_ros(noetic)**가 link7/8 inertia 오류가 없어 더 정확.
  2. 체감 차이의 원인은 repo 간이 아니라 같은 repo 내 .csv(구버전, 1.57 kg) ↔ .urdf(실측 반영, 4.67 kg).
  3. 정확한 mass = URDF 값 (arm-only 4.17 kg ≈ 공식 4.2 kg). CSV는 사용하지 말 것.