Реализация алгоритма SLAM в C++, который совместим с Windows?
Мне нужен алгоритм SLAM для робота, который будет двигаться по дорожке, избегая при этом препятствий (только один круг, поэтому в конце петля будет замкнута). Робот использует GPS, компас и лидар для навигации.
Я собирался реализовать версию онлайн-графики, основанную на вероятностной робототехнике, но затем прочитал другой ответ о стекопереработке, в котором говорилось, что современные алгоритмы вышли за его пределы.
Какие современные алгоритмы используются сегодня для онлайн-слэма? Я хотел использовать iSAM, но он не совместим с Windows.
2 ответа
Недавно была выпущена новая версия системы InfiniTAM с открытым исходным кодом, разработанной в Оксфордском университете. Он поставляется со сборкой CMake, поэтому сборка так же проста, как
git clone https://github.com/victorprad/InfiniTAM.git
cd InfiniTAM
mkdir build
cd build
cmake-gui ../InfiniTAM #SELECT ADDITIONAL BUILD OPTIONS HERE
MSBuild InfiniTAM.sln /property:Configuration=Release /property:Platform=x64
Если у вас есть графический процессор с поддержкой CUDA и установленный комплект разработки CUDA, это будет обнаружено автоматически. Если нет, то я настоятельно рекомендую включить OpenMP в графическом интерфейсе CMake.
Большинство открытых решений Slam разработано на Ubuntu.
до сих пор, для косвенного метода, вы можете обратиться к ORB-SLAM
для прямого метода вы можете обратиться к ЛСД шлема
оба доступны на github.