px4_sim

[px4] 시뮬레이터 설치

정지홍 2025. 5. 16. 11:05

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

 

Gazebo Simulation | PX4 Guide (main)

 

docs.px4.io

 

 

 

 

 

 

 

 

1. dowunload px4 source code

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

sudo apt install --fix-missing ros-humble-mavros ros-humble-mavros-extras ros-humble-mavros-msgs
sudo geographiclib-get-geoids egm96-5

source /opt/ros/humble/setup.bash
ros2 launch mavros px4.launch fcu_url:=udp://@127.0.0.1:14540

 

 

2.QGroundControl 실행해서 연결

sudo apt install libfuse2
cd ~/Downloads

// 다운로드...
wget https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGroundControl.AppImage

// 실행권한 부여
chmod +x QGroundControl.AppImage

// 실행
./QGroundControl.AppImage &

 

3. geographiclib-tools 패키지

sudo apt update
sudo apt install geographiclib-tools

# egm96-5 (전 지구 평균 해수면 모델) 다운로드
sudo geographiclib-get-geoids egm96-5

 

 

4. mavros

sudo apt install python3-colcon-common-extensions
mkdir -p ~/mavros_ws/src
cd ~/mavros_ws/src

# Mavros 및 관련 메시지 클론
git clone https://github.com/mavlink/mavros.git -b ros2
git clone https://github.com/ros-geographic-info/geographic_info.git

# 의존성 설치
cd ~/mavros_ws
rosdep update
rosdep install --from-paths src --ignore-src -r -y

# 빌드
colcon build --symlink-install

 

 

 

2. Dockerfile작성

# 1. Ubuntu 22.04 베이스 이미지
FROM ubuntu:22.04

# 2. 비대화형 모드
ENV DEBIAN_FRONTEND=noninteractive

# 3. 필수 툴 설치 및 미러 설정
RUN sed -i \
      -e 's|http://archive.ubuntu.com/ubuntu|http://kr.archive.ubuntu.com/ubuntu|g' \
      -e 's|http://security.ubuntu.com/ubuntu|http://kr.archive.ubuntu.com/ubuntu|g' \
      /etc/apt/sources.list \
 && apt-get update \
 && apt-get install -y --no-install-recommends \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg2 \
      lsb-release \
 && rm -rf /var/lib/apt/lists/*

# 4. ROS 2 Humble 저장소 등록 (HTTP)
RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
      | gpg --dearmor -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 $(lsb_release -cs) main" \
      > /etc/apt/sources.list.d/ros2.list

# 5. Gazebo Harmonic(ignition-gazebo6) 저장소 등록
RUN curl -sSL https://packages.osrfoundation.org/gazebo.key \
      | gpg --dearmor -o /usr/share/keyrings/gazebo-archive-keyring.gpg \
 && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/gazebo-archive-keyring.gpg] \
      https://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" \
      > /etc/apt/sources.list.d/gazebo-stable.list

# 6. 패키지 설치: ros-base + ignition-gazebo6
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      ros-humble-ros-base \
      ignition-gazebo6 \
 && rm -rf /var/lib/apt/lists/*

# 7. 환경변수 설정: ROS 자동 소스
ENV ROS_DISTRO=humble
SHELL ["/bin/bash", "-lc"]
RUN echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc

# 8. 기본 커맨드
CMD ["bash"]