해당 튜토리얼에서 우리는 SDF를 이용해서 우리만의 world를 만들것. 그리고 그곳에 어떻게 model을 넣는지 확인할것.
모든 SDF world는 아래와 같이 시작한다.
<?xml version="1.0" ?>
<sdf version="1.8">
<world name="world_demo">
...
...
</world>
</sdf>
처음의 2개의 태그는 XML , SDF 의 버전을 설정한다. 그리고 이후에 <world>,</world> 태그를 사이에 넣어서 정의
<physics name="1ms" type="ignored">
<max_step_size>0.001</max_step_size>
<real_time_factor>1.0</real_time_factor>
</physics>
Physics 태그는 dynamic engine의 유형(type), 속성(properties)을 지정함
name 우리는 step size가 1 milli-second인 1ms 라는 이름을 선택
type 동적(물리 엔진라이브러리)의 유형을 의미함
Ode, Bullet, Simbody 및 Dart 와 같은 옵션이 있다. (여기서는 “ignored” 로 무시)
<max_step_size>
는 시뮬레이션의 모든 시스템이 world의 상태와 상호작용할 수 있는 최대 시간.
⇒ 값이 작을수록 정확!! 하지만 계산능력이 많이 필요함
<real_time_factor>
는 시뮬레이션 시간 대 실제 시간의 비율
⇒ 해당 부분을 우리는 높은 배율로 시뮬레이션 하는것을 목표로 삼음
플러그인은 앞서 설명했듯 “코드의 덩어리”이다. 예를들어
<plugin
filename="gz-sim-physics-system"
name="gz::sim::systems::Physics">
</plugin>
플러그인 Physics
는 World의 역학을 시뮬레이션 하는데 매우 중요.