2023.01.19 - [컴퓨터 그래픽스] - URDF 튜토리얼(2) (Building a Movable Robot Model with URDF)
이전 게시물의 튜토리얼을 통해 로봇을 움직이게 만들 수 있었다.
이번에는 urdf 파일에 physical properties를 추가하고, collision properties를 어떻게 명시하는지 살펴보자.
1. collision
collision detect와 같은 일을 하기 위해서는 collision element properties를 추가로 설정해주어야한다.
<link name="base_link">
<visual>
<geometry>
<cylinder length="0.6" radius="0.2"/>
</geometry>
<material name="blue">
<color rgba="0 0 .8 1"/>
</material>
</visual>
<collision>
<geometry>
<cylinder length="0.6" radius="0.2"/>
</geometry>
</collision>
</link>
- collision tag는 link object의 direct subelement로 visual tag와 같은 level에 있다.
- collision element는 visual element와 같은 방식으로 shape를 정의하며, visaul element와 마찬가지로 geometry tag를 가지고 있다. geometry tag의 형식은 visual element의 geometry와 동일하다.
- collision element도 visual element와 같은 방식으로 origin tag를 지정할 수 있다.
많은 경우에 collision geometry의 origin과 visual geometry의 origin이 동일하다.
2. Physical Properties
시뮬레이션을 올바르게 하기 위해선 몇가지 physical properties를 올바르게 설정해주어야한다.
2.1 Inertia
<link name="base_link">
<visual>
<geometry>
<cylinder length="0.6" radius="0.2"/>
</geometry>
<material name="blue">
<color rgba="0 0 .8 1"/>
</material>
</visual>
<collision>
<geometry>
<cylinder length="0.6" radius="0.2"/>
</geometry>
</collision>
<inertial>
<mass value="10"/>
<inertia ixx="0.4" ixy="0.0" ixz="0.0" iyy="0.4" iyz="0.0" izz="0.2"/>
</inertial>
</link>
모든 시뮬레이션 되는 link는 inertial tag가 필요하다.
- inertial element도 link object의 subelement이다.
- mass는 kg 단위로 기술된다.
- 3X3 rotational inertia matrix 역시 inertial element로 기술된다. inertia matrix는 6개의 element로 기술되는데, 아래의 9개의 element 중 빨갛게 표시된 element들이다.
ixx | ixy | ixz |
ixy | iyy | iyz |
ixz | iyz | izz |
2.2 Contact Coefficients
link가 다른 물체와 contact 했을 때 어떻게 행동하는지도 define 해줄수 있다.
collision tag의 subelement인 contact_coefficients tag를 세팅해주면 되는데, 여기에는 3개의 attribute가 있다.
- mu : Friction coefficient
- kp : stiffness coefficient
- kd : damping coefficient
2.3 Joint Dynamics
joint가 어떻게 움직이는지도 joint의 dynmaics tag를 통해 define 해줄수 있다. 여기에는 2개의 attribute가 있다.
- friction: prismatic joint의 경우에는 단위가 Newtons이고, revolving joint의 경우에는 단위가 Newton meters이다.
- damping: prismatic joint의 경우에는 단위가 Newton seconds per meter이고, revolving joint의 경우에는 단위가 Newton meter seconds per radian이다.
명시하지 않을 경우 이 coefficients 들은 디폴트로 zero 값을 가진다.
이렇게 urdf를 사용하여 로봇을 정의할때, collision 및 physical properties를 어떻게 define하는지 알아보았다.
'연구 > 컴퓨터 그래픽스' 카테고리의 다른 글
angular velocity 구하는 방법 (0) | 2023.02.24 |
---|---|
MJCF(mujoco xml file) 분석 (0) | 2023.01.26 |
URDF 튜토리얼(2) (Building a Movable Robot Model with URDF) (0) | 2023.01.19 |
URDF 튜토리얼(1) (Building Visual Robot Model) (1) | 2023.01.19 |
PyBullet 물리엔진 튜토리얼 (0) | 2022.02.28 |