Giter Club home page Giter Club logo

openvslam's People

Contributors

openvslam-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openvslam's Issues

Run error with my fisheye camera

I am trying to get openvslam run my own fisheye camera, but map cannot be initializated or miss feature tracking right after intialization. I think the accuracy of camera calibration is bad. Checking configuration as follows, the value of "min x" is positive and "max x" is negative. Does it happen in usual case?

img

-DUSE_SOCKET_PUBLISHER=ON is build error

[ 95%] Linking CXX shared library ../../lib/libsocket_publisher.so
[ 96%] Built target socket_publisher
[ 97%] Linking CXX shared library ../../lib/libpangolin_viewer.so
/usr/bin/ld: cannot find -lwayland-egl
/usr/bin/ld: cannot find -lEGL
collect2: error: ld returned 1 exit status
src/pangolin_viewer/CMakeFiles/pangolin_viewer.dir/build.make:232: recipe for target 'lib/libpangolin_viewer.so' failed
make[2]: *** [lib/libpangolin_viewer.so] Error 1
CMakeFiles/Makefile2:451: recipe for target 'src/pangolin_viewer/CMakeFiles/pangolin_viewer.dir/all' failed
make[1]: *** [src/pangolin_viewer/CMakeFiles/pangolin_viewer.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Getting the docker image working with socket publisher instead of pangolin?

I would like to modify the docker image so the user can choose either pangolin or socket mode, but am running into an issue where with the socketio package.

There is no findsocketio.cmake file and the following package github package (https://github.com/socketio/socket.io-client-cpp) does not generate congig.cmake files.

Has anyone found a fix that doesn't require massive code changes / works with an automated build pipeline?

How to get camera model on iPhone XS mounted fisheye lens

Hi team,

I want to find pin hole camera model on iPhone XS mounted with fisheye lens
So I get "intrinsic matrix" to find the fx, fy, cx, cy from below:
https://developer.apple.com/documentation/avfoundation/avcameracalibrationdata/2881135-intrinsicmatrix
And I use the camera-calibration-ios github to find the distortion_coefficients.
https://github.com/thorikawa/camera-calibration-ios
Here is the camera model I find:
#==============#

Camera Model

#==============#

Camera.name: "iPhone"
Camera.setup: "monocular"
Camera.model: "fisheye"

Camera.fx: 6190.428
Camera.fy: 6190.428
Camera.cx: 1493.424
Camera.cy: 1972.364

Camera.k1: -3.2828323353358818e-01
Camera.k2: 7.8798773365756081e-02
Camera.k3: -3.0927226354753820e-03
Camera.k4: 8.6781907034207198e-03

Camera.fps: 30.0
Camera.cols: 900
Camera.rows: 1600

However, we can't get openvslam video slam work normally, does anyone have know how to setup the camera model on iOS ?

Prebuilt windows binaries? Issues with SuiteSparse BLAS

Hi, I would really like to give this library a go to see how it is. However, I have been having a really big trouble getting suitesparse to find BLAS inside the cmake. I seem to have tried so many variations but I really cannot seem to find BLAS.

Does anyone have a pre-built version of this for windows? (ideally MSVC 2015) but any would be really great to try. Thanks!

video_localization does not load back previously saved map

  • openvslam built on ubuntu16.04 (as a windows 10 WSL)
  • all tutorials and slam localization examples are working perfectly
  • run_video_slam can generate nice maps based on our drone video (monocular/perspective)
  • "small" maps are working with run_video_localization (soft definition of "small": not so many keyframes/landmarks/loops (?) for example: 300 keyframes, 15k landmarks and 1-3 loops is good)
  • "larger" maps could not be loaded by run_video_localization

Dump:

Camera Configuration:

  • name: Genius UWA
  • setup: Monocular
  • fps: 30
  • cols: 640
  • rows: 360
  • color: RGB
  • model: Perspective
    • fx: 490.16
    • fy: 489.273
    • cx: 315.847
    • cy: 181.171
    • k1: 0.226793
    • k2: -1.00307
    • p1: -0.00314689
    • p2: -0.003051
    • k3: 1.41029
    • min x: 13.4129
    • max x: 627.711
    • min y: 8.6343
    • max y: 353.583
      ORB Configuration:
  • number of keypoints: 1000
  • scale factor: 1.2
  • number of levels: 8
  • initial fast threshold: 20
  • minimum fast threshold: 7
    Tracking Configuration:

[2019-07-23 16:32:01.452] [I] loading ORB vocabulary: ./orb_vocab/orb_vocab.dbow2
[2019-07-23 16:32:02.380] [D] CONSTRUCT: data::camera_database
[2019-07-23 16:32:02.381] [D] CONSTRUCT: data::map_database
[2019-07-23 16:32:02.383] [D] CONSTRUCT: data::bow_database
[2019-07-23 16:32:02.390] [D] CONSTRUCT: publish::frame_publisher
[2019-07-23 16:32:02.390] [D] CONSTRUCT: publish::map_publisher
[2019-07-23 16:32:02.394] [D] CONSTRUCT: module::initializer
[2019-07-23 16:32:02.398] [D] CONSTRUCT: module::relocalizer
[2019-07-23 16:32:02.399] [D] CONSTRUCT: tracking_module
[2019-07-23 16:32:02.400] [D] CONSTRUCT: mapping_module
[2019-07-23 16:32:02.401] [D] CONSTRUCT: global_optimization_module
[2019-07-23 16:32:02.404] [I] clear map database
[2019-07-23 16:32:02.405] [I] clear BoW database
[2019-07-23 16:32:02.424] [I] load the MessagePack file of database from map.msg
[2019-07-23 16:32:06.186] [I] decoding 1 camera(s) to load
[2019-07-23 16:32:06.187] [I] load the tracking camera "DJI Mavic Air" from JSON
[2019-07-23 16:32:06.716] [I] decoding 456 keyframes to load
[2019-07-23 16:32:13.368] [I] decoding 16324 landmarks to load
[2019-07-23 16:32:13.418] [I] registering essential graph
terminate called after throwing an instance of 'std::out_of_range'
what(): _Map_base::at
*** Aborted at 1563892333 (unix time) try "date -d @1563892333" if you are using GNU date ***
PC: @ 0x7fa59b765428 gsignal
*** SIGABRT (@0x26a) received by PID 618 (TID 0x7fa59e920840) from PID 618; stack trace: ***
@ 0x7fa59c0c1390 (unknown)
@ 0x7fa59b765428 gsignal
@ 0x7fa59b76702a abort
@ 0x7fa59bdaf84d __gnu_cxx::__verbose_terminate_handler()
@ 0x7fa59bdad6b6 (unknown)
@ 0x7fa59bdad701 std::terminate()
@ 0x7fa59bdad919 __cxa_throw
@ 0x7fa59bdd62cf std::__throw_out_of_range()
@ 0x7fa59dfe70ce openvslam::data::map_database::register_graph()
@ 0x7fa59dfe90a5 openvslam::data::map_database::from_json()
@ 0x7fa59e00d09c openvslam::io::map_database_io::load_message_pack()
@ 0x7fa59df8f126 openvslam::system::load_map_database()
@ 0x41b668 mono_localization()
@ 0x419e57 main
@ 0x7fa59b750830 __libc_start_main
@ 0x41a3e9 _start
@ 0x0 (unknown)
Aborted (core dumped)

Does anyone have know what is the problem?

Issue running the first video_slam example on Ubuntu

After installing all the dependencies and installing openvslam in accordance to the installation guidelines, I attempted to run the sample project but the command ./run_video_slam (followed by all the appropriate flags) caused a sigabrt and my core to dump. Here is the stack trace:

*** Aborted at 1563580445 (unix time) try "date -d @1563580445" if you are using GNU date ***
PC: @ 0x7f31fc8d2e97 gsignal
*** SIGABRT (@0x3e800000ebd) received by PID 3773 (TID 0x7f31cde18700) from PID 3773; stack trace: ***
@ 0x7f31ff4a0890 (unknown)
@ 0x7f31fc8d2e97 gsignal
@ 0x7f31fc8d4801 abort
@ 0x7f31fc91d897 (unknown)
@ 0x7f31fc92490a (unknown)
@ 0x7f31fc92be75 cfree
@ 0x7f31fb9f5068 g2o::OptimizableGraph::~OptimizableGraph()
@ 0x7f31ff86a0f2 openvslam::optimize::global_bundle_adjuster::optimize()
@ 0x7f31ff7f1801 openvslam::module::initializer::create_map_for_monocular()
@ 0x7f31ff7f24c3 openvslam::module::initializer::initialize()
@ 0x7f31ff761a6c openvslam::tracking_module::initialize()
@ 0x7f31ff7644d5 openvslam::tracking_module::track()
@ 0x7f31ff764852 openvslam::tracking_module::track_monocular_image()
@ 0x7f31ff755d3c openvslam::system::track_for_monocular()
@ 0x55d678f83b85 (unknown)
@ 0x7f31fcf5a66f (unknown)
@ 0x7f31ff4956db start_thread
@ 0x7f31fc9b588f clone
Aborted (core dumped)

Any tips on how to fix this?

core dump

When I compiled it and entered the command according to simple tutorial,The frame viewer and map viewer launched for 1s and exited, showing core dump段错误 (核心已转储).
Has anybody ever met?

Docker build not compiling.

Hello,

I was trying to build from Docker but I couldnt get it to build on MacOSX

For g2o it couldnt find Qt5 but I guess that shouldnt stop the compilation... It was stuck for a long time at 41% mark.

Any pointers would be appreciated, Thanks.

➜  openvslam git:(master)               docker build -t openvslam-desktop .
Sending build context to Docker daemon  6.377MB
Step 1/36 : FROM ubuntu:18.04
 ---> 7698f282e524
Step 2/36 : RUN set -x &&   apt update -y -qq &&   apt upgrade -y -qq --no-install-recommends &&   : "basic dependencies" &&   apt install -y -qq     build-essential     pkg-config     cmake     git     wget     curl     tar     unzip &&   : "g2o dependencies" &&   apt install -y -qq     libgoogle-glog-dev     libatlas-base-dev     libsuitesparse-dev &&   : "OpenCV dependencies" &&   apt install -y -qq     libgtk-3-dev     libjpeg-dev     libpng++-dev     libtiff-dev     libopenexr-dev     libwebp-dev     ffmpeg     libavcodec-dev     libavformat-dev     libavutil-dev     libswscale-dev     libavresample-dev &&   : "Pangolin dependencies" &&   apt install -y -qq     libglew-dev &&   : "other dependencies" &&   apt install -y -qq     libyaml-cpp-dev &&   : "remove cache" &&   apt autoremove -y -qq &&   rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 4fb49f7fed8a
Step 3/36 : ARG CMAKE_INSTALL_PREFIX=/usr/local
 ---> Using cache
 ---> 1b28ad7e8108
Step 4/36 : ARG NUM_THREADS=4
 ---> Using cache
 ---> b49e3a994442
Step 5/36 : ENV CPATH=${CMAKE_INSTALL_PREFIX}/include:${CPATH}
 ---> Using cache
 ---> d275c719466f
Step 6/36 : ENV C_INCLUDE_PATH=${CMAKE_INSTALL_PREFIX}/include:${C_INCLUDE_PATH}
 ---> Using cache
 ---> b902a01664d7
Step 7/36 : ENV CPLUS_INCLUDE_PATH=${CMAKE_INSTALL_PREFIX}/include:${CPLUS_INCLUDE_PATH}
 ---> Using cache
 ---> b9257d47c8d2
Step 8/36 : ENV LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${LIBRARY_PATH}
 ---> Using cache
 ---> 6df63ec205b7
Step 9/36 : ENV LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}
 ---> Using cache
 ---> 6963e8d905b9
Step 10/36 : ENV NVIDIA_VISIBLE_DEVICES ${NVIDIA_VISIBLE_DEVICES:-all}
 ---> Using cache
 ---> bb95a2280a0a
Step 11/36 : ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
 ---> Using cache
 ---> 56569bcc425c
Step 12/36 : ARG EIGEN3_VERSION=3.3.7
 ---> Using cache
 ---> 41fac59254f9
Step 13/36 : WORKDIR /tmp
 ---> Using cache
 ---> d6775ccfe074
Step 14/36 : RUN set -x &&   wget -q http://bitbucket.org/eigen/eigen/get/${EIGEN3_VERSION}.tar.bz2 &&   tar xf ${EIGEN3_VERSION}.tar.bz2 &&   rm -rf ${EIGEN3_VERSION}.tar.bz2 &&   mv eigen-eigen-* eigen-${EIGEN3_VERSION} &&   cd eigen-${EIGEN3_VERSION} &&   mkdir -p build &&   cd build &&   cmake     -DCMAKE_BUILD_TYPE=Release     -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}     .. &&   make -j${NUM_THREADS} &&   make install &&   cd /tmp &&   rm -rf *
 ---> Using cache
 ---> e5e4b5f96be7
Step 15/36 : ENV Eigen3_DIR=${CMAKE_INSTALL_PREFIX}/share/eigen3/cmake
 ---> Using cache
 ---> dd6e6959aa5e
Step 16/36 : ARG G2O_COMMIT=9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a
 ---> Using cache
 ---> 1e2a8c40b6e0
Step 17/36 : WORKDIR /tmp
 ---> Using cache
 ---> cb4f781486ed
Step 18/36 : RUN set -x &&   git clone https://github.com/RainerKuemmerle/g2o.git &&   cd g2o &&   git checkout ${G2O_COMMIT} &&   mkdir -p build &&   cd build &&   cmake     -DCMAKE_BUILD_TYPE=Release     -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}     -DBUILD_SHARED_LIBS=ON     -DBUILD_UNITTESTS=OFF     -DBUILD_WITH_MARCH_NATIVE=ON     -DG2O_USE_CHOLMOD=ON     -DG2O_USE_CSPARSE=ON     -DG2O_USE_OPENGL=OFF     -DG2O_USE_OPENMP=ON     -DG2O_BUILD_APPS=OFF     -DG2O_BUILD_EXAMPLES=OFF     -DG2O_BUILD_LINKED_APPS=OFF     .. &&   make -j${NUM_THREADS} &&   make install &&   cd /tmp &&   rm -rf *
 ---> Running in 430e0cfa5113
+ git clone https://github.com/RainerKuemmerle/g2o.git
Cloning into 'g2o'...
+ cd g2o
+ git checkout 9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a
Note: checking out '9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 9b41a4e Merge pull request #349 from jackxujh/patch-1
+ mkdir -p build
+ cd build
+ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DBUILD_UNITTESTS=OFF -DBUILD_WITH_MARCH_NATIVE=ON -DG2O_USE_CHOLMOD=ON -DG2O_USE_CSPARSE=ON -DG2O_USE_OPENGL=OFF -DG2O_USE_OPENMP=ON -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DG2O_BUILD_LINKED_APPS=OFF ..
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.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
-- Compiling on Unix
-- Found CHOLMOD: /usr/include/suitesparse
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- A library with BLAS API found.
-- Looking for cheev_
-- Looking for cheev_ - found
-- A library with LAPACK API found.
-- Found CHOLMOD and its dependencies
-- Found CSPARSE: /usr/include/suitesparse
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Compiling with OpenMP support
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
CMake Warning at cmake_modules/FindQGLViewer.cmake:1 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" with any of
  the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:174 (find_package)


Qt5 not found. Install it and set Qt5_DIR accordingly
-- Could NOT find QGLVIEWER (missing: QGLVIEWER_INCLUDE_DIR QGLVIEWER_LIBRARY)
-- Compiling with GCC
-- Found Eigen3: /usr/local/include/eigen3 (Required is at least version "2.91.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/g2o/build
+ make -j4
Scanning dependencies of target csparse_extension
Scanning dependencies of target stuff
[  0%] Building CXX object g2o/solvers/csparse/CMakeFiles/csparse_extension.dir/csparse_extension.cpp.o
[  1%] Building CXX object g2o/solvers/csparse/CMakeFiles/csparse_extension.dir/csparse_helper.cpp.o
[  2%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/timeutil.cpp.o
[  3%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/command_args.cpp.o
[  4%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/sparse_helper.cpp.o
[  4%] Building C object g2o/stuff/CMakeFiles/stuff.dir/os_specific.c.o
[  5%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/filesys_tools.cpp.o
[  6%] Linking CXX shared library ../../../../lib/libg2o_csparse_extension.so
[  6%] Built target csparse_extension
[  7%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/string_tools.cpp.o
[  8%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/property.cpp.o
[  8%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/sampler.cpp.o
[  9%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/tictoc.cpp.o
[ 10%] Linking CXX shared library ../../../lib/libg2o_stuff.so
[ 10%] Built target stuff
Scanning dependencies of target core
[ 10%] Building CXX object g2o/core/CMakeFiles/core.dir/hyper_graph_action.cpp.o
[ 11%] Building CXX object g2o/core/CMakeFiles/core.dir/hyper_graph.cpp.o
[ 12%] Building CXX object g2o/core/CMakeFiles/core.dir/marginal_covariance_cholesky.cpp.o
[ 12%] Building CXX object g2o/core/CMakeFiles/core.dir/matrix_structure.cpp.o
[ 13%] Building CXX object g2o/core/CMakeFiles/core.dir/batch_stats.cpp.o
[ 14%] Building CXX object g2o/core/CMakeFiles/core.dir/parameter.cpp.o
[ 15%] Building CXX object g2o/core/CMakeFiles/core.dir/cache.cpp.o
[ 15%] Building CXX object g2o/core/CMakeFiles/core.dir/optimizable_graph.cpp.o
[ 16%] Building CXX object g2o/core/CMakeFiles/core.dir/solver.cpp.o
[ 17%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_factory.cpp.o
[ 18%] Building CXX object g2o/core/CMakeFiles/core.dir/estimate_propagator.cpp.o
[ 18%] Building CXX object g2o/core/CMakeFiles/core.dir/factory.cpp.o
[ 19%] Building CXX object g2o/core/CMakeFiles/core.dir/sparse_optimizer.cpp.o
[ 20%] Building CXX object g2o/core/CMakeFiles/core.dir/hyper_dijkstra.cpp.o
[ 21%] Building CXX object g2o/core/CMakeFiles/core.dir/parameter_container.cpp.o
[ 21%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm.cpp.o
[ 22%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_with_hessian.cpp.o
[ 23%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_gauss_newton.cpp.o
[ 24%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_levenberg.cpp.o
[ 24%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_dogleg.cpp.o
[ 25%] Building CXX object g2o/core/CMakeFiles/core.dir/sparse_optimizer_terminate_action.cpp.o
[ 26%] Building CXX object g2o/core/CMakeFiles/core.dir/jacobian_workspace.cpp.o
[ 27%] Building CXX object g2o/core/CMakeFiles/core.dir/robust_kernel.cpp.o
[ 27%] Building CXX object g2o/core/CMakeFiles/core.dir/robust_kernel_impl.cpp.o
[ 28%] Building CXX object g2o/core/CMakeFiles/core.dir/robust_kernel_factory.cpp.o
[ 29%] Linking CXX shared library ../../../lib/libg2o_core.so
[ 29%] Built target core
Scanning dependencies of target solver_pcg
Scanning dependencies of target solver_dense
[ 30%] Building CXX object g2o/solvers/pcg/CMakeFiles/solver_pcg.dir/solver_pcg.cpp.o
[ 31%] Building CXX object g2o/solvers/dense/CMakeFiles/solver_dense.dir/solver_dense.cpp.o
Scanning dependencies of target types_slam2d
Scanning dependencies of target types_slam3d
[ 32%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2.cpp.o
[ 33%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/dquat2mat.cpp.o
[ 34%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/isometry3d_mappings.cpp.o
[ 35%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_pointxy_calib.cpp.o
[ 36%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/isometry3d_gradients.cpp.o
[ 36%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/vertex_se3.cpp.o
[ 36%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/types_slam2d.cpp.o
[ 37%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/vertex_point_xy.cpp.o
[ 38%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_pointxy.cpp.o
[ 39%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/parameter_se3_offset.cpp.o
[ 40%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/vertex_se2.cpp.o
[ 41%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3.cpp.o
[ 41%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_pointxy_bearing.cpp.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
make[2]: *** [g2o/solvers/dense/CMakeFiles/solver_dense.dir/solver_dense.cpp.o] Error 4
g2o/solvers/dense/CMakeFiles/solver_dense.dir/build.make:62: recipe for target 'g2o/solvers/dense/CMakeFiles/solver_dense.dir/solver_dense.cpp.o' failed
make[1]: *** [g2o/solvers/dense/CMakeFiles/solver_dense.dir/all] Error 2
CMakeFiles/Makefile2:888: recipe for target 'g2o/solvers/dense/CMakeFiles/solver_dense.dir/all' failed
make[1]: *** Waiting for unfinished jobs....
[ 42%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_prior.cpp.o
[ 43%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_offset.cpp.o
[ 44%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/parameter_se2_offset.cpp.o
[ 45%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_offset.cpp.o
[ 45%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_pointxy_offset.cpp.o
[ 46%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_xyprior.cpp.o
[ 47%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_pointxy.cpp.o
[ 47%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/vertex_pointxyz.cpp.o
[ 48%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_twopointsxy.cpp.o
[ 48%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_lotsofxy.cpp.o
[ 49%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/parameter_camera.cpp.o
[ 50%] Linking CXX shared library ../../../../lib/libg2o_solver_pcg.so
[ 50%] Built target solver_pcg
[ 51%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/parameter_stereo_camera.cpp.o
[ 52%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_xy_prior.cpp.o
[ 53%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_pointxyz.cpp.o
[ 53%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_pointxyz_disparity.cpp.o
[ 54%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_pointxyz_depth.cpp.o
[ 55%] Linking CXX shared library ../../../../lib/libg2o_types_slam2d.so
[ 55%] Built target types_slam2d
[ 56%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_prior.cpp.o
[ 57%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_xyzprior.cpp.o
[ 57%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_se3_lotsofxyz.cpp.o
[ 58%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_xyz_prior.cpp.o
[ 59%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/edge_pointxyz.cpp.o
[ 60%] Building CXX object g2o/types/slam3d/CMakeFiles/types_slam3d.dir/types_slam3d.cpp.o
[ 60%] Linking CXX shared library ../../../../lib/libg2o_types_slam3d.so
[ 60%] Built target types_slam3d
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
The command '/bin/sh -c set -x &&   git clone https://github.com/RainerKuemmerle/g2o.git &&   cd g2o &&   git checkout ${G2O_COMMIT} &&   mkdir -p build &&   cd build &&   cmake     -DCMAKE_BUILD_TYPE=Release     -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}     -DBUILD_SHARED_LIBS=ON     -DBUILD_UNITTESTS=OFF     -DBUILD_WITH_MARCH_NATIVE=ON     -DG2O_USE_CHOLMOD=ON     -DG2O_USE_CSPARSE=ON     -DG2O_USE_OPENGL=OFF     -DG2O_USE_OPENMP=ON     -DG2O_BUILD_APPS=OFF     -DG2O_BUILD_EXAMPLES=OFF     -DG2O_BUILD_LINKED_APPS=OFF     .. &&   make -j${NUM_THREADS} &&   make install &&   cd /tmp &&   rm -rf *' returned a non-zero code: 2
➜  openvslam git:(master)

Docker build fails at the last two steps

Hi @shinsumicco
Thanks for your team's awesome work! I am so glad you are so considerate to publish a docker version, which eases the amount of work to meet kinds of dependencies.

When I built the docker image using nvidia-docker2, I came across problem at the last step, unlike issue #11 which returned a non-zero code:2, the error here becomes " The command '/bin/sh -c set -x .... commands omitted' returned a non-zero code: 1. Do you have any idea what might cause this and how to fix it? Thank you very much!

error

Also the result of "docker image list" does not contain "openvslam-desktop"
Screenshot from 2019-05-29 18-30-58

Assertion failed when loading the map database

Assertion keyframes_.count(loop_edge_id) failed when loading the map database.

  • Ubuntu 16.04
  • OpenCV 3.4.0
void openvslam::data::map_database::register_graph(unsigned int, const json&): Assertion `keyframes_.count(loop_edge_id)' failed.
*** Aborted at 1559671094 (unix time) try "date -d @1559671094" if you are using GNU date ***
PC: @     0x7f4e132fbcc9 (unknown)
*** SIGABRT (@0x3ec00006e46) received by PID 28230 (TID 0x7f4e55614b00) from PID 28230; stack trace: ***
    @     0x7f4e54a0a340 (unknown)
    @     0x7f4e132fbcc9 (unknown)
    @     0x7f4e132ff0d8 (unknown)
    @     0x7f4e132f4b86 (unknown)
    @     0x7f4e132f4c32 (unknown)
    @     0x7f4e54d71075 openvslam::data::map_database::register_graph()
    @     0x7f4e54d75656 openvslam::data::map_database::from_json()
    @     0x7f4e54da26a5 openvslam::io::map_database_io::load_message_pack()
    @     0x7f4e54d15954 openvslam::system::load_map_database()
    @           0x41ebdf mono_localization()
    @           0x41fa68 main
    @     0x7f4e132e6ec5 (unknown)
    @           0x41dfd9 (unknown)
    @                0x0 (unknown)

version of fbow

I have noticed that there is two options for BOW_FRAMEWORK, but the installation only provide the DBoW2 version. Could you provide version of the FBoW as well?

How to use mono-fisheye for this project?

I see that fisheye is supported in openvslam project. My mono-fisheye video format and configuration are as follows, but it cannot be run. May I ask how to configure the file? Or could you provide an example for mono-fisheye?
2019-06-03 13-52-59屏幕截图

THE ERROR AS BELOW:
$: ./run_video_slam -v ./orb_vocab/orb_vocab.dbow2 -m ./mono_fisheye/movie.mp4 -s ./mono_fisheye/config.yaml --frame-skip 3 --no-sleep --map-db map.msg

[2019-06-03 14:33:18.922] [I] config file loaded: ./mono_fisheye/config.yaml
yaml-cpp: error at line 0, column 0: invalid node; this may result from using a map iterator as a sequence iterator, or vice-versa

Run my own fisheye camera

I am trying to get openvslam run my own fisheye camera, but it cannot be initializated, the fisheye video and configuration are as follows, could you tell me what to pay attention to when recording data?
2019-07-10 16-55-24屏幕截图

2019-07-10 16-55-53屏幕截图

VR180 stereo tracking with Vuze XR

Hi,

I've been trying to get stereo tracking to work on a Vuze XR VR180 camera, which has 2 X 210⁰ fisheye lenses. The 4K video that comes out from the camera is 3840x1920 in resolution. I then use OpenCV to split each frame in half and store the left and right halves in separate directories. I tried calibrating the camera using a chessboard and OpenCV and tried using a modified version of run_kitti_slam, but the video would not track.

One 1920x1920 frame from the left camera is shown below:

1000000

I'm confused about which camera model I should use (fisheye, perspective, equirectangular), and about how I should perform calibration for this camera to get the intrinsic parameters (fx, fy, cx, cy, etc.). From the frame above it looks like when OpenCV reads the frame some transformation is already performed on it, stretching out the top and bottom such that it is like "equirectangular", but from your code I understand that stereo tracking does not support equirectangular.

How then, should I get stereo tracking to work on input frames like this?

Thank you.

pangolin docker error

im using nvidia-docker 2 and followed all the instructions.
the build was successful and the docker image starts but as soon as i want to try one of the mapping examples, i get the following error:

error: XDG_RUNTIME_DIR not set in the environment. libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast terminate called after throwing an instance of 'std::runtime_error' what(): Pangolin X11: Unable to retrieve framebuffer options

any idea what the problem could be?

Landmark registration: rgb color is always set to (0,0,0)

Thank you for all of your great work! In the serialize_as_protobuf method in the data_serializer class, I noticed that the rgb color of landmark objects is always set to (0,0,0):

const unsigned int rgb[] = {0, 0, 0};
// add to protocol buffers
auto landmark_obj = map.add_landmarks();
landmark_obj->set_id(id);
for (int i = 0; i < 3; i++) {
    landmark_obj->add_coords(pos[i]);
}
for (int i = 0; i < 3; i++) {
    landmark_obj->add_color(rgb[i]);
}

As a work around, I modified the frame constructors to optionally accept the colored image of the frame and use the first keypoint in keypts_ to extract the bgr colors as a cv::Vec3b vector, which is then stored as a field in the frame class. Then, I modified the keyframe constructor to copy the bgr colors from the frame object into its own field. Then, in the serialize_as_protobuf method, I use the bgr colors stored in the reference keyframe of each landmark to obtain colors for a landmark.

Do you have plans of changing this behavior in the near future? I'm not sure that my work around is correct, as I am not very familiar with the theory behind openvslam.

Localization on-line

Thanks for sharing your great work!
I am puzzled how to locate a real moving platform on-line after building the field map?

Receive a framebuffer issue when running video_slam example

Hi @shinsumicco ,

When I tried to use "./run_video_slam -v ../orb_vocab/orb_vocab.dbow2 -m ../../data/Video/RunObject.mp4 -c ../../data/Video/Video_mono.yaml --no-sleep --frame-skip 3 --map-db map.msg", I received a "Framebuffer ..." issue. I can run image_slam normally, but cannot run video_slam. Do you have any suggestion? Thanks.

OS: Ubuntu16.04

Log:
[2019-06-27 09:41:39.686] [I] loading ORB vocabulary: ../orb_vocab/orb_vocab.dbow2
[2019-06-27 09:41:44.937] [I] startup SLAM system
[2019-06-27 09:41:44.938] [I] start mapping module
[2019-06-27 09:41:44.944] [I] start global optimization module
Framebuffer with requested attributes not available. Using available framebuffer. You may see visual artifacts.

ROS support

Thanks for your work.
Do you have a development plan about ROS and IMU supporting?

how to save map after run with video files?

hi, first, thanks for your amazing works, according to Simple Tutorial
I run this command for SLAM with Video Files.
./build/run_video_slam -s ./data/aist_living_lab_1/config.yaml
-m ./data/aist_living_lab_1/movie.mp4
-v ./orb_vocab/orb_vocab.dbow2
--frame-skip 3
--map-db aist_living_lab_1_map.msg

when video is over, map is prbblem, Is it convenient to answer?

,thank you

xdg runtime error and have to terminate manually

Hi, when I run the examples I came across following (maybe not) errors:

runtime_error

error: XDG_RUNTIME_DIR not set in the environment.
[2019-05-30 11:19:22.978] [I] relocalization succeeded

(PangolinViewer: Frame Viewer:38): dbind-WARNING **: 11:19:22.997: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-JCbpe99zuj: Connection refused
Gtk-Message: 11:19:23.022: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:19:23.024: Failed to load module "canberra-gtk-module"

It seems look like graphics problem. I already run the

"xhost + local:" before run the docker 

using --runtime=nvidia and x11 forwarding 

Although it can run as in the tutorial, but I have to terminate it manually, or it would stop at the last frame, is that normal? Should it stop when all the video ends?

Thank you for your amazing work!

Invalid memory alignment of Eigen

Need to be fixed according to http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html.

run_euroc_slam: /usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:128: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 32>::plain_array() [with T = double; int Size = 16; int MatrixOrArrayOptions = 0]: Assertion `(internal::UIntPtr(eigen_unaligned_array_assert_workaround_gcc47(array)) & (31)) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
*** Aborted at 1561003704 (unix time) try "date -d @1561003704" if you are using GNU date ***
PC: @     0x7f98981f3428 gsignal
*** SIGABRT (@0x561) received by PID 1377 (TID 0x7f989e0d07c0) from PID 1377; stack trace: ***
    @     0x7f989d458390 (unknown)
    @     0x7f98981f3428 gsignal
    @     0x7f98981f502a abort
    @     0x7f98981ebbd7 (unknown)
    @     0x7f98981ebc82 __assert_fail
    @     0x7f989d8161ba openvslam::module::loop_detector::loop_detector()
    @     0x7f989d77e6e5 openvslam::global_optimization_module::global_optimization_module()
    @     0x7f989d7648f6 openvslam::system::system()
    @           0x4258e4 stereo_tracking()
    @           0x427453 main
    @     0x7f98981de830 __libc_start_main
    @           0x4204f9 _start
    @                0x0 (unknown)

Trying to test several situations and several FOV.

Hi all.
First, Thank you for releasing and sharing this great engine.
I'm really impressed Visual SLAM worked so easily!
I want to do behavioral analysis from the video logs of cameras mounted on people, robots and pets in offline (and online if possible).
We are testing whether openvslam can hold feature points indoors and outdoors with some cameras, different FOVs.
I will share some of the results.

1.Garmin VIRB 360 x Outdoor
1 Garmin VIRB 360 x Outdoor
This condition was captured very fast.
And the movement trajectory was seemed correctly recognized.

2.Garmin VIRB 360 x Indoor
2 Garmin VIRB 360 x Indoor
Unable to transition from INITIALIZE to MAPPING…
Perhaps because the camera was too close to the ceiling.

3.Sony FDR-X3000 x Outdoor
3 Sony FDR-X3000 x Outdoor
Unable to transition from INITIALIZE to MAPPING…
The condition may have been bad for shooting in a closed space.
Or because the angle of view was upward and flowing up and down?

4.Sony FDR-X3000 x Indoor
4 Sony FDR-X3000 x Indoor
Unable to transition from INITIALIZE to MAPPING…
There is also a feature amount, and I do not know reason failed.

Q1.How do I avoid patterns where INITIALIZE does not proceed?
Is it not good at monotonous concrete etc?
Or should I stay as much as possible at first.
Or make amount of "skip" value smaller?
I do not understand ORB-Slam's habit itself so much, I am sorry.

Q2.If we can not judge whether it is fisheye or wide angle, like action cam including the FDR-X3000, which of the "fisheye" or the "perspective" would be work?
By the way, for the lens calibration value for FDR-X3000, the result of using opencv in other project was put into yaml and used as follows.

#==============#
# Camera Model #
#==============#

Camera.name: "SONY FDR-X3000"
Camera.setup: "monocular"
Camera.model: "fisheye"

Camera.fx: 814.9185791015625
Camera.fy: 815.2095336914062
Camera.cx: 971.536376953125
Camera.cy: 547.319091796875

Camera.k1: -0.08787094801664352
Camera.k2: 0.072215735912323
Camera.p1: 0.0006951461546123028
Camera.p2: -0.0006221338408067822
Camera.k3: -0.12616166472434998
Camera.k4: 0.09525316208600998
Camera.k5: 0.017126746475696564
Camera.k6: -0.12910930812358856

Camera.fps: 30.0
Camera.cols: 1920
Camera.rows: 1080

#================#
# ORB Parameters #
#================#

Feature.max_num_keypoints: 2000
Feature.scale_factor: 1.2
Feature.num_levels: 8
Feature.ini_fast_threshold: 20
Feature.min_fast_threshold: 7
# Xstart Xend Ystart Yend
#Feature.mask_rectangles:
#  - [0.0, 1.0, 0.7, 1.0]
#  - [0.45, 0.55, 0.3, 0.7]

#=====================#
# Tracking Parameters #
#=====================#

depth_threshold: 35

#===========================#
# PangolinViewer Parameters #
#===========================#

PangolinViewer.keyframe_size: 0.07
PangolinViewer.keyframe_line_width: 1
PangolinViewer.graph_line_width: 1
PangolinViewer.point_size: 2
PangolinViewer.camera_size: 0.08
PangolinViewer.camera_line_width: 3
PangolinViewer.viewpoint_x: 0
PangolinViewer.viewpoint_y: -0.65
PangolinViewer.viewpoint_z: -1.9
PangolinViewer.viewpoint_f: 400

It would be appreciated if you could advise me about the part where usage is strange.
Thank you.

Support for other features?

Is there a plan to be able to use other feature detectors/descriptors such as those supported in OpenCV? Although ORB is fast, it is generally inferior to others such as SIFT, for which very fast implementations now exist.

Purpose of association parameter in TUM-Dataset example

Hello,
i am trying to get openvslam running on TUM omnidirectional Dataset, in the commandline arguments you should set the path to a association file. I would like to know what exactly this file should be?

Currently my yaml file for TUM Dataset looks as follow:

# TUM monocular omnidirectional model for seq.00

#==============#
# Camera Model #
#==============#

Camera.name: "TUM monocular omnidirectional 00"
Camera.setup: "monocular"
Camera.model: "fisheye"

Camera.fx: 442.843
Camera.fy: 442.66
Camera.cx: 320.65
Camera.cy: 253.91

Camera.k1: -0.0543194
Camera.k2: 0.24717305
Camera.k3: -0.0015186
Camera.k4: 0.00273411

Camera.fps: 50.0
Camera.cols: 640
Camera.rows: 512

Camera.color_order: "Gray"

#================#
# ORB Parameters #
#================#

Feature.max_num_keypoints: 1000
Feature.scale_factor: 1.2
Feature.num_levels: 8
Feature.ini_fast_threshold: 20
Feature.min_fast_threshold: 7

#===========================#
# PangolinViewer Parameters #
#===========================#

PangolinViewer.keyframe_size: 0.06
PangolinViewer.keyframe_line_width: 1
PangolinViewer.graph_line_width: 1
PangolinViewer.point_size: 2
PangolinViewer.camera_size: 0.07
PangolinViewer.camera_line_width: 2
PangolinViewer.viewpoint_x: 0
PangolinViewer.viewpoint_y: -20
PangolinViewer.viewpoint_z: -0.1
PangolinViewer.viewpoint_f: 2800

Thanks for your help!

link error

Thanks for your awesome code share!

I want to run this code in my vmware workstation Ubuntu 18.04, my software details are:

GCC 5.5
Eigen 3.3.7
OpenCV 3.4.1

I compile g2o, yaml-cpp and Pangolin and your dbow2 with lateset github code and install them, but when I compile the openvslam, I got errors like these:

[ 73%] Building CXX object src/openvslam/CMakeFiles/openvslam.dir/util/random_array.cc.o
[ 74%] Linking CXX shared library ../../lib/libopenvslam.so
/usr/bin/ld: /usr/local/lib/libyaml-cpp.a(exceptions.cpp.o): relocation R_X86_64_PC32 against symbol `_ZTVN4YAML9ExceptionE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
src/openvslam/CMakeFiles/openvslam.dir/build.make:1792: recipe for target 'lib/libopenvslam.so' failed
make[2]: *** [lib/libopenvslam.so] Error 1
CMakeFiles/Makefile2:106: recipe for target 'src/openvslam/CMakeFiles/openvslam.dir/all' failed
make[1]: *** [src/openvslam/CMakeFiles/openvslam.dir/all] Error 2
Makefile:83: recipe for target 'all' failed

Would you please give me some advice? Thanks a lot!

compile error

when I compiled the code, I got errors like these
/home/perm1ss4on/github/openvslam/src/openvslam/optimize/global_bundle_adjuster.cc:35:26: error: ‘make_unique’ is not a member of ‘g2o’
auto linear_solver = ::g2o::make_unique<::g2o::LinearSolverCSparse<::g2o::BlockSolver_6_3::PoseMatrixType>>();
^
/home/perm1ss4on/github/openvslam/src/openvslam/optimize/global_bundle_adjuster.cc:35:110: error: expected primary-expression before ‘>’ token
auto linear_solver = ::g2o::make_unique<::g2o::LinearSolverCSparse<::g2o::BlockSolver_6_3::PoseMatrixType>>();
^
/home/perm1ss4on/github/openvslam/src/openvslam/optimize/global_bundle_adjuster.cc:35:113: error: expected primary-expression before ‘)’ token
auto linear_solver = ::g2o::make_unique<::g2o::LinearSolverCSparse<::g2o::BlockSolver_6_3::PoseMatrixType>>();

I follow the tutorial and I download the newest g2o, is there anyting I have missed?

OpenVslam build 'make' error in ubuntu16.04

Thank you for your great work!
I have installed the enviroment as required, but when I run the 'make' command in the build folder of openvslam, the terminal window display error. Details are as follows:
...........
In file included from /usr/local/include/eigen3/Eigen/Core:344:0,
from /home/zq/catkin_ws/src/openvslam/src/openvslam/type.h:10,
from /home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:4,
from /home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.cc:1:
/usr/local/include/eigen3/Eigen/src/Core/util/Constants.h:162:37: note: declared here
EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;
^
In file included from /home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.cc:1:0:
/home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:28:26: error: ‘number_t’ does not name a type
void oplusImpl(const number_t* update_) override {
^
/home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:28:10: error: ‘void openvslam::optimize::g2o::se3::shot_vertex::oplusImpl(const int*)’ marked ‘override’, but does not override
void oplusImpl(const number_t* update_) override {
^
/home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h: In member function ‘void openvslam::optimize::g2o::se3::shot_vertex::oplusImpl(const int*)’:
/home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:29:48: error: no matching function for call to ‘Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >::Map(const int*&)’
Eigen::Map update(update_);
^
In file included from /usr/local/include/eigen3/Eigen/Core:449:0,
from /home/zq/catkin_ws/src/openvslam/src/openvslam/type.h:10,
from /home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:4,
from /home/zq/catkin_ws/src/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.cc:1:
/usr/local/include/eigen3/Eigen/src/Core/Map.h:149:12: note: candidate: Eigen::Map<MatrixType, MapOptions, StrideType>::Map(Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType, Eigen::Index, Eigen::Index, const StrideType&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>; Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType = const double*; Eigen::Index = long int]
inline Map(PointerArgType dataPtr, Index rows, Index cols, const StrideType
^
/usr/local/include/eigen3/Eigen/src/Core/Map.h:149:12: note: candidate expects 4 arguments, 1 provided
/usr/local/include/eigen3/Eigen/src/Core/Map.h:135:12: note: candidate: Eigen::Map<MatrixType, MapOptions, StrideType>::Map(Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType, Eigen::Index, const StrideType&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>; Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType = const double*; Eigen::Index = long int]
inline Map(PointerArgType dataPtr, Index size, const StrideType& stride = S
^
/usr/local/include/eigen3/Eigen/src/Core/Map.h:135:12: note: candidate expects 3 arguments, 1 provided
/usr/local/include/eigen3/Eigen/src/Core/Map.h:122:21: note: candidate: Eigen::Map<MatrixType, MapOptions, StrideType>::Map(Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType, const StrideType&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>; Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType = const double*]
explicit inline Map(PointerArgType dataPtr, const StrideType& stride = Stri
^
/usr/local/include/eigen3/Eigen/src/Core/Map.h:122:21: note: no known conversion for argument 1 from ‘const int*’ to ‘Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >::PointerArgType {aka const double*}’
/usr/local/include/eigen3/Eigen/src/Core/Map.h:88:79: note: candidate: Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >::Map(const Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >&)
mplate<typename PlainObjectType, int MapOptions, typename StrideType> class Map
^
/usr/local/include/eigen3/Eigen/src/Core/Map.h:88:79: note: no known conversion for argument 1 from ‘const int*’ to ‘const Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >&’
src/openvslam/CMakeFiles/openvslam.dir/build.make:998: recipe for target 'src/openvslam/CMakeFiles/openvslam.dir/optimize/g2o/se3/shot_vertex.cc.o' failed
make[2]: *** [src/openvslam/CMakeFiles/openvslam.dir/optimize/g2o/se3/shot_vertex.cc.o] Error 1
CMakeFiles/Makefile2:138: recipe for target 'src/openvslam/CMakeFiles/openvslam.dir/all' failed
make[1]: *** [src/openvslam/CMakeFiles/openvslam.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Looking forward to your reply!

Problem in Linking on windows

Hi,
I build the project on windows 10 using visual studio 19, but there is some error in linking so if someone could help, it will be great.
error msg
LNK2005 "public: void __cdecl g2o::BaseVertex<6,class g2o::SE3Quat>::setEstimate(class g2o::SE3Quat const &)" (?setEstimate@?$BaseVertex@$05VSE3Quat@g2o@@@g2o@@QEAAXAEBVSE3Quat@2@@Z) already defined in shot_vertex.cc.obj

LNK2005 "public: virtual void __cdecl g2o::BaseEdge<2,class Eigen::Matrix<double,2,1,0,2,1> >::setMeasurement(class Eigen::Matrix<double,2,1,0,2,1> const &)" (?setMeasurement@?$BaseEdge@$01V?$Matrix@N$01$00$0A@$01$00@Eigen@@@g2o@@UEAAXAEBV?$Matrix@N$01$00$0A@$01$00@Eigen@@@Z) already defined in equirectangular_pose_opt_edge.cc.obj

Segmentation fault around compute_orb_descriptor

Hi @shinsumicco , thank you for sharing your work.
When I tried to run RGB-D dataset with openvslam, the program crashes often. Below is the error information:

*** Aborted at 1559231166 (unix time) try "date -d @1559231166" if you are using GNU date ***
PC: @     0x7efe96710ec8 openvslam::feature::orb_extractor::compute_orb_descriptor()
*** SIGSEGV (@0x7efd8bfffd47) received by PID 7995 (TID 0x7efe56d73700) from PID 18446744071763393863; stack trace: ***
    @     0x7efe944cb390 (unknown)
    @     0x7efe96710ec8 openvslam::feature::orb_extractor::compute_orb_descriptor()
    @     0x7efe967114bd openvslam::feature::orb_extractor::compute_orb_descriptors()
    @     0x7efe96713bcf openvslam::feature::orb_extractor::extract()
    @     0x7efe9670aa17 openvslam::data::frame::extract_orb()
    @     0x7efe9670cc7f openvslam::data::frame::frame()
    @     0x7efe96829671 openvslam::track::tracker::track_RGBD_image()
    @     0x7efe966a2454 openvslam::system::track_for_RGBD()
    @           0x41cd2d _ZZ13rgbd_trackingRKSt10shared_ptrIN9openvslam6configEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESC_SC_jbbbSC_ENKUlvE_clEv.constprop.773
    @     0x7efe941f0c80 (unknown)
    @     0x7efe944c16ba start_thread
    @     0x7efe93c5f41d clone
    @                0x0 (unknown)
Segmentation fault

I look into the function compute_orb_descriptor, and I suspect that the error is caused by memory access violation, because in the Macro GET_VALUE(idx) you did not check for image boundaries, I think there are chance accessing beyond borders unless you do not detect FAST feature around image borders.

Why is there no reference to ORB_SLAM2 ?

I'm currently trying to learn about SLAM on my free time, so I'm looking at different open source projects. I noticed the core of this project is really close to ORB_SLAM2 but with different namespace and some change in the name of methods. Are the projects related in some way? Are both based on some other previous code base?

Localizing a single image

Hi, thanks for this amazing project.

I have created a .msg map file using my own dataset (a 4K 360 RGB equirectangular video that I took around the corridors of my building using a RICOH THETA V) using run_video_slam. I was wondering if I took a new 360 RGB equirectangular photo somewhere in the space, is it possible for OpenVSLAM to localise this single image within the previously generated map?

From what I understand, run_image_localization requires a sequence of images for track_for_monocular to work. I'm asking if it's possible to perform localization with just a single image.

Thank you!

Docker running error

Hello,

After I build the image using "docker build -t openvslam-desktop .",I got the prompt of:
Successfully built 45ee1756604a
Successfully tagged openvslam-destop:latest

And then,I input the command of "xhost +local:",the terminal window said:
non-network local connections being added to access control list

Next,I input the command of “docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix:ro openvslam-desktop”,but the terminal window said:
Unable to find image 'openvslam-desktop:latest' locally
docker: Error response from daemon: pull access denied for openvslam-desktop, repository does not exist or may require 'docker login'.
See 'docker run --help'.

What's wrong?

Camera pose format question

Hello,

Thank you for your great work on this project! I am looking to extract the camera pose information and seem to have been able to extract the camera translation in world coordinates but have been unable to accurately extract the rotation.

I noticed that in viewer.cc, you are using the inverse of cam_pose_cw, as follows:
const pangolin::OpenGlMatrix gl_cam_pose_wc(cam_pose_cw.inverse().eval());

Does this mean that the camera rotation is inverted in this variable? The rotations (Euler angles) I was able to extract from cam_pose_cw were extremely small (generally <0.2) and did not align with what is seen in the Pangolin viewer.

Is something unusual about how the rotation matrix is being represented? I looked into the possibility that it was stored as a quaternion in (w, x, y, z) format instead of (x, y, z, w) and this seemed somewhat promising - is it possible this is what is going on?

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.