jderobot / sdslam Goto Github PK
View Code? Open in Web Editor NEWThis project forked from raulmur/orb_slam2
Semi Direct SLAM (SD-SLAM) for Monocular and RGB-D Cameras
License: Other
This project forked from raulmur/orb_slam2
Semi Direct SLAM (SD-SLAM) for Monocular and RGB-D Cameras
License: Other
Hi,
I’m working with SD-SLAM in an augmented reality app for Android and i had some scale issues, so i tried to use the pattern initialization.
From what I have found, to use this initialization you only have to change the variable kUsePattern_ that is in the Config class. This is one of the variables that are loaded from the specified file when using the ReadParameters method of that same class.
However, as I’m programming on mobile, I think it can be an improvement to have a public method to access this value.
Also, currently you can’t access the value of the size of cells, so when printing the pattern they are probably different from the values in the code. Being able to access these values would help to use this type of initialization.
I see the project doesn't have DBOW files, it doesn't have loop detection and optimization, right?
I see the project doesn't have DBOW files, it doesn't have loop detection and optimization, right?
Hi,
I'm trying to build the present fully-ROSified version of SD-SLAM but I'm having troubles when executing the build_ros.sh script. Any hints on how I should proceed?
diego@EINSTEIN:~/SD-SLAM$ ./build_ros.sh
Ruilding ROS nodes
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.12")
[rosbuild] Building package SD-SLAM
[rosbuild] Cached build flags older than manifests; calling rospack to get flags
-- Using CATKIN_DEVEL_PREFIX: /home/diego/SD-SLAM/Examples/ROS/SD-SLAM/build/devel
-- Using CMAKE_PREFIX_PATH: /home/diego/catkin_ws/devel;/opt/ros/kinetic
-- This workspace overlays: /home/diego/catkin_ws/devel;/opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Skip enable_testing() for dry packages
-- Using CATKIN_TEST_RESULTS_DIR: /home/diego/SD-SLAM/Examples/ROS/SD-SLAM/build/test_results
-- Found gmock sources under '/usr/src/gmock': gmock will be built
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found gtest sources under '/usr/src/gmock': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.18
-- BUILD_SHARED_LIBS is on
[rosbuild] using multiarch 'x86_64-linux-gnu' for finding Boost
Build type: Release
-- Found Eigen3: /usr/local/include/eigen3 (Required is at least version "3.1.0")
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- system
-- Configuring done
-- Generating done
-- Build files have been written to: /home/diego/SD-SLAM/Examples/ROS/SD-SLAM/build
Scanning dependencies of target rospack_genmsg_libexe
[ 0%] Built target rospack_genmsg_libexe
Scanning dependencies of target rosbuild_precompile
[ 0%] Built target rosbuild_precompile
Scanning dependencies of target Fusion
Scanning dependencies of target RGBD
Scanning dependencies of target Monocular
make[2]: *** No hay ninguna regla para construir el objetivo '../../../../lib/libSD_SLAM.so', necesario para '../RGBD'. Alto.
make[2]: *** No hay ninguna regla para construir el objetivo '../../../../lib/libSD_SLAM.so', necesario para '../Monocular'. Alto.
make[2]: *** Se espera a que terminen otras tareas....
make[2]: *** Se espera a que terminen otras tareas....
make[2]: *** No hay ninguna regla para construir el objetivo '../../../../lib/libSD_SLAM.so', necesario para '../Fusion'. Alto.
make[2]: *** Se espera a que terminen otras tareas....
[ 16%] Building CXX object CMakeFiles/Monocular.dir/src/ros_monocular.cc.o
[ 50%] Building CXX object CMakeFiles/RGBD.dir/src/ros_rgbd.cc.o
[ 50%] Building CXX object CMakeFiles/Fusion.dir/src/ros_fusion.cc.o
CMakeFiles/Makefile2:515: fallo en las instrucciones para el objetivo 'CMakeFiles/Monocular.dir/all'
make[1]: *** [CMakeFiles/Monocular.dir/all] Error 2
make[1]: *** Se espera a que terminen otras tareas....
CMakeFiles/Makefile2:584: fallo en las instrucciones para el objetivo 'CMakeFiles/RGBD.dir/all'
make[1]: *** [CMakeFiles/RGBD.dir/all] Error 2
CMakeFiles/Makefile2:621: fallo en las instrucciones para el objetivo 'CMakeFiles/Fusion.dir/all'
make[1]: *** [CMakeFiles/Fusion.dir/all] Error 2
Makefile:127: fallo en las instrucciones para el objetivo 'all'
make: *** [all] Error 2
Allow SD-SLAM when working on RGBD mode to use the depth information to keep tracking even if there is no texture at all.
For this an odometry depth only based method is needed.
What would need to be done to use a stereo camera with SDslam? Thanks!
Hi @omar-ogm
I'm trying to build the sdslam+_depth branch but I'm getting a CMake error related to "mrpt-poses". This is the complete build output:
diego@JOULE:~/JDEROBOT/SD-SLAM+/SDslam$ sh build.sh
Configuring and building SD_SLAM ...
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Build type: Release
-- Compiling on Unix
-- Using CATKIN_DEVEL_PREFIX: /home/diego/JDEROBOT/SD-SLAM+/SDslam/build/devel
-- Using CMAKE_PREFIX_PATH: /home/diego/catkin_ws/devel;/opt/ros/melodic;/opt/jderobot;/opt/jderobot
-- This workspace overlays: /home/diego/catkin_ws/devel;/opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2")
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/diego/JDEROBOT/SD-SLAM+/SDslam/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.23
-- BUILD_SHARED_LIBS is on
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
CMake Error at /usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package):
By not providing "Findmrpt-poses.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"mrpt-poses", but CMake did not find one.
Could not find a package configuration file provided by "mrpt-poses" with
any of the following names:
mrpt-posesConfig.cmake
mrpt-poses-config.cmake
Add the installation prefix of "mrpt-poses" to CMAKE_PREFIX_PATH or set
"mrpt-poses_DIR" to a directory containing one of the above files. If
"mrpt-poses" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
/usr/share/mrpt/mrpt-config.cmake:26 (find_dependency)
CMakeLists.txt:64 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/diego/JDEROBOT/SD-SLAM+/SDslam/build/CMakeFiles/CMakeOutput.log".
See also "/home/diego/JDEROBOT/SD-SLAM+/SDslam/build/CMakeFiles/CMakeError.log".
make: *** No se especificó ningún objetivo y no se encontró ningún makefile. Alto.
However, I check if mrpt-poses is installed with apt list --installed | grep mrpt-poses
and everything seems ok:
libmrpt-poses2.0/bionic,now 1:2.0.4~snapshot20200525-1143-git-7ea9b7e8-bionic-1 amd64 [instalado, automático]
In file included from /usr/include/c++/9/map:61,
from /home/pablo/Desktop/master/SDslam/src/KeyFrame.h:28,
from /home/pablo/Desktop/master/SDslam/src/LoopClosing.h:30,
from /home/pablo/Desktop/master/SDslam/src/LoopClosing.cc:25:
/usr/include/c++/9/bits/stl_map.h: In instantiation of ‘class std::map<SD_SLAM::KeyFrame*, g2o::Sim3, std::less<SD_SLAM::KeyFrame*>, Eigen::aligned_allocator<std::pair<const SD_SLAM::KeyFrame*, g2o::Sim3> > >’:
/home/pablo/Desktop/master/SDslam/src/LoopClosing.cc:402:19: required from here
/usr/include/c++/9/bits/stl_map.h:122:71: error: static assertion failed: std::map must have the same value_type as its allocator
122 | static_assert(is_same<typename _Alloc::value_type, value_type>::value,
| ^~~~~
make[2]: *** [CMakeFiles/SD_SLAM.dir/build.make:115: CMakeFiles/SD_SLAM.dir/src/LoopClosing.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/SD_SLAM.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
Hi again,
It seems that in the present ROS version of the algorithm, the nodes get data from ROS topics, but the output is not published as a ROS topic using the standard geometry_msgs/Pose message.
It would be nice to have the pose ROSified, to allow communication with other ROS nodes.
Thanx.
Current RGB-IMU Fusion doesn't improve Monocular SLAM accuracy. It should be reviewed to extract more orientation information from IMU data.
Use IMU as input sensor to improve localization when it is available
I guess this will make installation easier as well as update some opencv functions.
not only direct opencv capture. The simplest way to do it is using the Comm library from JdeRobot, which automatically maps to underlying ICE image drivers (like cameraserver) or ROS image drivers (like usbcam or ROS bags files).
The cameraviewer C++ tool at JdeRobot repository uses Comm too. It can be a reference to solve this issue on slam-SD-SLAM.
Hi,
I've just installed the tool and I'm trying to run the "freiburg1_desk" example from TUM dataset using monocular and TUM1.yaml. However, I'm getting an error, reproduced below. Any ideas about what could be happening?
I've renamed the rgb.txt file to files.txt and moved it into the /rgb folder.
diego@EINSTEIN:~/SD-SLAM$ ./Examples/Monocular/monocular Examples/Monocular/TUM1.yaml DIEGO_EJEMPLOS/rgbd_dataset_freiburg1_desk/rgb
[INFO] Sequence has 616 images
[DEBUG] Input sensor was set to Monocular
Camera Parameters:
ORB Extractor Parameters:
[ERROR] Failed to load image at: DIEGO_EJEMPLOS/rgbd_dataset_freiburg1_desk/rgb/#
[xcb] Unknown sequence number while appending request
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
monocular: ../../src/xcb_io.c:161: append_pending_request: Assertion !xcb_xlib_unknown_seq_number' failed. Abortado (
core' generado)
Thanx in advance,
Diego.
Hi,
I've been testing both mono and RGBD SDSLAM with data from a new Intel Realsense D435 RGBD camera, using ROS. While mono-SLAM goes relatively well, the RGBD version gives a weird output, throwing huge pose values. Please have a look at it in this video (0:00 mono, 1:15 RGBD) .
Rosbags were recorded at 1280x720, 30 FPS. The D435 was previously calibrated, and the following image topics were added to the .yaml file:
/camera/color/image_raw
/camera/aligned_depth_to_color/image_raw
If you need to have a look at the DepthCloud, there is a video here. Also, the original rosbag is available for download here.
I've recorded some other rosbags and the behaviour is the same. If you need any of them, please let me know.
Hello, is it a complete project?Does it have paper?Emmm, and I want to know how do you finish loop detection. Thank you very much!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.