diff --git a/clover/launch/aruco.launch b/clover/launch/aruco.launch
index 821d3fcf..75f8165e 100644
--- a/clover/launch/aruco.launch
+++ b/clover/launch/aruco.launch
@@ -8,8 +8,11 @@
+
+
+
-
+
@@ -26,7 +29,7 @@
-
+
@@ -41,11 +44,11 @@
-
-
+
+
-
-
+
+
diff --git a/clover/launch/clover.launch b/clover/launch/clover.launch
index bbf77e8b..58a05f3e 100644
--- a/clover/launch/clover.launch
+++ b/clover/launch/clover.launch
@@ -12,6 +12,7 @@
+
@@ -33,7 +34,10 @@
-
+
+
+
+
diff --git a/clover/src/selfcheck.py b/clover/src/selfcheck.py
index 30febd6f..db3605c1 100755
--- a/clover/src/selfcheck.py
+++ b/clover/src/selfcheck.py
@@ -195,24 +195,27 @@ def check_fcu():
failure('no connection to the FCU (check wiring)')
return
+ clover_tag = re.compile(r'-cl[oe]ver\.\d+$')
+ clover_fw = False
+
# Make sure the console is available to us
mavlink_exec('\n')
version_str = mavlink_exec('ver all')
if version_str == '':
info('no version data available from SITL')
- r = re.compile(r'^FW (git tag|version): (v?\d\.\d\.\d.*)$')
- is_clover_firmware = False
- for ver_line in version_str.split('\n'):
- match = r.search(ver_line)
- if match is not None:
- field, version = match.groups()
- info('firmware %s: %s' % (field, version))
- if 'clover' in version or 'clever' in version:
- is_clover_firmware = True
+ for line in version_str.split('\n'):
+ if line.startswith('FW version: '):
+ info(line[len('FW version: '):])
+ elif line.startswith('FW git tag: '): # only Clover's firmware
+ tag = line[len('FW git tag: '):]
+ clover_fw = clover_tag.search(tag)
+ info(tag)
+ elif line.startswith('HW arch: '):
+ info(line[len('HW arch: '):])
- if not is_clover_firmware:
- failure('not running Clover PX4 firmware, https://clover.coex.tech/firmware')
+ if not clover_fw:
+ info('not Clover PX4 firmware, check https://clover.coex.tech/firmware')
est = get_param('SYS_MC_EST_GROUP')
if est == 1:
diff --git a/clover/src/vpe_publisher.cpp b/clover/src/vpe_publisher.cpp
index 0c032dcd..500fddc9 100644
--- a/clover/src/vpe_publisher.cpp
+++ b/clover/src/vpe_publisher.cpp
@@ -141,11 +141,11 @@ int main(int argc, char **argv) {
vpe_pub = nh_priv.advertise("vpe", 1);
//vpe_cov_pub = nh_priv_.advertise("pose_cov_pub", 1);
- if (nh_priv.param("publish_zero", false)) {
+ if (nh_priv.param("force_init", false) || nh_priv.param("publish_zero", false)) { // publish_zero is old name
// publish zero to initialize the local position
zero_timer = nh.createTimer(ros::Duration(0.1), &publishZero);
- publish_zero_timout = ros::Duration(nh_priv.param("publish_zero_timout", 5.0));
- publish_zero_duration = ros::Duration(nh_priv.param("publish_zero_duration", 5.0));
+ publish_zero_timout = ros::Duration(nh_priv.param("force_init_timeout", 5.0));
+ publish_zero_duration = ros::Duration(nh_priv.param("force_init_duration", 5.0));
local_position_sub = nh.subscribe("mavros/local_position/pose", 1, &localPositionCallback);
}
diff --git a/docs/assets/qgc-params.png b/docs/assets/qgc-params.png
deleted file mode 100644
index dd30f324..00000000
Binary files a/docs/assets/qgc-params.png and /dev/null differ
diff --git a/docs/en/parameters.md b/docs/en/parameters.md
index d05c7690..ace6af4a 100644
--- a/docs/en/parameters.md
+++ b/docs/en/parameters.md
@@ -1,20 +1,64 @@
# PX4 Parameters
-Main article: https://dev.px4.io/en/advanced/parameter_reference.html
+Full documentation on PX4 parameters: https://docs.px4.io/master/en/advanced_config/parameter_reference.html.
-> **Note** This is a description some of the most important PX4 parameters as of version 1.8.0. The full list is available at the link above.
+For changing PX4 parameters, use QGroundControl software, [connect to Clover over Wi-Fi](gcs_bridge.md) or USB. Go to *Vehicle Setup* panel (click on the QGroundControl logo in the top-left corner) and choose *Parameters* menu.
-To change PX4 parameters, you can use the QGroundControl application [by connecting to Clover via Wi-Fi](gcs_bridge.md):
+## Recommended values
-
+### Common parameters
-## Main parameters
+|Parameter|Value|Comment|
+|-|-|-|
+|`SENS_FLOW_ROT`|0 (*No rotation*)|If using *PX4Flow* hardware, keep the default value|
+|`SENS_FLOW_MINHGT`|0.01|For [VL53L1X](laser.md) rangefinder|
+|`SENS_FLOW_MAXHGT`|4.0|For [VL53L1X](laser.md) rangefinder|
+|`SENS_FLOW_MAXR`|10.0||
+|`SYS_HAS_MAG`|0|If impossible to run the magnetometer (*No mags found* error)|
-The most important parameters are listed in this paragraph.
+### Estimator subsystem parameters
-`SYS_MC_EST_GROUP` – select the estimator module.
+In case of using LPE ([COEX patched firmware](firmware.md)):
-This is a group of modules that calculates the current state of the copter using readings from the sensors. The copter state includes:
+|Parameter|Value|Comment|
+|-|-|-|
+|`LPE_FUSION`|86|Checkboxes: *flow* + *vis* + *land Detector* + *gyro comp*. If flying over horizontal floor *pub agl as lpos down* checkbox is allowed.
Details: [Optical Flow](optical_flow.md), [ArUco markers](aruco_map.md), [GPS](gps.md).|
+|`LPE_VIS_DELAY`|0.0||
+|`LPE_VIS_Z`|0.1||
+|`LPE_FLW_SCALE`|1.0||
+|`LPE_FLW_R`|0.2||
+|`LPE_FLW_RR`|0.0||
+|`LPE_FLW_QMIN`|10||
+|`ATT_W_EXT_HDG`|0.5|Enabling usage of external yaw angle (when navigating using [markers map](aruco_map.md))|
+|`ATT_EXT_HDG_M`|1 (*Vision*)||
+|`ATT_W_MAG`|0|Disabling usage of the magnetometer (when navigating indoor)|
+
+In case of using EKF2 (official firmware):
+
+
+
+|Parameter|Value|Comment|
+|-|-|-|
+|`EKF2_AID_MASK`|27|Checkboxes: (optionally) *gps* + *flow* + *vision position* + *vision yaw*.
Details: [Optical Flow](optical_flow.md), [ArUco markers](aruco_map.md), [GPS](gps.md).|
+|`EKF2_OF_DELAY`|0||
+|`EKF2_OF_QMIN`|10||
+|`EKF2_OF_N_MIN`|0.05||
+|`EKF2_OF_N_MAX`|0.2||
+|`EKF2_HGT_MODE`|2 (*Range sensor*)|If the [rangefinder](laser.md) is present and flying over horizontal floor|
+|`EKF2_EVA_NOISE`|0.1||
+|`EKF2_EVP_NOISE`|0.1||
+|`EKF2_EV_DELAY`|0||
+|`EKF2_MAG_TYPE`|5 (*None*)|Disabling usage of the magnetometer (when navigating indoor)|
+
+
+
+> **Info** See also: list of default parameters of the [Clover simulator](simulation.md): https://github.com/CopterExpress/clover/blob/master/clover_simulation/airframes/4500_clover.
+
+## Additional information
+
+The `SYS_MC_EST_GROUP` parameter defines the estimator subsystem to use.
+
+Estimator subsystem is a group of modules that calculates the current state of the copter using readings from the sensors. The copter state includes:
* Angle rate of the copter – pitch_rate, roll_rate, yaw_rate;
* Copter orientation (in the local coordinate system) – pitch, roll, yaw (one of presentations);
@@ -57,9 +101,7 @@ These parameters adjust the flight of the copter by position (POSCTL, OFFBOARD,
## LPE + Q attitude estimator
-These parameters configure the behavior of the `lpe` and `q` modules, which compute the state (orientation, position) of the copter. These parameters apply **only** if the `SYS_MC_EST_GROUP` parameter is set to `1` (local_position_estimator, attitude_estimator_q)
-
-TODO
+These parameters configure the behavior of the `lpe` and `q` modules, which compute the state (orientation, position) of the copter. These parameters apply **only** if the `SYS_MC_EST_GROUP` parameter is set to `1` (local_position_estimator, attitude_estimator_q).
## Commander
@@ -68,5 +110,3 @@ Prearm checks, switching the modes and states of the copter.
## Sensors
Enabling, disabling and configuring various sensors.
-
-TODO
diff --git a/docs/en/setup.md b/docs/en/setup.md
index 24b85a6f..b36a3832 100644
--- a/docs/en/setup.md
+++ b/docs/en/setup.md
@@ -27,28 +27,29 @@ Main article: https://docs.qgroundcontrol.com/en/SetupView/Firmware.html
> **Note** Do not connect your flight controller prior to flashing.
-We recommend using the modified version of PX4 by CopterExpress for the Clover drone, especially for autonomous flights. Download the latest stable version **from our GitHub**.
+We recommend using the modified version of [PX4 with COEX patches](firmware.md) for the Clover drone, especially for autonomous flights. Download the latest stable version **from our GitHub**.
-> **Info** For Pixhawk-based quadcopters there is a separate firmware version. See details in "[Pixhawk / Pixracer firmware flashing](firmware.md)" article.
+To use all the most recent PX4 functions you also can use the latest official firmware version (experimentally).
Flash the flight controller with this firmware:
-1. Launch QGroundControl software.
-2. Open the *Vehicle Setup* tab.
-3. Select the *Firmware* menu.
+1. Disconnect the flight controller from computer (if connected).
+2. Launch QGroundControl software.
+3. Go to *Vehicle Setup* panel (click on the QGroundControl logo in the top-left corner) and select *Firmware* menu.
4. Connect your flight controller to your PC over USB.
-5. Wait for the flight controller to connect to QGroundControl.
-6. Select *PX4 Flight Stack* in the right bar.
+5. Select *PX4 Flight Stack* in the right bar appeared.
-To use the recommended Copter Express firmware:
+
-* Check *Advanced Settings* checkbox.
-* Select *Custom firmware file...* from the dropdown list.
-* Press *OK* and select the file that you've downloaded.
+6. To use **COEX patched firmware**:
-To use the latest official stable firmware just press *OK*.
+ * Check *Advanced Settings* checkbox.
+ * Select *Custom firmware file...* from the dropdown list.
+ * Press *OK* and select the file that you've downloaded.
+
+ To use the latest **official stable firmware** just press *OK*.
Wait for QGroundControl to finish flashing the flight controller.
@@ -82,7 +83,7 @@ This is how the main QGroundControl settings window will look like:
### Setting parameters
-Open the *Vehicle Setup* tab and select the *Parameters* menu. You can use the *Search* field to find parameters by name.
+Open the *Vehicle Setup* tab and select the *Parameters* menu. You can use the *Search* field to find parameters by name. Recommended parameters values are given in the further documentation and also in the [parameters summary article](parameters.md).
diff --git a/docs/en/simple_offboard.md b/docs/en/simple_offboard.md
index d67ca9f4..832bd363 100644
--- a/docs/en/simple_offboard.md
+++ b/docs/en/simple_offboard.md
@@ -1,11 +1,4 @@
-Autonomous flight (OFFBOARD)
-===
-
-> **Note** In the image version **0.20** `clever` package was renamed to `clover`. See [previous version of the article](https://github.com/CopterExpress/clover/blob/v0.19/docs/en/simple_offboard.md) for older images.
-
-
-
-> **Hint** We recommend using our [custom PX4 firmware for Clover](firmware.md#modified-firmware-for-clover) for autonomous flights.
+# Autonomous flight
The `simple_offboard` module of the `clover` package is intended for simplified programming of the autonomous drone flight (`OFFBOARD` [flight mode](modes.md)). It allows setting the desired flight tasks, and automatically transforms [coordinates between frames](frames.md).
@@ -13,8 +6,7 @@ The `simple_offboard` module of the `clover` package is intended for simplified
Main services are [`get_telemetry`](#gettelemetry) (receive telemetry data), [`navigate`](#navigate) (fly to a given point along a straight line), [`navigate_global`](#navigateglobal) (fly to a point specified as latitude and longitude along a straight line), [`land`](#land) (switch to landing mode).
-Python examples
----
+## Python usage
You need to create proxies for services before calling them. Use the following template for your programs:
@@ -37,8 +29,7 @@ land = rospy.ServiceProxy('land', Trigger)
Unused proxy functions may be removed from the code.
-API description
----
+## API description
> **Note** Omitted numeric parameters are set to 0.
@@ -312,14 +303,9 @@ Landing the drone (command line):
rosservice call /land "{}"
```
-
-
-Additional materials
-------------------------
+## Additional materials
* [ArUco-based position estimation and navigation](aruco.md).
* [Program samples and snippets](snippets.md).
diff --git a/docs/ru/calibration.md b/docs/ru/calibration.md
index 42ee9cbd..30c299eb 100644
--- a/docs/ru/calibration.md
+++ b/docs/ru/calibration.md
@@ -14,6 +14,8 @@
4. Последовательно устанавливайте квадрокоптер в каждую из указанных ориентаций до появления желтой рамки.
5. Вращайте квадрокоптер по направлению стрелки до появления зеленой рамки.
+> **Warning** Последние версии прошивки PX4 не поддерживают внутренний компас на полетном контроллере COEX Pix. При появлении ошибки *No mags found* перейдите во вкладку *Parameters*, установите параметры `SYS_HAS_MAG` в `0`, `EKF2_MAG_TYPE` в `None` и перезагрузите полетный контроллер (*Tools* => *Reboot Vehicle*).
+
Дополнительная информация: https://docs.px4.io/master/en/config/compass.html.
## Гироскоп
diff --git a/docs/ru/parameters.md b/docs/ru/parameters.md
index f5a678ed..fc784255 100644
--- a/docs/ru/parameters.md
+++ b/docs/ru/parameters.md
@@ -1,20 +1,64 @@
# Параметры PX4
-Основная статья: https://dev.px4.io/en/advanced/parameter_reference.html
+Полная документация по параметрам PX4: https://docs.px4.io/master/en/advanced_config/parameter_reference.html.
-> **Note** Это описание некоторых, наиболее важных параметров PX4 по состоянию на версию 1.8.0. Полный список см. по ссылке выше.
+Для изменения параметров PX4 используйте программу QGroundControl, [подключившись к Клеверу по Wi-Fi](gcs_bridge.md) или USB. Перейдите в панель *Vehicle Setup* (кликнув на логотип QGroundControl в левом верхнем углу и выберите меню *Parameters*.
-Для изменения параметров PX4 можно воспользоваться программой QGroundControl, [подключившись к Клеверу по Wi-Fi](gcs_bridge.md):
+## Рекомендованные значения
-
+### Общие параметры
-## Основные параметры
+|Параметр|Значение|Примечание|
+|-|-|-|
+|`SENS_FLOW_ROT`|0 (*No rotation*)|В случае использования "железного" [PX4Flow](px4flow.md), оставьте значение по умолчанию|
+|`SENS_FLOW_MINHGT`|0.01|Для [дальномера VL53L1X](laser.md)|
+|`SENS_FLOW_MAXHGT`|4.0|Для [дальномера VL53L1X](laser.md)|
+|`SENS_FLOW_MAXR`|10.0||
+|`SYS_HAS_MAG`|0|При невозможности запуска магнитометра (ошибка *No mags found*)|
-Наиболее важные параметры вынесены в этот параграф.
+### Настройки подсистемы Estimator
-`SYS_MC_EST_GROUP` – выбор модуля estimator'а.
+В случае использования LPE ([прошивка COEX](firmware.md)):
-Это группа модулей, которая вычисляет текущее состояние (state) коптера, используя показания с датчиков. В состояние коптера входит:
+|Параметр|Значение|Примечание|
+|-|-|-|
+|`LPE_FUSION`|86|Чекбоксы: *flow* + *vis* + *land Detector* + *gyro comp*. При полете над ровным полом возможно включение *pub agl as lpos down*.
Подробнее: [Optical Flow](optical_flow.md), [ArUco-маркеры](aruco_map.md), [GPS](gps.md).|
+|`LPE_VIS_DELAY`|0.0||
+|`LPE_VIS_Z`|0.1||
+|`LPE_FLW_SCALE`|1.0||
+|`LPE_FLW_R`|0.2||
+|`LPE_FLW_RR`|0.0||
+|`LPE_FLW_QMIN`|10||
+|`ATT_W_EXT_HDG`|0.5|Включение использования внешнего угла по рысканью (при навигации по [карте маркеров](aruco_map.md))|
+|`ATT_EXT_HDG_M`|1 (*Vision*)||
+|`ATT_W_MAG`|0|Выключение магнитометра (при навигации внутри помещения)|
+
+В случае использования EKF2 (официальная прошивка):
+
+
+
+|Параметр|Значение|Примечание|
+|-|-|-|
+|`EKF2_AID_MASK`|27|Чекбоксы: (опционально) *gps* + *flow* + *vision position* + *vision yaw*.
Подробнее: [Optical Flow](optical_flow.md), [ArUco-маркеры](aruco_map.md), [GPS](gps.md).|
+|`EKF2_OF_DELAY`|0||
+|`EKF2_OF_QMIN`|10||
+|`EKF2_OF_N_MIN`|0.05||
+|`EKF2_OF_N_MAX`|0.2||
+|`EKF2_HGT_MODE`|2 (*Range sensor*)|При наличии [дальномера](laser.md) и полете над ровным полом|
+|`EKF2_EVA_NOISE`|0.1||
+|`EKF2_EVP_NOISE`|0.1||
+|`EKF2_EV_DELAY`|0||
+|`EKF2_MAG_TYPE`|5 (*None*)|Выключение магнитометра (при навигации внутри помещения)|
+
+
+
+> **Info** См. также: список параметров по умолчанию в [симуляторе](simulation.md): https://github.com/CopterExpress/clover/blob/master/clover_simulation/airframes/4500_clover.
+
+## Дополнительная информация
+
+Параметр `SYS_MC_EST_GROUP` отвечает за выбор Estimator'а.
+
+Estimator это подсистема, которая вычисляет текущее состояние (state) коптера, используя показания с датчиков. В состояние коптера входит:
* угловая скорость коптера – pitch_rate, roll_rate, yaw_rate;
* ориентация коптера (в локальной системе координат) – pitch (тангаж), roll (крен), yaw (рысканье) (одно из представлений);
@@ -57,9 +101,7 @@
## LPE + Q attitude estimator
-Данные параметры настраивают поведение модулей `lpe` и `q`, которые вычисляют состояние (ориентацию, позицию) коптера. Эти параметры применяются **только** если параметр `SYS_MC_EST_GROUP` установлен в значение `1` (local_position_estimator, attitude_estimator_q)
-
-TODO
+Данные параметры настраивают поведение модулей `lpe` и `q`, которые вычисляют состояние (ориентацию, позицию) коптера. Эти параметры применяются **только** если параметр `SYS_MC_EST_GROUP` установлен в значение `1` (local_position_estimator, attitude_estimator_q).
## Commander
@@ -68,5 +110,3 @@ TODO
## Sensors
Включение, выключение и настройка различных датчиков.
-
-TODO
diff --git a/docs/ru/setup.md b/docs/ru/setup.md
index 9562dba6..a1a3053c 100644
--- a/docs/ru/setup.md
+++ b/docs/ru/setup.md
@@ -16,39 +16,32 @@
-* Установите карту в компьютер (используйте адаптер при необходимости).
-* Отформатируйте карту в файловую систему FAT32. Для этого кликните на значок SD-карты в "Проводнике" и нажмите "Форматирование" в Windows. Используйте "Дисковую утилиту" в macOS.
-* Выполните "Безопасное извлечение" карты, извлеките карту.
-* Установите карту в полетный контроллер.
+1. Установите карту в компьютер (используйте адаптер при необходимости).
+2. Отформатируйте карту в файловую систему FAT32. Для этого кликните на значок SD-карты в "Проводнике" и нажмите "Форматирование" в Windows. Используйте "Дисковую утилиту" в macOS.
+3. Выполните "Безопасное извлечение" карты, извлеките карту.
+4. Установите карту в полетный контроллер.
## Загрузка прошивки в полетный контроллер
-Основная статья: https://docs.qgroundcontrol.com/en/SetupView/Firmware.html.
+Наиболее оттестированной, в особенности для осуществления автономных полетов, является [версия прошивки с патчами COEX](firmware.md). Скачайте актуальную версию прошивки на GitHub — **скачать**.
-> **Note** Перед осуществлением перепрошивки Pixracer не должен быть подключен к компьютеру по USB.
+Для использования всех наиболее актуальных функций PX4 вы также можете использовать последнюю официальную версию прошивки (в экспериментальном режиме).
-Для Клевера, в особенности для осуществления автономных полетов, рекомендуется использовать версию прошивки PX4 от Copter Express. Скачайте актуальную версию прошивки на GitHub — **скачать**.
+1. Отключите полетный контроллер от компьютера (если он подключен).
+2. Запустите программу QGroundControl.
+3. Перейдите в панель *Vehicle Setup* (кликнув на логотип QGroundControl в левом верхнем углу) и выберите меню *Firmware*.
+4. Подключите полетный контроллер к компьютеру по USB.
+5. Выберите в появившемся меню справа *PX4 Flight Stack*.
-> **Info** Для квадрокоптеров с Pixhawk (Клевер 2) существует отдельная версия прошивки. Подробности смотрите в статье "[Прошивка полетного контроллера](firmware.md)".
+
-Загрузите прошивку в полетный контролер:
+6. Для загрузки **прошивки COEX**:
-
+ * Выберите *Advanced settings*.
+ * В выпадающем меню выберите *Custom firmware file...*
+ * Нажмите *OK* и выберите скаченный файл прошивки.
-1. Запустите программу QGroundControl.
-2. Зайдите во вкладку *Vehicle Setup*.
-3. Выберите меню *Firmware*.
-4. Подключите Pixracer к компьютеру по USB.
-5. Дождитесь подключения Pixracer к QGroundControl.
-6. Выберите в меню справа *PX4 Flight Stack*.
-
-Для загрузки прошивки от Copter Express (рекомендуется):
-
-* Выберите *Advanced settings*.
-* В выпадающем меню выберите *Custom firmware file...*
-* Нажмите *OK* и выберите скаченный файл прошивки.
-
-Для загрузки последней версии стандартной прошивки сразу нажмите *OK*.
+ Для загрузки последней версии **стандартной прошивки** сразу нажмите *OK*.
Дождитесь, пока QGroundControl загрузит прошивку и выполнит перезагрузку полетного контроллера.
@@ -82,7 +75,7 @@
### Параметры
-Для настройки параметров полетного контроллера войдите во вкладку *Vehicle Setup* и выберите меню *Parameters*. Вы можете использовать поле *Search* для поиска параметров по имени.
+Для настройки параметров полетного контроллера войдите во вкладку *Vehicle Setup* и выберите меню *Parameters*. Вы можете использовать поле *Search* для поиска параметров по имени. Рекомендуемые параметры для Клевера приведены в дальнейшей документации а также в соответствующей [сводной статье](parameters.md).
diff --git a/docs/ru/simple_offboard.md b/docs/ru/simple_offboard.md
index 42502441..6e73f3e1 100644
--- a/docs/ru/simple_offboard.md
+++ b/docs/ru/simple_offboard.md
@@ -1,11 +1,4 @@
-Автономный полет (OFFBOARD)
-===
-
-> **Note** В версии образа **0.20** пакет `clever` был переименован в `clover`. Для более ранних версий см. документацию для версии [**0.19**](https://github.com/CopterExpress/clover/blob/v0.19/docs/ru/simple_offboard.md).
-
-
-
-> **Hint** Для автономных полетов рекомендуется использование [специальной сборки PX4 для Клевера](firmware.md#прошивка-для-клевера).
+# Автономный полет
Модуль `simple_offboard` пакета `clover` предназначен для упрощенного программирования автономного полета дрона ([режим](modes.md) `OFFBOARD`). Он позволяет устанавливать желаемые полетные задачи и автоматически трансформирует [систему координат](frames.md).
@@ -13,8 +6,7 @@
Основные сервисы – [`get_telemetry`](#gettelemetry) (получение телеметрии), [`navigate`](#navigate) (полет в заданную точку по прямой), [`navigate_global`](#navigateglobal) (полет в глобальную точку по прямой), [`land`](#land) (переход в режим посадки).
-Использование из языка Python
----
+## Использование из языка Python
Для использования сервисов, необходимо создать объекты-прокси к ним. Используйте этот шаблон для вашей программы:
@@ -37,8 +29,7 @@ land = rospy.ServiceProxy('land', Trigger)
Неиспользуемые функции-прокси можно удалить из кода.
-Описание API
----
+## Описание API
> **Note** Незаполненные числовые параметры устанавливаются в значение 0.
@@ -312,14 +303,9 @@ if res.success:
rosservice call /land "{}"
```
-
-
-Дополнительные материалы
-------------------------
+## Дополнительные материалы
* [Полеты в поле ArUco-маркеров](aruco.md).
* [Примеры программ и сниппеты](snippets.md).