mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-26 21:19:35 +00:00
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:
committed by
GitHub
parent
585af026d4
commit
32d27f3f66
@@ -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
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
|
||||
```
|
||||
49
docs/ru/simulation_usage.md
Normal file
49
docs/ru/simulation_usage.md
Normal 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:
|
||||
|
||||

|
||||
|
||||
Вы также можете использовать 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` как шаблон.
|
||||
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* - название беспроводного адаптера, с помощью которого будет производиться подключение к дрону.
|
||||
Reference in New Issue
Block a user