Настройка Ros И Работа Со Стереокамерой Zed На Nvidia Jetson

Добрый день, дорогие читатели! В последних статьях я рассказывал о популярных методах SLAM и визуальной одометрии, которые поддерживаются в ROS. В этой статье я немного отклонюсь от темы и расскажу о настройке и работе с ROS на микрокомпьютере.

NVIDIA Джетсон ТК1 .

После установки всего необходимого подключим и опробуем.

Стереокамера ZED от компании Streolabs .

Кому интересно, смотрите кат.



О NVIDIA Джетсон

Для начала давайте посмотрим на платформу NVIDIA Jetson TK1. NVIDIA Jetson TK1 — микрокомпьютер NVIDIA на базе Тегра К1 СОК (CPU+GPU на одном чипе с поддержкой CUDA).

NVIDIA Jetson может похвастаться 4-ядерным процессором ARM Cortex-A15 с частотой 2,3 ГГц, имеет те же компоненты, что и Raspberry Pi (HDMI, USB 2.0 и 3.0, Ethernet), а также модули, специфичные для ПК: SATA, mini-PCIe. Мобильный процессор Тегра К1 имеет очень схожие свойства и архитектуру с настольными графическими процессорами, что позволяет ему выдерживать большие нагрузки при минимальном энергопотреблении.

Как говорится на официальная страница Процессор позволяет запускать на плате любые ресурсоемкие графические задачи, такие как распознавание лиц, дополненная реальность и даже задачи компьютерного зрения для беспилотных автомобилей.

Подробнее обо всех возможностях платформы вы можете прочитать Здесь .

Встроенная память NVIDIA Jetson TK1 представлена модулем eMMC объемом 16 ГБ.

По умолчанию NVIDIA Jetson TK1 поставляется с предустановленной операционной системой Ubuntu 14.04. Для питания микрокомпьютера используется адаптер переменного/постоянного тока напряжением 12 В.



Настройка ROS и работа со стереокамерой ZED на NVIDIA Jetson



Стереокамера ZED

Стереокамера ZED представляет собой пассивную камеру глубины, состоящую из двух обычных RGB-камер, расположенных на расстоянии 12 см друг от друга, с полем зрения до 20 метров.

В отличие от активных камер (таких как ASUS Xtion и Microsoft Kinect), стереокамера ZED не имеет ИК-лазера для измерения расстояния.

Камера сравнительно недорогая (стоит $449).

Преимуществом камеры можно считать ее небольшие габариты (175 х 30 х 33 мм) и легкость (159 г).

Камеру можно использовать для построение карты местности на дроне .

Подробнее о камере можно прочитать на официальной странице .



Настройка ROS и работа со стереокамерой ZED на NVIDIA Jetson



Настройка Ubuntu на NVIDIA Jetson TK1

Подключим NVIDIA Jetson TK1 через HDMI к монитору, кабель Ethernet к соответствующему разъему и, наконец, с помощью адаптера переменного/постоянного тока 12 В к источнику питания.

Для установки системы на NVIDIA Jetson может потребоваться установка JetPack TK1 (инструкцию можно найти Здесь ).

В итоге я остановился на NVIDIA Jetson с уже установленным JetPack и системой Ubuntu 14.04, поэтому я не рассматриваю возможность его установки здесь.

Таким образом, система Ubuntu 14.04 запустится автоматически.

Для авторизации используем логин и пароль ubuntu. Узнайте IP-адрес хоста Jetson:

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   

ifconfig

Получим аппаратные характеристики:

lscpu

Вывод будет такой:

Architecture: armv7l Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1

Может возникнуть проблема с подключением к Jetson по SSH: ifconfig отображает IP-адрес, но подключиться к Jetson по этому адресу невозможно.

Чтобы решить проблему, откройте файл /etc/network/interface от root:

sudo nano /etc/network/interface

и добавьте строки:

auto eth0 iface eth0 inet dhcp

Мы сделали динамическое назначение IP-адресов.

Сохраним изменения и выполним:

sudo ifup eth0

Теперь все должно работать.

Это решение было принято отсюда .

Теперь подключимся к Jetson через SSH:

ssh -X ubuntu@<ip_address>



Установка CUDA

Для работы с камерой ZED нам понадобится ZED SDK, для которого требуется установленный CUDA версии 6.5. Загрузите deb-файл для CUDA Toolkit 6.5 для L4T. отсюда (инструкции взяты отсюда ):

wget http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda-repo-l4t-r21.1-6-5-prod_6.5-14_armhf.deb

Давайте установим метаданные репозитория для CUDA для L4T, которые мы только что скачали:

sudo dpkg -i cuda-repo-l4t-r21.1-6-5-prod_6.5-14_armhf.deb

Давайте загрузим и установим сам CUDA Toolkit, включая набор инструментов OpenGL для NVIDIA:

sudo apt-get update

Установите cuda-toolkit-6-5:

sudo apt-get install cuda-toolkit-6-5

Давайте добавим пользователя Ubuntu в группу «видео», чтобы предоставить доступ к графическому процессору:

sudo usermod -a -G video $USER

Здесь $USER — это Ubuntu. Добавим путь к папке установки CUDA в скрипт .

bashrc и выполним его в текущем терминале:

echo "export PATH=/usr/local/cuda-6.5/bin:$PATH" >> ~/.

bashrc echo "export $PATH=/usr/local/cuda-6.5/bin:$PATH" >> ~/.

bashrc source ~/.

bashrc

Проверим, что на устройстве установлен CUDA Toolkit:

nvcc -V



Настройка USB 3.0 на Jetson TK1

По умолчанию порт USB 3.0 настроен системой Jetson TK1 как USB 2.0. Нам нужно настроить его как USB 3.0. Для этого откройте файл /boot/extlinux/extlinux.conf от имени пользователя root:

sudo vi /boot/extlinux/extlinux.conf

Найдем строку «usb_port_owner_info=0».

Если эта строка появляется дважды, то измените последнее включение.

Давайте перепишем «usb_port_owner_info=0» на «usb_port_owner_info=2».



Установка ZED SDK

Процедура установки аналогична процедуре установки в настольном Linux. Стоит только отметить, что OpenCV уже установлен при установке JetPack, поэтому для него можно использовать оптимизацию Tegra. Поэтому ручная установка OpenCV не требуется.

Чтобы использовать стереокамеру ZED, нам необходимо установить ZED SDK 1.2. Программа установки использует специальный файл Jetson TK1 .

run. Загрузите установщик:

wget https://www.stereolabs.com/developers/downloads/archives/ZED_SDK_Linux_JTK1_v1.2.0.run

Давайте установим права на выполнение файла и запустим его в терминале:

sudo chmod +x ZED_SDK_Linux_JTK1_v1.2.0.run .

/ZED_SDK_Linux_JTK1_v1.2.0.run

Примите условия лицензионного соглашения, нажмите «q», а затем «Y».

Далее выполним процедуру, следуя инструкции.

Запустим ZED Explorer на самом Jetson (не работает при удаленном подключении по SSH):

/usr/local/zed/tools/ZED\ Explorer



Настройка ROS и работа со стереокамерой ZED на NVIDIA Jetson



Установка драйвера ROS для стереокамеры ZED

В своих экспериментах я использовал ROS Indigo. Установим зависимости для драйвера ROS:

sudo apt-get install ros-indigo-tf2-ros ros-indigo-image-transport ros-indigo-dynamic-reconfigure ros-indigo-urdf

Давайте установим обертку ROS для камеры ZED:

cd ~/catkin_ws/src git clone https://github.com/zastrix/zed-ros-wrapper.git git checkout ef3ad46f14cf62ff21083829a1fa6879d20246de cd ~/catkin_ws catkin_make

Давайте запустим zed_wrapper, выполнив следующие команды в разных окнах терминала:

roscore roslaunch zed_wrapper zed.launch

Покажем активные темы:

rostopic list

В списке, помимо стандартных тем, мы увидим темы с префиксом /zed:

/zed/depth/camera_info /zed/depth/depth_registered /zed/joint_states /zed/left/camera_info /zed/left/image_raw_color /zed/left/image_rect_color /zed/odom /zed/point_cloud/cloud_registered /zed/rgb/camera_info /zed/rgb/image_raw_color /zed/rgb/image_rect_color /zed/right/camera_info /zed/right/image_raw_color /zed/right/image_rect_color

Давайте запустим rqt_image_view:

rosrun rqt_image_view rqt_image_view

При выборе темы /zed/Deep/Depth_registered получаем карту глубины:

Настройка ROS и работа со стереокамерой ZED на NVIDIA Jetson

Изображение RGB с левой камеры (/zed/left/image_raw_color):

Настройка ROS и работа со стереокамерой ZED на NVIDIA Jetson

И, наконец, изображение RGB с правой камеры (/zed/right/image_raw_color):

Настройка ROS и работа со стереокамерой ZED на NVIDIA Jetson

Данные с камеры публикуются в топики /zed/rgb/image_raw_color и /zed/Depth/Depth_registered с частотой 15Гц.

Давайте узнаем частоту публикации облака точек в теме /zed/point_cloud/cloud_registered:

rostopic hz /zed/point_cloud/cloud_registered



average rate: 4.146

Теги: #nvidia #Робототехника #ros #slam #stereovision #микрокомпьютеры #nvidia tegra

Вместе с данным постом часто просматривают: