оригинал:Камера глубины + лидар обеспечивает картографирование и навигацию SLAM.
С машиной Зрение,Прорывные технологии, такие как автономное вождение, постепенно развиваются.,Распознавание объектов с помощью 3D-камер,Строка для признания,Появляется все больше и больше связанных приложений моделирования сцен.,Можно сказатькамера разрешение - это терминал ироботизация глаз, и что такое камера Как насчет глубины по сравнению с предыдущей из обычной камеры (2D), какие отличия? камера глубина, также известная как для 3D-камеры,Как следует из названия,Именно с помощью этой камеры можно определить пространство съемки и расстояние глубины резкости.,Это также самое большое отличие от обычных камер.
На снимках, сделанных обычными цветными камерами, можно увидеть и записать все объекты в поле зрения камеры, но записываемые данные не включают расстояние до этих объектов от камеры. Судить о том, какие объекты находятся от нас далеко, а какие ближе, мы можем только посредством семантического анализа изображений, но точных данных нет. Камера глубины точно решает эту проблему. Благодаря данным, полученным камерой глубины, мы можем точно узнать расстояние до каждой точки изображения от камеры. Таким образом, добавив координаты (x, y) точки на изображении. 2D-изображение, мы можем получить трехмерные пространственные координаты каждой точки изображения. Реальные сцены можно восстановить с помощью трехмерных координат и реализовать такие приложения, как моделирование сцен.
Камеры глубины также имеют некоторые недостатки обычных камер и легко подвержены влиянию параллакса: в том числе черные объекты (мало характерных точек), прозрачные объекты (проникновение света), гладкие объекты (слишком сильное отражение света) и изображения без текстуры (мало особенностей). точек), передержку (меньше характерных точек) и т. д.
В настоящее время на рынке существует три распространенных решения для камер глубины:
Бинокулярное стереоскопическое Зрение(Бинокль Stereo Vision) — важная форма машинного обучения.,Он основан на принципе параллакса и использует визуализирующее оборудование для получения двух изображений измеряемого объекта с разных позиций.,Путем расчета отклонения положения между соответствующими точками на изображении.,Получить трехмерную геометрическую информацию об объекте из метода.
бинокулярная камераизосновнойпреимуществоиметь:
1) Требования к оборудованию низкие, а стоимость низкая. Обычная CMOS-камера подойдет.
2) Подходит как для внутреннего, так и для наружного использования. Если свет подходящий, не слишком тусклый.
ноНедостатки бинокулярного зренияЭто также очень очевидно:
1) Очень чувствителен к окружающему свету. Изменения освещенности приводят к большим отклонениям изображения, что может привести к сбою сопоставления или низкой точности.
2) Не подходит для монотонных сцен, лишенных текстуры. Бинокулярное Зрение выполняет сопоставление изображений на основе признаков Зрение. Отсутствие признаков приведет к сбою сопоставления.
3) Высокая вычислительная сложность,Это требует много вычислительных ресурсов. Этот метод является чистым методом Зриеиз.,Высокие требования к алгоритмам,Плохая производительность в реальном времени
4) Базовая линия ограничивает диапазон измерений. Диапазон измерения пропорционален базовой линии (расстоянию между двумя камерами), что делает невозможным миниатюризацию
Представительская компания:
Leap Motion, ZED, DJI
С помощью лазера ближнего инфракрасного диапазона свет с определенными структурными характеристиками проецируется на фотографируемый объект, а затем собирается специальной инфракрасной камерой. Этот тип света с определенной структурой будет собирать различную информацию о фазе изображения из-за различных областей глубины объекта, а затем преобразовывать это структурное изменение в информацию о глубине через вычислительный блок для получения трехмерной структуры. Проще говоря, трехмерная структура сфотографированного объекта получается с помощью оптических средств, а затем полученная информация применяется более глубоко. Обычно в качестве источника света используется невидимый инфракрасный лазер с определенной длиной волны. Испускаемый им свет проецируется на объект посредством определенного кодирования. Искажение возвращаемого шаблона кодирования рассчитывается с помощью определенного алгоритма для получения положения и. Информация о глубине объекта. На следующем рисунке представлена принципиальная схема типичной камеры со структурированным светом:
Структурированный свет(пятнышко)изпреимуществоосновнойиметь:
1) Решение продумано, и базовую линию камеры можно сделать меньше, что облегчает миниатюризацию.
2) Низкое потребление ресурсов, карта глубины может быть рассчитана по одному кадру ИК-изображения, низкое энергопотребление.
3) Активный источник света, также можно использовать ночью.
4) Высокая точность и высокое разрешение в определенном диапазоне, разрешение может достигать 1280×1024, а частота кадров может достигать 60 кадров в секунду.
пятнышко Структурированный светиз缺点与Структурированный светпохожий:
1) Легко подвергается воздействию окружающего света, что приводит к ухудшению восприятия на открытом воздухе.
2) По мере увеличения расстояния обнаружения точность будет ухудшаться.
Представительская компания:
Аоби Чжунгуан, Apple (Prime Sense), Microsoft Kinect-1, Intel RealSense, Mantis Vision и т. д.
Как следует из названия, он измеряет время полета света для определения расстояния. В частности, он непрерывно излучает лазерные импульсы к цели, а затем использует датчик для приема отраженного света и определяет точное расстояние до цели, обнаруживая летящий снаряд. -время срабатывания светового импульса. Из-за скорости света лазера невозможно напрямую измерить время полета. Обычно это достигается путем обнаружения фазового сдвига световой волны, модулированной определенными средствами. Метод TOF обычно можно разделить на два типа в зависимости от различных методов модуляции: импульсная модуляция (импульсная модуляция) и модуляция непрерывной волны (модуляция непрерывной волны). Импульсная модуляция требует очень точных часов для измерения и излучения высокочастотных и мощных лазеров. В настоящее время для реализации функции TOF используется большинство методов обнаружения смещения фазы. Проще говоря, он излучает обработанный свет, который будет отражаться обратно после попадания на объект, фиксируя время прохождения туда и обратно. Поскольку скорость света и длина волны модулированного света известны, расстояние до объекта может быть быстрым. и точно рассчитан.
Его принципиальная схема:
Поскольку TOF не основан на сопоставлении функций, точность не будет быстро падать при увеличении испытательного расстояния. В настоящее время автономное вождение и некоторые высококлассные потребительские лидары в основном реализуются с использованием этого метода.
TOF изпреимуществоосновнойиметь:
1) Расстояние обнаружения большое. При достаточной энергии лазера он может достигать десятков метров.
2) Относительно небольшое влияние окружающего света.
но TOF 也иметь一些显而易见извопрос:
1) Высокие требования к оборудованию, особенно к модулю измерения времени.
2) Потребление ресурсов велико. Эта схема требует многократной интеграции выборки при обнаружении сдвига фазы, что требует большого объема вычислений.
3) Низкая точность кромки.
4) Ограничены потреблением ресурсов и фильтрацией, частота кадров и разрешение не могут быть выше.
Представительская компания:
Microsoft Kinect-2, PMD, SoftKinect, Lenovo Phab.
Сенсорная технология не очень развита, поэтому разрешение низкое, а стоимость высокая. Однако, поскольку ее принцип полностью отличается от двух других, она имеет высокую производительность в реальном времени, не требует дополнительных вычислительных ресурсов и почти не требует дополнительных вычислительных ресурсов. никакой нагрузки на разработку алгоритмов. Это будущее.
Из трех вышеперечисленных основных направлений 3D С точки зрения решений для обработки изображений с помощью камер каждое из них имеет свои преимущества и недостатки. С точки зрения сценариев практического применения, в зонах безлюдного вождения наиболее широко используется структурированный свет, особенно спекл-структурированный. потому что Что Посмотрите на бинокль с точки зрения точности, разрешения и сценариев применения. TOF Не существует способа достичь наибольшего баланса. Кроме того, на структурированный свет легко влияет окружающее освещение, особенно солнечный свет. Поскольку этот тип камеры оснащен модулем инфракрасного лазерного излучения, ее очень легко превратить в активный бинокль, чтобы решить эту проблему.
Сравнение структурированного света и TOF:
Для сравнения, технология структурированного освещения потребляет меньше энергии, является более зрелой и больше подходит для статичных сцен. Решение TOF имеет меньший уровень шума на больших расстояниях и более высокий FPS, поэтому больше подходит для динамичных сцен.
В настоящее время технология структурированного освещения в основном используется для разблокировки и безопасной оплаты, а расстояние ее применения ограничено. Технология TOF в основном используется для фотосъемки смартфонов, обращенных назад, и играет определенную роль в AR, VR и других областях (включая 3D-фотографии, соматосенсорные игры и т. д.).
3D-структурированный свет и TOF на самом деле имеют свои преимущества и недостатки. Самым большим преимуществом структурированного света является то, что он относительно зрелый, а стоимость относительно низкая. Недостаток — то, что он подходит только для средних и коротких расстояний. Преимущества ToF — лучшая защита от помех и более широкий угол обзора. Недостатки — высокое энергопотребление, высокая стоимость, низкая точность и разрешение карты глубины. Каждая из двух технологий имеет свою направленность и применимые сценарии использования.
Описание аппаратного обеспечения камеры структурированного освещения:
Учитывая стоимость, в этой статье будет использоваться камера этого типа, о которой будет рассказано отдельно.
Kinect (аксессуар для игровой консоли Xbox):
Соматосенсорная камера LeTV (аксессуары для LeTV TV):
У камеры обычно три глаза, слева направо:
· ИК, проецирующий инфракрасный рисунок Проектор (слева)
· Камера Цвет Камера (средняя)
· Чтение отраженного инфракрасного ИК Камера (справа)
Датчик глубины считывает инфракрасные изображения, проецируемые с левой и правой сторон, и получает информацию о глубине посредством деформации рисунка.
Учитывая стоимость, можно добавить камеру глубины на базе собранного в прошлый раз шасси ROS+:
· Соматосенсорная камера LeTV «три в одном» * 1
· USB-удлинительный кабель «мать-ребенок» * 1
# Установите связанные зависимости sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros ros-$ROS_DISTRO-camera-info-manager # ros-$ROS_DISTRO-libuvc # Установите зависимости, связанные с vslam, sudo apt install ros-$ROS_DISTRO-rtabmap ros-$ROS_DISTRO-rtabmap-ros ros-$ROS_DISTRO-depthimage-to-laserscan
# Компакт-диск с исходным кодом пакета функций клонирования ~/catkin_ws/srcgit clone git@github.com:orbbec/ros_astra_camera.gitgit clone git@github.com:yanjingang/robot_vslam.git
# Создать компакт-диск с правилами udev ros_astra_camerachmod +x ./scripts/create_udev_rules./scripts/create_udev_rules# Настройте и загрузите переменные среды (выполнение на стороне робота), компакт-диск ~/catkin_ws/src./robot_vslam/script/setrgbd.sh astraprosource ~/.bashrc # export CAMERA_TYPE=astrapro
# скомпилировать компакт-диск ~/catkin_wscatkin_make --pkg astra_camera robot_vslamsource ~/catkin_ws/devel/setup.bash
После завершения первого этапа составления пакета функций подключите камеру к главному компьютеру робота.
# 0. Проверьте, нормально ли камера распознает все. /dev/astra* lrwxrwxrwx 1 root root 15 Jan 6 12:50 /dev/astra_pro -> bus/usb/001/014 lrwxrwxrwx 1 root root 15 Jan 6 12:50 /dev/astrauvc -> bus/usb/001/015
# 1. Запускаем камеру на робот-терминале (после запуска выскочит несколько предупреждений, игнорируйте их, это связано с тем, что некоторые параметры в драйвере не поддерживаются камерой) #roslaunch astra_camera astra.launch # Use Astraroslaunch robot_vslam astrapro.launch# Если выдается предупреждение: USB events thread - failed to set priority. This might cause loss of data...,дапотому что Нет разрешения, выполните следующую команду #sudo -s#source /home/work/.bashrc#roslaunch robot_vslam astrapro.launch
# 2.PC Просмотр изображений на терминале (общие темы: глубина: /camera/Depth/image; цвет: /camera/rgb/image_raw/compressed; инфракрасный порт: /camera/ir/image; Примечание: ИК-изображения могут отображаться только через rviz, существуетrqt_image_view Дисплей будет полностью черным. Это связано с форматом изображения, а не с устройством. или rqt_image_view
В этой части, чтобы каждый мог понять использование различных плагинов в rviz, мы познакомим вас с созданием среды отображения rviz. (Если вы не хотите выполнять настройку вручную, вы также можете напрямую использовать предварительно настроенный файл: /robot_vslam/rviz/astrapro.rviz)
Сначала мы добавляем плагин отображения облака точек, нажимаем «Добавить» и дважды щелкните «PointCloud2» во всплывающем интерфейсе:
Разверните карточку выбора PointCloud2 слева и выберите «Тема»:
Выберите фиксированный кадр в качестве camera_link:
На этом этапе изображение облака точек будет отображаться в интерфейсе:
Выбор различных цветовых режимов в Color Transformer позволяет раскрасить облака точек по разным правилам:
Наконец, вы можете сохранить текущую конфигурацию rviz в указанное место, выбрав «Сохранить конфигурацию как» на вкладке «Файл» в верхнем левом углу. В следующий раз, когда вы откроете rviz, вы можете напрямую открыть файл конфигурации через «Открыть конфигурацию», чтобы избежать ручной настройки. интерфейса снова.
# запускатькамера глубины(роботконец)roslaunch robot_vslam camera.launch# Начать преобразование карты глубины в радиолокационные данные roslaunch robot_vslam depth_to_laser.launch
# Rviz визуализации на стороне ПК может отображать радиолокационные данные в обычном режиме после настройки интерфейса.
Здесь можно отметить, что относительно координатного положения робота TF данные радара не составляют 360 градусов, как наши обычные данные лидара. Это связано с полем зрения (т. е. FOV) камеры глубины. наша камера составляет 58,4 градуса, вертикальное поле зрения — 45,5 градуса) ограничено, поэтому диапазон углов преобразованных радиолокационных данных соответствует горизонтальному полю обзора камеры. Простое понимание состоит в том, что перед вами находятся только предметы, находящиеся в определенном диапазоне углов. камеру видно.
Начните картографирование на стороне робота:
# Начало базы шасси controlroslaunch ros_arduino_python arduino.launch# запустить камеруroslaunch robot_vslam camera.launch# startrtab vslamroslaunch robot_vslam rtabmap_rgbd.launch
После запуска rtabmap_rgbd.launch следующая информация будет выведена в узле камеры и узле rtabmap соответственно (поскольку здесь выводится много информации и она имеет ссылочное значение, мы не записывали все файлы запуска в один файл запуска в тот же терминал.)
Посмотреть процесс картирования на ПК:
# Откройте терминал rviz на ПК (в терминале rviz вы можете увидеть созданную плоскостную карту и трехмерную карту) roslaunch robot_vslam rtabmap_rviz.launch# Вы также можете использовать собственный графический интерфейс rtabmap rtabmapvizсуществовать на ПК для наблюдения за процессом отображения (не рекомендуется, полоса пропускания будет занимать более 100M)# roslaunch robot_vslam rtabmapviz.launch
Клавиатурное управление движением робота:
# Клавиатурное управление rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Мы рекомендуем, чтобы скорость линейного движения робота не превышала 0,2 м/с, а скорость вращения не превышала 0,4 рад/с, чтобы обеспечить качество картографии. Процесс картирования в основном аналогичен лидарному картографированию. Робот с дистанционным управлением пересекает окружающую среду, чтобы завершить картографирование.
По умолчанию карта сохраняется в файле ~/.ros/rtabmap.db на стороне робота. Поскольку этот файл содержит информацию о изображениях и характерных точках во время процесса сопоставления, файл будет относительно большим.
Уведомление:запускать roslaunch robot_vslam rtabmap_rgbd.launch будет покрыто rtabmap.db Если вам нужно сохранить результаты последнего сопоставления, создайте резервную копию файла.
После завершения маппинга карта в rviz выглядит следующим образом
Здесь мы также можем изменить цвет отображения облака точек для достижения других эффектов, таких как этот
Откройте четыре терминала на стороне робота и запустите их соответственно:
# Начало базы шасси controlroslaunch ros_arduino_python arduino.launch# запустить камеруroslaunch robot_vslam camera.launch# startrtab и автоматически найдите roslaunch robot_vslam rtabmap_rgbd.launch localization:=true# Start movebase (чисто вперед, Зрение не может идти назад) roslaunch robot_vslam move_base.launch planner:=dwa move_forward_only:=true
здесь move_base из planner Параметры можно выбрать dwa и теб, эта часть существования лидарной навигации уже была представлена, здесь не буду больше вдаваться в подробности, move_forward_only Параметр для позволяет роботу двигаться только вперед (датчик Зрение имеет только направление вперед) . После запуска проверьте каждый узел на наличие ошибок. Обычно можно успешно найти его напрямую.
# Просмотрите rviz на ПК и управляйте roslaunch robot_vslam rtabmap_rviz.launch
# Просмотр rtabmap на ПК (необходимо загрузить глобальную карту вручную) roslaunch robot_vslam rtabmapviz.launch
В существующем rtabmapviz нажмите кнопку из в красном поле, чтобы синхронизировать базу данных карты с информацией.,Это может занять некоторое время,Это зависит от условий вашей локальной сети. Если изображение не отображается в левом нижнем углу и края изображения черные,Тогда робот еще не завершил исходное положение определения. Если как показано ниже,Затем робот завершил свое позиционирование,Вы можете начать навигацию, не выполняя следующие действия (обычно робот начинается с позиции, где текстура богаче и была достигнута в прошлый раз.,Позиционирование может быть завершено напрямую,В документе здесь указано, что процесс начального позиционирования намеренно запускается из области, практически не имеющей текстуры, чтобы робот не мог завершить начальное позиционирование)
如果没иметь自动定位成功,тогда все в порядкесуществовать PC Запустите узел управления клавиатурой на клиенте или роботе:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py управляет медленным движением робота до тех пор, пока изображение не появится в левом нижнем углу, а зеленый значок с обеих сторон не укажет на успешное позиционирование.
Далее вы можете указать целевую точку на карте и позволить роботнавигации пройти.
Примечание: RGBD Поле зрения камеры маленькое, хранилище информации о глубине велико, а слепая зона велика. В информации о глубине может произойти столкновение, которое можно увеличить путем регулировки. robot_vslam/param/MarsRobot/costmap_common_params.yamlсерединаизinflation_radius параметры для улучшения,нотрудно достичьилидарнавигацияилиrgbdкамера+лидариз Эффект。
Процесс работы здесьи Главы 3 полностью такой же.,Отличаются только некоторые инструкции по запуску,Итак, здесь перечислены только инструкции по запуску,Процесс работы описываться повторно не будет. Откройте три терминала на стороне робота и запустите их соответственно:
# Запустить лидар+base_controlroslaunch robot_navigation robot_lidar.launch # Запуск камеры глубины robot_vslam camera.launch # Запуск картографирования суставов rgbd+лидар robot_vslam rtabmap_rgbd_lidar.launch
# Посмотреть roslaunch на ПК robot_vslam rtabmap_rviz.launch# Управление мобильным rosrun на ПК teleop_twist_keyboard teleop_twist_keyboard.py
Мы рекомендуем, чтобы линейная скорость движения Воляроботиз не превышала 0,2 м/с, скорость вращения не превышает 0.4rad/s Чтобы гарантировать качество картографирования, процесс картирования и лидарное картографирование в основном одинаковы. Для завершения картографирования среда дистанционного управления роботосуществуется один раз. здесь можно увидеть благодаря добавлению 360 Данные LiDAR, картографирование существуют 2D Производительность карты стала лучше.
Откройте четыре терминала на стороне робота и запустите их соответственно:
# Запустить лидар+base_controlroslaunch robot_navigation robot_lidar.launch # Запустить камеру roslaunch robot_vslam camera.launch # startrtab и автоматически найдите roslaunch robot_vslam rtabmap_rgbd_lidar.launch localization:=true # Запустить базу перемещения (разрешить поддержку) roslaunch robot_vslam move_base.launch planner:=dwa move_forward_only:=false
# Посмотреть roslaunch на ПК robot_vslam rtabmap_rviz.launchroslaunch robot_vslam rtabmapviz.launch
здесь из-за присоединения 360 LiDAR, робот обладает всенаправленными сенсорными возможностями, поэтому он может move_forward_only Параметры установлены на false Позволяет роботу двигаться назад.
Сегодня я научу вас пользоваться камерой глубинывыполнить ЗрениеslamКартированиеинавигация,В то же время мы также попробовали совместное использование лидара «Зрение+»,существующий робот Значительно улучшено восприятие препятствий и их обход.,В то же время мы также можем обеспечить более удобный удаленный мониторинг и управление с помощью камеры.
2. Рекомендация к книге: «Глубокое обучение восприятию и познанию».
3. Размышляя о том, как автономное вождение перейдет от ChatGPT
4. Эта статья покажет вам, как робот отслеживает цели с помощью Зрение!
5. Как добиться синхронизации времени GPS в лидаре?
6. Зондирование BEV в иззрении-обзор термоядерного синтеза радаров миллиметрового диапазона