본문 바로가기
Robotics/Control Theory

ROS2 × PX4로 시작하는 자율비행 드론 제어 (1) 프로젝트 소개와 환경 세팅 (Ubuntu 24.04 + ROS2 Jazzy)

by 항공학도 2025. 5. 1.

이 블로그 시리즈에서는 Gazebo + ROS 2 + PX4(MAVROS)를 활용해 드론을 제어하고, 최적 제어 알고리즘 Model Predictive Path Integral (MPPI) 를 직접 구현하는 과정을 기록합니다. 이후에는 더 진화된 강화학습(RL) 기반 제어로까지 확장하며, 최신 오픈소스 생태계가 실제 연구·개발 파이프라인에서 어떻게 유기적으로 엮이는지 보여드릴 예정입니다.

Generated by ChatGPT, super cool!

기술 스택 한눈에 보기

시뮬레이션 환경 Ignition Gazebo (Harmonic) 가상 드론·센서 모델, 물리 엔진
비행 펌웨어 PX4 v1.16 (SITL) 실시간 제어·상태 추정
미들웨어 MAVROS 2 MAVLink → ROS 2 브리지
제어 노드 ROS 2 Jazzy MPPI 및 RL 알고리즘 실행
[Gazebo (Ignition)] ←→ [PX4 SITL] ←→ [MAVROS2] ←→ [ROS2 Node (MPPI Controller)]

 

1. ROS2 Jazzy 설치

ROS2 Jazzy는 2024년에 나온 최신 (현재까지는) ROS2 배포판이다. 공식 설치 가이드를 따라 아래 명령어로 설치할 수 있습니다.

# Ubuntu Universe 저장소 활성화
sudo apt install software-properties-common
sudo add-apt-repository universe

# apt를 사용하여 ROS2 GPG 키를 추가
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 install ros-dev-tools

# ros2 설치
sudo apt update && suo apt upgrade
sudo apt install ros-jazzy-desktop

# bashrc에 추가
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc

 

2. PX4 설치 및 초기화

PX4는 드론의 제어기 역할을 하는 비행 제어 펌웨어입니다. 실제 하드웨어 없이도 테스트할 수 있도록 SITL(Software-In-The-Loop) 모드를 지원하며, 우리는 이를 기반으로 Gazebo에서 가상 드론을 띄워 실험합니다.

cd
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
cd PX4-Autopilot/
make px4_sitl

여기서 make px4_sitl 명령어는 PX4를 소프트웨어 시뮬레이션용으로 빌드하는 작업입니다. 즉, Gazebo나 jMAVSim 같은 시뮬레이터와 연동할 수 있는 실행 파일을 생성합니다. 이 파일은 실제 드론이 아닌, 우리 컴퓨터 안의 가상 드론이 MAVLink로 명령을 받아 움직일 수 있도록 만들어줍니다.

3. MAVROS 설치 및 설정

sudo apt install ros-jazzy-mavros ros-jazzy-mavros-extras

 

4. ROS2 워크스페이스 (colcon 기반) 구성

# 워크스페이스 생성 (flight_ws는 원하는 이름으로 변경)
mkdir -p ~/flight_ws/src
cd ~/flight_ws
colcon build

# 환경변수 설정
source install/setup.bash
echo "source ~/flight_ws/install/setup.bash" >> ~/.bashrc

 

이를 통해 PX4기반 드론 시뮬레이션을 위한 기본 환경 세팅에 대해 알아 보았습니다. 여기 까지 설정하면 이제 PX4를 통해 실제 하드웨어 없이도 비행 알고리즘을 시험해볼 수 있는 아주 좋은 플랫폼이 마련 된 겁니다. 이 위에 ROS2, MAVROS, 그리고 MPPI 컨트롤러를 얹어가보려고 합니다. 앞으로 PX4 Offboard 모드에 대해서 알아보고, 또 MPPI 컨트롤러를 ROS2 노드로 구현하며, 수학이 어떻게 추력을 바꿔 드론을 날게 하는지 알아보겠습니다.

 

댓글