mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-26 04:53:33 +08:00
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -0,0 +1,196 @@
|
||||
# 소스 코드 관리
|
||||
|
||||
## 분기 모델
|
||||
|
||||
PX4 프로젝트는 3가지 Git 분기 모델을 사용합니다.
|
||||
|
||||
- [main](https://github.com/PX4/PX4-Autopilot/tree/main) is by default unstable and sees rapid development.
|
||||
- [beta](https://github.com/PX4/PX4-Autopilot/tree/beta) has been thoroughly tested. 비행 테스터를 위한 것입니다.
|
||||
- [stable](https://github.com/PX4/PX4-Autopilot/tree/stable) points to the last release.
|
||||
|
||||
We try to retain a [linear history through rebases](https://www.atlassian.com/git/tutorials/rewriting-history) and avoid the [Github flow](https://docs.github.com/en/get-started/quickstart/github-flow).
|
||||
그러나, 전세계의 역동적인 개발팀과 수시로 병합 작업을 진행합니다.
|
||||
|
||||
To contribute new functionality, [sign up for Github](https://docs.github.com/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account), then [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) the repository, [create a new branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository), add your [changes as commits](#commits-and-commit-messages), and finally [send a pull request](#pull-requests).
|
||||
Changes will be merged when they pass our [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) tests.
|
||||
|
||||
All code contributions have to be under the permissive [BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause) and all code must not impose any further constraints on the use.
|
||||
|
||||
## Code Style
|
||||
|
||||
PX4 uses the [Google C++ style guide](https://google.github.io/styleguide/cppguide.html), with the following (minimal) modifications:
|
||||
|
||||
::: info
|
||||
|
||||
Not all PX4 source code matches the style guide, but any _new code_ that you write should do so — in both new and existing files.
|
||||
If you update an existing file you are not required to make the whole file comply with the style guide, just the code you've modified.
|
||||
|
||||
:::
|
||||
|
||||
### Tabs
|
||||
|
||||
- Tabs are used for indentation (equivalent to 8 spaces).
|
||||
- Spaces are used for alignment.
|
||||
|
||||
### Line Length
|
||||
|
||||
- Maximum line length is 120 characters.
|
||||
|
||||
### File Extensions
|
||||
|
||||
- Source files use extension `*.cpp` instead of `*.cc`.
|
||||
|
||||
### Function and Method Names
|
||||
|
||||
- `lowerCamelCase()` is used for functions and methods to _visually_ distinguish them from `ClassConstructors()` and `ClassNames`.
|
||||
|
||||
### Private Class Member Variable Names
|
||||
|
||||
- `_underscore_prefixed_snake_case` is used for private class member variable names, as oppose to `underscore_postfixed_`.
|
||||
|
||||
### Class Privacy Keywords
|
||||
|
||||
- _zero_ spaces before `public:`, `private:`, or `protected:` keywords.
|
||||
|
||||
### Example Code Snippet
|
||||
|
||||
```cpp
|
||||
class MyClass {
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Description of what this function does.
|
||||
*
|
||||
* @param[in] input_param Clear description of the input [units]
|
||||
* @return Whatever we are returning [units]
|
||||
*/
|
||||
float doSomething(const float input_param) const {
|
||||
const float in_scope_variable = input_param + kConstantFloat;
|
||||
return in_scope_variable * _private_member_variable;
|
||||
}
|
||||
|
||||
void setPrivateMember(const float private_member_variable) { _private_member_variable = private_member_variable; }
|
||||
|
||||
/**
|
||||
* @return Whatever we are "getting" [units]
|
||||
*/
|
||||
float getPrivateMember() const { return _private_member_variable; }
|
||||
|
||||
private:
|
||||
|
||||
// Clear description of the constant if not completely obvious from the name [units]
|
||||
static constexpr float kConstantFloat = ...;
|
||||
|
||||
// Clear description of the variable if not completely obvious from the name [units]
|
||||
float _private_member_variable{...};
|
||||
};
|
||||
```
|
||||
|
||||
## 소스 내 문서 작업
|
||||
|
||||
PX4 개발자는 소스 내에서 적절한 문서를 작성하는 것이 좋습니다.
|
||||
|
||||
::: info
|
||||
|
||||
Source-code documentation standards are not enforced, and the code is currently inconsistently documented.
|
||||
이보다 더 나아지길 바랍니다!
|
||||
|
||||
:::
|
||||
|
||||
현재 두 가지 소스 기반 문서 유형이 있습니다.
|
||||
|
||||
- `PRINT_MODULE_*` methods are used for both module run time usage instructions and for the [Modules & Commands Reference](../modules/modules_main.md) in this guide.
|
||||
- The API is documented [in the source code here](https://github.com/PX4/PX4-Autopilot/blob/v1.8.0/src/platforms/px4_module.h#L381).
|
||||
- Good examples of usage include the [Application/Module Template](../modules/module_template.md) and the files linked from the modules reference.
|
||||
- We encourage other in-source documentation _where it adds value/is not redundant_.
|
||||
|
||||
:::tip
|
||||
|
||||
Developers should name C++ entities (classes, functions, variables etc.) such that their purpose can be inferred - reducing the need for explicit documentation.
|
||||
|
||||
|
||||
:::
|
||||
|
||||
- Do not add documentation that can trivially be inferred from C++ entity names.
|
||||
- ALWAYS specify units of variables, constants, and input/return parameters where they are defined.
|
||||
- 일반적으로 특이 사항이나 오류 처리에 대한 정보를 추가할 수 있습니다.
|
||||
- [Doxgyen](http://www.doxygen.nl/) tags should be used if documentation is needed: `@class`, `@file`, `@param`, `@return`, `@brief`, `@var`, `@see`, `@note`.
|
||||
A good example of usage is [src/modules/events/send_event.h](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/events/send_event.h).
|
||||
|
||||
Please avoid "magic numbers", for example, where does this number in the conditional come from? What about the multiplier on yaw stick input?
|
||||
|
||||
```cpp
|
||||
if (fabsf(yaw_stick_normalized_input) < 0.1f) {
|
||||
yaw_rate_setpoint = 0.0f;
|
||||
}
|
||||
else {
|
||||
yaw_rate_setpoint = 0.52f * yaw_stick_normalized_input;
|
||||
}
|
||||
```
|
||||
|
||||
Instead, define the numbers as named constants with appropriate context in the header:
|
||||
|
||||
```cpp
|
||||
// Deadzone threshold for normalized yaw stick input
|
||||
static constexpr float kYawStickDeadzone = 0.1f;
|
||||
|
||||
// [rad/s] Deadzone threshold for normalized yaw stick input
|
||||
static constexpr float kMaxYawRate = math::radians(30.0f);
|
||||
```
|
||||
|
||||
and update the source implementation.
|
||||
|
||||
```cpp
|
||||
if (fabsf(yaw_stick_normalized_input) < kYawStickDeadzone) {
|
||||
yaw_rate_setpoint = 0.0f;
|
||||
}
|
||||
else {
|
||||
yaw_rate_setpoint = kMaxYawRate * yaw_stick_normalized_input;
|
||||
}
|
||||
```
|
||||
|
||||
## 커밋과 커밋 메시지
|
||||
|
||||
Use descriptive, multi-paragraph commit messages for all non-trivial changes.
|
||||
쉽게 이해할 수 있는 한 줄 요약과 자세한 세부정보도 기록하십시오.
|
||||
|
||||
```plain
|
||||
Component: Explain the change in one sentence. Fixes #1234
|
||||
|
||||
Prepend the software component to the start of the summary
|
||||
line, either by the module name or a description of it.
|
||||
(e.g. "mc_att_ctrl" or "multicopter attitude controller").
|
||||
|
||||
If the issue number is appended as <Fixes #1234>, Github
|
||||
will automatically close the issue when the commit is
|
||||
merged to the master branch.
|
||||
|
||||
The body of the message can contain several paragraphs.
|
||||
Describe in detail what you changed. Link issues and flight
|
||||
logs either related to this fix or to the testing results
|
||||
of this commit.
|
||||
|
||||
Describe the change and why you changed it, avoid to
|
||||
paraphrase the code change (Good: "Adds an additional
|
||||
safety check for vehicles with low quality GPS reception".
|
||||
Bad: "Add gps_reception_check() function").
|
||||
|
||||
Reported-by: Name <email@px4.io>
|
||||
```
|
||||
|
||||
**Use **`git commit -s`** to sign off on all of your commits.** This will add `signed-off-by:` with your name and email as the last line.
|
||||
|
||||
This commit guide is based on best practices for the Linux Kernel and other [projects maintained](https://github.com/torvalds/subsurface-for-dirk/blob/a48494d2fbed58c751e9b7e8fbff88582f9b2d02/README#L88-L115) by Linus Torvalds.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
Github [Pull Requests (PRs)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) are the primary mechanism used to submit new functionality and bug fixes to PX4.
|
||||
|
||||
They include the new set of [commits](#commits-and-commit-messages) in your branch (relative the main branch), and a description of the changes.
|
||||
|
||||
The description should include:
|
||||
|
||||
- An overview of what the changes deliver; enough to understand the broad purpose of the code
|
||||
- Links to related issues or supporting information.
|
||||
- Information about what testing of the PR functionality has been done, with links to flight logs.
|
||||
- Where possible, the results from general [Test Flights](../test_and_ci/test_flights.md) both before and after the change.
|
||||
@@ -0,0 +1,39 @@
|
||||
# Weekly Community Q&A Call (Previously "Dev Call")
|
||||
|
||||
<script setup>
|
||||
import { useData } from 'vitepress'
|
||||
const { site } = useData();
|
||||
</script>
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page may be out out of date. <a href="https://docs.px4.io/main/en/contribute/dev_call.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
The PX4 dev team and community come together to discuss any topic of interest to the community, ranging from sorting out issues to satisfying your curiosity.
|
||||
|
||||
## Who should attend?
|
||||
|
||||
- 핵심 프로젝트 관리자
|
||||
- 구성요소 관리자
|
||||
- 테스트 팀 관리자
|
||||
- 드론코드 회원
|
||||
- Community members (you!)
|
||||
|
||||
:::tip
|
||||
The Community Q&A call is open to all interested community members.
|
||||
|
||||
개발팀과 플랫폼 개발에 기여할 수 있는 좋은 기회입니다.
|
||||
:::
|
||||
|
||||
## 회의 목적
|
||||
|
||||
We publish a forum post per meeting a week before the call on [PX4 Discuss - weekly-dev-call](https://discuss.px4.io/c/weekly-dev-call) and track the agenda write down the discussion for the day. We welcome any topics that you, as a community member may have questions about / want to discuss!
|
||||
|
||||
Please add your topics for discussion to the agenda before the meeting begins, by replying to the meeting note. This will help you formulate your questions more clearly, and allow us to think about them in advance.
|
||||
|
||||
## 일정
|
||||
|
||||
- TIME: Wednesday 17h00 CET ([subscribe to calendar](https://www.dronecode.org/calendar/))
|
||||
- **Join the call**: [https://discord.gg/BDYmr6FA6Q](https://discord.gg/BDYmr6FA6Q)
|
||||
@@ -0,0 +1,275 @@
|
||||
# 문서화에 기여
|
||||
|
||||
PX4 사용자 가이드에 대한 기여를 매우 환영합니다.
|
||||
간단한 수정 작업 뿐만 아니라, 철자 및 문법, 새로운 주제 등에서 문서화 작업이 필요합니다.
|
||||
|
||||
이 항목에서는 변경 사항을 적용하고 테스트하는 방법을 설명합니다.
|
||||
마지막에는 기본 스타일 가이드가 있습니다.
|
||||
|
||||
:::tip
|
||||
Note
|
||||
You will need a (free) [GitHub](https://github.com/) account to contribute to the guides.
|
||||
:::
|
||||
|
||||
## Github의 빠른 변경 사항
|
||||
|
||||
Simple changes to _existing content_ can be made by clicking the **Edit on GitHub** link that appears at the bottom of every page (this opens the page on Github for editing).
|
||||
|
||||

|
||||
|
||||
기존 페이지를 편집하려면:
|
||||
|
||||
1. 해당 페이지를 엽니다.
|
||||
2. Click the **Edit on GitHub** link below the page content.
|
||||
3. 파일을 편집합니다.
|
||||
4. Below the Github page editor you'll be prompted to create a separate branch and then guided to submit a _pull request_.
|
||||
|
||||
문서 팀은 요청을 검토하고, 병합하거나 업데이트하기 위하여 귀하와 협력할 것입니다.
|
||||
|
||||
## Git을 사용한 변경(새 페이지 및 이미지)
|
||||
|
||||
새 페이지 추가 또는 이미지 추가/수정을 포함하여 보다 실질적인 변경은 Github에서 수행(또는 적절하게 테스트)하는 것처럼 간단하지 않습니다.
|
||||
For these kinds of changes we suggest using the same approach as for _code_:
|
||||
|
||||
1. Use the _git_ toolchain to get the documentation source code onto your local computer.
|
||||
2. 필요한 문서를 수정합니다(추가, 변경, 삭제).
|
||||
3. _Test_ that it builds properly using Vitepress.
|
||||
4. 변경 사항에 대한 분기를 만들고 풀 요청을 만들어 문서로 다시 가져옵니다.
|
||||
|
||||
다음에는 소스 코드를 가져오고, 로컬에서 빌드(테스트용)하고, 코드를 수정하는 방법을 설명합니다.
|
||||
|
||||
### 문서 소스 코드 가져오기/보내기
|
||||
|
||||
라이브러리 소스를 로컬 컴퓨터로 가져오려면 git 명령어를 사용하여야 합니다.
|
||||
아래 지침은 git을 가져와 로컬 컴퓨터에서 사용하는 방법을 설명합니다.
|
||||
|
||||
1. Download git for your computer from [https://git-scm.com/downloads](https://git-scm.com/downloads)
|
||||
|
||||
2. [Sign up](https://github.com/join) for Github if you haven't already
|
||||
|
||||
3. Create a copy (Fork) of the [PX4 User Guide repo](https://github.com/PX4/PX4-user_guide) on Github ([instructions here](https://docs.github.com/en/get-started/quickstart/fork-a-repo)).
|
||||
|
||||
4. 복사된 저장소를 로컬 컴퓨터에 복제합니다.
|
||||
|
||||
```sh
|
||||
cd ~/wherever/
|
||||
git clone https://github.com/<your git name>/PX4-user_guide.git
|
||||
```
|
||||
|
||||
예를 들어, Github 계정이 "john_citizen"인 사용자의 PX4 사용자 가이드 포크를 복제합니다.
|
||||
|
||||
```sh
|
||||
git clone https://github.com/john_citizen/PX4-user_guide.git
|
||||
```
|
||||
|
||||
5. 로컬 저장소로 이동합니다.
|
||||
|
||||
```sh
|
||||
cd ~/wherever/PX4-user_guide
|
||||
```
|
||||
|
||||
6. Add a _remote_ called "upstream" to point to the PX4 version of the library:
|
||||
|
||||
```sh
|
||||
git remote add upstream https://github.com/PX4/PX4-user_guide.git
|
||||
```
|
||||
|
||||
:::tip
|
||||
A "remote" is a handle to a particular repository.
|
||||
The remote named _origin_ is created by default when you clone the repository, and points to _your fork_ of the guide.
|
||||
Above you create a new remote _upstream_ that points to the PX4 project version of the documents.
|
||||
|
||||
:::
|
||||
|
||||
7. 변경 사항에 대한 브랜치를 생성합니다.
|
||||
|
||||
```sh
|
||||
git checkout -b <your_feature_branch_name>
|
||||
```
|
||||
|
||||
This creates a local branch on your computer named `your_feature_branch_name`.
|
||||
|
||||
8. 필요에 따라 문서를 변경합니다(다음 섹션에서 이에 대한 일반 지침).
|
||||
|
||||
9. 변경 사항에 완료되면 "커밋"을 사용하여, 로컬 브랜치에 추가합니다.
|
||||
|
||||
```sh
|
||||
git add <file name>
|
||||
git commit -m "<your commit message>"
|
||||
```
|
||||
|
||||
For a good commit message, please refer to the [Source Code Management](../contribute/code.md#commits-and-commit-messages) section.
|
||||
|
||||
10. 로컬 분기(추가된 커밋 포함)를 Github의 분기된 저장소에 푸시합니다.
|
||||
|
||||
```sh
|
||||
git push origin your_feature_branch_name
|
||||
```
|
||||
|
||||
11. Go to your forked repository on Github in a web browser, e.g.: `https://github.com/<your git name>/PX4-user_guide.git`.
|
||||
새 분기가 분기된 저장소로 푸시되었다는 메시지가 표시되어야 합니다.
|
||||
|
||||
12. 풀 요청(PR) 생성:
|
||||
- On the right hand side of the "new branch message" (see one step before), you should see a green button saying "Compare & Create Pull Request".
|
||||
클릭합니다.
|
||||
- 풀 요청 템플릿이 생성됩니다.
|
||||
그것은 당신의 커밋을 나열하고 의미 있는 제목(하나의 커밋 PR의 경우 일반적으로 커밋 메시지)과 메시지(<span style="color:orange">어떤 이유에서 수행했는지 설명</span>)를 추가할 수 있습니다(반드시).
|
||||
Check [other pull requests](https://github.com/PX4/PX4-user_guide/pulls) for comparison)
|
||||
|
||||
13. 완료하였습니다.
|
||||
PX4 사용자 가이드 유지 관리자는 이제 귀하의 기여를 검투한 후에, 통합 여부를 결정합니다.
|
||||
때때로 변경 사항에 대한 질문을 확인하십시오.
|
||||
|
||||
### 로컬에서 라이브러리 구축
|
||||
|
||||
로컬에서 라이브러리를 빌드하여, 변경 사항이 제대로 반영되었는 지를 테스트합니다.
|
||||
|
||||
1. Install the [Vitepress prerequisites](https://vitepress.dev/guide/getting-started#prerequisites):
|
||||
|
||||
- [Nodejs 18+](https://nodejs.org/en)
|
||||
- [Yarn classic](https://classic.yarnpkg.com/en/docs/install)
|
||||
|
||||
2. 로컬 저장소로 이동합니다.
|
||||
|
||||
```sh
|
||||
cd ~/wherever/PX4-user_guide
|
||||
```
|
||||
|
||||
3. 종속성(Vuepress 포함)들을 설치합니다.
|
||||
|
||||
```sh
|
||||
yarn install
|
||||
```
|
||||
|
||||
4. Preview and serve the library:
|
||||
|
||||
```sh
|
||||
yarn docs:dev
|
||||
```
|
||||
|
||||
- Once the development/preview server has built the library (less than a minute for the first time) it will show you the URL you can preview the site on.
|
||||
This will be something like: `http://localhost:5173/px4_user_guide/`.
|
||||
- Stop serving using **CTRL+C** in the terminal prompt.
|
||||
|
||||
5. Open previewed pages in your local editor:
|
||||
|
||||
First specify a local text editor file using the `EDITOR` environment variable, before calling `yarn start` to preview the library.
|
||||
For example, on Windows command line you can enable VSCode as your default editor by entering:
|
||||
|
||||
```sh
|
||||
set EDITOR=code
|
||||
```
|
||||
|
||||
The **Open in your editor** link at the bottom of each page will then open the current page in the editor (this replaces the _Open in GitHub_ link).
|
||||
|
||||
6. 다음을 사용하여 라이브러리를 빌드합니다.
|
||||
|
||||
```sh
|
||||
# Ubuntu
|
||||
yarn docs:build
|
||||
|
||||
# Windows
|
||||
yarn docs:buildwin
|
||||
```
|
||||
|
||||
:::tip
|
||||
Use `yarn start` to preview changes _as you make them_ (documents are updated and served very quickly).
|
||||
Before submitting a PR you should also build it using `yarn docs:build`, as this can highlight issues that are not visible when using `yarn start`.
|
||||
:::
|
||||
|
||||
### 소스 코드 구조
|
||||
|
||||
The guide uses the [Vitepress](https://vitepress.dev/) toolchain.
|
||||
|
||||
개요:
|
||||
|
||||
- 페이지는 마크다운을 사용하여 별도의 파일에 작성됩니다.
|
||||
- 문법은 Github 위키에서 사용하는 것과 매우 유사합니다.
|
||||
- Vitepress also supports some [markdown extensions](https://vitepress.dev/guide/markdown#markdown-extensions).
|
||||
We try and avoid using these, except for [tips, warning, etc.](https://vitepress.dev/guide/markdown#default-title).
|
||||
This might be revisited - there are some interesting options provided!
|
||||
|
||||
- This is a [multilingual](https://vitepress.dev/guide/i18n) book:
|
||||
- 각 언어의 페이지는 관련 언어 코드의 이름이 지정된 폴더에 저장됩니다(예: 중국어의 경우 "zh", 한국어의 경우 "ko").
|
||||
- Only edit the ENGLISH (`/en`) version of files.
|
||||
We use [Crowdin](../contribute/translation.md) to manage the translations.
|
||||
|
||||
- All pages must be in an appropriately named sub-folder of `/en` (e.g. this page is in folder `en/contribute/`).
|
||||
- 이렇게 하면 다른 페이지와 이미지가 항상 동일한 상대 수준이므로 연결이 더 용이해집니다.
|
||||
|
||||
- The _structure_ of the book is defined in `SUMMARY.md`.
|
||||
|
||||
- If you add a new page to the guide you must also add an entry to this file!
|
||||
|
||||
:::tip
|
||||
This is not "standard vitepress" way to define the sidebar (the summary file is imported by [.vitepress/get_sidebar.js](https://github.com/PX4/PX4-user_guide/blob/main/.vitepress/get_sidebar.js)).
|
||||
|
||||
:::
|
||||
|
||||
- Images must be stored in a sub folder of `/assets`.
|
||||
이것은 콘텐츠 폴더에서 두 개의 폴더 아래에 있으므로, 이미지를 추가하면 다음과 같이 참조하게 됩니다.
|
||||
|
||||
```plain
|
||||

|
||||
```
|
||||
|
||||
- A file named **package.json** defines any dependencies of the build.
|
||||
|
||||
- 웹 후크는 파일이 이 저장소의 마스터 분기에 병합되어, 책이 다시 빌드될 때마다 추적하는 데 사용됩니다.
|
||||
|
||||
### 새 페이지 추가
|
||||
|
||||
When you add a new page you must also add it to `en/SUMMARY.md`!
|
||||
|
||||
## 스타일 가이드
|
||||
|
||||
1. 파일/파일명
|
||||
|
||||
- Put new markdown files in an appropriate sub-folder of `/en/`, such as `/en/contribute/`.
|
||||
폴더를 중첩하지 마십시오.
|
||||
- Put new image files in an appropriate nested sub-folder of `/assets/`.
|
||||
Deeper nesting is allowed/encouraged.
|
||||
- Use descriptive names for folders and files.
|
||||
In particular, image filenames should describe what they contain (don't name as "image1.png")
|
||||
- Use lower case filenames and separate words using underscores (`_`).
|
||||
|
||||
2. 이미지
|
||||
|
||||
- 이미지는 최대한 가장 작은 크기와 가장 낮은 해상도를 사용합니다(이렇게 하면 대역폭이 좋지 않은 사용자의 다운로드 비용이 줄어듭니다).
|
||||
- New images should be created in a sub-folder of `/assets/` (so they can be shared between translations).
|
||||
- SVG files are preferred for diagrams.
|
||||
PNG files are preferred over JPG for screenshots.
|
||||
|
||||
3. 내용
|
||||
|
||||
- Use "style" (**bold**, _emphasis_, etc.) consistently and sparingly (as little as possible).
|
||||
- **Bold** for button presses and menu definitions.
|
||||
- _Emphasis_ for tool names such as _QGroundControl_ or _prettier_.
|
||||
- `code` for file paths, and code, parameter names that aren't linked, using tools in a command line, such as `prettier`.
|
||||
- Headings and page titles should use "First Letter Capitalisation".
|
||||
- The page title should be a first level heading (`#`).
|
||||
All other headings should be h2 (`##`) or lower.
|
||||
- 제목에는 스타일을 추가하지 마십시오.
|
||||
- Don't translate the text indicating the name of an `info`, `tip` or `warning` declaration (e.g. `::: tip`) as this precise text is required to render the aside properly.
|
||||
- Break lines on sentences by preference.
|
||||
Don't break lines based on some arbitrary line length.
|
||||
- Format using _prettier_ (_VSCode_ is a has extensions can be used for this).
|
||||
|
||||
4. Videos:
|
||||
|
||||
- Youtube videos can be added using the format `<lite-youtube videoid="<youtube-video-id>" title="your title"/>` (supported via the [https://www.npmjs.com/package/lite-youtube-embed](https://www.npmjs.com/package/lite-youtube-embed) custom element, which has other parameters you can pass).
|
||||
- Use instructional videos sparingly as they date badly, and are hard to maintain.
|
||||
- Cool videos of airframes in flight are always welcome.
|
||||
|
||||
## 어디에서 변경 사항을 추가합니까?
|
||||
|
||||
Add new files in folders that cover similar topics.
|
||||
Then reference them in the sidebar (`/en/SUMMARY.md`) in line with the existing structure!
|
||||
|
||||
## 번역
|
||||
|
||||
For information about translation see: [Translation](../contribute/translation.md).
|
||||
|
||||
## 라이센스
|
||||
|
||||
All PX4/Dronecode documentation is free to use and modify under terms of the permissive [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license.
|
||||
@@ -0,0 +1,305 @@
|
||||
# GIT 예제
|
||||
|
||||
<a id="contributing_code"></a>
|
||||
|
||||
## PX4에 코드 기여
|
||||
|
||||
PX4 기능 추가 절차는 다음과 같습니다. 다음 예제를 따라 PX4에 기여 결과를 공유할 수 있습니다.
|
||||
|
||||
- [Sign up](https://github.com/join) for github if you haven't already
|
||||
|
||||
- Fork the PX4-Autopilot repo (see [here](https://docs.github.com/en/get-started/quickstart/fork-a-repo))
|
||||
|
||||
- 포크된 저장소를 로컬 컴퓨터에 복제합니다.
|
||||
|
||||
```sh
|
||||
cd ~/wherever/
|
||||
git clone https://github.com/<your git name>/PX4-Autopilot.git
|
||||
```
|
||||
|
||||
- 복제한 디렉토리로 이동하여, 하위 모듈을 초기화 및 업데이트하고, 원 업스트림 PX4-Autopilot URL을 추가합니다.
|
||||
|
||||
```sh
|
||||
cd PX4-Autopilot
|
||||
git submodule update --init --recursive
|
||||
git remote add upstream https://github.com/PX4/PX4-Autopilot.git
|
||||
```
|
||||
|
||||
- You should have now two remote repositories: One repository is called `upstream` that points to PX4/PX4-Autopilot, and one repository `origin` that points to your forked copy of the PX4 repository.
|
||||
|
||||
- 이것은 다음 명령어로 확인할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git remote -v
|
||||
```
|
||||
|
||||
- Make the changes that you want to add to the current main.
|
||||
|
||||
- 기능을 나타내는 의미 있는 이름으로 새 분기를 생성합니다.
|
||||
|
||||
```sh
|
||||
git checkout -b <your feature branch name>
|
||||
```
|
||||
|
||||
you can use the command `git branch` to make sure you're on the right branch.
|
||||
|
||||
- 해당 파일을 추가하여 커밋의 변경 사항을 추가합니다.
|
||||
|
||||
```sh
|
||||
git add <file name>
|
||||
```
|
||||
|
||||
If you prefer having a GUI to add your files see [Gitk](https://git-scm.com/book/en/v2/Git-in-Other-Environments-Graphical-Interfaces) or [`git add -p`](http://nuclearsquid.com/writings/git-add/).
|
||||
|
||||
- 변경 사항을 설명하는 메시지와 함께 추가된 파일을 커밋합니다.
|
||||
|
||||
```sh
|
||||
git commit -m "<your commit message>"
|
||||
```
|
||||
|
||||
For a good commit message, please refer to the [Source Code Management](../contribute/code.md#commits-and-commit-messages) section.
|
||||
|
||||
- Some time might have passed and the [upstream main](https://github.com/PX4/PX4-Autopilot.git) has changed.
|
||||
PX4 prefers a linear commit history and uses [git rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
|
||||
To include the newest changes from upstream in your local branch, switch to your main branch
|
||||
|
||||
```sh
|
||||
git checkout main
|
||||
```
|
||||
|
||||
Then pull the newest commits from upstream main
|
||||
|
||||
```sh
|
||||
git pull upstream main
|
||||
```
|
||||
|
||||
Now your local main is up to date.
|
||||
Switch back to your feature branch and rebase on your updated main
|
||||
|
||||
```sh
|
||||
git checkout <your feature branch name>
|
||||
git rebase main
|
||||
```
|
||||
|
||||
- 이제 로컬 커밋을 분기된 저장소로 푸시할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git push origin <your feature branch name>
|
||||
```
|
||||
|
||||
- You can verify that the push was successful by going to your forked repository in your browser: `https://github.com/<your git name>/PX4-Autopilot.git`
|
||||
|
||||
새 분기가 분기된 저장소로 푸시되었다는 메시지가 표시되어야 합니다.
|
||||
|
||||
- 이제 풀 리퀘스트(PR)를 생성합니다.
|
||||
On the right hand side of the "new branch message" (see one step before), you should see a green button saying "Compare & Create Pull Request".
|
||||
그런 다음 변경 사항을 나열하여야 하며, 의미 있는 제목(하나의 커밋 PR의 경우 일반적으로 커밋 메시지)과 메시지(<span style="color:orange">어떤 이유로 작업을 하였는 지 설명</span>)를 추가할 수 있습니다.
|
||||
Check [other pull requests](https://github.com/PX4/PX4-Autopilot/pulls) for comparison)
|
||||
|
||||
- 완료하였습니다.
|
||||
PX4 담당자가 기여 내용을 검토후, 병합 여부를 결정합니다.
|
||||
때때로 변경 사항에 대한 질문을 확인하십시오.
|
||||
|
||||
## Changing Source Trees
|
||||
|
||||
We recommend using PX4 `make` commands to switch between source code branches.
|
||||
This saves you having to remember the commands to update submodules and clean up build artifacts (build files that are not removed will result in "untracked files" errors after the switch).
|
||||
|
||||
To switch between branches:
|
||||
|
||||
1. Clean up the current branch, de-initializing submodule and removing all build artifacts:
|
||||
|
||||
```sh
|
||||
make clean
|
||||
make distclean
|
||||
```
|
||||
|
||||
2. Switch to a new branch or tag (here we first fetch the fictional branch "PR_test_branch" from the `upstream` remote):
|
||||
|
||||
```sh
|
||||
git fetch upstream PR_test_branch
|
||||
git checkout PR_test_branch
|
||||
```
|
||||
|
||||
3. Get the submodules for the new branch:
|
||||
|
||||
```sh
|
||||
make submodulesclean
|
||||
```
|
||||
|
||||
<!-- FYI: Cleaning commands in https://github.com/PX4/PX4-Autopilot/blob/main/Makefile#L494 -->
|
||||
|
||||
## 특정 릴리스 가져오기
|
||||
|
||||
Specific PX4 point releases are made as tags of the [release branches](#get-a-release-branch), and are named using the format `v<release>`.
|
||||
These are [listed on Github here](https://github.com/PX4/PX4-Autopilot/releases?q=release\&expanded=true) (or you can query all tags using `git tag -l`).
|
||||
|
||||
To get the source code for a _specific older release_ (tag):
|
||||
|
||||
1. Clone the PX4-Autopilot repo and navigate into _PX4-Autopilot_ directory:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
cd PX4-Autopilot
|
||||
```
|
||||
|
||||
:::note
|
||||
|
||||
You can reuse an existing repo rather than cloning a new one.
|
||||
In this case clean the build environment (see [changing source trees](#changing-source-trees)):
|
||||
|
||||
```sh
|
||||
make clean
|
||||
make distclean
|
||||
```
|
||||
|
||||
|
||||
:::
|
||||
|
||||
2. Checkout code for particular tag (e.g. for tag v1.13.0-beta2)
|
||||
|
||||
```sh
|
||||
git checkout v1.13.0-beta2
|
||||
```
|
||||
|
||||
3. Update submodules:
|
||||
|
||||
```sh
|
||||
make submodulesclean
|
||||
```
|
||||
|
||||
## Get a Release Branch
|
||||
|
||||
Releases branches are branched of `main`, and used to backport necessary changes from main into a release.
|
||||
The branches are named using the format `release/<release_number>` (e.g. `release/v1.13`).
|
||||
The are [listed here](https://github.com/PX4/PX4-Autopilot/branches/all?query=release).
|
||||
|
||||
To get a release branch:
|
||||
|
||||
- Clone the PX4-Autopilot repo and navigate into _PX4-Autopilot_ directory:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
cd PX4-Autopilot
|
||||
```
|
||||
|
||||
:::note
|
||||
|
||||
You can reuse an existing repo rather than cloning a new one.
|
||||
In this case clean the build environment (see [changing source trees](#changing-source-trees)):
|
||||
|
||||
```sh
|
||||
make clean
|
||||
make distclean
|
||||
```
|
||||
|
||||
|
||||
:::
|
||||
|
||||
- Fetch the desired release branch.
|
||||
For example, assuming you want the source for PX4 v1.14:
|
||||
|
||||
```sh
|
||||
git fetch origin release/1.14
|
||||
```
|
||||
|
||||
- Checkout the code for the branch
|
||||
|
||||
```sh
|
||||
git checkout release/1.14
|
||||
```
|
||||
|
||||
- Update submodules:
|
||||
|
||||
```sh
|
||||
make submodulesclean
|
||||
```
|
||||
|
||||
## 하위 모듈 업데이트
|
||||
|
||||
하위 모듈을 업데이트하는 방법에는 여러 가지가 있습니다.
|
||||
Either you clone the repository or you go in the submodule directory and follow the same procedure as in [Contributing code to PX4](#contributing_code).
|
||||
|
||||
## 하위 모듈 업데이트에 대한 풀 요청 실행
|
||||
|
||||
This is required after you have done a PR for a submodule X repository and the bug-fix / feature-add is in the current main of submodule X. Since the Firmware still points to a commit before your update, a submodule pull request is required such that the submodule used by the Firmware points to the newest commit.
|
||||
|
||||
```sh
|
||||
cd Firmware
|
||||
```
|
||||
|
||||
- 하위 모듈 업데이트에 대한 수정 사항/기능을 설명하는 새로운 분기를 만듭니다.
|
||||
|
||||
```sh
|
||||
git checkout -b pr-some-fix
|
||||
```
|
||||
|
||||
- 하위 모듈 하위 디렉토리로 이동합니다.
|
||||
|
||||
```sh
|
||||
cd <path to submodule>
|
||||
```
|
||||
|
||||
- PX4 하위 모듈이 반드시 최신 커밋을 가리킬 필요는 없습니다. Therefore, first checkout main and pull the newest upstream code.
|
||||
|
||||
```sh
|
||||
git checkout main
|
||||
git pull upstream main
|
||||
```
|
||||
|
||||
- Firmware 디렉토리로 돌아가서, 평소처럼 변경 사항을 추가, 커밋 및 푸시합니다.
|
||||
|
||||
```sh
|
||||
cd -
|
||||
git add <path to submodule>
|
||||
git commit -m "Update submodule to include ..."
|
||||
git push upstream pr-some-fix
|
||||
```
|
||||
|
||||
## 풀 요청 체크아웃
|
||||
|
||||
병합할 분기가 해당 사람의 포크에만 존재하더라도, 누군가의 풀 요청(변경 사항이 아직 병합되지 않음)을 테스트할 수 있습니다. 다음 과정을 수행합니다.
|
||||
|
||||
```sh
|
||||
git fetch upstream pull/<PR ID>/head:<branch name>
|
||||
```
|
||||
|
||||
`PR ID` is the number right next to the PR's title (without the #) and the `<branch name>` can also be found right below the `PR ID`, e.g. `<the other persons git name>:<branch name>`. 그 후 다음을 사용하여 로컬에서 새로 생성된 분기를 조회할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git branch
|
||||
```
|
||||
|
||||
그런 다음 해당 분기로 전환합니다.
|
||||
|
||||
```sh
|
||||
git checkout <branch name>
|
||||
```
|
||||
|
||||
## 일반적인 함정
|
||||
|
||||
### 분기된 저장소로 강제 푸시
|
||||
|
||||
첫 번째 풀 요청후에, PX4 커뮤니티의 사람들이 변경 사항을 검토합니다. 대부분의 경우 검토에 따라 로컬 지점을 수정하여야 함을 의미합니다. After changing the files locally, the feature branch needs to be rebased again with the most recent upstream/main. 그러나, 리베이스 후에는 더 이상 기능 분기를 분기된 저장소에 직접 푸시할 수 없지만, 대신 강제 푸시를 사용하여야 합니다.
|
||||
|
||||
```sh
|
||||
git push --force-with-lease origin <your feature branch name>
|
||||
```
|
||||
|
||||
### 리베이스 병합 충돌
|
||||
|
||||
If a conflict occurs during a `git rebase`, please refer to [this guide](https://docs.github.com/en/get-started/using-git/resolving-merge-conflicts-after-a-git-rebase).
|
||||
|
||||
### 풀 병합 충돌
|
||||
|
||||
If a conflict occurs during a `git pull`, please refer to [this guide](https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/#competing-line-change-merge-conflicts).
|
||||
|
||||
### 오래된 git 태그로 인한 빌드 오류
|
||||
|
||||
The build error `Error: PX4 version too low, expected at least vx.x.x` occurs if git tags are out of date.
|
||||
|
||||
이것은 업스트림 리포지토리 태그를 가져와서 해결할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git fetch upstream --tags
|
||||
```
|
||||
@@ -0,0 +1,29 @@
|
||||
# Community
|
||||
|
||||
<script setup>
|
||||
import { useData } from 'vitepress'
|
||||
const { site } = useData();
|
||||
</script>
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page may be out out of date. <a href="https://docs.px4.io/main/en/contribute/">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Welcome to the PX4 Community!
|
||||
|
||||
:::tip
|
||||
We pledge to adhere to the [PX4 code of conduct](https://github.com/PX4/PX4-Autopilot/blob/main/CODE_OF_CONDUCT.md), which aims to foster an open and welcoming environment.
|
||||
:::
|
||||
|
||||
This section contains information about how you can meet with the community and contribute to PX4:
|
||||
|
||||
- [Dev Call](../contribute/dev_call.md) - Discuss architecture, pull requests, impacting issues with the dev team
|
||||
- [Maintainers](./maintainers.md) - Maintainers of PX4 Subsystems and Ecosystem
|
||||
- [Support](../contribute/support.md) - Get help and raise issues
|
||||
- [Source Code Management](../contribute/code.md) - Work with PX4 code
|
||||
- [Documentation](../contribute/docs.md) - Improve the docs
|
||||
- [Translation](../contribute/translation.md) - Translate using Crowdin
|
||||
- [Terminology/Notation](../contribute/notation.md) - Terms and symbols used in the docs
|
||||
- [Licenses](../contribute/licenses.md) - PX4 and Pixhawk licensing
|
||||
@@ -0,0 +1,12 @@
|
||||
# 라이센스
|
||||
|
||||
:::info
|
||||
All code contributions must be made under the permissive [BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause) and must not impose any further constraints on its use.
|
||||
:::
|
||||
|
||||
시스템의 구성요소들에 대한 라이선스를 문서로 정리합니다.
|
||||
|
||||
- [PX4 Flight Stack](https://github.com/PX4/PX4-Autopilot) — BSD
|
||||
- [PX4 Middleware](https://github.com/PX4/PX4-Autopilot) — BSD
|
||||
- [Pixhawk Hardware](https://github.com/PX4/Hardware) — CC-BY-SA 3.0
|
||||
- [PX4 User Guide](https://github.com/PX4/PX4-user_guide) (Documentation) — [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
||||
@@ -0,0 +1,76 @@
|
||||
# Maintainer Role
|
||||
|
||||
Dronecode maintainers have technical leadership and responsibility for specific areas of PX4, and for other ecosystem components such as MAVLink, MAVSDK, QGroundControl, and others.
|
||||
The maintainer role is defined by the community with help and supervision from the [Dronecode Foundation](https://www.dronecode.org/).
|
||||
|
||||
To find the most up-to-date maintainers list, visit [PX4-Autopilot README](https://github.com/PX4/PX4-Autopilot#maintenance-team).
|
||||
|
||||
## Recruitment Process
|
||||
|
||||
If you would like to join the PX4 maintainers team or if you want to nominate someone else follow the steps below:
|
||||
|
||||
1. Read the [role description](#dronecode-maintainer-role-description), and make sure you understand the responsibilities of the role.
|
||||
2. To nominate yourself, reach out to one of the maintainers (see the complete list in the [PX4-Autopilot README](https://github.com/PX4/PX4-Autopilot#maintenance-team)), and seek their sponsorship.
|
||||
3. Express your interest in becoming a maintainer, and specify which area you would like to maintain.
|
||||
4. The sponsoring maintainer needs to bring this up for discussion in one of the [weekly developer calls](dev_call.md).
|
||||
The maintainer team will vote on the call to determine whether to accept you as a maintainer.
|
||||
|
||||
## Onboarding Process
|
||||
|
||||
Once accepted every maintainers will go through the following process:
|
||||
|
||||
1. **Discord** server admin will grant you the `dev team` role, which gives you:
|
||||
1. Basic admin privileges on discord.
|
||||
2. Access to the `#maintainers` channel.
|
||||
2. You will be given access to the GitHub team: "[`Dev Team`](https://github.com/orgs/PX4/teams/dev-team)" which grants you:
|
||||
1. Permission to merge the PR of any of PX4 workspace repositories after it's approved
|
||||
2. Permission to trigger GitHub actions when a new contributor opens a PR.
|
||||
3. Permission to edit Issue/PR contents.
|
||||
3. **Add your info to official PX4 channels**:
|
||||
1. Include your information on the PX4 [README](https://github.com/PX4/PX4-Autopilot/blob/main/README.md) next to the rest of the team
|
||||
2. Listed on the [Maintainers section](https://px4.io/community/maintainers/) of the PX4 website.
|
||||
3. Add your information to the internal Dronecode database of maintainers to keep you in sync.
|
||||
4. Community introduction to the new maintainer in the form of a forum post, which is promoted through ever growing official channels
|
||||
|
||||
## Dronecode Maintainer Role Description
|
||||
|
||||
### 요약
|
||||
|
||||
Maintainers lead/manage the development of a **specific category (referred to as category below)** of any Open Source Projects hosted within the Dronecode Foundation, such as the PX4 Autopilot.
|
||||
|
||||
### Responsibilities
|
||||
|
||||
1. Take charge of overseeing the development in their category.
|
||||
2. Provide guidance/advice on community members in their category.
|
||||
3. Review relevant pull requests and issues from the community on GitHub.
|
||||
4. Coordinate with the maintainer group.
|
||||
5. Keep regular attendance on [weekly meetings ](dev_call.md).
|
||||
6. Help create and maintain a roadmap for the project your represent.
|
||||
7. Uphold the [Code of Conduct](https://github.com/Dronecode/foundation/blob/main/CODE-OF-CONDUCT.md) of our community.
|
||||
|
||||
### Qualifications
|
||||
|
||||
1. Proven track record of valuable contributions.
|
||||
2. Domain expertise in the category field.
|
||||
3. Good overview of the project you are applying to.
|
||||
4. You need to manage approval from your employer when relevant.
|
||||
|
||||
### Perks
|
||||
|
||||
1. **Official recognition** as the maintainer in Dronecode/PX4 website, documentation, community and social media.
|
||||
2. **Github & Discord privileges** (described in the [onboarding process](#onboarding-process)).
|
||||
3. Priority placement to the yearly **PX4 Developer Summit** scholarship which helps you with travel reimbursement.
|
||||
|
||||
### Tools we Provide to Assist You
|
||||
|
||||
Dronecode will provide the following tools to help you:
|
||||
|
||||
1. **Community survey**: If you need any insight into the community's opinion, we will send out social media posts, mailing lists, announcements in Discord server to get that answer for you.
|
||||
2. **Workflow automation**: We will provide workflow for PR/Issue review & tagging process to help you.
|
||||
|
||||
And as always, don't hesitate to reach out if you need help with anything.
|
||||
We are here for you!
|
||||
|
||||
### Point of Contact
|
||||
|
||||
Regarding questions about the maintainer role, please contact the maintainer team.
|
||||
@@ -0,0 +1,98 @@
|
||||
# 용어
|
||||
|
||||
다음 용어, 기호, 문자는 이 안내서 전체의 텍스트와 다이어그램에 활용합니다.
|
||||
|
||||
## 표기법
|
||||
|
||||
- Bold face variables indicate vectors or matrices and non-bold face variables represent scalars.
|
||||
- The default frame for each variable is the local frame: $\ell{}$.
|
||||
Right [superscripts](#superscripts) represent the coordinate frame.
|
||||
If no right superscript is present, then the default frame $\ell{}$ is assumed.
|
||||
An exception is given by Rotation Matrices, where the lower right subscripts indicates the current frame and the right superscripts the target frame.
|
||||
- Variables and subscripts can share the same letter, but they always have different meaning.
|
||||
|
||||
## 약어
|
||||
|
||||
| 약어 | 설명 |
|
||||
| ----------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| AOA | Angle Of Attack(받음각). Also named _alpha_. |
|
||||
| AOS | Angle Of Sideslip(횡활각). Also named _beta_. |
|
||||
| FRD | 오른손 법칙에 따라 기체의 앞부분을 X축, 오른쪽 방향을 Y축, 아래 방향을 Z축으로 두는 좌표계 |
|
||||
| FW | Fixed-wing (planes). |
|
||||
| MC | MultiCopter(멀티콥터). |
|
||||
| MPC 또는 MCPC | MultiCopter Position Controller(멀티콥터 위치 조종기). MPC는 모델 예측 제어라고도 합니다. |
|
||||
| NED | 오른손 법칙에 따라 X 축은 진북을 가리키고 Y 축은 진동, Z 축은 아래를 가리키는 좌표계 |
|
||||
| PID | 비례, 적분 및 미분에 따른 콘트롤러. |
|
||||
|
||||
## 기호
|
||||
|
||||
| 변수 | 설명 |
|
||||
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| $x,y,z$ | x, y, z 각 좌표를 따르는 변환 |
|
||||
| $\boldsymbol{\mathrm{r}}$ | $$\boldsymbol{\mathrm{r}} = [x \quad y \quad z]^{T}$$ 위치 벡터 |
|
||||
| $\boldsymbol{\mathrm{v}}$ | $$\boldsymbol{\mathrm{v}} = \boldsymbol{\mathrm{\dot{r}}}$$ 속도 벡터 |
|
||||
| $\boldsymbol{\mathrm{a}}$ | $$\boldsymbol{\mathrm{a}} = \boldsymbol{\mathrm{\dot{v}}} = \boldsymbol{\mathrm{\ddot{r}}}$$ 가속도 벡터 |
|
||||
| $\alpha$ | Angle of Attack(공격 각도, AOA). |
|
||||
| $b$ | 주익 길이 (끝에서 끝까지) |
|
||||
| $S$ | 주익 넓이 |
|
||||
| $AR$ | 가로 세로 비율: $AR = b^2/S$ |
|
||||
| $\beta$ | 횡활각(Angle of sideslip, AOS). |
|
||||
| $c$ | 주익현 길이 |
|
||||
| $\delta$ | 기체 역학 제어 표면 이탈각(손실각). 손실 값이 양인 경우 음수 값의 모멘트를 생성합니다. |
|
||||
| $\phi,\theta,\psi$ | 오일러 각. roll(=Bank), pitch, yaw(=Heading). |
|
||||
| $\Psi$ | 자세 벡터: $\Psi = [\phi \quad \theta \quad \psi]^T$ |
|
||||
| $X,Y,Z$ | x, y, z 축 방향의 힘 |
|
||||
| $\boldsymbol{\mathrm{F}}$ | $$\boldsymbol{\mathrm{F}}= [X \quad Y \quad Z]^T$$ 힘 벡터 |
|
||||
| $D$ | 견인력 |
|
||||
| $C$ | 측풍력 |
|
||||
| $L$ | 양력 |
|
||||
| $g$ | 중력 |
|
||||
| $l,m,n$ | x, y, z 좌표 축 모멘트 |
|
||||
| $\boldsymbol{\mathrm{M}}$ | $$\boldsymbol{\mathrm{M}} = [l \quad m \quad n]^T$$ 모멘트 벡터 |
|
||||
| $M$ | 마하 계수. Can be neglected for scale aircraft. |
|
||||
| $\boldsymbol{\mathrm{q}}$ | 4원수 벡터. |
|
||||
| $\boldsymbol{\mathrm{\tilde{q}}}$ | Hamiltonian attitude quaternion (see `1` below) |
|
||||
| $\boldsymbol{\mathrm{R}}_\ell^b$ | 회전 행렬. $$\ell$$ 프레임에서 $$b$$ 프레임으로의 벡터 회전. $\boldsymbol{\mathrm{v}}^b = \boldsymbol{\mathrm{R}}_\ell^b \boldsymbol{\mathrm{v}}^\ell$ |
|
||||
| $\Lambda$ | 끝단 젖힘각 |
|
||||
| $\lambda$ | 테이퍼 비율: $\lambda = c_{tip}/c_{root}$ |
|
||||
| $w$ | 풍속 |
|
||||
| $p,q,r$ | 몸통 축 x, y, z 주변의 각율(각가속도) |
|
||||
| $\boldsymbol{\omega}^b$ | 기체 프레임의 각속도 벡터: $\boldsymbol{\omega}^b = [p \quad q \quad r]^T$ |
|
||||
| $\boldsymbol{\mathrm{x}}$ | 일반 상태 벡터 |
|
||||
|
||||
- `1` Hamiltonian attitude quaternion. $$\boldsymbol{\mathrm{\tilde{q}}} = (q_0, q_1, q_2, q_3) = (q_0, \boldsymbol{\mathrm{q}})$$.<br> $$\boldsymbol{\mathrm{\tilde{q}}}$$ 로컬 프레임 $$\ell$$에 상대적인 고도를 설명합니다. To represent a vector in local frame given a vector in body frame, the following operation can be used: $\boldsymbol{\mathrm{\tilde{v}}}^\ell = \boldsymbol{\mathrm{\tilde{q}}} \, \boldsymbol{\mathrm{\tilde{v}}}^b \, \boldsymbol{\mathrm{\tilde{q}}}^_{}$ (or $\boldsymbol{\mathrm{\tilde{q}}}^{-1}{}$ instead of $\boldsymbol{\mathrm{\tilde{q}}}^_{}$ if $\boldsymbol{\mathrm{\tilde{q}}}{}$ is not unitary). $\boldsymbol{\mathrm{\tilde{v}}}{}$ represents a _quaternionized_ vector: $\boldsymbol{\mathrm{\tilde{v}}} = (0,\boldsymbol{\mathrm{v}})$
|
||||
|
||||
### 아래첨자 / 인덱스
|
||||
|
||||
| 아래첨자 / 인덱스 | 설명 |
|
||||
| ---------- | ------------------------------------------------- |
|
||||
| $a$ | 보조익(Aileron). |
|
||||
| $e$ | 승강타(Elevator). |
|
||||
| $r$ | 방향타(Rudder). |
|
||||
| $Aero$ | 비행 역학 |
|
||||
| $T$ | 추진력 |
|
||||
| $w$ | 상대 항속 |
|
||||
| $x,y,z$ | x, y, z 축 벡터 요소 |
|
||||
| $N,E,D$ | 북, 동, 하 글로벌 방위에 따른 벡터 요소 |
|
||||
|
||||
<a id="superscripts"></a>
|
||||
|
||||
### 위첨자 / 인덱스
|
||||
|
||||
| 위첨자 / 인덱스 | 설명 |
|
||||
| --------- | ---------------- |
|
||||
| $\ell$ | 로컬 프레임 PX4 기본 변수 |
|
||||
| $b$ | 바디 프레임 |
|
||||
| $w$ | 윈드 프레임 |
|
||||
|
||||
## 장식 기호
|
||||
|
||||
| 장식 기호 | 설명 |
|
||||
| ------------------------------- | ------ |
|
||||
| $()^\*$ | 켤레 복소수 |
|
||||
| $\dot{()}$ | 시간 미분 |
|
||||
| $\hat{()}$ | 추정 |
|
||||
| $\bar{()}$ | 평균 |
|
||||
| $()^{-1}$ | 역행렬 |
|
||||
| $()^T$ | 전치행렬 |
|
||||
| $\tilde{()}$ | 쿼터니온 |
|
||||
@@ -0,0 +1,49 @@
|
||||
# 지원
|
||||
|
||||
<script setup>
|
||||
import { useData } from 'vitepress'
|
||||
const { site } = useData();
|
||||
</script>
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page may be out out of date. <a href="https://docs.px4.io/main/en/contribute/support.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
이 절에서는 핵심 개발팀과 커뮤니티의 지원을 받는 방법을 알려드립니다.
|
||||
|
||||
## 포럼 및 채팅
|
||||
|
||||
The core development team and community are active on the following channels:
|
||||
|
||||
- [PX4 Discuss Forum](https://discuss.px4.io/) - Post here first!
|
||||
- [PX4 Discord](https://discord.gg/dronecode) - Post here if you don't get a response in discuss within a few days (include a link to your forum topic).
|
||||
|
||||
:::tip
|
||||
The Discuss Forum is much preferred because it is indexed by search engines and serves as a common knowledge base.
|
||||
:::
|
||||
|
||||
## 문제 진단
|
||||
|
||||
문제의 원인이 무엇인지 확실하지 않고 문제 분석의 도움을 원하시면,
|
||||
|
||||
- Upload logs to [Flight Log Review](https://logs.px4.io/)
|
||||
- Open a discussion on [PX4 Discuss](https://discuss.px4.io/c/flight-testing/) with a flight report and links to logs.
|
||||
- The dev team may prompt you to [raise an issue](#issue-bug-reporting) if the problem is caused by a bug.
|
||||
|
||||
## Issue & Bug Reporting
|
||||
|
||||
- Upload logs to [Flight Log Review](https://logs.px4.io/)
|
||||
- [Open a Github Issue](https://github.com/PX4/PX4-Autopilot/issues).
|
||||
This must include a flight report with as much detail as possible (enough for the issue to be reproduced) and links to your logs on Flight review.
|
||||
|
||||
## 주간 온라인 개발자 회의
|
||||
|
||||
:::tip
|
||||
Developers are most welcome to attend the [weekly dev call](../contribute/dev_call.md) (and other [developer events](../index.md#calendar-events)) to engage more deeply with the project.
|
||||
:::
|
||||
|
||||
The [Dev Call](../contribute/dev_call.md) is a weekly meeting attended by the PX4 dev team to discuss platform technical details, coordinate activities and perform in-depth analysis.
|
||||
|
||||
There is also space in the agenda to discuss pull requests, major impacting issues and Q&A.
|
||||
@@ -0,0 +1,72 @@
|
||||
# 번역
|
||||
|
||||
We'd love your help to translate _QGroundControl_, PX4 Metadata (in QGC), and our guides for PX4, _QGroundControl_ and MAVLink!
|
||||
|
||||
Our docs (and _QGroundControl_) use the [Crowdin](https://crowdin.com) online tool for translation.
|
||||
Crowdin은 Github에서 원본 문서를 가져와서 번역하고 검토(승인)할 문서들을 편집할 수 있습니다.
|
||||
|
||||
Crowdin은 "풀 요청"(이 단계에서 개발팀이 주기적으로 검토하고 승인해줍니다) 방식으로 Github에 번역한 문서를 내보냅니다.
|
||||
내보낸 출력물에는 번역한 원본 문서와 번역한 문자열로 바뀌어 승인한 텍스트가 들어있습니다(예: 문자열을 번역하지 않았거나 바꾸지 않았다면, 영문으로 그대로 나타냅니다).
|
||||
|
||||
:::tip
|
||||
You will need a (free) [Crowdin account](https://crowdin.com/join) account to join the translation team!
|
||||
:::
|
||||
|
||||
:::info
|
||||
The benefit of this system is that the translation closely tracks the source documents.
|
||||
독자 입장에서는 오래되어 때가 지난 번역을 보고 오해할 일이 없습니다.
|
||||
:::
|
||||
|
||||
## 시작하기
|
||||
|
||||
번역 팀에 참여하는 방법은 다음과 같습니다:
|
||||
|
||||
1. Join Crowdin: [https://crowdin.com/join](https://crowdin.com/join)
|
||||
|
||||
2. 참여를 원하는 번역 프로젝트를 엽니다:
|
||||
- [QGroundControl](https://crowdin.com/project/qgroundcontrol) — QGroundControl UI and hard coded strings.
|
||||
- [PX4-Metadata-Translations](https://crowdin.com/project/px4-metadata-translations) — PX4 parameter and event descriptions in QGroundControl.
|
||||
- [PX4 User Guide](https://crowdin.com/project/px4-user-guide)
|
||||
- [QGroundControl Developer Guide](https://crowdin.com/project/qgroundcontrol-developer-guide)
|
||||
- [QGroundControl User Guide](https://crowdin.com/project/qgroundcontrol-user-guide)
|
||||
- [MAVLink Guide](https://crowdin.com/project/mavlink)
|
||||
|
||||
3. 번역하려는 언어를 선택합니다
|
||||
|
||||
4. Click the **Join** button (next to the text _You must join the translators team to be able to participate in this project_)
|
||||
|
||||
::: info
|
||||
You will be notified once your application to join is accepted.
|
||||
|
||||
:::
|
||||
|
||||
5. 번역을 시작하세요!
|
||||
|
||||
## 별도 참고
|
||||
|
||||
### 접두문을 수정하지 마십시오.
|
||||
|
||||
Vuepress uses `:::` to mark the beginning of notes, tips and warning:
|
||||
|
||||
```html
|
||||
:::tip
|
||||
The text for the tip.
|
||||
:::
|
||||
```
|
||||
|
||||
The text for `:::tip` or `:::warning` etc. should not be modified as it defines the colour of the notebox.
|
||||
|
||||
## 새로운 언어 추가
|
||||
|
||||
번역 대상 언어가 없으면, 프로젝트 관리자에게 요청하십시오.(각 프로젝트 홈페이지에 연락처 링크가 있음).
|
||||
|
||||
:::warning
|
||||
번역 작업은 어렵습니다.
|
||||
새로운 언어 번역을 요청하기 전에, 번역을 도와줄 다른 사람이 있는지 찾아보십시오.
|
||||
:::
|
||||
|
||||
## 도움 받기
|
||||
|
||||
The _Crowdin_ interface is self explanatory, but there is plenty of additional information on the [knowledgeable](https://support.crowdin.com/).
|
||||
|
||||
You can also ask for help from translators and developers in the Dronecode community using [our support channels](../contribute/support.md).
|
||||
Reference in New Issue
Block a user