[PX4] PX4 Autopilot 설치 가이드 - MACH-CAU/UAM GitHub Wiki

본 설치 가이드는 PX4 공식 문서를 바탕으로 작성됨을 밝힙니다.

Installation & Setup

PX4 펌웨어 개발을 위한 지원되는 ROS2 플랫폼은 Ubuntu 22.04ROS2 HumbleUbuntu 20.04ROS2 Foxy입니다. 이 문서가 작성된 2024년 기준으로 ROS2 LTS(Long Term Support) 배포판인 Humble이 권장되며 이 문서도 ROS2 Humble 기준으로 작성됨을 밝힙니다.

Note

이 문서가 작성된 시점에선 Ubuntu 22.04에서 공식적인 테스트가 많이 이뤄지지 않았기 때문에 오류가 다소 있을 수 있는 점 양해 바랍니다.

Install PX4

먼저 시뮬레이션을 사용하려면 PX4 개발 도구 체인을 설치해야 합니다.

Note

ROS2가 PX4에 기여하는 유일한 라이브러리는 px4_msgs에서 가져온 메시지 정의 집합입니다. 시뮬레이터가 필요하거나 커스텀 uORB topic을 빌드를 만드는 경우에만 PX4를 설치하면 됩니다.

먼저 Ubuntu의 기본 화면에서 Ctrl + Alt + T를 눌러 터미널을 연 후 다음 코드를 터미널에 작성합니다.

cd

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install git

# 브랜치 맞춰서
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

cd PX4-Autopilot/

make px4_sitl

Install ROS2(Humble)

Ctrl + Alt + T를 눌러 새 터미널을 연 후 다음 코드를 터미널에 작성합니다.

sudo apt update && sudo apt install locales

sudo locale-gen en_US en_US.UTF-8

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

export LANG=en_US.UTF-8

sudo apt install software-properties-common

sudo add-apt-repository universe

sudo apt update && sudo apt install curl -y

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

sudo apt update && sudo apt upgrade -y

sudo apt install ros-humble-desktop

source /opt/ros/humble/setup.bash && echo "source /opt/ros/humble/setup.bash" >> .bashrc

만일 위 설치를 하는 도중 문제가 생긴다면 다음 Installation of ROS2 Humble 공식 문서를 참조하시길 바랍니다.

몇 ROS2 라이브러리 및 패키지들은 python 코드, 라이브러리에 의존하기에 다음 코드를 터미널에서 실행시킵니다.

pip install --user -U empy==3.3.4 pyros-genmsg setuptools

Setup Micro XRCE-DDS Agent & Client

ROS2가 PX4와 통신하려면 uXRCE-DDS 클라이언트가 PX4에서 실행 중이어야 합니다. 또한 offboard-control인 경우 Companion Computer에서 실행 중인 마이크로 XRCE-DDS 에이전트에 연결되어 있어야 합니다.

Ctrl + Alt + T를 눌러 터미널을 연 후 다음 코드를 터미널에 작성합니다.

git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git

cd Micro-XRCE-DDS-Agent

mkdir build

cd build

cmake ..

make

sudo make install

sudo ldconfig /usr/local/lib/

이제부터 시뮬레이션을 켤 때마다 다음 코드를 터미널에 작성, 실행하면 uXRCE-DDS 클라이언트가 활성화되며 시뮬레이션과 ROS2가 통신할 수 있게 됩니다.

MicroXRCEAgent udp4 -p 8888

image

PX4 시뮬레이션 작동 확인

터미널을 두 개 연 후 한 창에는 uXRCE-DDS를 실행,

MicroXRCEAgent udp4 -p 8888

다른 창에선 PX4-Autopilot 디렉토리로 이동 후 다음 코드를 작성합니다.

cd ~/path_to/PX4-Autopilot

make px4_sitl gz_x500

Gazebo-Garden이 정상적으로 켜지며 드론이 보인다면 성공입니다!