PX4 gazebo simulation world 변경

오늘은 저번시간에 세팅한 PX4 gazebo simulation에서 world를 변경해보고자 한다. (일종의 map이라고 생각하면 될 것 같다)

PX4 공식홈페이지의 Guide를 보고 따라할 예정이며, 기존에 세팅했을 때 같이 다운로드 된 world 파일을 이용할 예정이다.

먼저 Gazebo world 파일들은 다운받은 PX4-Autopilot 디렉토리 안에 Tools/simulation/gz/worlds에 .sdf 파일들로 존재한다. (Gazebo ignition을 사용한다고 했을때. 만약 다른 simulation을 사용하면 gz 디렉토리가 아닌 자신에게 맞는 디렉토리로 들어가면 된다.)

우리가 사용해볼 world 파일은 baylands.sdf이다.

Gazebo 실행 방법

가제보를 실행하는 방법에는 2가지 방법이 있다.

첫번째는 make 명령어를 이용하는 것이고, 두번째는 Python script를 사용해서 실행하는 것이다.

오늘은 두번째 방법을 이용해 실행할 예정이다.

Python script는 위에서 이동한 gz 디렉토리에 존재한다. 해당 디렉토리로 이동하여 Python script를 실행한다.

cd path/to/PX4-autopilot/Tools/simulation/gz
python3 simulation-gazebo

해당 코드를 실행시키면 기본적인 gazebo simulation이 실행될 것이다.

이제 파라미터를 이용해 baylands.sdf를 불러와보자.

python3 simulation-gazebo --world baylands

그러면 아래와 같은 world가 설정된 시뮬레이션이 실행될 것이다.

Screenshot from 2024-05-17 22-18-33

이제 드론 모델을 불러와보자. 사용할 모델은 depth 카메라가 달려있는 드론이다.

Python script를 실행시킨 터미널을 종료하지 않은 상태로 새로운 터미널을 열고 다운받은 PX4-Autopilot 디렉토리로 이동 후 아래와 같은 명령어를 입력한다.

cd path/to/PX4-Autopilot
PX4_GZ_STANDALONE=1 PX4_SYS_AUTOSTART=4002 PX4_SIM_MODEL=x500_depth PX4_GZ_WORLD=baylands ./build/px4_sitl_default/bin/px4

아래 이미지처럼 드론이 불러와진 것을 볼 수 있다.

Screenshot from 2024-05-17 22-22-53

takeoff

이제 저번시간에 사용했던 offboard_control을 이용해 드론을 takeoff 해보자.

Screenshot from 2024-05-17 22-28-12

다른 world에서 드론 띄우기 성공!

Referece

https://docs.px4.io/main/en/sim_gazebo_gz/gazebo_models.html