diff --git a/docs/ko/SUMMARY.md b/docs/ko/SUMMARY.md index 844175e86c..2f637e2a44 100644 --- a/docs/ko/SUMMARY.md +++ b/docs/ko/SUMMARY.md @@ -179,6 +179,7 @@ - [CubePilot Cube Orange (CubePilot)](flight_controller/cubepilot_cube_orange.md) - [CubePilot Cube Yellow (CubePilot)](flight_controller/cubepilot_cube_yellow.md) - [Cube 배선 퀵 스타트](assembly/quick_start_cube.md) + - [Gear Up AirBrainH743](flight_controller/gearup_airbrainh743.md) - [Holybro Kakute H7v2](flight_controller/kakuteh7v2.md) - [Holybro Kakute H7mini](flight_controller/kakuteh7mini.md) - [Holybro Kakute H7](flight_controller/kakuteh7.md) @@ -255,7 +256,7 @@ - [Benewake TFmini 라이다](sensor/tfmini.md) - [LeddarOne 라이다](sensor/leddar_one.md) - [Lidar-Lite](sensor/lidar_lite.md) - - [Lightware Lidars (SF/LW)](sensor/sfxx_lidar.md) + - [Lightware Lidars (SF/LW/GRF)](sensor/sfxx_lidar.md) - [Lightware SF45 Rotary Lidar](sensor/sf45_rotating_lidar.md) - [TeraRanger ](sensor/teraranger.md) - [✘ Lanbao PSK-CM8JL65-CC5](sensor/cm8jl65_ir_distance_sensor.md) @@ -932,6 +933,7 @@ - [라이센스](contribute/licenses.md) - [출시](releases/index.md) + - [Release Process](releases/release_process.md) - [main (alpha)](releases/main.md) - [1.17 (alpha)](releases/1.17.md) - [1.16 (stable)](releases/1.16.md) diff --git a/docs/ko/companion_computer/ark_jetson_pab_carrier.md b/docs/ko/companion_computer/ark_jetson_pab_carrier.md index 95a4e26d51..99f683dcb3 100644 --- a/docs/ko/companion_computer/ark_jetson_pab_carrier.md +++ b/docs/ko/companion_computer/ark_jetson_pab_carrier.md @@ -12,19 +12,16 @@ The [ARK Jetson Pixhawk Autopilot Bus (PAB) Carrier](https://arkelectron.gitbook ## 사양 - **Power Requirements** - - 5V - 4A minimum (dependent on usage and peripherals) - **Additional Features** - - Pixhawk Autopilot Bus (PAB) Form Factor ([PAB Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-010%20Pixhawk%20Autopilot%20Bus%20Standard.pdf)) - MicroSD Slot - USA-built, NDAA compliant - Integrated 1W heater for sensor stability in extreme conditions - **Physical Details** - - Weight: - Without Jetson and Flight Controller – 80g - With Jetson, no heatsink or Flight Controller – 108g diff --git a/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md b/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md index 8229e9454e..0f062e642b 100644 --- a/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md +++ b/docs/ko/companion_computer/holybro_pixhawk_rpi_cm4_baseboard.md @@ -170,7 +170,6 @@ To enable this MAVLink instance on the FC:  2. [Set the parameters](../advanced_config/parameters.md): - - `MAV_1_CONFIG` = `102` - `MAV_1_MODE = 2` - `SER_TEL2_BAUD` = `921600` @@ -184,7 +183,6 @@ On the RPi side: 1. Connect to the RPi (using WiFi, a router, or a WiFi Dongle). 2. Enable the RPi serial port by running `RPi-config` - - Go to `3 Interface Options`, then `I6 Serial Port`. Then choose: - `login shell accessible over serial → No` diff --git a/docs/ko/companion_computer/pixhawk_rpi.md b/docs/ko/companion_computer/pixhawk_rpi.md index 8dc16701da..070dbd0b3e 100644 --- a/docs/ko/companion_computer/pixhawk_rpi.md +++ b/docs/ko/companion_computer/pixhawk_rpi.md @@ -145,7 +145,6 @@ Enter the following commands (in sequence) a terminal to configure Ubuntu for RP ``` 3. Go to the **Interface Option** and then click **Serial Port**. - - Select **No** to disable serial login shell. - Select **Yes** to enable the serial interface. - Click **Finish** and restart the RPi. @@ -164,7 +163,6 @@ Enter the following commands (in sequence) a terminal to configure Ubuntu for RP ``` 6. Then save the file and restart the RPi. - - In `nano` you can save the file using the following sequence of keyboard shortcuts: **ctrl+x**, **ctrl+y**, **Enter**. 7. Check that the serial port is available. diff --git a/docs/ko/computer_vision/collision_prevention.md b/docs/ko/computer_vision/collision_prevention.md index b8e9a0ef2a..12d78ce16b 100644 --- a/docs/ko/computer_vision/collision_prevention.md +++ b/docs/ko/computer_vision/collision_prevention.md @@ -214,7 +214,6 @@ The Lua script works by extracting the `obstacle_distance_fused` data at each ti 3. Open PlotJuggler and navigate to the **Tools > Reactive Script Editor** section. In the **Script Editor** tab, add following scripts in the appropriate sections: - - **Global code, executed once:** ```lua diff --git a/docs/ko/concept/flight_tasks.md b/docs/ko/concept/flight_tasks.md index d8316fa1ba..6ffe26163b 100644 --- a/docs/ko/concept/flight_tasks.md +++ b/docs/ko/concept/flight_tasks.md @@ -33,7 +33,6 @@ The instructions below might be used to create a task named _MyTask_: - FlightTaskMyTask.cpp 3. Update **CMakeLists.txt** for the new task - - Copy the contents of the **CMakeLists.txt** for another task - e.g. [Orbit/CMakeLists.txt](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/flight_mode_manager/tasks/Orbit/CMakeLists.txt) - Update the copyright to the current year diff --git a/docs/ko/config/_autotune.md b/docs/ko/config/_autotune.md index ec9ec69753..932f43efc7 100644 --- a/docs/ko/config/_autotune.md +++ b/docs/ko/config/_autotune.md @@ -84,16 +84,9 @@ The test steps are: If an [Enable/Disable Autotune Switch](#enable-disable-autotune-switch) is configured you can just toggle the switch to the "enabled" position. - 1. In QGroundControl, open the menu **Vehicle setup > PID Tuning**: -  - - 2. Select either the _Rate Controller_ or _Attitude Controller_ tabs. - - 3. Ensure that the **Autotune enabled** button is enabled (this will display the **Autotune** button and remove the manual tuning selectors). - - 4. Read the warning popup and click on **OK** to start tuning. +  2. Select either the _Rate Controller_ or _Attitude Controller_ tabs. 3. Ensure that the **Autotune enabled** button is enabled (this will display the **Autotune** button and remove the manual tuning selectors). 4. Read the warning popup and click on **OK** to start tuning.
+
A simulator implemented in C++ as a PX4 module directly in the Firmware [code](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/simulation/simulator_sih). It can be ran in SITL directly on the computer or as an alternative to HITL offering a hard real-time simulation directly on the hardware autopilot.
Supported Vehicles: Quad, Hexa, Plane, Tailsitter, Standard VTOL, Ackermann Rover
| -| [FlightGear](../sim_flightgear/index.md) |A simulator that provides physically and visually realistic simulations. In particular it can simulate many weather conditions, including thunderstorms, snow, rain and hail, and can also simulate thermals and different types of atmospheric flows. [Multi-vehicle simulation](../sim_flightgear/multi_vehicle.md) is also supported.
Supported Vehicles: Plane, Autogyro, Rover
| -| [JMAVSim](../sim_jmavsim/index.md) |A simple multirotor/quad simulator. This was previously part of the PX4 development toolchain but was removed in favour of [Gazebo](../sim_gazebo_gz/index.md).
Supported Vehicles: Quad
| -| [JSBSim](../sim_jsbsim/index.md) |A simulator that provides advanced flight dynamics models. This can be used to model realistic flight dynamics based on wind tunnel data.
Supported Vehicles: Plane, Quad, Hex
| -| [AirSim](../sim_airsim/index.md) |A cross platform simulator that provides physically and visually realistic simulations. This simulator is resource intensive, and requires a significantly more powerful computer than the other simulators described here.
Supported Vehicles: Iris (MultiRotor model and a configuration for PX4 QuadRotor in the X configuration).
| +| 시뮬레이터 | 설명 | +| ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [Simulation-In-Hardware](../sim_sih/index.md) (SIH) |A simulator implemented in C++ as a PX4 module directly in the Firmware [code](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/simulation/simulator_sih). It can be ran in SITL directly on the computer or as an alternative to HITL offering a hard real-time simulation directly on the hardware autopilot.
Supported Vehicles: Quad, Hexa, Plane, Tailsitter, Standard VTOL, Ackermann Rover
| +| [FlightGear](../sim_flightgear/index.md) |A simulator that provides physically and visually realistic simulations. In particular it can simulate many weather conditions, including thunderstorms, snow, rain and hail, and can also simulate thermals and different types of atmospheric flows. [Multi-vehicle simulation](../sim_flightgear/multi_vehicle.md) is also supported.
Supported Vehicles: Plane, Autogyro, Rover
| +| [JMAVSim](../sim_jmavsim/index.md) |A simple multirotor/quad simulator. This was previously part of the PX4 development toolchain but was removed in favour of [Gazebo](../sim_gazebo_gz/index.md).
Supported Vehicles: Quad
| +| [JSBSim](../sim_jsbsim/index.md) |A simulator that provides advanced flight dynamics models. This can be used to model realistic flight dynamics based on wind tunnel data.
Supported Vehicles: Plane, Quad, Hex
| +| [AirSim](../sim_airsim/index.md) |A cross platform simulator that provides physically and visually realistic simulations. This simulator is resource intensive, and requires a significantly more powerful computer than the other simulators described here.
Supported Vehicles: Iris (MultiRotor model and a configuration for PX4 QuadRotor in the X configuration).
| diff --git a/docs/ko/smart_batteries/rotoye_batmon.md b/docs/ko/smart_batteries/rotoye_batmon.md index 896ef46e27..b4ba96fd30 100644 --- a/docs/ko/smart_batteries/rotoye_batmon.md +++ b/docs/ko/smart_batteries/rotoye_batmon.md @@ -47,7 +47,7 @@ In _QGroundControl_: 3. Start the [batt_smbus driver](../modules/modules_driver.md) in the console. 예를 들어 동일한 버스에서 두 개의 BatMon을 실행하려면: ```sh - batt_smbus start -X -b 1 -a 11 # External bus 1, address 0x0b + batt_smbus start -X -b 1 -a 11 # External bus 1, address 0x0b batt_smbus start -X -b 1 -a 12 # External bus 1, address 0x0c ``` diff --git a/docs/ko/test_and_ci/continous_integration.md b/docs/ko/test_and_ci/continous_integration.md index 92a888659c..e2a8d03076 100644 --- a/docs/ko/test_and_ci/continous_integration.md +++ b/docs/ko/test_and_ci/continous_integration.md @@ -1,3 +1,194 @@ # PX4 지속 통합 -PX4 빌드 및 테스트는 GitHub 작업과 Jenkins 서버를 사용합니다. +PX4 uses GitHub Actions for continuous integration, with different workflows handling code builds, testing, and documentation. + +## Documentation CI + +The documentation pipeline handles building, deploying, and translating the PX4 User Guide. +All documentation CI is consolidated into a single orchestrator workflow organized in tiers. + +### Docs Orchestrator + +**Workflow file:** [`docs-orchestrator.yml`](https://github.com/PX4/PX4-Autopilot/blob/main/.github/workflows/docs-orchestrator.yml) + +This is the main documentation workflow. It runs on pull requests, pushes to `main` and `release/**` branches, and manual `workflow_dispatch` triggers, performing different jobs depending on the trigger event. +Jobs are organized in tiers, where each tier depends on the previous one completing successfully. + +#### Tier Structure + +| Tier | Job | PR | Push / Dispatch | 설명 | +| ---- | -------------- | ----------------------------------------------- | --------------------------------- | -------------------------------------------------------------------------------- | +| T1 | Detect Changes | Yes | — | Checks if source code files changed (triggers metadata regen) | +| T2 | PR Metadata | Yes (conditional) | — | Builds PX4 SITL and regenerates all auto-generated docs | +| T2 | Metadata Sync | — | Yes | Builds PX4 SITL, regenerates metadata, auto-commits | +| T2 | Link Check | Yes | — | Checks for broken links in changed files, posts PR comment | +| T3 | Build Site | Yes (if docs/source changed) | Yes (after T2) | Builds the VitePress documentation site | +| T4 | Deploy | — | Yes | Deploys to AWS S3 | + +#### Pull Request Flow + +When a PR modifies files in `docs/**` or the orchestrator workflow file itself, the workflow validates the changes: + +```txt +PR Event + │ + ▼ +┌─────────────────────────────────────┐ +│ T1: Detect Changes │ +│ • Checks if src/msg/ROMFS changed │ +└─────────────────┬───────────────────┘ + │ + ┌───────┴───────┐ + ▼ ▼ +┌──────────────────┐ ┌─────────────────────────┐ +│ T2: PR Metadata │ │ T2: Link Check (~30s) │ +│ (conditional) │ │ • Detects changed .md │ +│ • Builds SITL │ │ • Runs filtered check │ +│ • Generates │ │ • Posts PR comment │ +│ metadata │ │ • Runs full check │ +│ • Builds │ └────────────┬────────────┘ +│ failsafe web │ │ +└────────┬─────────┘ │ + └───────────┬────────────┘ + ▼ +┌─────────────────────────────────────┐ +│ T3: Build Site (~7-10 min) │ +│ (skipped if only workflow YAML │ +│ changed — no docs/source changes) │ +│ • Builds VitePress site │ +│ • Verifies no build errors │ +└─────────────────┬───────────────────┘ + │ + ▼ + DONE +``` + +| Job | Duration | 설명 | +| -------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **T1: Detect Changes** | ~10s | Determines if metadata regeneration is needed | +| **T2: PR Metadata** | ~10-15m | Rebuilds PX4 SITL and regenerates all metadata (only if source files changed) | +| **T2: Link Check** | ~30s | Checks for broken links in changed markdown files and posts a sticky comment to the PR (skipped on fork PRs) | +| **T3: Build Site** | ~7-10m | Builds the VitePress site to verify there are no build errors. Skipped when only the workflow YAML changed (no docs or source changes). | + +#### Push / Dispatch Flow (main/release branches) + +When changes are pushed to `main` or `release/**` branches (or a `workflow_dispatch` is triggered), the workflow regenerates metadata, builds, and deploys. +Only `main` and `release/*` branches are accepted for deploy — other branches will fail with a clear error. + +```txt +Push / Dispatch Event + │ + ▼ +┌─────────────────────────────────────┐ +│ T2: Metadata Sync (~10-15 min) │ +│ • Builds px4_sitl_default │ +│ • Generates parameter/airframe/ │ +│ module documentation │ +│ • Builds failsafe web simulator │ +│ • Formats with Prettier │ +│ • Auto-commits if changes detected │ +│ (with [skip ci]) │ +└─────────────────┬───────────────────┘ + │ + ▼ +┌─────────────────────────────────────┐ +│ T3: Build Site (~7-10 min) │ +│ • Builds VitePress site │ +│ • Uploads build artifact │ +└─────────────────┬───────────────────┘ + │ + ▼ +┌─────────────────────────────────────┐ +│ T4: Deploy (~3 min) │ +│ • Syncs to AWS S3 │ +│ • HTML: 60s cache │ +│ • Assets: 24h immutable cache │ +└─────────────────────────────────────┘ +``` + +| Job | Duration | 설명 | +| ------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------ | +| **T2: Metadata Sync** | ~10-15m | Rebuilds PX4 SITL, regenerates all metadata, formats with Prettier, auto-commits with `[skip ci]` | +| **T3: Build Site** | ~7-10m | Builds the VitePress documentation site | +| **T4: Deploy** | ~3m | Syncs built site to AWS S3 (HTML: 60s cache, assets: 24h cache) | + +Crowdin upload is handled by a separate workflow (see below). + +#### Generated Metadata + +The metadata regeneration job creates the following auto-generated documentation: + +| 형식 | 출력 | 설명 | +| ------------------ | ------------------------------------------------ | --------------------------------------------------------------- | +| 매개변수 | `docs/en/advanced_config/parameter_reference.md` | Complete parameter reference | +| 기체 | `docs/en/airframes/airframe_reference.md` | Airframe configurations | +| 모듈 | `docs/en/modules/*.md` | Module documentation | +| Messages | `docs/en/msg_docs/*.md` | uORB message documentation | +| uORB Graphs | `docs/public/middleware/*.json` | Topic dependency graphs | +| Failsafe Simulator | `docs/public/config/failsafe/*` | Interactive failsafe simulator (WebAssembly) | + +:::warning +Do not manually edit the auto-generated files listed above. They are overwritten on every push to main. +::: + +#### Path Triggers + +The workflow triggers on different paths depending on the event: + +**Push** (main/release branches): + +| Path | Reason | +| ------------------------ | ------------------------------------- | +| `docs/**` | Documentation source files | +| `src/**` | Source code changes affect metadata | +| `msg/**` | Message definitions affect metadata | +| `ROMFS/**` | ROMFS files affect metadata | +| `Tools/module_config/**` | Module configuration affects metadata | + +**Pull Request:** + +| Path | Reason | +| ----------------------------------------- | ------------------------------ | +| `docs/**` | Documentation source files | +| `.github/workflows/docs-orchestrator.yml` | Changes to the workflow itself | + +Source-only changes on PRs are detected at runtime by the T1: Detect Changes job using [dorny/paths-filter](https://github.com/dorny/paths-filter), which conditionally triggers the T2: PR Metadata job. + +### Crowdin Download Workflow + +**Workflow file:** [`docs_crowdin_download.yml`](https://github.com/PX4/PX4-Autopilot/blob/main/.github/workflows/docs_crowdin_download.yml) + +This scheduled workflow downloads completed translations from Crowdin and creates pull requests. + +| 설정 | Value | +| -------------------- | ---------------------------------------------------------------------------------------------------------------- | +| **Schedule** | Every Sunday at 00:00 UTC | +| **Target Languages** | Korean (ko), Ukrainian (uk), Chinese Simplified (zh-CN) | + +**Process:** + +1. Downloads translations for each target language from Crowdin +2. Creates a separate PR for each language with new translations +3. PRs are labeled "Documentation" and assigned for review + +### Caching Strategy + +The workflows use caching to speed up builds: + +| Cache | Size | Purpose | +| --------------------------------- | --------------------- | -------------------------------------------------- | +| ccache | 1GB | C++ compilation cache for SITL builds | +| node_modules | ~26MB | Node.js dependencies for VitePress | + +### Infrastructure + +Jobs run on [runs-on](https://runs-on.com/) self-hosted runners with S3 cache: + +| Job | Runner | +| ---------------------------------- | ------------------------------------------------- | +| T1: Detect Changes | ubuntu-latest | +| T2: PR Metadata | 4 CPU (with px4-dev container) | +| T2: Metadata Sync | 4 CPU (with px4-dev container) | +| T2: Link Check | ubuntu-latest | +| T3: Build Site | 4 CPU | +| T4: Deploy | ubuntu-latest | diff --git a/docs/ko/test_and_ci/docker.md b/docs/ko/test_and_ci/docker.md index 8d650a97a0..453366512b 100644 --- a/docs/ko/test_and_ci/docker.md +++ b/docs/ko/test_and_ci/docker.md @@ -1,12 +1,11 @@ # PX4 도커 컨테이너 -Docker containers are provided for the complete [PX4 development toolchain](../dev_setup/dev_env.md#supported-targets) including NuttX and Linux based hardware, [Gazebo Classic](../sim_gazebo_classic/index.md) simulation, and [ROS](../simulation/ros_interface.md). +Docker containers are provided for the complete [PX4 development toolchain](../dev_setup/dev_env.md#supported-targets) including NuttX and Linux based hardware, [Gazebo](../sim_gazebo_gz/index.md) simulation, and [ROS 2](../ros2/user_guide.md). This topic shows how to use the [available docker containers](#px4_containers) to access the build environment in a local Linux computer. :::info -Dockerfiles and README can be found on [Github here](https://github.com/PX4/PX4-containers/tree/master?tab=readme-ov-file#container-hierarchy). -They are built automatically on [Docker Hub](https://hub.docker.com/u/px4io/). +The recommended `px4-dev` container is built from the [Dockerfile in the PX4-Autopilot source tree](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/Dockerfile) by the [Container build workflow](https://github.com/PX4/PX4-Autopilot/actions/workflows/dev_container.yml). ::: ## 준비 사항 @@ -35,33 +34,36 @@ sudo usermod -aG docker $USER # Log in/out again before using docker! ``` -## Container Hierarchy {#px4_containers} +## px4-dev Container (Recommended) {#px4_containers} -The available containers are on [GitHub here](https://github.com/PX4/PX4-containers/tree/master?tab=readme-ov-file#container-hierarchy). +The **`px4-dev`** container is the recommended container for building PX4 firmware. +It is a single, multi-architecture container (linux/amd64 and linux/arm64) based on Ubuntu 24.04 that includes everything needed to build PX4 for NuttX hardware targets. -이를 통하여 다양한 빌드 대상 및 구성을 테스트할 수 있습니다(포함된 도구는 이름에서 유추할 수 있음). -The containers are hierarchical, such that containers have the functionality of their parents. -For example, the partial hierarchy below shows that the docker container with NuttX build tools (`px4-dev-nuttx-focal`) does not include ROS 2, while the simulation containers do: +It is published to both registries simultaneously: -```plain -- px4io/px4-dev-base-focal - - px4io/px4-dev-nuttx-focal - - px4io/px4-dev-simulation-focal - - px4io/px4-dev-ros-noetic - - px4io/px4-dev-ros2-foxy - - px4io/px4-dev-ros2-rolling -- px4io/px4-dev-base-jammy - - px4io/px4-dev-nuttx-jammy -``` +- **GitHub Container Registry:** [ghcr.io/px4/px4-dev](https://github.com/PX4/PX4-Autopilot/pkgs/container/px4-dev) +- **Docker Hub:** [px4io/px4-dev](https://hub.docker.com/r/px4io/px4-dev) -The most recent version can be accessed using the `latest` tag: `px4io/px4-dev-nuttx-focal:latest` -(available tags are listed for each container on _hub.docker.com_. -For example, the `px4io/px4-dev-nuttx-focal` tags can be found on [hub.docker.com here](https://hub.docker.com/r/px4io/px4-dev-nuttx-focal/tags?page=1&ordering=last_updated)). +The container includes: + +- Ubuntu 24.04 base +- ARM cross-compiler (`gcc-arm-none-eabi`) and Xtensa compiler (for ESP32 targets) +- Build tools: `cmake`, `ninja`, `ccache`, `make` +- Python 3 with PX4 build dependencies +- NuttX toolchain libraries (`libnewlib-arm-none-eabi`, etc.) + +The container is built from the [Dockerfile](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/Dockerfile) in the PX4 source tree using the [Container build workflow](https://github.com/PX4/PX4-Autopilot/actions/workflows/dev_container.yml). +Images are tagged with the PX4 version (e.g. `px4io/px4-dev:v1.16.0`). :::tip -Typically you should use a recent container, but not necessarily the `latest` (as this changes too often). +A `px4-sim` container with simulation tools (Gazebo Harmonic) is planned to complement `px4-dev` for simulation workflows. ::: +### Legacy Containers + +The older per-distro containers from [PX4/PX4-containers](https://github.com/PX4/PX4-containers) (e.g. `px4-dev-nuttx-jammy`, `px4-dev-ros2-humble`, etc.) are no longer recommended. +They will be replaced by `px4-dev` (for builds) and the upcoming `px4-sim` (for simulation). + ## 도커 컨테이너 활용 도커 컨테이너에서 실행되는 툴체인을 사용하여 호스트 컴퓨터에서 PX4 빌드 방법을 설명합니다. @@ -121,7 +123,7 @@ docker run -it --privileged \ - `