Tried translating simulator articles (#259)

* Translation + fix broken links

* Fix broken links

* Changes

* Fixed some typos

* Fixed header

* docs/simulation_native: Stylistic changes, fix typo (ru)

* docs: Add old simulation_vm article (ru)

* docs: Update SUMMARY.md (ru)

* docs/simulation_native: Use main branch for simulation (ru)

* Fixed some stuff

* Update docs/ru/simulation_native.md

Co-authored-by: Ilya Petrov <38784273+copterspace@users.noreply.github.com>

* Fixed some stuff

* Removed extra spaces

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>

* Fixed typo

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>

* Fixed typo

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>

* Update docs/ru/simulation_vm.md

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>

* Removed extra spaces

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>

* Fixed typo

Co-authored-by: Alexey Rogachevskiy <sfalexrog@gmail.com>
Co-authored-by: Ilya Petrov <38784273+copterspace@users.noreply.github.com>
Co-authored-by: Oleg Kalachev <okalachev@gmail.com>
This commit is contained in:
Dmitrii Okoneshnikov
2020-07-29 17:08:19 +07:00
committed by GitHub
parent 585af026d4
commit 32d27f3f66
5 changed files with 250 additions and 0 deletions

View File

@@ -48,6 +48,11 @@
* [Использование JavaScript](javascript.md)
* [ROS](ros.md)
* [MAVROS](mavros.md)
* Симулятор
* [Общая информация](simulation.md)
* [Сборка на собственной машине](simulation_native.md)
* [Установка виртуальной машины](simulation_vm.md)
* [Использование симулятора](simulation_usage.md)
* Дополнительные материалы
* [COEX Pix](coex_pix.md)
* [Гид по автономному полету](auto_setup.md)

34
docs/ru/simulation.md Normal file
View 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 -->

View 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
```

View File

@@ -0,0 +1,49 @@
# Использование симулятора
Среда симуляции Клевера позволяет пользователям тестировать свой код без какого-либо риска повреждения оборудования. Кроме того, в [виртуальной машине](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:
![Скриншот симулятора Gazebo](../assets/simulation_usage/01_running_gazebo.jpg)
Вы также можете использовать QGroundControl для настройки параметров дрона в симуляторе, планирование миссий полета (если GPS также симулируется) и управление дроном с пульта:
![Gazebo и QGC](../assets/simulation_usage/02_gazebo_qgc.jpg)
Также вы можете использовать [simplified OFFBOARD](simple_offboard.md) для управления дроном, и средства визуализации ROS, например, [rviz and rqt](rviz.md) для анализа состояния дрона:
![Gazebo и RQT](../assets/simulation_usage/03_gazebo_rqt.jpg)
## Настройка симулятора
Симулятор можно настроить, передав дополнительные аргументы команде `roslaunch` или изменив файл `~/catkin_ws/src/clover/clover_simulation/launch/simulator.launch`. Ноды, обеспечивающие [распознавание ArUco](aruco.md), [расчет optical flow](optical_flow.md) и другие сервисы могут быть настроены изменением соответствующих `.launch` файлов, как на реальном дроне.
### Изменение параметров дрона
![Открытый в VSCode simulator.launch](../assets/simulation_usage/04_vscode_config.jpg)
Вы можете включить или отключить некоторые датчики дрона, изменив параметры в файле `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` как шаблон.

66
docs/ru/simulation_vm.md Normal file
View 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**:
![Open dialog with clever-devel.ova selected](../assets/simulation_setup_vm/01_import_vm.png)
> **Note** При импорте архива, скорее всего, появится окно с предупреждением о формате виртуальной машины:
![Import failure dialog](../assets/simulation_setup_vm/02_import_failure.png)
Это предупреждение можно игнорировать и нажать кнопку **Retry**.
2. Откройте окно настроек виртуальной машины и измените параметры для наилучшего соответствия основной системе:
* увеличьте объём оперативной памяти, отводимый для виртуальной машины:
![Increasing avaliable memory](../assets/simulation_setup_vm/03_max_memory.png)
* увеличьте количество доступных процессорных ядер:
![Increasing cpu cores](../assets/simulation_setup_vm/04_core_count.png)
* включите 3D-ускорение:
![Enabling 3D acceleration](../assets/simulation_setup_vm/05_3d_acceleration.png)
* включите использование USB 2.0/3.0:
![USB 3.0 controller](../assets/simulation_setup_vm/06_usb_3_0.png)
* опционально включите режим "мост" для виртуального сетевого адаптера:
![Enabling bridge networking](../assets/simulation_setup_vm/07_bridge_networking.png)
> **Note** Режим "мост" может некорректно работать с некоторыми сетевыми адаптерами. Если в режиме "мост" вы не можете подключиться к дрону, используйте USB Wi-Fi-адаптеры, "проброшенные" в виртуальную машину.
3. Запустите виртуальную машину. Возможно, при первом запуске справа появятся сообщения об отсутствии поддержки 3D-ускорения со стороны основной системы:
![No 3D support from host](../assets/simulation_setup_vm/08_no_3d_acceleration.png)
В этом случае убедитесь, что у вас установлены самые последние драйверы для видеокарты в основной системе. Если сообщения появляются при повторных запусках виртуальной машины, добавьте строку
```
mks.gl.allowBlacklistedDrivers = "TRUE"
```
в файл `clever-devel.vmx`, находящийся в папке, в которую был импортирован архив в п. 1.
4. Настройте режим моста через настройки виртуальной машины (если используется VMware Player для Windows) или с помощью утилиты `vmware-netcfg` (если используется версия для Linux-дистрибутивов):
![vmware-netcfg interface](../assets/simulation_setup_vm/09_netcfg.png)
В списке сетей выберите `vmnet0`, ниже - режим *Bridged*, в выпадающем списке *Bridged to* - название беспроводного адаптера, с помощью которого будет производиться подключение к дрону.