Добрый день, дорогие читатели! В последних статьях я рассказывал о популярных методах SLAM и визуальной одометрии, которые поддерживаются в ROS. В этой статье я немного отклонюсь от темы и расскажу о настройке и работе с ROS на микрокомпьютере.
После установки всего необходимого подключим и опробуем.
Стереокамера 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 В.
Стереокамера ZED
Стереокамера ZED представляет собой пассивную камеру глубины, состоящую из двух обычных RGB-камер, расположенных на расстоянии 12 см друг от друга, с полем зрения до 20 метров.В отличие от активных камер (таких как ASUS Xtion и Microsoft Kinect), стереокамера ZED не имеет ИК-лазера для измерения расстояния.
Камера сравнительно недорогая (стоит $449).
Преимуществом камеры можно считать ее небольшие габариты (175 х 30 х 33 мм) и легкость (159 г).
Камеру можно использовать для построение карты местности на дроне .
Подробнее о камере можно прочитать на официальной странице .
Настройка 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
В своих экспериментах я использовал 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 получаем карту глубины:
Изображение RGB с левой камеры (/zed/left/image_raw_color):
И, наконец, изображение RGB с правой камеры (/zed/right/image_raw_color):
Данные с камеры публикуются в топики /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
-
Монетизация Форума. Часть Вторая
19 Oct, 24 -
Оскп - Мой Опыт
19 Oct, 24 -
#02 - И Целого Байта Мало... | Крест Перемен
19 Oct, 24 -
Голливуд И It
19 Oct, 24 -
Википедия Для «Истинных Американцев»
19 Oct, 24