# 우분투 개발 환경

The following instructions set up a PX4 development environment on Ubuntu Linux 18.04 and 20.04. 이 환경은 대부분의 PX4 타켓 빌드에 사용됩니다.

TIP

이 설정은 PX4 개발 팀에서 지원합니다.

PX4 개발을 지원하는 OS 버전은 [Ubuntu Linux LTS](https://wiki.ubuntu.com/LTS) 18.04(Bionic Beaver)와 20.04(Focal Fossa)입니다. ROS(1)의 경우 Ubuntu LTS 18.04(전용)가 지원됩니다.

이 지침은 다른 Debian Linux 기반 시스템에서도 작동해야 하지만, 이는공식적으로 지원되지 않습니다.

# 영상 가이드

이 동영상은 PX4 소프트웨어 빌드에서 다루는 기본 테스트와 함께 NuttX 및 시뮬레이션 대상(아래에서 설명)을 위한 도구 모음 설치 방법을 보여줍니다.

@유투브 (opens new window)

# Bash 스크립트

다양한 플랫폼에서 개발 환경을 쉽게 설치하는 Bash 스크립트가 제공됩니다. 그것들은 깨끗한 Ubuntu LTS 설치본에서 실행하기 위한 것입니다.

스크립트 설명
ubuntu.sh (opens new window) Gazebo 9jMAVSim 시뮬레이터과 NuttX/Pixhawk 도구를 설치합니다. Fast DDS에 대한 종속성을 포함하지 않습니다.
ubuntu_sim_ros_melodic.sh (opens new window) Ubuntu 18.04 LTS 에만 ROS "Melodic" 및 PX4를 설치합니다.
Ubuntu 20.04</2> 이상에서는 사용하지 마십시오!

Note

스크립트가 기존 시스템의 "상단에" 설치된 경우 또는 다른 Ubuntu 릴리스에 설치된 경우 작동하지 않을 수 있습니다.

# Gazebo, JMAVSim 및 NuttX(Pixhawk) 타겟

Fast DDS에 대한 종속성을 포함하지 않습니다. Gazebo 9jMAVSim 시뮬레이터과 NuttX/Pixhawk 도구를 설치합니다.

ROS

사용자는 ROS/Gazebo에 대한 지침을 따라야 합니다.

툴체인을 설치하려면:

  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. 완료되면 컴퓨터를 재부팅합니다.

Note

These are additional "for your information" notes. They only explain the implementation.

  • 스크립트는 Gazebo 9를 설치합니다(gazebosim.org 지침 (opens new window)에 따름). Gazebo 7, 8도 지원되지만 권장되지는 않습니다.
  • 다음과 같이 gcc 버전을 확인하여 NuttX 설치를 확인할 수 있습니다.
     $arm-none-eabi-gcc --version
    
     arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
     Copyright (C) 2017 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/master/Tools/setup/ubuntu.sh
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/master/Tools/setup/requirements.txt
    bash ubuntu.sh
    

:::<!-- Do we need to add to our scripts or can we assume correct version installs over? Remove any old versions of the arm-none-eabi toolchain.

sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa

-->

# 라즈베리파이

다음 지침은 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

아래는 CMake를 사용하여 트리에서 PX4 펌웨어를 빌드하는 예제입니다.

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/Gazebo

이 섹션에서는 Ubuntu 18.04에서 ROS "Melodic"과 PX4를 설치 방법을 설명합니다.

ROS

빌드는 특정 Ubuntu 버전에 연결되어 있습니다! ROS Melodic은 Ubuntu 18.04에만 설치할 수 있습니다.

개발 툴체인을 설치하려면:

  1. bash 셸에서 스크립트를 다운로드합니다.
    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은 기본적으로 Gazebo9와 함께 설치됩니다.
  • catkin(ROS 빌드 시스템) 작업 공간은 **~/catkin_ws/**에 생성됩니다.
  • 스크립트는 ROS Wiki "Melodic" Ubuntu 페이지 (opens new window)의 지침을 사용합니다.

# Fast DDS 설치

ROS2(또는 일부 다른 RTPS/DDS 시스템)와 함께 PX4를 사용하는 경우 eProsima Fast DDS (opens new window)가 필요합니다.

Fast DDS 설치 방법에 따라 설치합니다.

# 다음 단계

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

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