# 우분투 개발 환경

아래에서 Ubuntu Linux 18.04 amd 20.04에서 PX4 개발 환경에 대하여 설명합니다. 이 환경은 대부분의 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
    
  2. 인수 없이 (bash 셸에서) ubuntu.sh를 실행합니다.
    bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
    
    • 스크립트가 진행되는 동안 모든 프롬프트를 확인합니다.
    • --no-nuttx--no-sim-tools 옵션을 사용하여 NuttX 및/또는 시뮬레이션 도구를 생략할 수 있습니다.
  3. 완료되면 컴퓨터를 재부팅합니다.
DETAILS

정보용 참고사항

  • 스크립트는 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 사용을 선호하는 경우).
  • QGroundControl 일일 빌드 (opens new window) 설치 :::tip 일일 빌드에는 릴리스 빌드에 숨겨진 개발 도구가 포함됩니다. 또한, 릴리스 빌드에서 아직 지원되지 않는 새로운 PX4 기능에 대한 액세스를 제공할 수도 있습니다. :::
  • 빌드 지침을 계속 진행합니다.