# 우분투 개발 환경

The following instructions set up a PX4 development environment on the Ubuntu Linux LTS (opens new window) versions supported by PX4. This includes: 18.04 (Bionic Beaver), 20.04 (Focal Fossa), and Ubuntu 22.04 (Jammy Jellyfish).

Bash scripts are provided to simplify the process. They are intended to be run on clean Ubuntu LTS installations, and may not work if run "on top" of an existing system, or on a different Ubuntu release.

The supported targets are:

TIP

이 설정은 PX4 개발 팀에서 지원합니다. The instructions may also work on other Debian Linux based systems.

# 영상 가이드

This video shows how to install the toolchain for NuttX and simulation targets (as covered below) along with the basic testing covered in Building PX4 Software.

# Simulation and NuttX (Pixhawk) Targets

ROS

users should first read/skip ahead to the ROS/Gazebo or ROS 2 sections.

Use the ubuntu.sh (opens new window) script to set up a development environment that allows you to build for simulators and/or the NuttX/Pixhawk toolchain. The script installs jMAVSim on all targets, Gazebo Classic 9 on Ubuntu 18.04, Gazebo Classic 11 on Ubuntu 20.04, and Gazebo "Garden" on Ubuntu 22.04.

툴체인을 설치하려면:

  1. PX4 소스 코드 다운로드합니다:

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

Note

The environment setup scripts in the source usually work for recent PX4 releases. If working with an older version of PX4 you may need to get the source code specific to your release.

  1. 인수 없이 (bash 셸에서) ubuntu.sh를 실행합니다.
    bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
    
    • 스크립트가 진행되는 동안 모든 프롬프트를 확인합니다.
    • --no-nuttx--no-sim-tools 옵션을 사용하여 NuttX 및/또는 시뮬레이션 도구를 생략할 수 있습니다.
  2. 완료되면 컴퓨터를 재부팅합니다.
DETAILS

Additional notes These notes are provided "for information only":

  • If you want to use Gazebo on Ubuntu 20.04 you can add it manually. See Gazebo > Installation.

  • 다음과 같이 gcc 버전을 확인하여 NuttX 설치를 확인할 수 있습니다.

    $arm-none-eabi-gcc --version
    
    arm-none-eabi-gcc (GNU Arm Embedded Toolchain 9-2020-q2-update) 9.3.1 20200408 (release)
    Copyright (C) 2019 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
  • 어쨌든 PX4 소스 코드가 필요합니다. 그러나 모든 소스 코드를 가져오지 않고 개발 환경을 설정하려는 경우 대신 ubuntu.sh (opens new window)requirements.txt (opens new window)를 다운로드한 다음 ubuntu.sh를 실행할 수 있습니다.:

    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt
    bash ubuntu.sh
    

# 라즈베리파이

The following instructions explain how to set up a build toolchain for RasPi on Ubuntu 18.04.

WARNING

Ubuntu 20.04(focal)용으로 빌드하려면 docker를 사용하여야 합니다(Ubuntu 20.04의 GCC 도구 체인은 PX4를 빌드할 수 있지만 생성된 바이너리 파일은 실제 라즈베리파이에서 실행하기에는 너무 새롭습니다). 자세한 내용은 PilotPi with Raspberry Pi OS 개발자 빠른 시작 > docker를 사용한 대체 빌드 방법을 참고하십시오.

라즈베리파이에 대한 공통 종속성을 얻으려면:

  1. PX4 소스 저장소의 requirements.txt (opens new window) (/Tools/setup/)를 다운로드합니다. ubuntu.sh (opens new window)
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/master/Tools/setup/ubuntu.sh
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/master/Tools/setup/requirements.txt
    
  2. 터미널에서 ubuntu.sh를 실행하여 공통 종속성만 가져옵니다.
    bash ubuntu.sh --no-nuttx --no-sim-tools
    
  3. 그런 다음 다음 섹션에 설명된 대로 크로스 컴파일러(GCC 또는 clang)를 설정합니다.

# GCC (armhf)

Ubuntu 소프트웨어 리포지토리는 미리 컴파일된 도구 모음 세트를 제공합니다. Ubuntu Focal은 완전히 지원되지 않는 기본 설치로 gcc-9-arm-linux-gnueabihf를 제공하므로 gcc-8-arm-linux-gnueabihf를 수동으로 설치하고, 기본 도구 모음으로 설정합니다. 이 가이드는 이전 Ubuntu 릴리스(Bionic)에도 적용됩니다. 다음 지침에서는 arm-linux-gnueabihf 버전을 설치하지 않았다고 가정하고, update-alternatives를 사용하여 기본 실행 파일을 설정합니다. 터미널 명령을 사용하여 설치합니다.

sudo apt-get install -y gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf

기본값으로 설정합니다.

sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-8 100 --slave /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-8
sudo update-alternatives --config arm-linux-gnueabihf-gcc

# GCC (aarch64)

ARM64 장치용 PX4를 빌드하려면 이 섹션이 필요합니다.

sudo apt-get install -y gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-8 100 --slave /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-8
sudo update-alternatives --config aarch64-linux-gnu-gcc

# Clang (선택 사항)

먼저 GCC를 설치합니다(clang을 사용하여야 함).

아래와 같이 Ubuntu 소프트웨어 리포지토리에서 clang을 가져오는 것이 좋습니다.

sudo apt-get install clang

Example below for building PX4 firmware out of tree, using CMake.

cd <PATH-TO-PX4-SRC>
mkdir build/px4_raspberrypi_default_clang
cd build/px4_raspberrypi_default_clang
cmake \
-G"Unix Makefiles" \
-DCONFIG=px4_raspberrypi_default \
-UCMAKE_C_COMPILER \
-DCMAKE_C_COMPILER=clang \
-UCMAKE_CXX_COMPILER \
-DCMAKE_CXX_COMPILER=clang++ \
../..
make

# 상세 정보

라즈베리파이에서 PX4를 개발 정보(PX4 기본 빌드 포함)는 다음을 참고하십시오.

# ROS 2

Information about ROS 2 setup and development with PX4 can be found in the ROS 2 User Guide.

Generally speaking if you're working with hardware and don't need to modify PX4 itself, then you do not need a PX4 development environment (dependencies for working with ROS 2 are included and built into PX4 firmware by default).

You will need to install the normal development simulator environment in order to work with the PX4 simulator.

# ROS/Gazebo Classic

This section explains how to install ROS 1 with PX4. ROS 1 full desktop builds come with Gazebo Classic, so normally you will not install PX4 simulator dependencies yourself!

# ROS Noetic/Ubuntu 20.04

If you're working with ROS Noetic (opens new window) on Ubuntu 20.04:

  1. Install PX4 without the simulator toolchain:

    1. Download PX4 Source Code:

      git clone https://github.com/PX4/PX4-Autopilot.git --recursive
      
    2. Run the ubuntu.sh the --no-sim-tools (and optionally --no-nuttx):

      bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx
      
      • Acknowledge any prompts as the script progress.
    3. Restart the computer on completion.

  2. You may need to install the following additional dependencies:

    sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y
    
  3. Follow the Noetic Installation instructions (opens new window) (ros-noetic-desktop-full is recommended).

  4. Intall MAVROS by following the MAVROS Installation Guide.

# ROS Melodic/Ubuntu 18.04

If you're working with ROS "Melodic on Ubuntu 18.04:

  1. Download the ubuntu_sim_ros_melodic.sh (opens new window) script in a bash shell:

    wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
    
  2. 스크립트를 실행하십시오:

    bash ubuntu_sim_ros_melodic.sh
    

    스크립트가 진행되는 동안 일부 프롬프트를 확인하여야 합니다.

Note

  • ROS Melodic is installed with Gazebo (Classic) 9 by default.
  • catkin(ROS 빌드 시스템) 작업 공간은 **~/catkin_ws/**에 생성됩니다.
  • 스크립트는 ROS Wiki "Melodic" Ubuntu 페이지 (opens new window)의 지침을 사용합니다.

# 다음 단계

명령줄 도구 모음 설정후, 다음을 수행합니다.

  • VSCode를 설치합니다(명령줄에 IDE 사용을 선호하는 경우).
  • Install the QGroundControl Daily Build (opens new window) :::tip The daily build includes development tools that hidden in release builds. 또한, 릴리스 빌드에서 아직 지원되지 않는 새로운 PX4 기능에 대한 액세스를 제공할 수도 있습니다. :::
  • 빌드 지침을 계속 진행합니다.