mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-27 05:29:32 +00:00
Merge branch 'master' into ros-book
This commit is contained in:
@@ -47,11 +47,18 @@
|
||||
* [Автозапуск ПО](autolaunch.md)
|
||||
* [Использование JavaScript](javascript.md)
|
||||
* [`mavros`](mavros.md)
|
||||
* Симулятор
|
||||
* [Общая информация](simulation.md)
|
||||
* [Сборка на собственной машине](simulation_native.md)
|
||||
* [Установка виртуальной машины](simulation_vm.md)
|
||||
* [Использование симулятора](simulation_usage.md)
|
||||
* ROS: учебник
|
||||
* [Общая информация](ros.md)
|
||||
* [Графические инструменты](ros_gui.md)
|
||||
* [Соглашения ROS](ros_conventions.md)
|
||||
* [Продвинутое использование](ros_advanced.md)
|
||||
* [ROS](ros.md)
|
||||
* [MAVROS](mavros.md)
|
||||
* Дополнительные материалы
|
||||
* [COEX Pix](coex_pix.md)
|
||||
* [Гид по автономному полету](auto_setup.md)
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
<img src="../assets/assembling_clever4_2/fc_connection_6.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
2. На монтажную деку установите стойки 6мм и стойки 30мм, закрепите их с помощью винт М3х8 и М3х12 соответственно.
|
||||
2. На монтажную деку установите стойки 6мм и стойки 30мм, закрепите их с помощью винт М3х5 и М3х12 соответственно.
|
||||
|
||||
<img src="../assets/assembling_clever4_2/raspberry_1.png" width=300 class="zoom border center">
|
||||
|
||||
@@ -204,6 +204,10 @@
|
||||
|
||||
<img src="../assets/assembling_clever4_2/raspberry_11.png" width=300 class="zoom border center">
|
||||
|
||||
13. Подключите полетный контроллер к *Raspberry Pi* с помощью USB кабеля.
|
||||
|
||||
<img src="../assets/assembling_clever4_2/final_2.png" width=300 class="zoom border">
|
||||
|
||||
## Установка LED ленты
|
||||
|
||||
1. Соберите обруч для светодиодной ленты, объединив замок на концах.
|
||||
@@ -252,21 +256,4 @@
|
||||
|
||||
<img src="../assets/assembling_clever4_2/guard_4.png" width=300 class="zoom border center">
|
||||
|
||||
## Подготовка к полету
|
||||
|
||||
1. Установите ремешок для аккумулятора и подключите полетный контроллер к *Raspberry Pi* с помощью USB кабеля.
|
||||
|
||||
<div class="image-group">
|
||||
<img src="../assets/assembling_clever4_2/final_1.png" width=300 class="zoom border">
|
||||
<img src="../assets/assembling_clever4_2/final_2.png" width=300 class="zoom border">
|
||||
</div>
|
||||
|
||||
2. Установите пропеллеры в соответствии со [схемой направления движения моторов](#prop_rotation).
|
||||
|
||||
<img src="../assets/assembling_clever4_2/final_3.png" width=300 class="zoom border center">
|
||||
|
||||
3. Установите аккумулятор.
|
||||
|
||||
<img src="../assets/assembling_clever4_2/final_4.png" width=300 class="zoom border center">
|
||||
|
||||
> **Success** Дрон собран, далее произведите ["настройку"](setup.md).
|
||||
|
||||
34
docs/ru/simulation.md
Normal file
34
docs/ru/simulation.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Общая информация
|
||||
|
||||
Среда симуляции Клевера позволяет пользователям запускать и отлаживать свой код в симуляторе, используя большинство функций, доступных на реальном дроне. Симулятор использует [режим PX4 SITL](sitl.md) и тот же код, использующий ROS, что и настоящий дрон. Большинство железа также симулируется.
|
||||
|
||||
## Особенности
|
||||
|
||||
Устанавливаемая пользователем среда включает в себя:
|
||||
|
||||
* высококачественную модель Клевера 4;
|
||||
* плагины Gazebo для железа Клевера (например, для светодиодной ленты);
|
||||
* легко изменяемые файлы описания дрона в формате [`xacro`](https://wiki.ros.org/xacro);
|
||||
* примеры моделей и миров;
|
||||
* [`roslaunch`](https://wiki.ros.org/roslaunch) файлы для быстрого запуска и настройки.
|
||||
|
||||
Кроме того, предоставляется [образ виртуальной машины](simulation_vm.md), который максимально точно имитирует реальный дрон.
|
||||
|
||||
Особенности:
|
||||
|
||||
* легкий доступ к симулятору;
|
||||
* установлен и настроен для работы с ROS Visual Studio Code;
|
||||
* веб-сервер (Monkey) для плагинов Клевера, работающих в браузере;
|
||||
* постоянно работающий сервис `roscore`;
|
||||
* средства визуализации (`rviz`, `rqt`).
|
||||
|
||||
## Состав симулятора
|
||||
|
||||
Симулятор основан на следующих элементах:
|
||||
|
||||
* [Gazebo](http://gazebosim.org/), универсальная среда симуляции для любых типов роботов;
|
||||
* [PX4](https://px4.io/), в частности, его компонент SITL (software-in-the-loop);
|
||||
* [`sitl_gazebo`](https://github.com/PX4/sitl_gazebo) пакет, содержащий плагины Gazebo для PX4;
|
||||
* пакеты ROS и плагины Gazebo;
|
||||
|
||||
<!-- TODO: Write more, add a diagram, etc -->
|
||||
96
docs/ru/simulation_native.md
Normal file
96
docs/ru/simulation_native.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# Сборка на собственной машине
|
||||
|
||||
Настройка среды для симуляции с нуля требует некоторых усилий, однако это приведет к улучшению производительности и к уменьшению вероятности появления проблем с драйверами.
|
||||
|
||||
Требования для сборки: установлены Ubuntu 18.04 и [ROS](ros-install.md).
|
||||
|
||||
## Создание рабочего пространства для симулятора
|
||||
|
||||
В этой статье мы будем использовать `catkin_ws` как имя рабочего пространства (вы можете поменять её). Мы создадим её в домашнем каталоге текущего пользователя (`~`).
|
||||
|
||||
Создайте рабочее пространство и загрузите исходный код Клевера:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/catkin_ws/src
|
||||
cd ~/catkin_ws/src
|
||||
git clone https://github.com/CopterExpress/clover
|
||||
git clone https://github.com/CopterExpress/ros_led
|
||||
```
|
||||
|
||||
Установите все зависимости, используя `rosdep`:
|
||||
|
||||
```bash
|
||||
cd ~/catkin_ws
|
||||
rosdep update
|
||||
rosdep install --from-paths src --ignore-src -y
|
||||
```
|
||||
|
||||
## Загрузка исходного кода PX4
|
||||
|
||||
Сборка PX4 будет осуществлена вместе с другими пакетами в нашем рабочем пространстве. Вы можете загрузить его прямо в рабочее пространство или поместить куда-нибудь и создать симлинк к `~/catkin_ws/src`. Нам также нужно будет поместить его подмодуль `sitl_gazebo` в `~/catkin_ws/src`. Для упрощения мы загрузим прошивку прямо в рабочее пространство:
|
||||
|
||||
```bash
|
||||
cd ~/catkin_ws/src
|
||||
git clone --recursive https://github.com/CopterExpress/Firmware -b v1.10.1-clever
|
||||
ln -s Firmware/Tools/sitl_gazebo ./sitl_gazebo
|
||||
```
|
||||
|
||||
## Установка зависимостей PX4
|
||||
|
||||
PX4 имеет свой собственный скрипт для установки зависимостей. Воспользуемся им:
|
||||
|
||||
```bash
|
||||
cd ~/catkin_ws/src/Firmware/Tools/setup
|
||||
sudo ./ubuntu.sh
|
||||
```
|
||||
|
||||
Он установит все, что нужно для сборки PX4 и SITL.
|
||||
|
||||
Также вы можете пропустить установку ARM тулчейна, если вы не планируете компилировать PX4 для вашего полетного контроллера. Для этого воспользуйтесь флагом `--no-nuttx`:
|
||||
|
||||
```
|
||||
sudo ./ubuntu.sh --no-nuttx
|
||||
```
|
||||
|
||||
## Патчинг плагинов Gazebo
|
||||
|
||||
Пакет `sitl_gazebo`, содержащий плагины нужно пропатчить, из-за недавних изменений в MAVLink. Эти патчи уже применены в [образе виртуальной машины](simulation_vm.md) и хранятся в репозитории CopterExpress/VM. Запустите следующие команды для загрузки и применения патчей:
|
||||
|
||||
```bash
|
||||
cd ~/catkin_ws/src/Firmware/Tools/sitl_gazebo
|
||||
wget https://raw.githubusercontent.com/CopterExpress/clover_vm/master/assets/patches/sitl_gazebo.patch
|
||||
patch -p1 < sitl_gazebo.patch
|
||||
rm sitl_gazebo.patch
|
||||
```
|
||||
|
||||
## Установка датасетов geographiclib
|
||||
|
||||
Для `mavros` нужны датасеты geographiclib:
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
wget https://raw.githubusercontent.com/mavlink/mavros/6f5bd5a1a67c19c2e605f33de296b1b1be9d02fc/mavros/scripts/install_geographiclib_datasets.sh
|
||||
chmod +x ./install_geographiclib_datasets.sh
|
||||
sudo ./install_geographiclib_datasets.sh
|
||||
rm ./install_geographiclib_datasets.sh
|
||||
```
|
||||
|
||||
## Сборка симулятора
|
||||
|
||||
После установки всех зависимостей можно начинать сборку рабочего пространства:
|
||||
|
||||
```bash
|
||||
cd ~/catkin_ws
|
||||
catkin_make
|
||||
```
|
||||
|
||||
> **Note** Некоторые файлы, особенно плагины Gazebo, требуют большого объема оперативной памяти для сборки. Вы можете уменьшить количество параллельных процессов; количество параллельных процессов должно быть равно объёму RAM в гигабайтах, поделенному на 2. Например, для машины с 16Гб следует указывать не более 8 процессов. Вы можете указать количество процессов, используя флаг `-j` : ```catkin_make -j8```
|
||||
|
||||
## Запуск симулятора
|
||||
|
||||
Чтобы удостовериться в том, что все было собрано корректно, попробуйте запустить симулятор:
|
||||
|
||||
```bash
|
||||
source ~/catkin_ws/devel/setup.bash
|
||||
roslaunch clover_simulation simulator.launch
|
||||
```
|
||||
89
docs/ru/simulation_usage.md
Normal file
89
docs/ru/simulation_usage.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# Использование симулятора
|
||||
|
||||
Среда симуляции Клевера позволяет пользователям тестировать свой код без какого-либо риска повреждения оборудования. Кроме того, в [виртуальной машине](simulation_vm.md) по умолчанию запущены дополнительные (не относящиеся к ROS) сервисы, которые присутствуют на реальном дроне, например, веб-сервер Monkey.
|
||||
|
||||
## Запуск симулятора
|
||||
|
||||
После [сборки симулятора с нуля](simulation_native.md) или [запуска виртуальной машины](simulation_vm.md), вы можете использовать `roslaunch` для запуска симулятора Gazebo:
|
||||
|
||||
```bash
|
||||
# Не забудьте сначала активировать ваше рабочее пространство
|
||||
source ~/catkin_ws/devel/setup.bash
|
||||
roslaunch clover_simulation simulator.launch
|
||||
```
|
||||
|
||||
> **Note** Кроме того, если вы используете виртуальную машину, просто дважды щелкните `Gazebo PX4` на рабочем столе.
|
||||
|
||||
Это запустит Gazebo сервер и клиент, бинарные файлы PX4 и ноды Клевера. Терминал, в котором была запущена команда, будет отображать отладочные сообщения от нод и PX4, а также принимать входные данные для интерпретатора команд PX4:
|
||||
|
||||

|
||||
|
||||
Вы также можете использовать QGroundControl для настройки параметров дрона в симуляторе, планирование миссий полета (если GPS также симулируется) и управление дроном с пульта:
|
||||
|
||||

|
||||
|
||||
Также вы можете использовать [simplified OFFBOARD](simple_offboard.md) для управления дроном, и средства визуализации ROS, например, [rviz and rqt](rviz.md) для анализа состояния дрона:
|
||||
|
||||

|
||||
|
||||
## Настройка симулятора
|
||||
|
||||
Симулятор можно настроить, передав дополнительные аргументы команде `roslaunch` или изменив файл `~/catkin_ws/src/clover/clover_simulation/launch/simulator.launch`. Ноды, обеспечивающие [распознавание ArUco](aruco.md), [расчет optical flow](optical_flow.md) и другие сервисы могут быть настроены изменением соответствующих `.launch` файлов, как на реальном дроне.
|
||||
|
||||
### Изменение параметров дрона
|
||||
|
||||

|
||||
|
||||
Вы можете включить или отключить некоторые датчики дрона, изменив параметры в файле `simulator.launch`. Например, чтобы включить GPS, установите аргумент `gps` в значение `true`:
|
||||
|
||||
```xml
|
||||
<arg name="gps" value="true"/>
|
||||
```
|
||||
|
||||
Обратите внимание, что это просто включит датчик, вам придется также изменить параметры PX4.
|
||||
|
||||
Если вы хотите добавить датчики или изменить их расположение, вам придется изменить файл описания дрона. Этот файл находится в `~/catkin_ws/src/clover/clover_description/urdf/clover/clover4.xacro`, и использует формат [xacro](http://wiki.ros.org/xacro) для сборки описания URDF.
|
||||
|
||||
### Изменение мира по умолчанию
|
||||
|
||||
Плагины Gazebo для дрона на данный момент требуют, чтобы значение параметра мира `real_time_update_rate` было равно 250, а значение `max_step_size` было равно 0.004. С другими параметрами симулятор не заработает. Используйте файл `~/catkin_ws/src/clover/clover_simulation/resources/worlds/clover.world` как шаблон.
|
||||
|
||||
## Повышение производительности
|
||||
|
||||
Симуляция с использованием Gazebo требовательна к ресурсам, и для нормальной скорости работы требуются мощный процессор и видеокарта. При этом симуляции можно запускать и на менее мощном оборудовании, жертвуя при этом скоростью работы. Ниже приведены рекомендации для компьютеров, на которых симуляция не может работать в реальном времени.
|
||||
|
||||
### Использование плагина `throttling_camera`
|
||||
|
||||
По умолчанию Gazebo не замедляет симуляцию для достижения требуемой частоты работы визуальных сенсоров. Это можно исправить с помощью плагина `throttling_camera` из пакета `clover_simulation`.
|
||||
|
||||
Включение этого плагина происходит путём выставления параметра `maintain_camera_rate` в значение `true` в файле `clover_description/launch/spawn_drone.launch`:
|
||||
|
||||
```xml
|
||||
<!-- Slow simulation down to maintain camera rate -->
|
||||
<arg name="maintain_camera_rate" default="true"/>
|
||||
```
|
||||
|
||||
Этот плагин будет собирать статистику по частоте публикации изображений, и будет замедлять симуляцию до тех пор, пока частота публикации не станет соответствовать или превышать требуемую. При этом значительные замедления симуляции могут негативно сказаться на программном обеспечении, которое подключается к PX4 (например, QGroundControl). Если скорость симуляции опускается ниже, чем 0.5 от реального времени, следует воспользоваться следующей рекомендацией.
|
||||
|
||||
### Выставление скорости симуляции
|
||||
|
||||
PX4, начиная с версии 1.9, поддерживает [принудительную установку скорости симуляции](https://dev.px4.io/v1.9.0/en/simulation/#simulation_speed) с помощью переменной окружения `PX4_SIM_SPEED_FACTOR`. Выставление этой переменной подготавливает все компоненты симулятора к соответствующему ускорению/замедлению.
|
||||
|
||||
Значение этой переменной должно соответствовать величине Real Time Factor (скорости симуляции по отношению к реальному времени), получаемой при использовании `throttling_camera`. Величина Real Time Factor отображается в окне Gazebo на нижней панели:
|
||||
|
||||

|
||||
|
||||
В данном случае `PX4_SIM_SPEED_FACTOR` следует выставить в значение `0.42` перед запуском симулятора:
|
||||
|
||||
```bash
|
||||
PX4_SIM_SPEED_FACTOR=0.42 roslaunch clover_simulation simulator.launch
|
||||
```
|
||||
|
||||
> **Note** При использовании виртуальной машины удобнее добавить эту переменную в ярлык запуска Gazebo на рабочем столе. Нажмите правой кнопкой на значок Gazebo, выберите "Properties..." и добавьте `PX4_SIM_SPEED_FACTOR=0.42` в поле Command, как показано на иллюстрации:
|
||||

|
||||
|
||||
### Выделение ресурсов для виртуальной машины
|
||||
|
||||
Выделение нескольких процессорных ядер для виртуальной машины может значительно повысить производительность симуляции. В наших испытаниях виртуальная машина, для которой было выделено одно ядро, не позволяла работать в симуляторе: окно Gazebo не реагировало на пользовательский ввод, сообщения ROS терялись. После выделения четырёх ядер для этой же виртуальной машины симуляция стала работать со скоростью 0.25 от реального времени.
|
||||
|
||||
При этом не следует пытаться выделить для виртуальной машины больше ресурсов, чем доступно на основной системе.
|
||||
66
docs/ru/simulation_vm.md
Normal file
66
docs/ru/simulation_vm.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Установка виртуальной машины
|
||||
|
||||
Для работы с платформой Клевер рекомендуется иметь [установленное окружение ROS](ros.md) на своём компьютере. К сожалению, [установка ROS](ros-install.md) сопряжена с рядом трудностей: требуется использовать операционную систему Ubuntu 18.04, процесс установки длительный и требует выполнения большого количества команд в терминале.
|
||||
|
||||
Для облегчения процесса настройки окружения мы предлагаем использовать виртуальную машину со всем необходимым для работы с платформой Клевер. В состав виртуальной машины входят:
|
||||
|
||||
* операционная система Ubuntu 18.04 с легковесной графической оболочкой XFCE;
|
||||
* предустановленные пакеты ROS для работы с Клевером;
|
||||
* QGroundControl;
|
||||
* предварительно настроенный симулятор Gazebo;
|
||||
* среда разработки Visual Studio Code с плагинами для разработки на Python и C++.
|
||||
|
||||
Виртуальная машина может использоваться как для запуска симуляторов, так и для работы с настоящим дроном.
|
||||
|
||||
Скачать текущую версию виртуальной машины можно [в релизах репозитория виртуальной машины](https://github.com/CopterExpress/clover_vm/releases)
|
||||
|
||||
> **Warning** Виртуальную машину следует использовать только в тех случаях, когда по каким-то причинам использование Ubuntu 18.04 напрямую невозможно. Производительность всех программ, особенно тех, которые используют 3D-графику - jMAVSim, Gazebo, rviz - будет существенно ниже; кроме того, в ряде случаев будут возникать графические ошибки, приводящие к частичной или полной неработоспособности указанных программ.
|
||||
|
||||
## Установка виртуальной машины
|
||||
|
||||
Для запуска виртуальной машины разработчика требуется использовать одну из совместимых сред виртуализации: [VirtualBox](https://www.virtualbox.org/wiki/Downloads), [VMware Player](https://www.vmware.com/products/workstation-player.html), [VMware Workstation](https://www.vmware.com/products/workstation-pro.html).
|
||||
|
||||
> **Note** На момент написания данной статьи VirtualBox не обеспечивал достаточный уровень совместимости с виртуальной машиной. Рекомендуется по возможности использовать VMware Player или VMware Workstation; дальнейшая инструкция будет преимущественно написана для VMware Player.
|
||||
|
||||
Убедитесь, что поддержка аппаратной виртуализации включена в настройках BIOS/UEFI вашего компьютера. Шаги для включения аппаратной виртуализации, как правило, описаны в руководстве пользователя компьютера. Проконсультируйтесь с производителем компьютера, если включить виртуализацию не получается.
|
||||
|
||||
1. Импортируйте архив виртуальной машины в среду виртуализации. Для VMware Player используйте опцию **Open a Virtual Machine**:
|
||||
|
||||

|
||||
|
||||
> **Note** При импорте архива, скорее всего, появится окно с предупреждением о формате виртуальной машины:
|
||||

|
||||
Это предупреждение можно игнорировать и нажать кнопку **Retry**.
|
||||
|
||||
2. Откройте окно настроек виртуальной машины и измените параметры для наилучшего соответствия основной системе:
|
||||
|
||||
* увеличьте объём оперативной памяти, отводимый для виртуальной машины:
|
||||

|
||||
* увеличьте количество доступных процессорных ядер:
|
||||

|
||||
* включите 3D-ускорение:
|
||||

|
||||
* включите использование USB 2.0/3.0:
|
||||

|
||||
* опционально включите режим "мост" для виртуального сетевого адаптера:
|
||||

|
||||
|
||||
> **Note** Режим "мост" может некорректно работать с некоторыми сетевыми адаптерами. Если в режиме "мост" вы не можете подключиться к дрону, используйте USB Wi-Fi-адаптеры, "проброшенные" в виртуальную машину.
|
||||
|
||||
3. Запустите виртуальную машину. Возможно, при первом запуске справа появятся сообщения об отсутствии поддержки 3D-ускорения со стороны основной системы:
|
||||
|
||||

|
||||
|
||||
В этом случае убедитесь, что у вас установлены самые последние драйверы для видеокарты в основной системе. Если сообщения появляются при повторных запусках виртуальной машины, добавьте строку
|
||||
|
||||
```
|
||||
mks.gl.allowBlacklistedDrivers = "TRUE"
|
||||
```
|
||||
|
||||
в файл `clever-devel.vmx`, находящийся в папке, в которую был импортирован архив в п. 1.
|
||||
|
||||
4. Настройте режим моста через настройки виртуальной машины (если используется VMware Player для Windows) или с помощью утилиты `vmware-netcfg` (если используется версия для Linux-дистрибутивов):
|
||||
|
||||

|
||||
|
||||
В списке сетей выберите `vmnet0`, ниже - режим *Bridged*, в выпадающем списке *Bridged to* - название беспроводного адаптера, с помощью которого будет производиться подключение к дрону.
|
||||
@@ -1,6 +1,6 @@
|
||||
# Симуляция PX4
|
||||
|
||||
> **Hint** Мы также предоставляем [предварительно настроенный](sitl_docker.md) симулятор, поставляемый в виде Docker-контейнера!
|
||||
> **Hint** Мы также предоставляем [конфигурации для Gazebo](simulation.md) и [образ виртуальной машины](simulation_vm.md) со всем необходимым для запуска симуляции Клевера.
|
||||
|
||||
Основная статья: https://dev.px4.io/en/simulation/
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Docker-контейнер с преднастроенным SITL
|
||||
|
||||
> **Warning** Рекомендуется использовать [образ виртуальной машины](simulation_vm.md) или [нативную установку](simulation_native.md) для работы в симуляторе.
|
||||
|
||||

|
||||
|
||||
Для упрощения запуска симулятора предлагается использовать предварительно настроенный [Docker-контейнер](https://hub.docker.com/r/sfalexrog/clever-sitl) с симулятором [Gazebo](http://gazebosim.org/), автопилотом [PX4](https://px4.io/) и предустановленными пакетами Клевера.
|
||||
|
||||
Reference in New Issue
Block a user