Compare commits

..

12 Commits

Author SHA1 Message Date
Alexey Rogachevskiy
1447e73fed aruco_pose, clever: Minor cleanups 2019-12-24 19:52:41 +03:00
Alexey Rogachevskiy
75278552b3 builder: Use buster distribution for clever repository 2019-12-24 13:34:36 +03:00
Oleg Kalachev
320f7a43ce docs: fix raspistill example 2019-12-23 18:11:11 +03:00
Alexey Rogachevskiy
26e9ab0c7f docs: Add porting guide for Jetson Nano (#198)
* docs: Add porting guide for Jetson Nano (en)

* docs/jetson_nano: Add missing Jetson Nano image

* docs/jetson_nano: More explicit initial setup

* docs/jetson_nano: imx219 -> IMX219

* docs/jetson_nano: Make lack of LED strip support more clear

* docs: Add porting guide for Jetson Nano (ru)
2019-12-19 18:07:48 +03:00
Alexey Rogachevskiy
fb0e841bd4 clever/rc: Allow disabling GCS thread (#197)
* clever/rc: Allow disabling GCS thread

Currently spawning GCS thread results in ROS TCP errors. This patch allows a user to turn off this thread if it's not required.

The thread is turned off by default, since it's not required for our PX4 firmware.

* clever/rc: Code style
2019-12-16 20:37:11 +03:00
Alexey Rogachevskiy
361b365f86 clever: Use explicit camera device path
This fixes issues with spurious OpenCV/GStreamer errors.
2019-12-16 17:30:31 +03:00
Alexey Rogachevskiy
9487966b57 network: Allow WPA (non-WPA2) clients to connect
This allows Windows clients to connect to our image. Looks like WPA2 is broken for now (not sure on which side), so this is more of a workaround.
2019-12-16 16:13:45 +03:00
Alexey Rogachevskiy
a75a0e12a0 docs: Fix file paths in aruco articles (en) 2019-12-12 20:10:55 +03:00
Alexey Rogachevskiy
aa835fcdff docs: Add note about camera screws (en/ru) 2019-12-10 13:46:21 +03:00
Oleg Kalachev
7fcbe95a80 docs: fix links 2019-12-10 06:25:05 +03:00
Alexey Rogachevskiy
9f097f56c5 image: Install python3-opencv 2019-12-09 20:13:04 +03:00
Alexey Rogachevskiy
0fb22e817d rsyslog: Don't try to set rate limits
The way this was implemented didn't work anyway and produced spurious errors, we can probably live without that for now.
2019-12-09 19:50:03 +03:00
25 changed files with 329 additions and 24 deletions

View File

@@ -105,7 +105,8 @@
"TCP",
"UDP",
"QR",
"Li-ion"
"Li-ion",
"Nvidia"
],
"code_blocks": false
},

View File

@@ -18,8 +18,6 @@
<depend>tf2</depend>
<depend>tf2_ros</depend>
<depend>tf2_geometry_msgs</depend>
<!-- FIXME: OpenCV3 is not in Melodic -->
<!-- <depend>opencv3</depend> -->
<depend>cv_bridge</depend>
<depend>image_transport</depend>
<depend>message_generation</depend>

View File

@@ -45,12 +45,6 @@ $Umask 0022
#
$WorkDirectory /var/spool/rsyslog
#
# Limit log to 40 messages per second on average (should be plenty)
#
$SystemLogRateLimitInterval 5
$SystemLogRateLimitBurst 200
#
# Include all config files in /etc/rsyslog.d/
#

View File

@@ -42,7 +42,7 @@ network={
ssid="CLEVER"
psk="cleverwifi"
mode=2
proto=RSN
proto=WPA RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP

View File

@@ -68,9 +68,7 @@ apt-get update \
echo "deb http://packages.ros.org/ros/ubuntu buster main" > /etc/apt/sources.list.d/ros-latest.list
echo "deb http://deb.coex.tech/opencv3 buster main" > /etc/apt/sources.list.d/opencv3.list
echo "deb http://deb.coex.tech/rpi-ros-melodic buster main" > /etc/apt/sources.list.d/rpi-ros-melodic.list
# FIXME: We still don't have these packages built for Buster
# FIXME: Check these packages after their installation
echo "deb http://deb.coex.tech/clever stretch main" > /etc/apt/sources.list.d/clever.list
echo "deb http://deb.coex.tech/clever buster main" > /etc/apt/sources.list.d/clever.list
echo_stamp "Update apt cache"
@@ -112,6 +110,7 @@ python-dev \
python3-dev \
python-systemd \
mjpg-streamer \
python3-opencv \
&& echo_stamp "Everything was installed!" "SUCCESS" \
|| (echo_stamp "Some packages wasn't installed!" "ERROR"; exit 1)

View File

@@ -24,6 +24,7 @@ source /home/pi/catkin_ws/devel/setup.bash
cd /home/pi/catkin_ws/src/clever/builder/test/
./tests.sh
./tests.py
./tests_py3.py
echo "Move /etc/ld.so.preload back to its original position"
mv /etc/ld.so.preload.disabled-for-build /etc/ld.so.preload

7
builder/test/tests_py3.py Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env python3
# Make sure our Python 3 software is installed
import cv2
print(cv2.getBuildInformation())

View File

@@ -71,5 +71,8 @@
<include file="$(find clever)/launch/led.launch" if="$(arg led)"/>
<!-- rc backend -->
<node name="rc" pkg="clever" type="rc" output="screen" if="$(arg rc)"/>
<node name="rc" pkg="clever" type="rc" output="screen" if="$(arg rc)" clear_params="true">
<!-- Send fake GCS heartbeats. Set to "true" for upstream PX4 -->
<param name="use_fake_gcs" value="false"/>
</node>
</launch>

View File

@@ -18,6 +18,7 @@
<!-- camera node -->
<node pkg="nodelet" type="nodelet" name="main_camera" args="load cv_camera/CvCameraNodelet nodelet_manager" clear_params="true">
<param name="device_path" value="/dev/video0"/> <!-- v4l2 device -->
<param name="frame_id" value="main_camera_optical"/>
<param name="camera_info_url" value="file://$(find clever)/camera_info/fisheye_cam_320.yaml"/>

View File

@@ -33,8 +33,6 @@
<depend>mavros_extras</depend>
<depend>cv_camera</depend>
<depend>cv_bridge</depend>
<!-- FIXME: OpenCV3 is not in Melodic -->
<!-- <depend>opencv3</depend> -->
<depend>rosbridge_server</depend>
<depend>web_video_server</depend>
<depend>tf2_web_republisher</depend>

View File

@@ -34,12 +34,15 @@ public:
nh(),
nh_priv("~")
{
bool use_fake_gcs = nh_priv.param("use_fake_gcs", true);
// Create socket thread
std::thread t(&RC::socketThread, this);
t.detach();
std::thread gcst(&RC::fakeGCSThread, this);
gcst.detach();
if (use_fake_gcs) {
std::thread gcst(&RC::fakeGCSThread, this);
gcst.detach();
}
initLatchedState();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

View File

@@ -51,6 +51,7 @@
* [PID Setup](calibratePID.md)
* [Model files for parts](models.md)
* [ROS Melodic installation](ros-install.md)
* [Clever and Jetson Nano](jetson_nano.md)
* [Remote control app](rc.md)
* [Wi-Fi Configuration](network.md)
* [UART settings](uart.md)

View File

@@ -10,7 +10,7 @@
## Configuration
Set the `aruco` argument in `~/catkin_ws/src/clever/clever/launch/aruco.launch` to `true`:
Set the `aruco` argument in `~/catkin_ws/src/clever/clever/launch/clever.launch` to `true`:
```xml
<arg name="aruco" default="true"/>

View File

@@ -10,7 +10,7 @@ Using this module along with [map-based navigation](aruco_map.md) is also possib
## Setup
Set the `aruco` argument in `~/catkin_ws/src/clever/clever/launch/aruco.launch` to `true`:
Set the `aruco` argument in `~/catkin_ws/src/clever/clever/launch/clever.launch` to `true`:
```xml
<arg name="aruco" default="true"/>

View File

@@ -279,6 +279,9 @@ The flight controller expects PPM signal from your RC gear. Switch your transmit
1. Prepare the laser rangefinder by soldering leads to it.
2. Use four 2x5 self-tapping screws to secure the camera.
> **Warning** Make sure the screws don't touch any components on the camera PCB! Otherwise the camera may not function properly.
3. Mount the laser rangefinder on the lower deck using two M3x8 screws and steel nuts.
<div class="image-group">

View File

@@ -29,7 +29,7 @@ sudo systemctl stop clever
Then use `raspistill` to capture an image from the camera:
```bash
raspistill -o test-image.jpeg
raspistill -o test.jpg
```
If it doesn't work, check the camera cable connections and the cable itself. Replace the cable if it is damaged. Also, make sure the camera screws don't touch any components on the camera board.

146
docs/en/jetson_nano.md Normal file
View File

@@ -0,0 +1,146 @@
# Clever and Jetson Nano
## Jetson Nano overview
[Jetson Nano](https://developer.nvidia.com/embedded/jetson-nano-developer-kit) is a system-on-a-module by Nvidia. It is built on a Tegra X1 platform. With four ARM Cortex-A57 cores clocked at 1.4 GHz, 4 GB of RAM and a relatively powerful GPU, it is more capable than a Raspberry Pi 3 series of single-board computers.
<img src="../assets/jetson_nano/00-jetson-nano-board.jpg" class="zoom">
Jetson Nano developer kits come with a carrier board that has USB 3.0, CSI and Ethernet ports, as well as a row of GPIO pins. The carrier board is only slightly larger than a Raspberry Pi computer, making it a viable option for an onboard computer.
> **Note** The default carrier board does not have a Wi-Fi chip installed. You can use a USB Wi-Fi adapter or install a Wi-Fi card in the M.2 slot on the carrier board. Be sure to check your adapter for compatibility with the Jetson Nano!
## Setting up
Nvidia provides an SD card image with an operating system based on Ubuntu Linux 18.04 for Jetson Nano. This image is a good starting point for ROS and Clever installation.
### Initial system setup
> **Hint** Be sure to check the [official Getting Started instructions](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit) for the Jetson Nano developer kit!
For the initial setup you'll need an HDMI or DisplayPort monitor, a keyboard and a mouse. Download the [Jetson Nano developer kit image](https://developer.nvidia.com/jetson-nano-sd-card-image-r3231) and flash it on a microSD card (a 32+ GB card is strongly recommended). Plug the card into the Jetson Nano module, connect your monitor, keyboard, and mouse to the carrier board, and power up the Jetson Nano.
> **Hint** Jetson Nano can be powered by a microUSB cable, but we strongly suggest using a good power supply and a barrel jack connector. You'll need to put a jumper on the J48 pins (they are right next to the CSI connector on the carrier board).
Accept the Nvidia EULA and follow the installer prompts. The system will reboot after installation. Login with your username and password.
> **Info** We strongly recommend to choose the English system language/locale for Jetson Nano to avoid ROS compatibility issues!
If you've installed a Wi-Fi adapter, you may want to configure your Jetson Nano to connect to your Wi-Fi network automatically. Once the system is installed and booted up, click on the "wireless network" icon in the top bar, choose "Edit Connections..." in the drop-down menu, select your network name from the list and click on the gear icon at the bottom of the window.
<img src="../assets/jetson_nano/01-network-config.png" class="zoom">
Go to the "General" tab in the newly-opened window and check the "All users may connect to this network" checkbox. Press the "Save" button to close the window.
> **Hint** You may want to make sure you're able to access your Jetson Nano over the network. The image already has SSH enabled, and it's more convenient to perform next steps using the remote shell.
### Installing ROS
> **Hint** Ubuntu 18.04 is officially supported as a base system for ROS Melodic. Be sure to [check the official installation instructions](http://wiki.ros.org/melodic/Installation/Ubuntu)!
Add OSRF keys and repositories to your system:
```bash
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update
```
Install base ROS packages:
```bash
sudo apt install ros-melodic-ros-base
```
Enable your ROS environment and update your `rosdep` cache:
```bash
source /opt/ros/melodic/setup.bash
sudo rosdep init
rosdep update
```
> **Hint** You may wish to put the `source /opt/ros/melodic/setup.bash` line at the end of your user's `.profile` file.
Install pip for Python 2 (while this is not technically a part of ROS, some dependencies are only installable using pip):
```bash
sudo apt install curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python ./get-pip.py
```
### Building Clever nodes
Create a "workspace" directory in your home folder and populate it with Clever packages:
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/CopterExpress/clever
git clone https://github.com/CopterExpress/ros_led
git clone https://github.com/okalachev/vl53l1x_ros
```
Install dependencies using `rosdep`:
```bash
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -y
```
Install geographiclib datasets (they are required for mavros, but are not packaged with it):
```bash
curl https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh -o install_geographiclib_datasets.sh
chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
```
Install development libraries for OpenCV 3.2 (recent Jetson Nano images have OpenCV 4.1.1 preinstalled; using this version will result in build failures):
```bash
sudo apt install libopencv-dev=3.2.0+dfsg-4ubuntu0.1
```
Finally, build the Clever nodes:
```bash
cd ~/catkin_ws
catkin_make
```
> **Hint** You may also want to add udev rules for PX4 flight controllers. Copy [the rules file](https://github.com/CopterExpress/clever/blob/master/clever/config/99-px4fmu.rules) to `/etc/udev/rules.d` and run `sudo udevadm control --reload-rules && sudo udevadm trigger`.
### Running Clever nodes
Set up the workspace environment:
```bash
cd ~/catkin_ws
source devel/setup.bash
```
Configure the launch files to your taste and use `roslaunch` to launch the nodes:
```bash
roslaunch clever clever.launch
```
> **Hint** You may want to start the Clever nodes automatically. This can be done with `systemd`: look at service files for [`roscore`](https://github.com/CopterExpress/clever/blob/master/builder/assets/roscore.service) and [`clever`](https://github.com/CopterExpress/clever/blob/master/builder/assets/clever.service) that are used in our image and adjust them as necessary.
## Caveats
### CSI cameras
Jetson Nano currently does not support older Raspberry Pi v1 cameras (that are based on the Omnivision OV5647 sensor). Raspberry Pi v2 cameras (the ones that use Sony IMX219) are supported, but are not available as Video4Linux devices.
Fortunately, these cameras are available using GStreamer. You can try using the [`gscam`](http://wiki.ros.org/gscam) ROS package or our [`jetson_camera`](https://github.com/sfalexrog/jetson_camera) node. The latter requires you to build OpenCV 3.4 from source with GStreamer support.
The GStreamer pipelines are available at [JetsonHacksNano CSI camera reposotory](https://github.com/JetsonHacksNano/CSI-Camera).
You may also notice that the camera image has a red tint that is more pronounced near the edges. This can be fixed by image signal processor tuning. Generally this should be done by your camera manufacturer; [here is a sample ISP configuration](https://www.arducam.com/docs/camera-for-jetson-nano/fix-red-tint-with-isp-tuning/) from Adrucam
### LED strip
Jetson Nano currently does not support LED strips over GPIO.

View File

@@ -23,7 +23,7 @@ Description of some checks:
* ArUco — checks whether [ArUco](aruco.md) detection is working
* VPE — checks whether VPE data is published.
* Rangefinder — checks whether [rangefinder](laser.md) data is published.
* RPi health checks the [onboard computer](raspberrypi.md) status.
* RPi health checks the [onboard computer](raspberry.md) status.
* CPU usage checks the CPU load of the onboard computer.
> **Caution** Pay attention on the checks marked with *WARN* sign. If necessary, contact [Copter Express technical support](tg://resolve?domain=COEXHelpdesk).

View File

@@ -52,6 +52,7 @@
* [CAD-модели Клевера](models.md)
* [Docker-контейнер с симулятором](sitl_docker.md)
* [Установка ROS Melodic](ros-install.md)
* [Пакеты Клевера на Jetson Nano](jetson_nano.md)
* [Пилотирование со смартфона](rc.md)
* [Настройка сети RPi](network.md)
* [Интерфейс UART](uart.md)

View File

@@ -279,6 +279,9 @@
1. Подготовьте лазерный дальномер к монтажу, предварительно напаяв на него контакты.
2. Установите камеру на 4 самореза 2х5.
> **Warning** Убедитесь, что саморезы не касаются деталей на печатной плате камеры. В противном случае камера может не заработать.
3. Установить на деку лазерный дальномер с помощью 2 винтов М3х8 и стальных гаек.
<div class="image-group">

View File

@@ -31,7 +31,7 @@ sudo systemctl stop clever
Получите картинку с камеры утилитой `raspistill`:
```bash
raspistill -o test-image.jpg
raspistill -o test.jpg
```
Если команда завершается с ошибкой, проверьте качество подключения шлейфа камеры к Raspberry Pi или замените его.

146
docs/ru/jetson_nano.md Normal file
View File

@@ -0,0 +1,146 @@
# Пакеты Клевера на Jetson Nano
## О Jetson Nano
[Jetson Nano](https://developer.nvidia.com/embedded/jetson-nano-developer-kit) система на модуле (SoM), выпускаемая компанией Nvidia. Система построена на базе платформы Tegra X1 и несёт на себе четырёхядерный процессор ARM Cortex-A57 частотой 1.4 ГГц, 4 ГБ оперативной памяти и видеоядро на базе Nvidia Maxwell.
<img src="../assets/jetson_nano/00-jetson-nano-board.jpg" class="zoom">
Набор для разработчиков Jetson Nano включает в себя как сам модуль, так и плату-носитель с портами USB 3.0, CSI, Ethernet и GPIO-пинами. Плата-носитель ненамного больше одноплатного компьютера Raspberry Pi и может быть использована в качестве бортового компьютера.
> **Note** На плате-носителе изначально нет Wi-Fi-адаптера. Для организации беспроводного подключения к Jetson Nano следует использовать USB-адаптер или Wi-Fi карту стандарта M.2. Следует свериться со списком совместимого оборудования перед установкой адаптера.
## Установка ПО
Nvidia предоставляет образ системы для Jetson Nano на базе Ubuntu 18.04. Эта версия системы поддерживается как база для ROS Melodic.
### Начальная установка
> **Hint** Более подробные инструкции можно получить на [официальном сайте Nvidia](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit) для Jetson Nano.
Для начальной установки требуется использование клавиатуры, мыши и HDMI-монитора. Скачайте [образ системы Jetson Nano](https://developer.nvidia.com/jetson-nano-sd-card-image-r3231) и запишите его на карту microSD (размером не менее 16 ГБ; рекомендуется использовать карту объёмом не менее 32 ГБ). Вставьте записанную карту в модуль Jetson Nano, подключите клавиатуру, мышь и монитор к плате-носителю и подайте питание на модуль.
> **Hint** Jetson Nano можно питать от кабеля microUSB, но для повышения надёжности рекомендуется использовать специальный разъём питания. При использовании этого разъёма следует поместить перемычку на пины J48 (расположены рядом с разъёмом CSI).
Примите лицензионное соглашение на использование системы и следуйте дальнейшим указаниям установщика. После установки система автоматически перезагрузится и покажет экран входа в систему. Выберите созданного вами пользователя и введите пароль, указанный на этапе установки.
> **Info** Настоятельно рекомендуется выбрать английский язык как системный, дабы избежать возможных проблем с ROS.
Рекомендуется настроить автоматические подключение к Wi-Fi сети. Для этого после установки системы нажмите на значок Wi-Fi подключения в верхней части экрана, выберите опцию "Edit Connections..." в выпадающем меню, выделите текущую Wi-Fi сеть в открывшемся списке и нажмите на кнопку с иконкой шестерёнки.
<img src="../assets/jetson_nano/01-network-config.png" class="zoom">
Во вкладке "General" поставьте галочку возле пункта "All users may connect to this network". Нажмите на кнопку "Save" для применения параметров и закрытия окна.
> **Hint** Убедитесь, что Jetson Nano доступен в сети. В образе по умолчанию установлен и включен SSH-сервер; для выполнения дальнейших операций рекомендуется подключиться к нему.
### Установка ROS
> **Hint** Ubuntu 18.04 официально поддерживается дистрибутивом ROS Melodic, и поэтому на официальном сайте [есть подробная инструкция по его установке](http://wiki.ros.org/melodic/Installation/Ubuntu).
Добавьте ключи и репозитории OSRF в систему:
```bash
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update
```
Установите базовые ROS-пакеты (стек `ros-base`):
```bash
sudo apt install ros-melodic-ros-base
```
Активируйте окружение ROS и обновите кэш утилиты `rosdep`:
```bash
source /opt/ros/melodic/setup.bash
sudo rosdep init
rosdep update
```
> **Hint** Добавьте строчку `source /opt/ros/melodic/setup.bash` в конец файла `.profile` в своей домашней директории, чтобы не производить активацию окружения ROS каждый раз заново.
Установите пакетный менеджер pip для Python 2 (он требуется для установки некоторых зависимостей):
```bash
sudo apt install curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python ./get-pip.py
```
### Сборка нод Клевера
Создайте в своей домашней директории "рабочее пространство" (workspace) и добавьте туда необходимые для Клевера пакеты:
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/CopterExpress/clever
git clone https://github.com/CopterExpress/ros_led
git clone https://github.com/okalachev/vl53l1x_ros
```
Установите зависимости этих пакетов с помощью утилиты `rosdep`:
```bash
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -y
```
Для функционирования mavros потребуется также скачать географические данные. Это делается следующими командами:
```bash
curl https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh -o install_geographiclib_datasets.sh
chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
```
Для сборки пакетов также потребуется установить заголовочные файлы OpenCV 3.2 (по умолчанию в новых образах для Jetson Nano установлены заголовочные файлы для OpenCV 4.1.1; с ними компиляция пакетов провалится):
```bash
sudo apt install libopencv-dev=3.2.0+dfsg-4ubuntu0.1
```
Наконец, запустите сборку нод Клевера:
```bash
cd ~/catkin_ws
catkin_make
```
> **Hint** При подключении полётных контроллеров на базе PX4 через USB следует также добавить правила udev в систему. Скопируйте [файл с правилами](https://github.com/CopterExpress/clever/blob/master/clever/config/99-px4fmu.rules) в `/etc/udev/rules.d` и выполните команду `sudo udevadm control --reload-rules && sudo udevadm trigger`.
### Запуск Клеверных нод
Активируйте окружение "рабочего пространства":
```bash
cd ~/catkin_ws
source devel/setup.bash
```
Поменяйте launch-файлы так, чтобы это соответствовало вашей конфигурации, и запустите ноды с помощью `roslaunch`:
```bash
roslaunch clever clever.launch
```
> **Hint** Вы можете настроить `systemd` так, чтобы ноды Клевера запускались автоматически. Примером такой настройки может служить образ Клевера для Raspberry Pi: там созданы сервисы [`roscore`](https://github.com/CopterExpress/clever/blob/master/builder/assets/roscore.service) и [`clever`](https://github.com/CopterExpress/clever/blob/master/builder/assets/clever.service). Их можно подкорректировать и использовать в Jetson Nano.
## Возможные проблемы
### CSI-камеры
Jetson Nano не поддерживает старые камеры для Raspberry Pi (v1, на базе сенсора Omnivision OV5647). Камеры Raspberry Pi v2 (на базе Sony IMX219) поддерживаются, но не показываются в виде Video4Linux-устройств.
Изображения с этих камер можно захватывать с помощью GStreamer. Для последующей передачи этих изображений в ROS можно использовать ноды [`gscam`](http://wiki.ros.org/gscam) или [`jetson_camera`](https://github.com/sfalexrog/jetson_camera). Для запуска ноды `jetson_camera` потребуется собрать OpenCV из ветки 3.4 с поддержкой GStreamer.
Примеры конвейеров GStreamer для захвата изображения доступны [в репозитории JetsonHacksNano](https://github.com/JetsonHacksNano/CSI-Camera).
Изображение с камеры может становиться более красным по краям. Это можно исправить с помощью настройки процессора изображения. Эта процедура должна выполняться производителями камер; [вот пример файла настройки процессора изображения](https://www.arducam.com/docs/camera-for-jetson-nano/fix-red-tint-with-isp-tuning/) от компании Arducam.
### LED-лента
В данный момент Jetson Nano не поддерживает работу с LED-лентой через GPIO.

View File

@@ -21,7 +21,7 @@ rosrun clever selfcheck.py
* ArUco проверка работы [распознавания ArUco-маркеров](aruco.md).
* VPE проверка правильности работы VPE.
* Rangefinder проверка работы [дальномера](laser.md).
* RPi health проверка состояния [бортового компьютера](raspberrypi.md).
* RPi health проверка состояния [бортового компьютера](raspberry.md).
* CPU usage проверка загруженности процессора бортового компьютера.
> **Caution** Обращайте пристальное внимание на предупреждения, отмеченные строкой *WARN*. При необходимости, обращайтесь в [Техподдержку Copter Express](tg://resolve?domain=COEXHelpdesk).