로봇 모델링 및 시뮬레이션 (1)-통합 로봇 설명 형식 -URDF
개요
URDF (Unified Robot Description Format)는 ROS에서 매우 중요한 로봇 모델 설명 형식입니다. ROS는 URDF 파일에서 XML 형식으로 설명 된 로봇 모델을 구문 분석 할 수있는 URDF 파일 용 C ++ 파서를 제공합니다.
URDF 파일을 사용하여 로봇 모델을 빌드하기 전에 URDF 파일에서 일반적으로 사용되는 XML 태그를 이해해야합니다.
1. <link> 태그
<link> 태그는 크기, 색상, 모양, 관성 매트릭스, 충돌 속성 등을 포함하여 로봇 강체 부분의 모양과 물리적 속성을 설명하는 데 사용됩니다.
로봇의 링크 구조는 일반적으로 그림과 같으며 기본 URDF 설명 구문은 다음과 같습니다.
<link name="my_link">
<inertial>
<origin xyz="0 0 0.5" rpy="0 0 0"/>
<mass value="1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<box size="1 1 1" />
</geometry>
<material name="Cyan">
<color rgba="0 1.0 1.0 1.0"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<cylinder radius="1" length="0.5"/>
</geometry>
</collision>
</link>
3 개의 하위 태그 포함
<관성> : 로봇 역학의 계산 부분에서 주로 사용되는 링크의 관성 매개 변수 설명;
<시각적> : 로봇 링크 부분의 모양 매개 변수, 크기, 색상, 모양 및 기타 모양을 설명합니다. 정보;
<충돌> :
링크 의 충돌 속성을 설명합니다. 링크의 또 다른 핵심 부분이 있습니다. 즉, 좌표계
링크 원점은 시작 좌표입니다. 전체 링크가 생성되면 링크를 기준으로 생성됩니다. 원점 좌표계;
2. <joint> 태그
<join> 태그는 두 개의 특정 링크 부품을 연결하는 데 사용되며 관절 동작의 위치 및 속도 제한을 포함하여 로봇 관절의 운동학 및 역학 속성을 설명합니다. 관절의 움직임 형태에 따라 6 가지 유형으로 나눌 수 있습니다.
인간 관절과 마찬가지로 로봇 관절의 주요 기능은 그림과 같이 각각 상위 링크와 하위 링크라고하는 두 개의 강체 링크를 연결하는 것입니다.
파란색 관절은 모션 축을 나타내고 파란색 관절은 파란색 축을 중심으로 회전 할 수 있습니다. 즉, 하위 링크가 관절을 중심으로 위아래로 회전 할 수 있습니다.
Joint는 두 개의 링크를 연결하는 것으로 1 차 및 2 차 관계로 구분해야합니다. 1 차 조인트는 상위 링크이고 하위 조인트는 하위 링크입니다. xml 형식의 설명에서이 두 링크가 존재해야합니다.
<join> 태그의 설명 구문은 다음과 같습니다.
<joint name="my_joint" type="floating">
<origin xyz="0 0 1" rpy="0 0 3.1416"/>
<parent link="link1"/>
<child link="link2"/>
<calibration rising="0.0"/>
<dynamics damping="0.0" friction="0.0"/>
<limit effort="30" velocity="1.0" lower="-2.2" upper="0.7" />
<safety_controller k_velocity="10" k_position="15" soft_lower_limit="-2.0" soft_upper_limit="0.5" />
</joint>
관절의 상위 링크와 하위 링크를 지정해야하며 관절의 다른 속성도 설정할 수 있습니다. Subtags
:
<calibration> : 관절의 절대 위치를 보정하는 데 사용되는 관절의 기준 위치;
<dynamics> : 흔히 발생하는 감쇠 값, 물리적 정적 마찰 등과 같은 관절의 물리적 특성을 설명합니다. 다이나믹 시뮬레이션에 사용됨;
<제한> : 관절 동작의 상한 및 하한 위치, 속도 제한, 토크 제한 등을 포함하여 동작의 일부 제한 값을
설명합니다 . <모방> : 관절과 기존의 관계를 설명합니다. joints;
<safety_controller> : 안전 컨트롤러 매개 변수를 설명합니다. 로봇 관절의 움직임을 보호하십시오.
3. <robot> 태그
<robot>은 전체 로봇 모델의 최상위 태그입니다. <link> 및 <joint> 태그는 모두 <robot> 태그에 포함되어야합니다. 그림과 같이 완전한 로봇 모델은 일련의 <link>와 <joint>로 구성됩니다.
로봇의 이름은 <robot> 태그에 설정할 수 있으며 기본 구문은 다음과 같습니다.
<robot name="pr2">
<link> ... </link>
<link> ... </link>
<link> ... </link>
<joint> .... </joint>
<joint> .... </joint>
<joint> .... </joint>
</robot>
4. <gazebo> 태그
<gazebo> 태그는 로봇 재료의 속성, gazebo 플러그인 등을 포함하여 Gazebo에서 로봇 모델의 시뮬레이션에 필요한 매개 변수를 설명하는 데 사용됩니다. 이 태그는 로봇 모델의 필수 부분이 아니며 Gazebo 시뮬레이션 중에 만 추가하면됩니다.
태그의 기본 구문은 다음과 같습니다.
<gazebo reference="link_1">
<material>Gz=azebo/Black</material>
</gazebo>