From 4775919808ece29044e504f477dedcd2cb565612 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Sat, 23 Feb 2019 10:14:12 +0300 Subject: [PATCH] docs: spelling --- docs/ru/arduino.md | 8 +- docs/ru/aruco.md | 10 +- docs/ru/calibration.md | 454 ++++++++++++++++++------------------ docs/ru/camera.md | 4 +- docs/ru/connectortypes.md | 4 +- docs/ru/contributing.md | 2 + docs/ru/copterhack2017.md | 4 +- docs/ru/flight_logs.md | 5 +- docs/ru/frames.md | 2 +- docs/ru/ir_sensors.md | 4 +- docs/ru/laser.md | 6 +- docs/ru/modes.md | 4 +- docs/ru/network.md | 2 +- docs/ru/px4_parameters.md | 8 +- docs/ru/ros.md | 8 +- docs/ru/rviz.md | 2 +- docs/ru/selfcheck.md | 2 +- docs/ru/setup.md | 6 +- docs/ru/simple_offboard.md | 12 +- docs/ru/sitl.md | 2 +- docs/ru/snippets.md | 6 +- docs/ru/uart.md | 4 +- docs/ru/web_video_server.md | 2 +- 23 files changed, 282 insertions(+), 279 deletions(-) diff --git a/docs/ru/arduino.md b/docs/ru/arduino.md index b5837219..aaf60957 100644 --- a/docs/ru/arduino.md +++ b/docs/ru/arduino.md @@ -4,7 +4,7 @@ Основной туториал по rosserial: http://wiki.ros.org/rosserial_arduino/Tutorials -Arudino необходимо установить на Клевер и подключить по USB-порту. +Arduino необходимо установить на Клевер и подключить по USB-порту. ## Настройка Arduino IDE @@ -14,7 +14,7 @@ Arudino необходимо установить на Клевер и подк rosrun rosserial_arduino make_libraries.py . ``` -Полученный каталог `ros_lib` необходимо скопировать в `<папку скетчей>/libraries` на компьютере с Arudino IDE. +Полученный каталог `ros_lib` необходимо скопировать в `<папку скетчей>/libraries` на компьютере с Arduino IDE. ## Настройка Raspberry Pi @@ -49,7 +49,7 @@ while(/* условие */) { } ``` -Для огранизации долгих задержек используйте задержки в цикле с периодическим вызовом функции `hn.spinOnce()`: +Для организации долгих задержек используйте задержки в цикле с периодическим вызовом функции `hn.spinOnce()`: ```cpp // Задержка на 8 секунд @@ -202,7 +202,7 @@ getTelemetry.call(gt_req, gt_res); ## Проблемы -При использовании Arudino Nano может не хватать оперативной памяти (RAM). В таком случае в Aruino IDE будут появляться сообщения, типа: +При использовании Arduino Nano может не хватать оперативной памяти (RAM). В таком случае в Arduino IDE будут появляться сообщения, типа: ``` Глобальные переменные используют 1837 байт (89%) динамической памяти, оставляя 211 байт для локальных переменных. Максимум: 2048 байт. diff --git a/docs/ru/aruco.md b/docs/ru/aruco.md index 4242f006..40815d67 100644 --- a/docs/ru/aruco.md +++ b/docs/ru/aruco.md @@ -3,7 +3,7 @@ > **Note** Документация для версий [образа](microsd_images.md), начиная с **0.15**. Для более ранних версий см. [документацию для версии **0.14**](https://github.com/CopterExpress/clever/blob/v0.14/docs/ru/aruco.md). [ArUco-маркеры](https://docs.opencv.org/3.2.0/d5/dae/tutorial_aruco_detection.html) — это популярная технология для позиционирования -роботехнических систем с использованием компьютерного зрения. +робототехнических систем с использованием компьютерного зрения. Пример ArUco-маркеров: @@ -61,7 +61,7 @@ sudo systemctl restart clever - + ``` @@ -90,7 +90,7 @@ sudo systemctl restart clever При полетах необходимо убедиться, что наклеенные на пол метки соответствуют карте. -В топике `aruco_pose/debug` \([http://192.168.11.1:8080/snapshot?topic=/aruco\_pose/debug](http://192.168.11.1:8080/snapshot?topic=/aruco_pose/debug)\) доступен текущий результат распознования меток: +В топике `aruco_pose/debug` \([http://192.168.11.1:8080/snapshot?topic=/aruco\_pose/debug](http://192.168.11.1:8080/snapshot?topic=/aruco_pose/debug)\) доступен текущий результат распознавания меток: TODO @@ -104,9 +104,9 @@ TODO _Примечание_: указанное выше определение приведено для ситуации, когда поле маркеров лежит на полу. -Таким образом, нулевой является левая нижня точка маркерного поля. Угол по рысканью считается равным 0, когда коптер смотрит направо \(по оси x\). +Таким образом, нулевой является левая нижняя точка маркерного поля. Угол по рысканью считается равным 0, когда коптер смотрит направо \(по оси x\). -![Система координат макеров](../assets/aruco-frame.png) +![Система координат маркеров](../assets/aruco-frame.png) ### Настройка полетного контролера diff --git a/docs/ru/calibration.md b/docs/ru/calibration.md index 887f6fec..5fbb6075 100644 --- a/docs/ru/calibration.md +++ b/docs/ru/calibration.md @@ -1,227 +1,227 @@ -# Калибровка камеры - -Компьютерное зрение получает все более широкое распространение. Зачастую, алгоритмы компьютерного зрения работают неточно, получая искаженное изображение с камеры, что особенно характерно для fisheye-камер. - -![img](../assets/img1.jpg) - -> Изображение "скруглено" ближе к краям. - -Какой-либо алгоритм компьютерного зрения будет воспринимать информацию с этой картинки неправильно. Для устранения подобных искажений камера, получающая изображения, должна быть откалибрована в соответствии со своими особенностями. - -## Установка скрипта - -Для начала, необходимо установить необходимые библиотеки: - -``` -pip install numpy -pip install opencv-python -pip install glob -pip install pyyaml -pip install urllib.request -``` - -Затем скачиваем скрипт из репозитория: - -```bash -git clone https://github.com/tinderad/clever_cam_calibration.git -``` - -Переходим в скачанную папку и устанавливаем скрипт: - -```bash -cd clever_cam_calibration -sudo python setup.py build -sudo python setup.py install -``` - -Если вы используете Windows, тогда скачайте архив из [репозитория](https://github.com/tinderad/clever_cam_calibration/archive/master.zip), распакуйте его и установите: - -```bash -cd path\to\archive\clever_cam_calibration\ -python setup.py build -python setup.py install -``` - -> path\to\archive - путь до распакованного архива. - -## Подготовка к калибровке - -Вам необходимо подготовить калибровочную мишень. Она представляет собой «шахматную доску». Файл можно взять [отсюда](https://www.oreilly.com/library/view/learning-opencv-3/9781491937983/assets/lcv3_ac01.png). -Наклейте распечатанную мишень на любую твердую поверхность. Посчитайте количество пересечений в длину и в ширину доски, измерьте размер клетки (в мм). - -![img](../assets/chessboard.jpg) - -Включите Клевер и подключитесь к его Wifi. - -> Перейдите на 192.168.11.1:8080 и проверьте, получает ли компьютер изображения из топика image_raw. - -## Калибровка - -Запустите скрипт **_calibrate_cam_**: - -**Windows:** - - ```bash ->path\to\python\Scripts\calibrate_cam.exe -``` - -> path\to\Python - путь до директории Python - -**Linux:** - -```bash ->calibrate_cam -``` - -Задайте параметры доски: - -```bash ->calibrate_cam -Chessboard width: # Перекрестий в ширину -Chessboard height: # Перекрестий в длину -Square size: # Длина ребра клетки (в мм) -Saving mode (YES - on): # Режим сохранения -``` - -> Режим сохранения: если включен, то все полученные фотографии будут сохраняться в нынешней директории. - -Скрипт начнет свою работу: - - ... - Calibration started! - Commands: - help, catch (key: Enter), delete, restart, stop, finish - -Чтобы откалибровать камеру, вам требуется сделать как минимум 25 фото шахматной доски с различных ракурсов. - -![img](../assets/calibration.jpg) - -Чтобы сделать фото, введите команду **_catch_**. - -```bash ->catch -``` - -Программа будет информировать вас о состоянии калибровки. - -```bash -... -Chessboard not found, now 0 (25 required) -> # Enter ---- -Image added, now 1 (25 required) -``` - -> Вместо того, чтобы каждый раз вводить команду **_catch_**, Вы можете просто нажимать клавишу **_Enter_** (вводить пустую строку). - -После того, как будет набрано достаточное количество изображений, введите команду **_finish_**. - -```bash -... ->finish -Calibration successful! -``` - -**Калибровка по существующим изображениям:** - -Если же у вас уже есть изображения, то вы можете откалибровать камеру по ним при помощи скрипта **_calibrate_cam_ex_**. - -```bash ->calibrate_cam_ex -``` - -Указываем характеристики мишени, а так же путь до папки с изображениями: - -```bash ->calibrate_cam_ex -Chessboard width: # Перекрестий в ширину -Chessboard height: # Перекрестий в длину -Square size: # Длина ребра клетки (в мм) -Path: # Путь до папки с изображениями -``` - -В остальном этот скрипт работает аналогично **_calibrate_cam_**. - -Программа обработает все полученные фотографии, и создаст файл **_camera_info_****_._****_yaml_** в нынешней директории. При помощи этого файла можно будет выравнивать искажения на изображениях, полученных с этой камеры. - -> Если вы поменяете разрешение получаемого изображения, вам нужно будет снова калибровать камеру. - -## Исправление искажений - -За получение исправленного изображения отвечает функция **_get_undistorted_image(cv2_image, camera_info)_**: - -* **_cv2_image_**: Закодированное в массив cv2 изображение. -* **_camera_****_­__****_info_**: Путь до файла калибровки. - -Функция возвращает массив cv2, в котором закодировано исправленное изображение. - -> Если вы используете fisheye-камеру, поставляемую вместе с Клевером, то для обработки изображений разрешением 320x240 или 640x480 вы можете использовать уже существующие параметры калибровки. Для этого в качестве аргумента **_camera_info_** передайте параметры **_clever_cam_calibration.clevercamcalib.CLEVER_FISHEYE_CAM_320_** или **_clever_cam_calibration.clevercamcalib.CLEVER_FISHEYE_CAM_640_** соответственно. - -## Примеры работы - -Изначальные изображения: - -![img](../assets/img1.jpg) - -![img](../assets/img2.jpg) - -Иcправленные изображения: - -![img](../assets/calibresult.jpg) - -![img](../assets/calibresult1.jpg) - -## Пример использования - -**Обработка потока изображений с камеры**. - -Данная программа получает изображения с камеры Клевера и выводит их на экран в исправленном виде, используя существующий калибровочный файл. - -```python -import clevercamcalib.clevercamcalib as ccc -import cv2 -import urllib.request -import numpy as np -while True: - req = urllib.request.urlopen('http://192.168.11.1:8080/snapshot?topic=/main_camera/image_raw') - arr = np.asarray(bytearray(req.read()), dtype=np.uint8) - image = cv2.imdecode(arr, -1) - undistorted_img = ccc.get_undistorted_image(image, ccc.CLEVER_FISHEYE_CAM_640) - cv2.imshow("undistort", undistorted_img) - cv2.waitKey(33) -cv2.destroyAllWindows() -``` - -## Использование для ArUco - -Чтобы применить параметры калибровки к системе ArUco-навигации, требуется перенести калибровочный .yaml файл на Raspberry Pi Клевера и инициализировать его. - -> Не забудьте подключиться к WiFI Клевера. - -Для передачи файла используется протокол SFTP. В данном примере используется программа WinSCP. - -Подключимся к Raspberry Pi по SFTP: - -> Пароль: _**raspberry**_ - -![img](../assets/wcp1.png) - -Нажимаем “Войти”. Переходим в _**/home/pi/catkin_ws/src/clever/clever/camera_info/**_ и копируем туда калибровочный .yaml файл: - -![img](../assets/wcp2.jpg) - -Теперь мы должны выбрать этот файл в конфигурации ArUco. Для этого используется связь по протоколу SSH. В данном примере используется программа PuTTY. - -Подключимся к Raspberry Pi по SSH: - -![img](../assets/pty1.jpg) - -Войдем под логином _**pi**_ и паролем _**raspberry**_, перейдем в директорию _**/home/pi/catkin_ws/src/clever/clever/launch**_ и начнем редактировать конфигурацию _**main_camera.launch**_: - -![img](../assets/pty2.jpg) - -В строке _**camera node**_ заменим параметр _**camera_info**_ на _**camera_info.yaml**_: - -![img](../assets/pty3.jpg) - -> Не забудьте изменить разрешение камеры. +# Калибровка камеры + +Компьютерное зрение получает все более широкое распространение. Зачастую, алгоритмы компьютерного зрения работают неточно, получая искаженное изображение с камеры, что особенно характерно для fisheye-камер. + +![img](../assets/img1.jpg) + +> Изображение "скруглено" ближе к краям. + +Какой-либо алгоритм компьютерного зрения будет воспринимать информацию с этой картинки неправильно. Для устранения подобных искажений камера, получающая изображения, должна быть откалибрована в соответствии со своими особенностями. + +## Установка скрипта + +Для начала, необходимо установить необходимые библиотеки: + +``` +pip install numpy +pip install opencv-python +pip install glob +pip install pyyaml +pip install urllib.request +``` + +Затем скачиваем скрипт из репозитория: + +```bash +git clone https://github.com/tinderad/clever_cam_calibration.git +``` + +Переходим в скачанную папку и устанавливаем скрипт: + +```bash +cd clever_cam_calibration +sudo python setup.py build +sudo python setup.py install +``` + +Если вы используете Windows, тогда скачайте архив из [репозитория](https://github.com/tinderad/clever_cam_calibration/archive/master.zip), распакуйте его и установите: + +```bash +cd path\to\archive\clever_cam_calibration\ +python setup.py build +python setup.py install +``` + +> path\to\archive - путь до распакованного архива. + +## Подготовка к калибровке + +Вам необходимо подготовить калибровочную мишень. Она представляет собой «шахматную доску». Файл можно взять [отсюда](https://www.oreilly.com/library/view/learning-opencv-3/9781491937983/assets/lcv3_ac01.png). +Наклейте распечатанную мишень на любую твердую поверхность. Посчитайте количество пересечений в длину и в ширину доски, измерьте размер клетки (в мм). + +![img](../assets/chessboard.jpg) + +Включите Клевер и подключитесь к его Wi-Fi. + +> Перейдите на 192.168.11.1:8080 и проверьте, получает ли компьютер изображения из топика image_raw. + +## Калибровка + +Запустите скрипт **_calibrate_cam_**: + +**Windows:** + + ```bash +>path\to\python\Scripts\calibrate_cam.exe +``` + +> path\to\Python - путь до директории Python + +**Linux:** + +```bash +>calibrate_cam +``` + +Задайте параметры доски: + +```bash +>calibrate_cam +Chessboard width: # Перекрестий в ширину +Chessboard height: # Перекрестий в длину +Square size: # Длина ребра клетки (в мм) +Saving mode (YES - on): # Режим сохранения +``` + +> Режим сохранения: если включен, то все полученные фотографии будут сохраняться в нынешней директории. + +Скрипт начнет свою работу: + + ... + Calibration started! + Commands: + help, catch (key: Enter), delete, restart, stop, finish + +Чтобы откалибровать камеру, вам требуется сделать как минимум 25 фото шахматной доски с различных ракурсов. + +![img](../assets/calibration.jpg) + +Чтобы сделать фото, введите команду **_catch_**. + +```bash +>catch +``` + +Программа будет информировать вас о состоянии калибровки. + +```bash +... +Chessboard not found, now 0 (25 required) +> # Enter +--- +Image added, now 1 (25 required) +``` + +> Вместо того, чтобы каждый раз вводить команду **_catch_**, Вы можете просто нажимать клавишу **_Enter_** (вводить пустую строку). + +После того, как будет набрано достаточное количество изображений, введите команду **_finish_**. + +```bash +... +>finish +Calibration successful! +``` + +**Калибровка по существующим изображениям:** + +Если же у вас уже есть изображения, то вы можете откалибровать камеру по ним при помощи скрипта **_calibrate_cam_ex_**. + +```bash +>calibrate_cam_ex +``` + +Указываем характеристики мишени, а так же путь до папки с изображениями: + +```bash +>calibrate_cam_ex +Chessboard width: # Перекрестий в ширину +Chessboard height: # Перекрестий в длину +Square size: # Длина ребра клетки (в мм) +Path: # Путь до папки с изображениями +``` + +В остальном этот скрипт работает аналогично **_calibrate_cam_**. + +Программа обработает все полученные фотографии, и создаст файл **_camera_info_****_._****_yaml_** в нынешней директории. При помощи этого файла можно будет выравнивать искажения на изображениях, полученных с этой камеры. + +> Если вы поменяете разрешение получаемого изображения, вам нужно будет снова калибровать камеру. + +## Исправление искажений + +За получение исправленного изображения отвечает функция **_get_undistorted_image(cv2_image, camera_info)_**: + +* **_cv2_image_**: Закодированное в массив cv2 изображение. +* **_camera_****_­__****_info_**: Путь до файла калибровки. + +Функция возвращает массив cv2, в котором закодировано исправленное изображение. + +> Если вы используете fisheye-камеру, поставляемую вместе с Клевером, то для обработки изображений разрешением 320x240 или 640x480 вы можете использовать уже существующие параметры калибровки. Для этого в качестве аргумента **_camera_info_** передайте параметры **_clever_cam_calibration.clevercamcalib.CLEVER_FISHEYE_CAM_320_** или **_clever_cam_calibration.clevercamcalib.CLEVER_FISHEYE_CAM_640_** соответственно. + +## Примеры работы + +Изначальные изображения: + +![img](../assets/img1.jpg) + +![img](../assets/img2.jpg) + +Иcправленные изображения: + +![img](../assets/calibresult.jpg) + +![img](../assets/calibresult1.jpg) + +## Пример использования + +**Обработка потока изображений с камеры**. + +Данная программа получает изображения с камеры Клевера и выводит их на экран в исправленном виде, используя существующий калибровочный файл. + +```python +import clevercamcalib.clevercamcalib as ccc +import cv2 +import urllib.request +import numpy as np +while True: + req = urllib.request.urlopen('http://192.168.11.1:8080/snapshot?topic=/main_camera/image_raw') + arr = np.asarray(bytearray(req.read()), dtype=np.uint8) + image = cv2.imdecode(arr, -1) + undistorted_img = ccc.get_undistorted_image(image, ccc.CLEVER_FISHEYE_CAM_640) + cv2.imshow("undistort", undistorted_img) + cv2.waitKey(33) +cv2.destroyAllWindows() +``` + +## Использование для ArUco + +Чтобы применить параметры калибровки к системе ArUco-навигации, требуется перенести калибровочный .yaml файл на Raspberry Pi Клевера и инициализировать его. + +> Не забудьте подключиться к WiFI Клевера. + +Для передачи файла используется протокол SFTP. В данном примере используется программа WinSCP. + +Подключимся к Raspberry Pi по SFTP: + +> Пароль: _**raspberry**_ + +![img](../assets/wcp1.png) + +Нажимаем “Войти”. Переходим в _**/home/pi/catkin_ws/src/clever/clever/camera_info/**_ и копируем туда калибровочный .yaml файл: + +![img](../assets/wcp2.jpg) + +Теперь мы должны выбрать этот файл в конфигурации ArUco. Для этого используется связь по протоколу SSH. В данном примере используется программа PuTTY. + +Подключимся к Raspberry Pi по SSH: + +![img](../assets/pty1.jpg) + +Войдем под логином _**pi**_ и паролем _**raspberry**_, перейдем в директорию _**/home/pi/catkin_ws/src/clever/clever/launch**_ и начнем редактировать конфигурацию _**main_camera.launch**_: + +![img](../assets/pty2.jpg) + +В строке _**camera node**_ заменим параметр _**camera_info**_ на _**camera_info.yaml**_: + +![img](../assets/pty3.jpg) + +> Не забудьте изменить разрешение камеры. diff --git a/docs/ru/camera.md b/docs/ru/camera.md index 34a60b84..a734e0eb 100644 --- a/docs/ru/camera.md +++ b/docs/ru/camera.md @@ -44,7 +44,7 @@ raspistill -o test-image.jpg Основная статья: http://wiki.ros.org/cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython. -Пример создания подписчика на топик с изображением с основной камеры для обрабоки с использованием OpenCV: +Пример создания подписчика на топик с изображением с основной камеры для обработки с использованием OpenCV: ```python import rospy @@ -84,7 +84,7 @@ image_pub.publish(bridge.cv2_to_imgmsg(cv_image, 'bgr8')) > **Hint** Для высокоскоростного распознавания и позиционирования лучше использовать [ArUco-маркеры](aruco.md). -Для программирования различных действий коптера при детектировании нужных [QR-кодов](https://ru.wikipedia.org/wiki/QR-код) можно использовать бибилиотеку [ZBar](http://zbar.sourceforge.net). Ее нужно установить в помощью pip: +Для программирования различных действий коптера при детектировании нужных [QR-кодов](https://ru.wikipedia.org/wiki/QR-код) можно использовать библиотеку [ZBar](http://zbar.sourceforge.net). Ее нужно установить в помощью pip: ```bash sudo pip install zbar diff --git a/docs/ru/connectortypes.md b/docs/ru/connectortypes.md index 7ae1543c..3e1d563c 100644 --- a/docs/ru/connectortypes.md +++ b/docs/ru/connectortypes.md @@ -8,7 +8,7 @@ ## T-plug -Аналог XT-60. Имеет различные вариации для упрозщения разъединения. +Аналог XT-60. Имеет различные вариации для упрощения разъединения. T-plug @@ -22,7 +22,7 @@ ## Gold bullet Conector или "Бананы" -Существует великое множество штырьковых разъёмов типа Gold bullet Conector. Разъёмы данного типа отличаются друг от друга диаметром и размером. Наиболее распространены разъёмы с диаметром коннектора 2 мм, 3 мм и 4 мм. +Существует великое множество штырьковых разъёмов типа Gold bullet Connector. Разъёмы данного типа отличаются друг от друга диаметром и размером. Наиболее распространены разъёмы с диаметром коннектора 2 мм, 3 мм и 4 мм. Часто используется для создания беспаечных соединений на PDB и моторах. Banana diff --git a/docs/ru/contributing.md b/docs/ru/contributing.md index 60ac6ab7..94c417bd 100644 --- a/docs/ru/contributing.md +++ b/docs/ru/contributing.md @@ -14,6 +14,8 @@ Для удобного редактирования текста, вы можете использовать текстовые редакторы с поддержкой Markdown: [Typora](https://typora.io), [Dillinger](https://dillinger.io/) (веб), [VSCode](https://code.visualstudio.com) с плагином [Markdown Editor](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.MarkdownEditor). +Для VSCode также рекомендуется использование плагина [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) ([словарь для русского языка](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-russian)). + Для локальной сборки статического сайта документации необходимо использовать утилиту [`gitbook-cli`](https://github.com/GitbookIO/gitbook-cli). ## Исправление ошибок в документации diff --git a/docs/ru/copterhack2017.md b/docs/ru/copterhack2017.md index 35ac9d44..0505ef2b 100644 --- a/docs/ru/copterhack2017.md +++ b/docs/ru/copterhack2017.md @@ -1,7 +1,7 @@ Copter Hack 2017 === -28–30 июля 2017 "Коптер Экпресс" провел хакатон "Copter Hack 2017", на котором необходимо было запрограммировать "Клевер" на автономный танец-полет под случайную музыку. +28–30 июля 2017 "Коптер Экспресс" провел хакатон "Copter Hack 2017", на котором необходимо было запрограммировать "Клевер" на автономный танец-полет под случайную музыку. Победителем стала команда "Ящеры". @@ -29,7 +29,7 @@ rosrun web_video_server web_video_server Открыть в браузере страницу ``http://:8080``. -**Внимание**: раздача видеострима сильно снижает производительность распознования маркеров для полета. +**Внимание**: раздача видеострима сильно снижает производительность распознавания маркеров для полета. SSID Wi-Fi --- diff --git a/docs/ru/flight_logs.md b/docs/ru/flight_logs.md index ffa0e57a..79e4a6b0 100644 --- a/docs/ru/flight_logs.md +++ b/docs/ru/flight_logs.md @@ -1,7 +1,7 @@ Логи и топики PX4 === -Для детального анализа поведения прошивки PX4 можно просмотреть полетные логи. Полетные логи представляют собой сообщения в [uORB-топиках](https://dev.px4.io/en/middleware/uorb.html), записанные в файл с раширением `.ulg`. Лог-файл можно скачать с помощью QGroundControl по Wi-Fi или USB во вкладке *Log Download*: +Для детального анализа поведения прошивки PX4 можно просмотреть полетные логи. Полетные логи представляют собой сообщения в [uORB-топиках](https://dev.px4.io/en/middleware/uorb.html), записанные в файл с расширением `.ulg`. Лог-файл можно скачать с помощью QGroundControl по Wi-Fi или USB во вкладке *Log Download*: ![Логи в QGroundControl](../assets/download-log.png) @@ -20,7 +20,8 @@ ### FlightPlot -Также лог-файл можно анализировать с помомщью программы FlightPlot. Актуальную версию программы можно [скачать](https://github.com/PX4/FlightPlot/releases) на GitHub. +Также лог-файл можно анализировать с помомщ +ью программы FlightPlot. Актуальную версию программы можно [скачать](https://github.com/PX4/FlightPlot/releases) на GitHub. В программе можно просмотреть полный список записанных топиков (*Fields List*). В нем нужно выбрать необходимые топики, после чего они появятся на графике: diff --git a/docs/ru/frames.md b/docs/ru/frames.md index 52893ef3..90e1c88e 100644 --- a/docs/ru/frames.md +++ b/docs/ru/frames.md @@ -9,7 +9,7 @@ * `map` — координаты относительно точки инициализации полетного контроллера: белая сетка на иллюстрации; * `base_link` — координаты относительно квадрокоптера: схематичное изображение квадрокоптера на иллюстрации; -* `body` — координаты относительно квадрокоптера без учета наклонов по тангажу и крену: красная, синия и зеленая линии на иллюстрации. +* `body` — координаты относительно квадрокоптера без учета наклонов по тангажу и крену: красная, синяя и зеленая линии на иллюстрации. > **Hint** В соответствии с [соглашением](http://www.ros.org/reps/rep-0103.html), для фреймов, связанных с коптером, ось X направлена вперед, Y – налево и Z – вверх. diff --git a/docs/ru/ir_sensors.md b/docs/ru/ir_sensors.md index deaaad6d..59004b0d 100644 --- a/docs/ru/ir_sensors.md +++ b/docs/ru/ir_sensors.md @@ -135,7 +135,7 @@ irw Это значит, что ваша конфигурация корректно распознается программой и теперь вы можете запрограммировать нужные вам действия в случае нажатия определенной клавиши. -## Работа с ИК-датчками в Python +## Работа с ИК-датчиками в Python Чтобы иметь возможность использовать сигналы с ИК-приемника в Python программах, вам потребуется пакет `python-lirc`. [Установите его](#install) при необходимости. @@ -169,7 +169,7 @@ end + `prog` – имя программы, которое вы будете вызывать в своем скрипте + `button` – наименование клавиши, которое вы вводили во время настройки пульта -+ `config` – информация, которая будет передана вашей программе в случае нажатия указаной клавиши ++ `config` – информация, которая будет передана вашей программе в случае нажатия указанной клавиши Все настройки выполнены и теперь можно переходить непосредственно к программированию ИК-сигналов. diff --git a/docs/ru/laser.md b/docs/ru/laser.md index 64af9a7c..c4331813 100644 --- a/docs/ru/laser.md +++ b/docs/ru/laser.md @@ -4,7 +4,7 @@ Рекомендуемая для Клевера модель дальномера – STM VL53L1X. Это дальномер может измерять расстояния от 0 до 4 м, при этом обеспечивая высокую точность измерений. -На [образе для Raspberry Pi](microsd_images.md) предустановен соответствующий ROS-драйвер. +На [образе для Raspberry Pi](microsd_images.md) предустановлен соответствующий ROS-драйвер. ### Подключение к Raspberry Pi @@ -24,7 +24,7 @@ ``` -По умолчания драйер дальномера передает данные в Pixhawk (через топик `/mavros/distance_sensor/rangefinder_sub`). Для просмотра данных из топика используйте команду: +По умолчания драйвер дальномера передает данные в Pixhawk (через топик `/mavros/distance_sensor/rangefinder_sub`). Для просмотра данных из топика используйте команду: ```bash rostopic echo mavros/distance_sensor/rangefinder_sub @@ -52,7 +52,7 @@ rospy.Subscriber('mavros/distance_sensor/rangefinder_sub', Range, range_callback ### Визуализация данных -Для посмотроения графика по данным с дальномера может быть использован rqt_multiplot. +Для построения графика по данным с дальномера может быть использован rqt_multiplot. Для визуализации данных может быть использован rviz. Для этого необходимо добавить топик типа `sensor_msgs/Range` в визуализацию: diff --git a/docs/ru/modes.md b/docs/ru/modes.md index ab5083cf..f8f292a4 100644 --- a/docs/ru/modes.md +++ b/docs/ru/modes.md @@ -1,7 +1,7 @@ Полетные режимы === -Режим полетного контроллера определяет, как именно коптер (или другое ТС) должно себя вести: каким обрзом интерпретировать входящие команды и сигналы с пульта. +Режим полетного контроллера определяет, как именно коптер (или другое ТС) должно себя вести: каким образом интерпретировать входящие команды и сигналы с пульта. PX4 --- @@ -31,7 +31,7 @@ PX4 В режиме автоматического полета квадрокоптер игнорирует сигналы с пульта. * **AUTO.MISSION** – PX4 выполняет заранее загруженную в квадрокоптер миссию (миссия загружается с помощью QGroundControl, или по [MAVLink](mavlink.md) используя [MAVROS](mavros.md). -* **AUTO.RTL** – коптер автоматически вовращается в точку взлета. +* **AUTO.RTL** – коптер автоматически возвращается в точку взлета. * **AUTO.LAND** – коптер выполняет посадку. ### Управление с внешнего компьютера diff --git a/docs/ru/network.md b/docs/ru/network.md index df94dfe6..0a2f6d89 100644 --- a/docs/ru/network.md +++ b/docs/ru/network.md @@ -150,7 +150,7 @@ ___ Работа сети на [образе](microsd_images.md) поддерживается двумя предустановленными службами: * **networking** — служба включает все сетевые интерфейсы в момент запуска [5]. -* **dhcpcd** — служба обеспечивает настройку адресации и маршрутризации на интерфейсах, полученных динамически или указаных в файле настроек статически. +* **dhcpcd** — служба обеспечивает настройку адресации и маршрутизации на интерфейсах, полученных динамически или указанных в файле настроек статически. Для работы в режиме роутера (точки доступа) RPi необходим DHCP сервер. Он служит для автоматической выдачи настроек текущей сети подключившимся клиентам. В роли такого сервера может выступать `isc-dhcp-server` или `dnsmasq`. diff --git a/docs/ru/px4_parameters.md b/docs/ru/px4_parameters.md index c9b72786..27631823 100644 --- a/docs/ru/px4_parameters.md +++ b/docs/ru/px4_parameters.md @@ -20,7 +20,7 @@ * ориентация коптера (в локальной системе координат) – pitch (тангаж), roll (крен), yaw (рысканье) (одно из представлений); * позиция коптера (в локальной системе координат) – x, y, z; * скорость коптера (в локальной системе координат) – vx, vy, vz; -* глобальные координаты коптера – lattitude, longitude, altitude; +* глобальные координаты коптера – latitude, longitude, altitude; * высота над поверхностью; * другие параметры (дрейф гироскопов, скорость ветра и пр.). @@ -30,7 +30,7 @@ `EKF2_AID_MASK` – выбор датчиков, которые используются EKF2 для вычисления состояния коптера. -`EKF2_HGT_MODE` – основной источник данных о высоте (z в локальной системе координт): +`EKF2_HGT_MODE` – основной источник данных о высоте (z в локальной системе координат): * 0 – давление с барометра. * 1 – GPS. @@ -43,7 +43,7 @@ Данные параметры настраивают полет коптера по позиции (режимы POSCTL, OFFBOARD, AUTO). -`MPC_THR_HOVER` – газ висения. Данный параметр наобходимо установить на примерный процент газа, необходимый для того, чтобы коптер удерживал высоту. Если коптер имеет тенденцию набирать или терять высоту в режиме удержания высоты – можно уменьшить или увеличить это значение. +`MPC_THR_HOVER` – газ висения. Данный параметр необходимо установить на примерный процент газа, необходимый для того, чтобы коптер удерживал высоту. Если коптер имеет тенденцию набирать или терять высоту в режиме удержания высоты – можно уменьшить или увеличить это значение. `MPC_XY_P` – коэффициент *P* регулятора по позиции. Этот параметр влияет на то, насколько резко коптер будет выполнять заданные команды по позиции. Слишком большое значение может вызвать перестрелы. @@ -67,6 +67,6 @@ TODO ## Sensors -Включение, выключение и настройка различных датчков. +Включение, выключение и настройка различных датчиков. TODO diff --git a/docs/ru/ros.md b/docs/ru/ros.md index 8d05c9dc..f33879f5 100644 --- a/docs/ru/ros.md +++ b/docs/ru/ros.md @@ -3,7 +3,7 @@ ROS Основная статья: http://wiki.ros.org -ROS – это широко используемый фреймворк для создания сложных и распределенных роботехнических систем. +ROS – это широко используемый фреймворк для создания сложных и распределенных робототехнических систем. Установка --- @@ -23,9 +23,9 @@ ROS уже установлен на [образе для RPi](microsd_images.md Основная статья: http://wiki.ros.org/Nodes -ROS-нода – это специальная программа (обычно написанная на Python или C++), которая взаимодействует с другими нодами посредством ROS-топиков и ROS-сервисов. Разделение сложных роботехнических систем на изолированные ноды дает определеные преимущества: понижается связанность кода, повышается переиспользуемость и надежность. +ROS-нода – это специальная программа (обычно написанная на Python или C++), которая взаимодействует с другими нодами посредством ROS-топиков и ROS-сервисов. Разделение сложных робототехнических систем на изолированные ноды дает определенные преимущества: понижается связанность кода, повышается переиспользуемость и надежность. -Очень многие роботехнические библиотеки и драйвера выполнены именно в виде ROS-нод. +Очень многие робототехнические библиотеки и драйвера выполнены именно в виде ROS-нод. Для того, чтобы превратить обычную программу в ROS-ноду, необходимо подключить к ней библиотеку `rospy` или `roscpp` и добавить инициализирующий код. @@ -108,4 +108,4 @@ rosservice call /get_telemetry "{frame_id: ''}" Основная статья: http://wiki.ros.org/ROS/Tutorials/MultipleMachines. -Преимуществом использования ROS явлется возможность распределения нод на несколько машин в сети. Например, ноду, осуществляющую распознование образом на изображении можно запустить на более мощном компьютере; ноду, управляющую коптером можно запустить непосредствено на Raspberry Pi, подключенном к полетому контроллеру и т. д. +Преимуществом использования ROS является возможность распределения нод на несколько машин в сети. Например, ноду, осуществляющую распознавание образом на изображении можно запустить на более мощном компьютере; ноду, управляющую коптером можно запустить непосредственно на Raspberry Pi, подключенном к полетому контроллеру и т. д. diff --git a/docs/ru/rviz.md b/docs/ru/rviz.md index 7a26ef89..5a615b9c 100644 --- a/docs/ru/rviz.md +++ b/docs/ru/rviz.md @@ -3,7 +3,7 @@ ![rviz](../assets/rviz.png) -Инструмент [rviz](http://wiki.ros.org/rviz) позволяет в реальном времени визуализировать на 3D-сцене все компоненты роботехнической системы — системы координат, движущиеся части, показания датчиков, изображения с камер. +Инструмент [rviz](http://wiki.ros.org/rviz) позволяет в реальном времени визуализировать на 3D-сцене все компоненты робототехнической системы — системы координат, движущиеся части, показания датчиков, изображения с камер. [rqt](http://wiki.ros.org/rqt) – это набор GUI для анализа и контроля ROS-систем. Например, `rqt_image_view` позволяет просматривать топики с изображениями, `rqt_multiplot` – строить графики по значениям в топиках и т. д. diff --git a/docs/ru/selfcheck.md b/docs/ru/selfcheck.md index 1eb9fd74..b0021be2 100644 --- a/docs/ru/selfcheck.md +++ b/docs/ru/selfcheck.md @@ -18,7 +18,7 @@ rosrun clever selfcheck.py * FCU – проверка корректности соединения с полетным контроллером; * IMU – проверка корректности данных с IMU; -* Local position – наличие локалной позиции дрона; +* Local position – наличие локальной позиции дрона; * Velocity estimation – оценка скоростей дрона (**запрещено выполнять автономный взлет при ошибках в этой проверке!**); * Global position (GPS) – наличие глобальной позиции (требуется GPS); * Camera – корректная работа камеры Raspberry. diff --git a/docs/ru/setup.md b/docs/ru/setup.md index 896fbb35..906c4ac0 100644 --- a/docs/ru/setup.md +++ b/docs/ru/setup.md @@ -7,14 +7,14 @@ ## Установка QGroundControl * Скачиваем установочный файл для Windows/iOS по ссылке [QGroundCongtrol](http://qgroundcontrol.com/downloads/). -* Соглашаемся с установкой драйверов при инсталяции +* Соглашаемся с установкой драйверов при инсталляции ## Форматирование карты памяти * Устанавливаем карту памяти microSD в адаптер. * Форматируем карту в файловую систему FAT32 - правый клие на диске > Форматирование. -* Выполняем "Безопасное извлечение" карты напанели инструментов, далее извлекаем карту. + правый клик на диске > Форматирование. +* Выполняем "Безопасное извлечение" карты на панели инструментов, далее извлекаем карту. * Устанавливаем microSD карту в полетный контроллер Pixhawk. ## Обновление прошивки Pixhawk diff --git a/docs/ru/simple_offboard.md b/docs/ru/simple_offboard.md index 42acbbe1..6128f442 100644 --- a/docs/ru/simple_offboard.md +++ b/docs/ru/simple_offboard.md @@ -33,7 +33,7 @@ set_rates = rospy.ServiceProxy('set_rates', srv.SetRates) land = rospy.ServiceProxy('land', Trigger) ``` -Неиспользуемые фукнции-прокси можно удалить из кода. +Неиспользуемые функции-прокси можно удалить из кода. Описание API --- @@ -112,7 +112,7 @@ rosservice call /get_telemetry "{frame_id: ''}" * `auto_arm` – перевести коптер в `OFFBOARD` и заармить автоматически (**коптер взлетит**); * `frame_id` – [система координат](frames.md), в которой заданы `x`, `y`, `z` и `yaw` (по умолчанию: `map`). -> **Note** Для полета без изменения угла по рыскаью достаточно установить `yaw` в `NaN` (значение угловой скорости по-умолчанию – 0). +> **Note** Для полета без изменения угла по рысканью достаточно установить `yaw` в `NaN` (значение угловой скорости по-умолчанию – 0). Взлет на высоту 1.5 м со скоростью взлета 0.5 м/с: @@ -182,7 +182,7 @@ rosservice call /navigate "{x: 0.0, y: 0.0, z: 2, yaw: 0.0, yaw_rate: 0.0, speed * `auto_arm` – перевести коптер в `OFFBOARD` и заармить автоматически (**коптер взлетит**); * `frame_id` – [система координат](frames.md), в которой заданы `z` и `yaw` (по умолчанию: `map`). -> **Note** Для полета без изменения угла по рыскаью достаточно установить `yaw` в `NaN` (значение угловой скорости по-умолчанию – 0). +> **Note** Для полета без изменения угла по рысканью достаточно установить `yaw` в `NaN` (значение угловой скорости по-умолчанию – 0). Полет в глобальную точку со скоростью 5 м/с, оставаясь на текущей высоте (`yaw` установится в 0, коптер сориентируется передом на восток): @@ -277,11 +277,11 @@ set_velocity(vx=0.4, vy=0.0, vz=0, yaw=float('nan'), yaw_rate=0.4, frame_id='bod ### set_rates -Установить угловые скорости по тагажу, крену и рысканью и уровень газа (примерный аналог управления в [режиме `ACRO`](modes.md)). Это самый низкий уровень управления коптером (исключая непосредственный контроль оборотов моторов). Данный сервис может быть использован для автоматического выполнения акробатических трюков (например, флипа). +Установить угловые скорости по тангажу, крену и рысканью и уровень газа (примерный аналог управления в [режиме `ACRO`](modes.md)). Это самый низкий уровень управления коптером (исключая непосредственный контроль оборотов моторов). Данный сервис может быть использован для автоматического выполнения акробатических трюков (например, флипа). Параметры: -* `pitch_rate`, `roll_rate`, `yaw_rate` – угловая скорость по танажу, крену и рыканью *(рад/с)*; +* `pitch_rate`, `roll_rate`, `yaw_rate` – угловая скорость по тангажу, крену и рыканью *(рад/с)*; * `thrust` – уровень газа от 0 (нет газа, пропеллеры остановлены) до 1 (полный газ). * `auto_arm` – перевести коптер в `OFFBOARD` и заармить автоматически (**коптер взлетит**); @@ -315,5 +315,5 @@ rosservice call /land "{}" Дополнительные материалы ------------------------ -* [Полеты в поле ArUco-макеров](aruco.md). +* [Полеты в поле ArUco-маркеров](aruco.md). * [Примеры программ и сниппеты](snippets.md). diff --git a/docs/ru/sitl.md b/docs/ru/sitl.md index 9aa0255b..c28459ef 100644 --- a/docs/ru/sitl.md +++ b/docs/ru/sitl.md @@ -72,4 +72,4 @@ QGroundControl автоматически подключится к запуще ```bash roslaunch mavros px4.launch fcu_url:=udp://@127.0.0.1:14557 -``` \ No newline at end of file +``` diff --git a/docs/ru/snippets.md b/docs/ru/snippets.md index 5f137c22..9841eb57 100644 --- a/docs/ru/snippets.md +++ b/docs/ru/snippets.md @@ -11,7 +11,7 @@ Python ### # {#distance} -Функция определения расстяния между двумя точками (**важно**: точки должны быть в одной [системе координат](frames.md)): +Функция определения расстояния между двумя точками (**важно**: точки должны быть в одной [системе координат](frames.md)): ```python def get_distance(x1, y1, z1, x2, y2, z2): @@ -108,7 +108,7 @@ pose.pose.position.z = 3 pose.pose.orientation.w = 1 frame_id = 'base_link' # целевой фрейм -transform_timeout = rospy.Duration(0.2) # таймаут ожидания транформации +transform_timeout = rospy.Duration(0.2) # таймаут ожидания трансформации # Преобразовываем позицию из старого фрейма в новый: new_pose = tf_buffer.transform(pose, frame_id, transform_timeout) @@ -127,7 +127,7 @@ flipped = not -PI_2 <= telem.pitch <= PI_2 or not -PI_2 <= telem.roll <= PI_2 ### # {#angle-hor} -Рассчет общего угла коптера к горизонту: +Расчет общего угла коптера к горизонту: ```python PI_2 = math.pi / 2 diff --git a/docs/ru/uart.md b/docs/ru/uart.md index 41e6ba38..8f74b2bf 100644 --- a/docs/ru/uart.md +++ b/docs/ru/uart.md @@ -25,7 +25,7 @@ UART – последовательный асинхронный интерфе Подробнее про UART на Raspberry Pi в [официальной статье](https://www.raspberrypi.org/documentation/configuration/uart.md). -Данные интерфейсы с помощью вентелей микроконтроллера можно переключать между двуями физическими выходами: +Данные интерфейсы с помощью вентелей микроконтроллера можно переключать между двумя физическими выходами: 1. разъём UART на GPIO; 2. Bluetooth модуль RPi. @@ -37,7 +37,7 @@ UART – последовательный асинхронный интерфе Для удобства работы с этими выходами в Raspbian существуют алиасы: * `/dev/serial0` – всегда указывает на то TTY устройство, что подключено к GPIO портам. -* `/dev/serial1` – всегда указывает на то TTY устройство, что подключено к Bluetooh модулю. +* `/dev/serial1` – всегда указывает на то TTY устройство, что подключено к Bluetooth модулю. ### Настройка UART на Raspberry Pi diff --git a/docs/ru/web_video_server.md b/docs/ru/web_video_server.md index e6b5822e..9c248772 100644 --- a/docs/ru/web_video_server.md +++ b/docs/ru/web_video_server.md @@ -1,6 +1,6 @@ # Просмотр изображений с камер -Для просмотра изображений с камер (или других ROS-топиков) можно воспользовться [rviz](rviz.md), rqt, или смотреть их через браузер, используя web\_video\_server. +Для просмотра изображений с камер (или других ROS-топиков) можно воспользоваться [rviz](rviz.md), rqt, или смотреть их через браузер, используя web\_video\_server. См. подробнее про [использование rqt](rviz.md).