Comments 5
Тестировал их как-то на своей камере D455 и вот такой вопрос возник. В сценах насыщеных геометрией лидар всем лучше в качестве источника одометрии или как SLAM, он точнее и надёжнее даёт одометрию, дальше видит и на 360 градусов сразу, + видит ночью. Едиственный нюанс что-бы лидар стал полностью надёжным это геметрически деградированные/планарные сцены в которых геометрии нет есть только текстуры. И вот казалось-бы есть камера, что на 100% ориентируется по текстурам но как так получилось, что ей тоже нужна геометрия и в планарных сценах она не работает, в чём тогда её смысл и всего этого vslam, vio? Быть худшим вариантом одометрии лидарной но при этом потребляя больше вычислительных ресурсов.
D455 — это стерео-VIO с ИК-проектором и IMU, а не «камера по цвету»: текстурированные плоскости для него рабочие, а реальная беда зрения — текстурный ноль или чистое вращение (хотя лидар в пустом коридоре тоже страдает от продольной дегенерации ICP). VSLAM выбирают за массу, энергопотребление, мизерный бюджет ($300) и удобный семантический loop closure.
Ну давайте более точно дадим определение D455 это RGB-D камера с imu где всё синхронизированно и откалиброванно на заводе зашито в EEPROM камеры. Она может работать с ИК проектором а может и без ИК проектора т.е. это kinect 360 что без ИК не работает, это стереокамера где ИК нужен что-бы работать ночью и на однородных поверхностях. Но речь не о камере, камера просто заводская а значит хорошая и там всё по уму. Речь о SLAM/VIO алгоритмах они работают по текстурам. Почему? Потому-что матрица камеры мерит только интенсивность точки т.е. силу отражёного света. Цветная камера фильтрует его через маску Байснера на матрице по 3м основным цветам но в основе тоже измерение силы света. Света откуда? От текстуры отражёного, значит в отличии от лидара камера именно, что по текстурам работает и причём вообще любая, а о дистанции физически вообще ничего не знает в отличии от лидара. ИК проектор лишь накладывает на бедные текстуры свой паттерн/текстуру но принцип работы не меняется сопастовление светящихся точек на матрице. Так вот, способ которым алгоритмы vio/vslam переводят точки на текстуре в координаты робота страдает теме-же балячками, что и у лидарных SLAM/LIO дегенерационные сцены. В одном из моих тестов на видео машина едет по полю, где точек очень много! Около 6000 нашли детекторы а одометрия упала и не поднимается пока машина не подезжает к лесополосе там одомитрия поднимается сама и работает ровно до тех пор пока лесополоса не кончится и снова не переходит в поле. Что получается? Точки есть? Есть. Их много? Много! Но работает только там где есть геометрия как и лидар, хотя… хотя ориентируется по текстурам и они некуда не делись. Мне кажется это главная беда т.к. камера не реализует своё главное преймущество ориентирование на плоскости где лидар в принципе не способен найти геометрию. И следовательно как-то сопаставить кадры т.к. они все абсолютно одинаковы точки на плоскости в разных местах. А вот в плане текстур в поле не полный текстурный ноль, наоборот их много с избытком! Машина едет прямо это линейное движение + едет медленно motion blure на globall shutter днем почти нет. Это всё наводит на мысль как-будто где-то внутри vio/vslam камеры используется тот-же ICP принцип как и у лидара но работающий через костыли в виде триангуляции точек и наследующий все болячки лидара а чего-то нового, что лидар не может не добавляет. Вот надеюсь уточнил.
Эксперименты с Visual SLAM и стерео камерой PS5 HD для ROS 2