Giter Club home page Giter Club logo

orb_slam_2_ros's People

Contributors

aldenparker avatar aseligmann avatar caioaamaral avatar codeshub avatar craymichael avatar jjbut avatar lennarthaller avatar paulorodriguesjr avatar plieningerweb avatar samlaf avatar saoto28 avatar thien94 avatar tim-fan 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

orb_slam_2_ros's Issues

how to remap

Hello,
I am trying to use orb_slam2_ros. I would like to use orb_slam2_rgbd. My camera give rgb image and depth image on topics "rgb/image_raw" and "depth/image_raw" respectively. But i am confusing about how to change the topic. Do i need to replace "/camera/rgb/image_rect_color" with "/rgb/image_raw" or replace "/camera/rgb/image_raw" with "/rgb/image_raw"?

how to setup Camera.bf when using realsense D435i camera

I am using realsensen D435i camera to run rgbd model. In the file you provided RealSenseD435RGBD.yaml, I am not sure the meaning of Camera.bf. You explained that it is "IR projector baseline times fx". Is the baseline that of the two IR cameras? what is the fx, is it the focal length of color camera or that of the IR camera, or that of the IR projector? Thanks.

Opencv2.4.3 not correctly linked in CMakeLists.txt

I encountered this issue when trying to use "cmake build" to build this package. The error output looks like this:

~/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `cvmake[2]: *** [~/hcilab/catkin_ws/devel/.private/orb_slam2_ros/lib/orb_slam2_ros/orb_slam2_ros_rgbd] Error 1
::_OutputArray::_OutputArray(cv::Mat const&)'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/orb_slam2_ros_rgbd.dir/all] Error 2
make[2]: *** [~/catkin_ws/devel/.private/orb_slam2_ros/lib/orb_slam2_ros/orb_slam2_ros_stereo] Error 1
make[1]: *** [CMakeFiles/orb_slam2_ros_stereo.dir/all] Error 2
make: *** [all] Error 2

so I googled and found a similar issue with cv_bridge here: cv_bridge opencv not linked correctly

I tried those solutions but failed. Then I found this project did similar thing so I added the following lines to your CMakeLists.txt:

target_link_libraries(${PROJECT_NAME}
${OpenCV_LIBS}
${EIGEN3_LIBS}
${PROJECT_SOURCE_DIR}/orb_slam2/Thirdparty/DBoW2/lib/libDBoW2.so
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/orb_slam2/Thirdparty/g2o/lib/libg2o.so
${Boost_LIBRARIES}
)

Then it compiled successfully with some warnings:

Warnings   << orb_slam2_ros:make ~/catkin_ws/logs/orb_slam2_ros/build.make.006.log
/usr/bin/ld: warning: libopencv_core.so.2.4, needed by ~/hcilab/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_core.so.2.4, needed by ~/hcilab/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_core.so.2.4, needed by ~/hcilab/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so, may conflict with libopencv_core.so.3.2

I noticed that those libraries are "set" in your CMakeLists.txt but I am not sure if that can do the similar job as "target_link_libraries" as I am new to CMake.

Should this be a pull request?

Orbslam 2 Error code -11

Hello, i've working with this version of orbslam2 for ros usage for a little while.

I've reworked the node in order to extract an odometry, which, in general, i think is the most relevant result to take in terms of SLAM algorithms.

Currently i'm experiencing a crash on ros Kinetic which gives an "error code -11". I haven't found a solution for that but re-spawning seems to fix it. I've looking into CPU, memory consumption and every is normal (the node itself consumes one thread at most).

This is the output:

[orb_slam2_d435_rgbd-47] process has died [pid 10046, exit code -11, cmd /home/agv/ros_ws/devel/lib/orb_slam2_ros/orb_slam2_ros_rgbd /home/agv/ros_ws/src/tb_ros/orb_slam_2_ros/orb_slam2/Vocabulary/ORBvoc.txt /home/agv/ros_ws/src/tb_ros/orb_slam_2_ros/orb_slam2/config/RealSenseD435RGBD.yaml /camera/rgb/image_raw:=/camera_front/color/image_raw /camera/depth_registered/image_raw:=/camera_front/aligned_depth_to_color/image_raw __name:=orb_slam2_d435_rgbd __log:=/home/agv/.ros/log/6f4f172c-77f0-11e9-9b09-e0d55e8c1304/orb_slam2_d435_rgbd-47.log].
log file: /home/agv/.ros/log/6f4f172c-77f0-11e9-9b09-e0d55e8c1304/orb_slam2_d435_rgbd-47*.log

Help would be appreciated, and if more information is needed i will provide.

ros pose to orb pose

Do you know how to convert the ros pose (positon and rotation) to orb coordinate? As far as I understood, orb slam uses cv::Mat with 4x4 matrix and I have seen how the code converts that to ros system with posestamped message. What about other way round?

map viewer

Hello, newbie here.

When i run the code the vocabulary loads, but it doesn't open a map viewer like in the original code. Am i doing something wrong?

error installing orb_slam_2_ros using catkin_make with OpenCV 4.1.0

Issue :
I have compiled opencv 4.1.0 with cuda support. So want to build the ros dependent packages with custom opencv. The command after initializing catkin_init_workspace is as follows. Any kind of help will be deeply appreciated
Command :
catkin_make -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=/opt/include/opencv4/opencv2 -DPYTHON_EXECUTABLE=/usr/bin/python3

My fixes till yet :
I fixed the initial issues by editing the cmake file to have opencv version 4.1.0 and also /home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/ORBextractor.h to have #include <opencv2/opencv.hpp> instead of #include <opencv/cv.h>

My system config :
Ubuntu 18.04
Opencv 4.1.0
gcc 7.4.0
numpy 1.16.5
catkin

Error Log :
[ 64%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/FrameDrawer.cc.o
[ 65%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/MapPoint.cc.o
In file included from /home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:34:0:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:96:15: error: ‘CvMat’ has not been declared
void fill_M(CvMat * M, const int row, const double * alphas, const double u, const double v);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:102:34: error: ‘CvMat’ does not name a type
void find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:102:56: error: ‘CvMat’ does not name a type
void find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:103:34: error: ‘CvMat’ does not name a type
void find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:103:56: error: ‘CvMat’ does not name a type
void find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:104:34: error: ‘CvMat’ does not name a type
void find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:104:56: error: ‘CvMat’ does not name a type
void find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:105:17: error: ‘CvMat’ has not been declared
void qr_solve(CvMat * A, CvMat * b, CvMat * X);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:105:28: error: ‘CvMat’ has not been declared
void qr_solve(CvMat * A, CvMat * b, CvMat * X);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:105:39: error: ‘CvMat’ has not been declared
void qr_solve(CvMat * A, CvMat * b, CvMat * X);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:113:27: error: ‘CvMat’ does not name a type
void gauss_newton(const CvMat * L_6x10, const CvMat * Rho, double current_betas[4]);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:113:49: error: ‘CvMat’ does not name a type
void gauss_newton(const CvMat * L_6x10, const CvMat * Rho, double current_betas[4]);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:115:23: error: ‘CvMat’ has not been declared
double cb[4], CvMat * A, CvMat * b);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:115:34: error: ‘CvMat’ has not been declared
double cb[4], CvMat * A, CvMat * b);
^~~~~
[ 65%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/KeyFrame.cc.o
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc: In member function ‘cv::Mat ORB_SLAM2::Tracking::GrabImageStereo(const cv::Mat&, const cv::Mat&, const double&)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:171:38: error: ‘CV_RGB2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_RGB2GRAY);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:171:38: note: suggested alternative: ‘CV_RGB’
cvtColor(mImGray,mImGray,CV_RGB2GRAY);
^~~~~~~~~~~
CV_RGB
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:176:38: error: ‘CV_BGR2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_BGR2GRAY);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:184:38: error: ‘CV_RGBA2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_RGBA2GRAY);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:184:38: note: suggested alternative: ‘CV_RGB’
cvtColor(mImGray,mImGray,CV_RGBA2GRAY);
^~~~~~~~~~~~
CV_RGB
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:189:38: error: ‘CV_BGRA2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_BGRA2GRAY);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:189:38: note: suggested alternative: ‘CV_WRAP_AS’
cvtColor(mImGray,mImGray,CV_BGRA2GRAY);
^~~~~~~~~~~~
CV_WRAP_AS
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc: In member function ‘cv::Mat ORB_SLAM2::Tracking::GrabImageRGBD(const cv::Mat&, const cv::Mat&, const double&)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:210:38: error: ‘CV_RGB2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_RGB2GRAY);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:210:38: note: suggested alternative: ‘CV_RGB’
cvtColor(mImGray,mImGray,CV_RGB2GRAY);
^~~~~~~~~~~
CV_RGB
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:212:38: error: ‘CV_BGR2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_BGR2GRAY);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:217:38: error: ‘CV_RGBA2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_RGBA2GRAY);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:217:38: note: suggested alternative: ‘CV_RGB’
cvtColor(mImGray,mImGray,CV_RGBA2GRAY);
^~~~~~~~~~~~
CV_RGB
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:219:38: error: ‘CV_BGRA2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_BGRA2GRAY);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:219:38: note: suggested alternative: ‘CV_WRAP_AS’
cvtColor(mImGray,mImGray,CV_BGRA2GRAY);
^~~~~~~~~~~~
CV_WRAP_AS
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc: In member function ‘cv::Mat ORB_SLAM2::Tracking::GrabImageMonocular(const cv::Mat&, const double&)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:240:38: error: ‘CV_RGB2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_RGB2GRAY);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:240:38: note: suggested alternative: ‘CV_RGB’
cvtColor(mImGray,mImGray,CV_RGB2GRAY);
^~~~~~~~~~~
CV_RGB
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:242:38: error: ‘CV_BGR2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_BGR2GRAY);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:247:38: error: ‘CV_RGBA2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_RGBA2GRAY);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:247:38: note: suggested alternative: ‘CV_RGB’
cvtColor(mImGray,mImGray,CV_RGBA2GRAY);
^~~~~~~~~~~~
CV_RGB
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:249:38: error: ‘CV_BGRA2GRAY’ was not declared in this scope
cvtColor(mImGray,mImGray,CV_BGRA2GRAY);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/Tracking.cc:249:38: note: suggested alternative: ‘CV_WRAP_AS’
cvtColor(mImGray,mImGray,CV_BGRA2GRAY);
^~~~~~~~~~~~
CV_WRAP_AS
[ 65%] Linking CXX executable /home/spiri/ros_opencv_dependables/devel/lib/image_view/image_saver
[ 65%] Built target image_saver
[ 65%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/Map.cc.o
[ 67%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/Optimizer.cc.o
[ 67%] Linking CXX executable /home/spiri/ros_opencv_dependables/devel/lib/image_view/extract_images
[ 67%] Building CXX object image_pipeline/image_view/CMakeFiles/image_view.dir/src/nodelets/disparity_nodelet.cpp.o
[ 67%] Built target extract_images
[ 67%] Building CXX object image_pipeline/image_view/CMakeFiles/image_view.dir/src/nodelets/window_thread.cpp.o
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/FrameDrawer.cc: In member function ‘cv::Mat ORB_SLAM2::FrameDrawer::DrawFrame()’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/FrameDrawer.cc:75:24: error: ‘CV_GRAY2BGR’ was not declared in this scope
cvtColor(im,im,CV_GRAY2BGR);
^~~~~~~~~~~
[ 67%] Linking CXX executable /home/spiri/ros_opencv_dependables/devel/lib/image_view/image_view
[ 67%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/PnPsolver.cc.o
orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/build.make:86: recipe for target 'orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/Tracking.cc.o' failed
make[2]: *** [orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/Tracking.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 67%] Built target image_view_exe
[ 68%] Linking CXX shared library /home/spiri/ros_opencv_dependables/devel/lib/libimage_view.so
[ 68%] Built target image_view
In file included from /home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:53:0:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:96:15: error: ‘CvMat’ has not been declared
void fill_M(CvMat * M, const int row, const double * alphas, const double u, const double v);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:102:34: error: ‘CvMat’ does not name a type
void find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:102:56: error: ‘CvMat’ does not name a type
void find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:103:34: error: ‘CvMat’ does not name a type
void find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:103:56: error: ‘CvMat’ does not name a type
void find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:104:34: error: ‘CvMat’ does not name a type
void find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:104:56: error: ‘CvMat’ does not name a type
void find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho, double * betas);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:105:17: error: ‘CvMat’ has not been declared
void qr_solve(CvMat * A, CvMat * b, CvMat * X);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:105:28: error: ‘CvMat’ has not been declared
void qr_solve(CvMat * A, CvMat * b, CvMat * X);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:105:39: error: ‘CvMat’ has not been declared
void qr_solve(CvMat * A, CvMat * b, CvMat * X);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:113:27: error: ‘CvMat’ does not name a type
void gauss_newton(const CvMat * L_6x10, const CvMat * Rho, double current_betas[4]);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:113:49: error: ‘CvMat’ does not name a type
void gauss_newton(const CvMat * L_6x10, const CvMat * Rho, double current_betas[4]);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:115:23: error: ‘CvMat’ has not been declared
double cb[4], CvMat * A, CvMat * b);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/include/PnPsolver.h:115:34: error: ‘CvMat’ has not been declared
double cb[4], CvMat * A, CvMat * b);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::choose_control_points()’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:388:3: error: ‘CvMat’ was not declared in this scope
CvMat * PW0 = cvCreateMat(number_of_correspondences, 3, CV_64F);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:388:11: error: ‘PW0’ was not declared in this scope
CvMat * PW0 = cvCreateMat(number_of_correspondences, 3, CV_64F);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:388:17: error: ‘cvCreateMat’ was not declared in this scope
CvMat * PW0 = cvCreateMat(number_of_correspondences, 3, CV_64F);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:391:9: error: expected ‘;’ before ‘PW0tPW0’
CvMat PW0tPW0 = cvMat(3, 3, CV_64F, pw0tpw0);
^~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:392:9: error: expected ‘;’ before ‘DC’
CvMat DC = cvMat(3, 1, CV_64F, dc);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:393:9: error: expected ‘;’ before ‘UCt’
CvMat UCt = cvMat(3, 3, CV_64F, uct);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:399:25: error: ‘PW0tPW0’ was not declared in this scope
cvMulTransposed(PW0, &PW0tPW0, 1);
^~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:399:3: error: ‘cvMulTransposed’ was not declared in this scope
cvMulTransposed(PW0, &PW0tPW0, 1);
^~~~~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:20: error: ‘DC’ was not declared in this scope
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:25: error: ‘UCt’ was not declared in this scope
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:33: error: ‘CV_SVD_MODIFY_A’ was not declared in this scope
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:33: note: suggested alternative: ‘CV_HAL_SVD_MODIFY_A’
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~~~~~~
CV_HAL_SVD_MODIFY_A
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:51: error: ‘CV_SVD_U_T’ was not declared in this scope
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:51: note: suggested alternative: ‘CV_OUT’
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~
CV_OUT
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:400:3: error: ‘cvSVD’ was not declared in this scope
cvSVD(&PW0tPW0, &DC, &UCt, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:402:3: error: ‘cvReleaseMat’ was not declared in this scope
cvReleaseMat(&PW0);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::compute_barycentric_coordinates()’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:414:3: error: ‘CvMat’ was not declared in this scope
CvMat CC = cvMat(3, 3, CV_64F, cc);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:415:9: error: expected ‘;’ before ‘CC_inv’
CvMat CC_inv = cvMat(3, 3, CV_64F, cc_inv);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:421:13: error: ‘CC’ was not declared in this scope
cvInvert(&CC, &CC_inv, CV_SVD);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:421:18: error: ‘CC_inv’ was not declared in this scope
cvInvert(&CC, &CC_inv, CV_SVD);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:421:18: note: suggested alternative: ‘cc_inv’
cvInvert(&CC, &CC_inv, CV_SVD);
^~~~~~
cc_inv
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:421:26: error: ‘CV_SVD’ was not declared in this scope
cvInvert(&CC, &CC_inv, CV_SVD);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:421:26: note: suggested alternative: ‘CV_AVX’
cvInvert(&CC, &CC_inv, CV_SVD);
^~~~~~
CV_AVX
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:421:3: error: ‘cvInvert’ was not declared in this scope
cvInvert(&CC, &CC_inv, CV_SVD);
^~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:436:24: error: variable or field ‘fill_M’ declared void
void PnPsolver::fill_M(CvMat * M,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:436:24: error: ‘CvMat’ was not declared in this scope
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:436:32: error: ‘M’ was not declared in this scope
void PnPsolver::fill_M(CvMat * M,
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:437:5: error: expected primary-expression before ‘const’
const int row, const double * as, const double u, const double v)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:437:20: error: expected primary-expression before ‘const’
const int row, const double * as, const double u, const double v)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:437:39: error: expected primary-expression before ‘const’
const int row, const double * as, const double u, const double v)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:437:55: error: expected primary-expression before ‘const’
const int row, const double * as, const double u, const double v)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘double ORB_SLAM2::PnPsolver::compute_pose(double ()[3], double)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:482:3: error: ‘CvMat’ was not declared in this scope
CvMat * M = cvCreateMat(2 * number_of_correspondences, 12, CV_64F);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:482:11: error: ‘M’ was not declared in this scope
CvMat * M = cvCreateMat(2 * number_of_correspondences, 12, CV_64F);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:482:15: error: ‘cvCreateMat’ was not declared in this scope
CvMat * M = cvCreateMat(2 * number_of_correspondences, 12, CV_64F);
^~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:488:9: error: expected ‘;’ before ‘MtM’
CvMat MtM = cvMat(12, 12, CV_64F, mtm);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:489:9: error: expected ‘;’ before ‘D’
CvMat D = cvMat(12, 1, CV_64F, d);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:490:9: error: expected ‘;’ before ‘Ut’
CvMat Ut = cvMat(12, 12, CV_64F, ut);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:492:23: error: ‘MtM’ was not declared in this scope
cvMulTransposed(M, &MtM, 1);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:492:3: error: ‘cvMulTransposed’ was not declared in this scope
cvMulTransposed(M, &MtM, 1);
^~~~~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:16: error: ‘D’ was not declared in this scope
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:20: error: ‘Ut’ was not declared in this scope
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:20: note: suggested alternative: ‘ut’
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~
ut
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:27: error: ‘CV_SVD_MODIFY_A’ was not declared in this scope
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:27: note: suggested alternative: ‘CV_HAL_SVD_MODIFY_A’
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~~~~~~
CV_HAL_SVD_MODIFY_A
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:45: error: ‘CV_SVD_U_T’ was not declared in this scope
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:45: note: suggested alternative: ‘CV_OUT’
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~~~~~~
CV_OUT
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:493:3: error: ‘cvSVD’ was not declared in this scope
cvSVD(&MtM, &D, &Ut, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:494:3: error: ‘cvReleaseMat’ was not declared in this scope
cvReleaseMat(&M);
^~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:497:9: error: expected ‘;’ before ‘L_6x10’
CvMat L_6x10 = cvMat(6, 10, CV_64F, l_6x10);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:498:9: error: expected ‘;’ before ‘Rho’
CvMat Rho = cvMat(6, 1, CV_64F, rho);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:506:24: error: ‘L_6x10’ was not declared in this scope
find_betas_approx_1(&L_6x10, &Rho, Betas[1]);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:506:24: note: suggested alternative: ‘l_6x10’
find_betas_approx_1(&L_6x10, &Rho, Betas[1]);
^~~~~~
l_6x10
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:506:33: error: ‘Rho’ was not declared in this scope
find_betas_approx_1(&L_6x10, &Rho, Betas[1]);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:506:33: note: suggested alternative: ‘rho’
find_betas_approx_1(&L_6x10, &Rho, Betas[1]);
^~~
rho
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::estimate_R_and_t(double ()[3], double)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:591:3: error: ‘CvMat’ was not declared in this scope
CvMat ABt = cvMat(3, 3, CV_64F, abt);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:592:9: error: expected ‘;’ before ‘ABt_D’
CvMat ABt_D = cvMat(3, 1, CV_64F, abt_d);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:593:9: error: expected ‘;’ before ‘ABt_U’
CvMat ABt_U = cvMat(3, 3, CV_64F, abt_u);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:594:9: error: expected ‘;’ before ‘ABt_V’
CvMat ABt_V = cvMat(3, 3, CV_64F, abt_v);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:596:14: error: ‘ABt’ was not declared in this scope
cvSetZero(&ABt);
^~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:596:3: error: ‘cvSetZero’ was not declared in this scope
cvSetZero(&ABt);
^~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:608:16: error: ‘ABt_D’ was not declared in this scope
cvSVD(&ABt, &ABt_D, &ABt_U, &ABt_V, CV_SVD_MODIFY_A);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:608:24: error: ‘ABt_U’ was not declared in this scope
cvSVD(&ABt, &ABt_D, &ABt_U, &ABt_V, CV_SVD_MODIFY_A);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:608:32: error: ‘ABt_V’ was not declared in this scope
cvSVD(&ABt, &ABt_D, &ABt_U, &ABt_V, CV_SVD_MODIFY_A);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:608:39: error: ‘CV_SVD_MODIFY_A’ was not declared in this scope
cvSVD(&ABt, &ABt_D, &ABt_U, &ABt_V, CV_SVD_MODIFY_A);
^~~~~~~~~~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:608:39: note: suggested alternative: ‘CV_HAL_SVD_MODIFY_A’
cvSVD(&ABt, &ABt_D, &ABt_U, &ABt_V, CV_SVD_MODIFY_A);
^~~~~~~~~~~~~~~
CV_HAL_SVD_MODIFY_A
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:608:3: error: ‘cvSVD’ was not declared in this scope
cvSVD(&ABt, &ABt_D, &ABt_U, &ABt_V, CV_SVD_MODIFY_A);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:667:43: error: ‘CvMat’ does not name a type
void PnPsolver::find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:667:65: error: ‘CvMat’ does not name a type
void PnPsolver::find_betas_approx_1(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::find_betas_approx_1(const int*, const int*, double*)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:671:3: error: ‘CvMat’ was not declared in this scope
CvMat L_6x4 = cvMat(6, 4, CV_64F, l_6x4);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:672:9: error: expected ‘;’ before ‘B4’
CvMat B4 = cvMat(4, 1, CV_64F, b4);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:675:13: error: ‘L_6x4’ was not declared in this scope
cvmSet(&L_6x4, i, 0, cvmGet(L_6x10, i, 0));
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:675:13: note: suggested alternative: ‘l_6x4’
cvmSet(&L_6x4, i, 0, cvmGet(L_6x10, i, 0));
^~~~~
l_6x4
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:675:26: error: ‘cvmGet’ was not declared in this scope
cvmSet(&L_6x4, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:675:26: note: suggested alternative: ‘memset’
cvmSet(&L_6x4, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:675:5: error: ‘cvmSet’ was not declared in this scope
cvmSet(&L_6x4, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:675:5: note: suggested alternative: ‘memset’
cvmSet(&L_6x4, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:12: error: ‘L_6x4’ was not declared in this scope
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:12: note: suggested alternative: ‘l_6x4’
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~~~~
l_6x4
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:25: error: ‘B4’ was not declared in this scope
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:25: note: suggested alternative: ‘b4’
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~
b4
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:29: error: ‘CV_SVD’ was not declared in this scope
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:29: note: suggested alternative: ‘CV_AVX’
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~~~~~
CV_AVX
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:3: error: ‘cvSolve’ was not declared in this scope
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:681:3: note: suggested alternative: ‘qr_solve’
cvSolve(&L_6x4, Rho, &B4, CV_SVD);
^~~~~~~
qr_solve
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:699:43: error: ‘CvMat’ does not name a type
void PnPsolver::find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:699:65: error: ‘CvMat’ does not name a type
void PnPsolver::find_betas_approx_2(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::find_betas_approx_2(const int*, const int*, double*)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:703:3: error: ‘CvMat’ was not declared in this scope
CvMat L_6x3 = cvMat(6, 3, CV_64F, l_6x3);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:704:9: error: expected ‘;’ before ‘B3’
CvMat B3 = cvMat(3, 1, CV_64F, b3);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:707:13: error: ‘L_6x3’ was not declared in this scope
cvmSet(&L_6x3, i, 0, cvmGet(L_6x10, i, 0));
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:707:13: note: suggested alternative: ‘l_6x3’
cvmSet(&L_6x3, i, 0, cvmGet(L_6x10, i, 0));
^~~~~
l_6x3
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:707:26: error: ‘cvmGet’ was not declared in this scope
cvmSet(&L_6x3, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:707:26: note: suggested alternative: ‘memset’
cvmSet(&L_6x3, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:707:5: error: ‘cvmSet’ was not declared in this scope
cvmSet(&L_6x3, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:707:5: note: suggested alternative: ‘memset’
cvmSet(&L_6x3, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:12: error: ‘L_6x3’ was not declared in this scope
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:12: note: suggested alternative: ‘l_6x3’
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~~~~
l_6x3
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:25: error: ‘B3’ was not declared in this scope
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:25: note: suggested alternative: ‘b3’
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~
b3
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:29: error: ‘CV_SVD’ was not declared in this scope
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:29: note: suggested alternative: ‘CV_AVX’
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~~~~~
CV_AVX
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:3: error: ‘cvSolve’ was not declared in this scope
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:712:3: note: suggested alternative: ‘qr_solve’
cvSolve(&L_6x3, Rho, &B3, CV_SVD);
^~~~~~~
qr_solve
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:731:43: error: ‘CvMat’ does not name a type
void PnPsolver::find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:731:65: error: ‘CvMat’ does not name a type
void PnPsolver::find_betas_approx_3(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::find_betas_approx_3(const int*, const int*, double*)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:735:3: error: ‘CvMat’ was not declared in this scope
CvMat L_6x5 = cvMat(6, 5, CV_64F, l_6x5);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:736:9: error: expected ‘;’ before ‘B5’
CvMat B5 = cvMat(5, 1, CV_64F, b5);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:739:13: error: ‘L_6x5’ was not declared in this scope
cvmSet(&L_6x5, i, 0, cvmGet(L_6x10, i, 0));
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:739:13: note: suggested alternative: ‘l_6x5’
cvmSet(&L_6x5, i, 0, cvmGet(L_6x10, i, 0));
^~~~~
l_6x5
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:739:26: error: ‘cvmGet’ was not declared in this scope
cvmSet(&L_6x5, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:739:26: note: suggested alternative: ‘memset’
cvmSet(&L_6x5, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:739:5: error: ‘cvmSet’ was not declared in this scope
cvmSet(&L_6x5, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:739:5: note: suggested alternative: ‘memset’
cvmSet(&L_6x5, i, 0, cvmGet(L_6x10, i, 0));
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:12: error: ‘L_6x5’ was not declared in this scope
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:12: note: suggested alternative: ‘l_6x5’
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~~~~
l_6x5
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:25: error: ‘B5’ was not declared in this scope
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:25: note: suggested alternative: ‘b5’
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~
b5
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:29: error: ‘CV_SVD’ was not declared in this scope
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:29: note: suggested alternative: ‘CV_AVX’
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~~~~~
CV_AVX
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:3: error: ‘cvSolve’ was not declared in this scope
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:746:3: note: suggested alternative: ‘qr_solve’
cvSolve(&L_6x5, Rho, &B5, CV_SVD);
^~~~~~~
qr_solve
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:813:23: error: ‘CvMat’ has not been declared
double betas[4], CvMat * A, CvMat * b)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:813:34: error: ‘CvMat’ has not been declared
double betas[4], CvMat * A, CvMat * b)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::compute_A_and_b_gauss_newton(const double*, const double*, double*, int*, int*)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:817:24: error: request for member ‘data’ in ‘* A’, which is of non-class type ‘int’
double * rowA = A->data.db + i * 4;
^~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:824:5: error: ‘cvmSet’ was not declared in this scope
cvmSet(b, i, 0, rho[i] -
^~~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:824:5: note: suggested alternative: ‘memset’
cvmSet(b, i, 0, rho[i] -
^~~~~~
memset
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:840:36: error: ‘CvMat’ does not name a type
void PnPsolver::gauss_newton(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:840:58: error: ‘CvMat’ does not name a type
void PnPsolver::gauss_newton(const CvMat * L_6x10, const CvMat * Rho,
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: In member function ‘void ORB_SLAM2::PnPsolver::gauss_newton(const int*, const int*, double*)’:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:846:3: error: ‘CvMat’ was not declared in this scope
CvMat A = cvMat(6, 4, CV_64F, a);
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:847:9: error: expected ‘;’ before ‘B’
CvMat B = cvMat(6, 1, CV_64F, b);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:848:9: error: expected ‘;’ before ‘X’
CvMat X = cvMat(4, 1, CV_64F, x);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:851:42: error: request for member ‘data’ in ‘* L_6x10’, which is of non-class type ‘const int’
compute_A_and_b_gauss_newton(L_6x10->data.db, Rho->data.db,
^~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:851:56: error: request for member ‘data’ in ‘* Rho’, which is of non-class type ‘const int’
compute_A_and_b_gauss_newton(L_6x10->data.db, Rho->data.db,
^~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:852:14: error: ‘A’ was not declared in this scope
betas, &A, &B);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:852:18: error: ‘B’ was not declared in this scope
betas, &A, &B);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:853:23: error: ‘X’ was not declared in this scope
qr_solve(&A, &B, &X);
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc: At global scope:
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:26: error: variable or field ‘qr_solve’ declared void
void PnPsolver::qr_solve(CvMat * A, CvMat * b, CvMat * X)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:26: error: ‘CvMat’ was not declared in this scope
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:34: error: ‘A’ was not declared in this scope
void PnPsolver::qr_solve(CvMat * A, CvMat * b, CvMat * X)
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:37: error: ‘CvMat’ was not declared in this scope
void PnPsolver::qr_solve(CvMat * A, CvMat * b, CvMat * X)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:45: error: ‘b’ was not declared in this scope
void PnPsolver::qr_solve(CvMat * A, CvMat * b, CvMat * X)
^
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:48: error: ‘CvMat’ was not declared in this scope
void PnPsolver::qr_solve(CvMat * A, CvMat * b, CvMat * X)
^~~~~
/home/spiri/ros_opencv_dependables/src/orb_slam_2_ros/orb_slam2/src/PnPsolver.cc:860:56: error: ‘X’ was not declared in this scope
void PnPsolver::qr_solve(CvMat * A, CvMat * b, CvMat * X)
^
orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/build.make:206: recipe for target 'orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/FrameDrawer.cc.o' failed
make[2]: *** [orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/FrameDrawer.cc.o] Error 1
orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/build.make:350: recipe for target 'orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/PnPsolver.cc.o' failed
make[2]: *** [orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/PnPsolver.cc.o] Error 1
CMakeFiles/Makefile2:9039: recipe for target 'orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/all' failed
make[1]: *** [orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

No GUI created when running orb_slam_2_ros

Hi, I am running orb_slam_2_ros with the monocular node on ros melodic. The camera stream seems to be working as rqt_image_view displays the /camera/image_raw images correctly, however I don’t see the orb_slam_2 GUI that comes with running non ros orb_slam_2. What am I doing wrong? Thank you.

blank orb_salm2_mono/debug_image

Hello, i'm new to Ros and Orb_slam and have been working with it for only a month or so now. using RViz i'm not able to see any images other than /camera/rgb/camera_info. Below is I believe all the needed info.
Ubunutu 18.04
Ros Mosaic

rostopic list
/camera/image_raw
/camera/rgb/camera_info
/camera/rgb/image_raw
/camera/rgb/image_raw/compressed
/camera/rgb/image_raw/compressed/parameter_descriptions
/camera/rgb/image_raw/compressed/parameter_updates
/camera/rgb/image_raw/compressedDepth
/camera/rgb/image_raw/compressedDepth/parameter_descriptions
/camera/rgb/image_raw/compressedDepth/parameter_updates
/camera/rgb/image_raw/theora
/camera/rgb/image_raw/theora/parameter_descriptions
/camera/rgb/image_raw/theora/parameter_updates
/clicked_point
/initialpose
/libuvc_camera/parameter_descriptions
/libuvc_camera/parameter_updates
/move_base_simple/goal
/nodelet_manager/bond
/orb_slam2_mono/debug_image
/orb_slam2_mono/debug_image/compressed
/orb_slam2_mono/debug_image/compressed/parameter_descriptions
/orb_slam2_mono/debug_image/compressed/parameter_updates
/orb_slam2_mono/debug_image/compressedDepth
/orb_slam2_mono/debug_image/compressedDepth/parameter_descriptions
/orb_slam2_mono/debug_image/compressedDepth/parameter_updates
/orb_slam2_mono/debug_image/theora
/orb_slam2_mono/debug_image/theora/parameter_descriptions
/orb_slam2_mono/debug_image/theora/parameter_updates
/orb_slam2_mono/map_points
/orb_slam2_mono/parameter_descriptions
/orb_slam2_mono/parameter_updates
/orb_slam2_mono/pose
/rosout
/rosout_agg
/tf
/tf_static

Launch File

<launch>
  <node pkg="nodelet" type="nodelet" name="nodelet_manager" args="manager" output="screen"/>

  <node pkg="nodelet" type="nodelet" name="libuvc_camera" args="load libuvc_camera/driver /nodelet_manager" output="screen">
    <param name="frame_id" value="camera" />
    <!-- Parameters used to find the camera -->
    <param name="vendor" value="9230"/>
    <param name="product" value="USB 2.0 Camera"/>

   	 <!-- Image size and type -->
     	<param name="width" value="1024"/>
    	 <param name="height" value="768"/>
    	<param name="video_mode" value="mjpeg"/>
    	<param name="frame_rate" value="30"/>
   	<param name="camera_frame_id" value="camera"/>
 	<remap from="/image_raw" to="/camera/rgb/image_raw" />
  </node>

 <node name="orb_slam2_mono" pkg="orb_slam2_ros" type="orb_slam2_ros_mono" output="screen">
       <remap from="/image_raw" to="/camera/rgb/image_raw" />
       <param name="publish_pointcloud" type="bool" value="true" />
       <param name="publish_pose" type="bool" value="true" />
       <param name="localize_only" type="bool" value="false" />
       <param name="reset_map" type="bool" value="false" />

       <!-- static parameters -->
       <param name="load_map" type="bool" value="false" />
       <param name="map_file" type="string" value="map.bin" />
       <param name="settings_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/config/TUM.yaml" />
       <param name="voc_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/Vocabulary/ORBvoc.txt" />

       <param name="pointcloud_frame_id" type="string" value="map" />
       <param name="camera_frame_id" type="string" value="camera_link" />
       <param name="min_num_kf_in_map" type="int" value="5" />
  </node>
</launch>

I launch Rviz via rosrun rviz rviz and I get the following
[ INFO] [1579548771.073486588]: rviz version 1.13.7
[ INFO] [1579548771.073535407]: compiled against Qt version 5.9.5
[ INFO] [1579548771.073545721]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1579548771.078360154]: Forcing OpenGl version 0.
[ INFO] [1579548771.519788566]: Stereo is NOT SUPPORTED
[ INFO] [1579548771.522401605]: OpenGl version: 3.1 (GLSL 1.4).

So i don't see any errors or issues on any of the screens. In Rviz I've tried to view both the camera and the image from orb_slam2_mono/debug_image and both result in blank images. Both give "no image received" and the Camera also gives "No CameraInfo received on [/orb_slam2_mono/camera_info]. Topic may not exist." However as you can see from my topic list it does exist. I'm sure I'm missing something easy here but I've spent days going thru posts trying to find a similar issue so i could solve this without having to ask. Any help would be very much appreciated.

Tracking Lost in KITTI Dataset

Hi, I am trying to run this ros package with a bag file created on KITTI dataset but I find that the tracking is lost when the vehicle makes turns. How can I fix this? I want to know which params can be tuned.

Maps cannot be saved multiple times

hi,
when I first run rosservice call /orb_slam2_rgbd/save_map "name: 'map.bin'" , it successfully saved the map, but when I called second time it failed and return Error changing the call stack size; Aborting. it seems SetCallStackSize() failed, how can I save map twice?
Thanks!

Stereo camera?

What do you think about this camera?
LINK
Do you think having such FoV and other its properties will help to extract orb points and construct a good map?

Does not rectify the image

I am using ZED camera and I updated the camera parameters along with rectification parameters. In launch file I gave raw image topics. I have attached both my launch and config file. I don't want to use rectified image topic from ZED.

   <remap from="image_left/image_color_rect" to="/zed_node/left_raw/image_raw_color" />
   <remap from="image_right/image_color_rect" to="/zed_node/right_raw/image_raw_color" />

   <param name="publish_pointcloud" type="bool" value="true" />
   <param name="publish_pose" type="bool" value="true" />
   <param name="localize_only" type="bool" value="false" />
   <param name="reset_map" type="bool" value="false" />

   <!-- static parameters -->
   <param name="load_map" type="bool" value="false" />
   <param name="map_file" type="string" value="map.bin" />
   <param name="settings_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/config/zed_SN15902_23-9-19.yaml" />
   <param name="voc_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/Vocabulary/ORBvoc.txt" />

   <param name="pointcloud_frame_id" type="string" value="map" />
   <param name="camera_frame_id" type="string" value="camera_link" />
   <param name="min_num_kf_in_map" type="int" value="5" />

%YAML:1.0

#--------------------------------------------------------------------------------------------

Camera Parameters. Adjust them!

#--------------------------------------------------------------------------------------------

Camera calibration and distortion parameters (OpenCV) LEFT CAMERA

Camera.fx: 698.198459
Camera.fy: 696.152509
Camera.cx: 669.571348
Camera.cy: 321.899546

Camera.k1: -0.170866
Camera.k2: 0.024528
Camera.p1: 0.0
Camera.p2: 0.0

Camera.width: 1280
Camera.height: 720

Camera frames per second

Camera.fps: 30

stereo baseline times fx --> the baseline in fact is 11.997 cm, here camera.bf = camera.fx * 0.119964

Camera.bf: 83.763

Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)

Camera.RGB: 1

Close/Far threshold. Baseline times.

ThDepth: 50

#--------------------------------------------------------------------------------------------

Stereo Rectification. Only if you need to pre-rectify the images.

Camera.fx, .fy, etc must be the same as in LEFT.P

#--------------------------------------------------------------------------------------------

LEFT.height: 720
LEFT.width: 1280
LEFT.D: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [-0.170866, 0.024528, 0.000410, -0.000125, 0.000000]
LEFT.K: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [698.198459, 0.000000, 669.571348, 0.000000, 696.152509, 321.899546, 0.000000, 0.000000, 1.000000]

LEFT.R: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [0.999943, -0.001762, 0.010539, 0.001747, 0.999997, 0.001510, -0.010542, -0.001491, 0.999943]
LEFT.P: !!opencv-matrix
rows: 3
cols: 4
dt: d
data: [708.892105, 0.000000, 680.394615, 0.000000, 0.000000, 708.892105, 337.445454, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]

RIGHT.height: 720
RIGHT.width: 1280
RIGHT.D: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [-0.170284, 0.025751, -0.000029, 0.000025, 0.000000]
RIGHT.K: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [700.895341, 0.000000, 670.588030, 0.000000, 698.516857, 359.837712, 0.000000, 0.000000, 1.000000]
RIGHT.R: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [0.999985, -0.003827, -0.003818, 0.003822, 0.999992, -0.001508, 0.003824, 0.001493, 0.999992]
RIGHT.P: !!opencv-matrix
rows: 3
cols: 4
dt: d
data: [708.892105, 0.000000, 680.394615, -84.837327, 0.000000, 708.892105, 337.445454, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]

#--------------------------------------------------------------------------------------------

ORB Parameters

#--------------------------------------------------------------------------------------------

ORB Extractor: Number of features per image

ORBextractor.nFeatures: 1200

ORB Extractor: Scale factor between levels in the scale pyramid

ORBextractor.scaleFactor: 1.2

ORB Extractor: Number of levels in the scale pyramid

ORBextractor.nLevels: 8

ORB Extractor: Fast threshold

Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.

Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST

You can lower these values if your images have low contrast

ORBextractor.iniThFAST: 30
ORBextractor.minThFAST: 7

#--------------------------------------------------------------------------------------------

Viewer Parameters

#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500

catkin build error: undefined reference to DUtils and DBoW2

/usr/bin/ld: warning: libopencv_core.so.3.4, needed by /home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /opt/ros/melodic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.3.4
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::SeedRandOnce()'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::toArray8U(cv::Mat const&, unsigned char*)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::L'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::fromArray8U(cv::Mat&, unsigned char*)'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/pedro/catkin_ws/devel/.private/orb_slam2_ros/lib/orb_slam2_ros/orb_slam2_ros_rgbd] Error 1
make[1]: *** [CMakeFiles/orb_slam2_ros_rgbd.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/usr/bin/ld: warning: libopencv_core.so.3.4, needed by /home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /opt/ros/melodic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.3.4
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::SeedRandOnce()'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::toArray8U(cv::Mat const&, unsigned char*)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::L'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::fromArray8U(cv::Mat&, unsigned char*)'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/pedro/catkin_ws/devel/.private/orb_slam2_ros/lib/orb_slam2_ros/orb_slam2_ros_mono] Error 1
make[1]: *** [CMakeFiles/orb_slam2_ros_mono.dir/all] Error 2
/usr/bin/ld: warning: libopencv_core.so.3.4, needed by /home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /opt/ros/melodic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.3.4
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::SeedRandOnce()'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::toArray8U(cv::Mat const&, unsigned char*)'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::L'
/home/pedro/catkin_ws/src/orb_slam_2_ros/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `DBoW2::FORB::fromArray8U(cv::Mat&, unsigned char*)'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/pedro/catkin_ws/devel/.private/orb_slam2_ros/lib/orb_slam2_ros/orb_slam2_ros_stereo] Error 1
make[1]: *** [CMakeFiles/orb_slam2_ros_stereo.dir/all] Error 2
make: *** [all] Error 2

different camera

sorry for this question but i am havin a problem with something.
I want to use the zed camera instead of the cameras you mentioned so what should i change?
your config files are in .yaml format and mine is in .conf !
And from inside they are different >
attached below is my file..

..........................................................................................................

[LEFT_CAM_2K]
fx = 1398.9
fy = 1398.9
cx = 1160.34
cy = 646.38
k1 = -0.177442
k2 = 0.0297199
p1 = 0
p2 = 0

[RIGHT_CAM_2K]
fx = 1400.52
fy = 1400.52
cx = 1133.7
cy = 622.971
k1 = -0.175378
k2 = 0.0290574
p1 = 0
p2 = 0

[LEFT_CAM_FHD]
fx = 1398.9
fy = 1398.9
cx = 1016.34
cy = 565.38
k1 = -0.177442
k2 = 0.0297199
p1 = 0
p2 = 0

[RIGHT_CAM_FHD]
fx = 1400.52
fy = 1400.52
cx = 989.702
cy = 541.971
k1 = -0.175378
k2 = 0.0290574
p1 = 0
p2 = 0

[LEFT_CAM_HD]
fx = 699.449
fy = 699.449
cx = 666.67
cy = 371.19
k1 = -0.177442
k2 = 0.0297199
p1 = 0
p2 = 0

[RIGHT_CAM_HD]
fx = 700.259
fy = 700.259
cx = 653.351
cy = 359.486
k1 = -0.175378
k2 = 0.0290574
p1 = 0
p2 = 0

[LEFT_CAM_VGA]
fx = 349.724
fy = 349.724
cx = 348.835
cy = 193.095
k1 = -0.177442
k2 = 0.0297199
p1 = 0
p2 = 0

[RIGHT_CAM_VGA]
fx = 350.129
fy = 350.129
cx = 342.175
cy = 187.243
k1 = -0.175378
k2 = 0.0290574
p1 = 0
p2 = 0

[STEREO]
Baseline = 120
CV_2K = 0.0136559
CV_FHD = 0.0136559
CV_HD = 0.0136559
CV_VGA = 0.0136559
RX_2K = -0.00678823
RX_FHD = -0.00678823
RX_HD = -0.00678823
RX_VGA = -0.00678823
RZ_2K = -0.0000106558
RZ_FHD = -0.0000106558
RZ_HD = -0.0000106558
RZ_VGA = -0.0000106558

Issue running orb_slam2_ros

When I run orb_slam2_ros, I am able to get the image from the subscribed topic. e.g. /usb_cam/image_raw but I get an error on the console saying: Map Point Vector is empty!. What's the cause of this error and what is the possible reason for it?

Mappoint / pose relation not correct? (rviz)

Hey,

it seems like there is a error corresponding map points/pose? I don't understand why there are so many points directly at the the current pose position. Im using a stereo camera setup so the depth information should be provided. See the pictures for the current camera frame and the visualization from 2 different potions.

3
1
2

Unable to record Pose

Hi,
below are my published and subscribed topic. When I try recording the topic by playing the source bag file, it doesn't record all the topic like pose, mappoints. Nor does it save the result in *.txt file. Cab anyone @lennarthaller help?

published_subscribed

Thanks

Wrong TF between MAP and Odom

From my understanding, Node.cc provides a TF between camera and Map. I have changed camera to odom in order to not break my tree but seems that the transformation is wrong. This is the screenshot:

screen shot 2019-03-01 at 14 48 42

As you can see, the rotation is being changed in yaw and roll.
I do not want to use the position approximation by openCV but I would like it to fuse it together with my odometry.

Can you tell me if that suppose to happen?

Also, when I switch to odom or base_link fixed frame, I get the pointcloud above my camera:

screen shot 2019-03-01 at 15 03 11

remap from orb_slam2_stereo to mavros/vision_pose/pose

I use orb_slam2_ros package which publishes position information of copter on topic "orb_slam2_stereo/pose". The type of these information is geometry/PostStamped. I want to remap this topic to "mavros/vision_pose/pose". So I added a remap line () in the orb_slam2_stereo.launch. But the remap didn't work. How can i make it work. Have I added the remap line in a wrong place?
This is the orb_slam2_stereo.launch




   <param name="publish_pointcloud" type="bool" value="true" />
   <param name="publish_pose" type="bool" value="true" />
   <param name="pointcloud_frame_id" type="string" value="fcu" />
   <param name="camera_frame_id" type="string" value="camera_link" />
when I try to echo the information from "mavros/vision_pose/pose", the output is rostopic echo mavros/vision_pose/pose WARNING: no messages received and simulated time is active. Is /clock being published?

Dense cloud compile issue

Attempting to get the dense cloud branch to compile. In its current state, it is not compiling, and I have gone ahead and merged it with the master branch with the same result.

[ 95%] Linking CXX executable devel/lib/orb_slam2_ros/orb_slam2_ros_mono
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::~TaskQueue()'
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::NumJobsCurrentlyRunning()'
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::TaskQueue(unsigned int)'
collect2: error: ld returned 1 exit status
CMakeFiles/orb_slam2_ros_mono.dir/build.make:384: recipe for target 'devel/lib/orb_slam2_ros/orb_slam2_ros_mono' failed
make[2]: *** [devel/lib/orb_slam2_ros/orb_slam2_ros_mono] Error 1
CMakeFiles/Makefile2:106: recipe for target 'CMakeFiles/orb_slam2_ros_mono.dir/all' failed
make[1]: *** [CMakeFiles/orb_slam2_ros_mono.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 97%] Building CXX object CMakeFiles/orb_slam2_ros_stereo.dir/ros/src/Node.cc.o
[ 98%] Linking CXX executable devel/lib/orb_slam2_ros/orb_slam2_ros_rgbd
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::~TaskQueue()'
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::NumJobsCurrentlyRunning()'
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::TaskQueue(unsigned int)'
collect2: error: ld returned 1 exit status
CMakeFiles/orb_slam2_ros_rgbd.dir/build.make:384: recipe for target 'devel/lib/orb_slam2_ros/orb_slam2_ros_rgbd' failed
make[2]: *** [devel/lib/orb_slam2_ros/orb_slam2_ros_rgbd] Error 1
CMakeFiles/Makefile2:1830: recipe for target 'CMakeFiles/orb_slam2_ros_rgbd.dir/all' failed
make[1]: *** [CMakeFiles/orb_slam2_ros_rgbd.dir/all] Error 2
[100%] Linking CXX executable devel/lib/orb_slam2_ros/orb_slam2_ros_stereo
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::~TaskQueue()'
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::NumJobsCurrentlyRunning()'
orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `TaskQueue::TaskQueue<boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGBA> >, cv::Mat>::TaskQueue(unsigned int)'
collect2: error: ld returned 1 exit status
CMakeFiles/orb_slam2_ros_stereo.dir/build.make:384: recipe for target 'devel/lib/orb_slam2_ros/orb_slam2_ros_stereo' failed
make[2]: *** [devel/lib/orb_slam2_ros/orb_slam2_ros_stereo] Error 1
CMakeFiles/Makefile2:68: recipe for target 'CMakeFiles/orb_slam2_ros_stereo.dir/all' failed
make[1]: *** [CMakeFiles/orb_slam2_ros_stereo.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

I have checked and rechecked the imports, package.xml and CMakeLists.txt to make sure the definition for

TaskQueue::TaskQueue<DenseMap::PointCloudRGBD::Ptr, DenseMap::PointCloudRGBD::Ptr, DenseMap::PointCloudRGBD::Ptr, cv::Mat> *task_queue_;

is being included at the right spots.
At this point, I'm totally stuck and at a loss for how to proceed with this. I'm thinking possibly this is a linker bug relating to TaskQueue's Args... or that the definition needs to match a more generic type?

I've forked the repo and pushed my working copy https://github.com/ChrisHughes/orb_slam_2_ros/commits/dense_map

Currently building this on Ubuntu 18.04, ROS melodic, C++ 7.3.0, cmake 3.10.2

scale of tf

Hello,
I've got the algorithm working, thank you for that! But I have a question about the transformation. So the algorithm sends a tf with map as parent, when I translate the camera I get translations in the range like for example 0.147. Is this 0.147 meters then or am I wrong?

Camera topics subscribed to for intel realsense D435 RGBD

Hello,

The given launch file orb_slam2_d435_rgbd launch files seems to subscribe to the topics:

/camera/color/image_rect_color
/camera/depth/image_rect_raw

However, the depth/image_rect_raw is not actually aligned with the color/image_rect_color image.
In the realsense node, if align_depth is set to True, additional topics are published, one of which is:

/camera/aligned_depth_to_color/image_raw, which seems to be the depth image aligned with the color image (im not sure if this is the raw color image, or the rectified color image).

Wouldn't the aligned depth image topic be the correct one to subscribe to? Since it's aligned with the color image being used to form the RGBD image?

stereo rectification zed camera

Hi,
I saw in the config file of orb slam some parameters for stereo rectification.
I want to use zed camera using this wrapper https://github.com/willdzeng/zed_cpu_ros and using only the images (right and left).
Do I need to rectify the images before publish to orbslam or it will rectify if I will give the stereo parameters?
Thanks!

Only publish current Map Points?

Hello,

I want to publish only the currently visible map points.
Therefore I wanted to change GetAllMapPoints() to GetTrackedMapPoints() which should return only the current map points.

PublishMapPoints (orb_slam_->GetAllMapPoints());

But after compiling and roslaunch its crashing
[orb_slam2_stereo-1] process has died [pid 1475, exit code -11,

I did this in the original ORBSLAM2 in https://github.com/raulmur/ORB_SLAM2/blob/master/Examples/ROS/ORB_SLAM2/src/ros_stereo.cc

by std::vector<ORB_SLAM2::MapPoint*> points = mpSLAM->GetTrackedMapPoints(); which worked.

Is there a way to make the GetTrackedMapPoints() function accessible inside the Node.cc file?

Those anybody has an idea?
Thanks a lot!:)

Camera.bf of D435 is wrong

Subscribe this topic /camera/extrinsics/depth_to_color and show the baseline from depth module to color is about 0.0146m. So, Camera.bf should be b x fx = 0.0146x620=9.052(resolution 640X480) not 49

dssdyx@dssdyx-OMEN-by-HP-Laptop-15-ce0xx:~$ rostopic echo /camera/extrinsics/depth_to_infra1
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "depth_to_infra1_extrinsics"
rotation: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
translation: [0.0, 0.0, 0.0]

^Cdssdyx@dssdyx-OMEN-by-HP-Laptop-15-ce0xx:~$ rostopic echo /camera/extrinsics/dth_to_infra2
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "depth_to_infra2_extrinsics"
rotation: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
translation: [-0.050028957426548004, 0.0, 0.0]

^Cdssdyx@dssdyx-OMEN-by-HP-Laptop-15-ce0xx:~$ rostopic echo /camera/extrinsics/dth_to_color
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "depth_to_color_extrinsics"
rotation: [0.9999778270721436, 0.002401607343927026, -0.006211749743670225, -0.002392100403085351, 0.9999959468841553, 0.0015374466311186552, 0.006215416826307774, -0.0015225533861666918, 0.9999794960021973]
translation: [0.01459997147321701, -0.0001203833453473635, 0.00047532463213428855]

Not subscribing to Camera

Hi,

I got the issue that the ORB-SLAM that I have in my workspace doesn't want to subscribe to my /camera/image_raw.
I have tried a few things where I used a video from a file, from a bag and from my webcam.
Still didn't get it to subscribe.

It built out of the box and also launches.

Here is a screenshot of the rqt node overview
Screenshot_20191008_143131

Zed camera

I am using a zed camera, I made a .yaml file with my configurations and a launch file that corresponds to that file, when running it just stucks on this screen!
Any suggestions?

Screenshot from 2019-03-18 19-25-59

Rectified Stereo Images

By providing rectification matrix in the configuration file, will the stereo images be rectified before processing, or we do need to provide rectified images to image_left/image_color_rect? I am having trouble mapping using EuRoC MH_01_easy.bag file.

Launch file:

   <remap from="image_left/image_color_rect" to="/cam0/image_raw" />
   <remap from="image_right/image_color_rect" to="/cam1/image_raw" />

   <param name="publish_pointcloud" type="bool" value="true" />
   <param name="publish_pose" type="bool" value="true" />
   <param name="localize_only" type="bool" value="false" />
   <param name="reset_map" type="bool" value="false" />

   <!-- static parameters -->
   <param name="load_map" type="bool" value="false" />
   <param name="map_file" type="string" value="map.bin" />
   <param name="settings_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/config/test_euroc_stereo.yaml" />
   <param name="voc_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/Vocabulary/ORBvoc.txt" />

   <param name="pointcloud_frame_id" type="string" value="map" />
   <param name="camera_frame_id" type="string" value="camera_link" />
   <param name="min_num_kf_in_map" type="int" value="5" />

Configuration file:
%YAML:1.0

#--------------------------------------------------------------------------------------------

Camera Parameters. Adjust them!

#--------------------------------------------------------------------------------------------

Camera calibration and distortion parameters (OpenCV)

Camera.fx: 435.2046959714599
Camera.fy: 435.2046959714599
Camera.cx: 367.4517211914062
Camera.cy: 252.2008514404297

Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0

Camera.width: 752
Camera.height: 480

Camera frames per second

Camera.fps: 20.0

stereo baseline times fx

Camera.bf: 47.90639384423901

Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)

Camera.RGB: 1

Close/Far threshold. Baseline times.

ThDepth: 35

#--------------------------------------------------------------------------------------------

Stereo Rectification. Only if you need to pre-rectify the images.

Camera.fx, .fy, etc must be the same as in LEFT.P

#--------------------------------------------------------------------------------------------
LEFT.height: 480
LEFT.width: 752
LEFT.D: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [-0.28340811, 0.07395907, 0.00019359, 1.76187114e-05, 0.0]
LEFT.K: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [458.654, 0.0, 367.215, 0.0, 457.296, 248.375, 0.0, 0.0, 1.0]
LEFT.R: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [0.999966347530033, -0.001422739138722922, 0.008079580483432283, 0.001365741834644127, 0.9999741760894847, 0.007055629199258132, -0.008089410156878961, -0.007044357138835809, 0.9999424675829176]
LEFT.P: !!opencv-matrix
rows: 3
cols: 4
dt: d
data: [435.2046959714599, 0, 367.4517211914062, 0, 0, 435.2046959714599, 252.2008514404297, 0, 0, 0, 1, 0]

RIGHT.height: 480
RIGHT.width: 752
RIGHT.D: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [-0.28368365, 0.07451284, -0.00010473, -3.555907e-05, 0.0]
RIGHT.K: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [457.587, 0.0, 379.999, 0.0, 456.134, 255.238, 0.0, 0.0, 1]
RIGHT.R: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [0.9999633526194376, -0.003625811871560086, 0.007755443660172947, 0.003680398547259526, 0.9999684752771629, -0.007035845251224894, -0.007729688520722713, 0.007064130529506649, 0.999945173484644]
RIGHT.P: !!opencv-matrix
rows: 3
cols: 4
dt: d
data: [435.2046959714599, 0, 367.4517211914062, -47.90639384423901, 0, 435.2046959714599, 252.2008514404297, 0, 0, 0, 1, 0]

#--------------------------------------------------------------------------------------------

ORB Parameters

#--------------------------------------------------------------------------------------------

ORB Extractor: Number of features per image

ORBextractor.nFeatures: 1200

ORB Extractor: Scale factor between levels in the scale pyramid

ORBextractor.scaleFactor: 1.2

ORB Extractor: Number of levels in the scale pyramid

ORBextractor.nLevels: 8

ORB Extractor: Fast threshold

Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.

Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST

You can lower these values if your images have low contrast

ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7

#--------------------------------------------------------------------------------------------

Viewer Parameters

#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500

with OpenCV 2.4.3, fail to catkin build

Thanks for any help in advance.

I downloaded the repository and put it under catkin_ws/src. However, I encountered an issue with catkin build.

........
.......
.......
~/catkin_ws/src/ros_orb_slam2/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `cv::line(cv::Mat&, cv::Point_<int>, cv::Point_<int>, cv::Scalar_<double> const&, int, int, int)'
~/catkin_ws/src/ros_orb_slam2/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `cv::getTextSize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, double, int, int*)'
~/catkin_ws/src/ros_orb_slam2/orb_slam2/lib/liborb_slam2_ros.so: undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat const&)'
collect2: error: ld returned 1 exit status
make[2]: *** [~/catkin_ws/devel/.private/orb_slam2_ros/lib/orb_slam2_ros/orb_slam2_ros_stereo] Error 1
make[1]: *** [CMakeFiles/orb_slam2_ros_stereo.dir/all] Error 2
make: *** [all] Error 2

It seems to be an issue with conflicting versions of opencv. The version installed on my end is 2.4.3.

Any suggestions? Thanks in advance!

camera_calibration

Hello,
I am trying to use orb_slam_2_ros. But I only do the simulation in gazebo. So I need to calibrate the simulated camera. So I want to ask if the 'camera_calibration' node can be used for a simulated camera? Or is there any other nodes for me to use for calibrating my camera.

Interpreting TF values

Hi,
Great library! Everything works very well.

I am interested in comparing the localization output of the robot with data from sensors to measure the accuracy of ORB-SLAM. I noticed that one of the published topics is "tf". Does that return the robot's position with respect to world coordinates, the camera's starting position, etc? I am using the Monocular node. I would appreciate any guidance on how I might be able to compare the "tf" value with values from an AMCL system.

Thank you very much!

Service Save_Map is not available

Hi,
I was able to successfully launch orb_slam2_ros with my monocular camera (PiCam) after specifying my own calibration file. Unfortunately, when I wanted to save the map using rosservice call /orb_slam2_mono/save_map map.bin after launching, I received the error "Service [/orb_slam2_mono/save_map] is not available". When I ran "rosservice list" there were six different services for the /orb_slam2_mono/ node, but save_map wasn't one of them. Just wondering what step I am missing or what I am doing wrong.

Thanks!

Camera claibration

Dear Lennart,

Thank you for providing us with your codes.
I am trying to use http://wiki.ros.org/action/fullsearch/camera_calibration?action=fullsearch&context=180&value=linkto%3A%22camera_calibration%22 to calibrate a camera. The problem is the k3 is always 0 while in your examples the are not zero. In addition the format of yaml file is in matrix format. I checked open cv documents https://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html and tried to match the parameters from matrix (open cv ) to your format. No luck. The point cloud is distorted. I would be grateful if you could help me in this regard.

Sincerely,
Taher Naderi

intel Euclid ROS1 Kinetic compiler problem

I've tried to compile orb_slam2_ros at my Intel Euclid Device (embed pc with buitin zr200) , but with the following result:

[ 87%] Building CXX object orb_slam_2_ros/CMakeFiles/orb_slam2_ros.dir/orb_slam2/src/System.cc.o
In file included from /usr/include/c++/5/thread:35:0,
from /intel/euclid/euclid_ws/src/orb_slam_2_ros/orb_slam2/include/System.h:26,
from /intel/euclid/euclid_ws/src/orb_slam_2_ros/orb_slam2/src/System.cc:23:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support
^
I've noticed, you changed something at compiler flags.

Compiling and running at another system (Intel NUC i5 + r200) works as expected.

Thanks and cheers

Chrimo

Cannot build orb_slam2_ros

I have a problem building orb_slam2_ros that building process stop at make subprocess.

My OS is

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
$ uname -r
4.15.0-1012-raspi2

and I am using ROS-melodic.

I built the package as follows

~$ source /opt/ros/melodic/setup.bash
~$ mkdir -p ~/orb_slam2_ws/src
~$ cd orb_slam2_ws
~/orb_slam2_ws$ catkin init
~/orb_slam2_ws$ cd src
~/orb_slam2_ws/src$ git clone https://github.com/appliedAI-Initiative/orb_slam_2_ros.git orb_slam2_ros
~/orb_slam2_ws/src$ cd ..
~/orb_slam2_ws$ catkin build -j 1 --verbose
--------------------------------------------------------------
Profile:                     default
Extending:             [env] /opt/ros/melodic
Workspace:                   /home/ubuntu/orb_slam2_ws
--------------------------------------------------------------
Source Space:       [exists] /home/ubuntu/orb_slam2_ws/src
Log Space:         [missing] /home/ubuntu/orb_slam2_ws/logs
Build Space:        [exists] /home/ubuntu/orb_slam2_ws/build
Devel Space:        [exists] /home/ubuntu/orb_slam2_ws/devel
Install Space:      [unused] /home/ubuntu/orb_slam2_ws/install
DESTDIR:            [unused] None
--------------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
--------------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        -j 1
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
--------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
--------------------------------------------------------------
Workspace configuration appears valid.

NOTE: Forcing CMake to run for each package.
--------------------------------------------------------------
[build] Found '1' packages in 0.0 seconds.                                                                                                            
[build] Updating package table.                                                                                                                       
Starting  >>> catkin_tools_prebuild                                                                                                                   
Starting   >> catkin_tools_prebuild:loadenv                                                                                                           
Output     << catkin_tools_prebuild:loadenv /home/ubuntu/orb_slam2_ws/logs/catkin_tools_prebuild/build.loadenv.000.log                                
Loading environment from: /home/ubuntu/orb_slam2_ws/devel/env.sh
Finished   << catkin_tools_prebuild:loadenv                                                                                                           
Starting   >> catkin_tools_prebuild:mkdir                                                                                                             
Starting   >> catkin_tools_prebuild:mkdir                                                                                                             
Starting   >> catkin_tools_prebuild:cache-manifest                                                                                                    
Starting   >> catkin_tools_prebuild:ctr-nuke                                                                                                          
Starting   >> catkin_tools_prebuild:cmake                                                                                                             
Subprocess  > catkin_tools_prebuild:cmake `cd /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild; catkin build --get-env catkin_tools_prebuild | catkin env -si  /usr/bin/cmake /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/ubuntu/orb_slam2_ws/devel/.private/catkin_tools_prebuild -DCMAKE_INSTALL_PREFIX=/home/ubuntu/orb_slam2_ws/install; cd -`
Output     << catkin_tools_prebuild:cmake /home/ubuntu/orb_slam2_ws/logs/catkin_tools_prebuild/build.cmake.000.log                                    
Not searching for unused variables given on the command line.
Re-run cmake no build system arguments
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.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
-- Using CATKIN_DEVEL_PREFIX: /home/ubuntu/orb_slam2_ws/devel/.private/catkin_tools_prebuild
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.15", 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/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild/test_results
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.15")
-- 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/googletest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.14
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild
cd /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild; catkin build --get-env catkin_tools_prebuild | catkin env -si  /usr/bin/cmake /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/ubuntu/orb_slam2_ws/devel/.private/catkin_tools_prebuild -DCMAKE_INSTALL_PREFIX=/home/ubuntu/orb_slam2_ws/install; cd -
Finished   << catkin_tools_prebuild:cmake                                                                                                             
Starting   >> catkin_tools_prebuild:make                                                                                                              
Subprocess  > catkin_tools_prebuild:make `cd /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild; catkin build --get-env catkin_tools_prebuild | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -`
Output     << catkin_tools_prebuild:make /home/ubuntu/orb_slam2_ws/logs/catkin_tools_prebuild/build.make.000.log                                      
/usr/bin/cmake -H/home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild -B/home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild/CMakeFiles /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild/CMakeFiles/progress.marks
/usr/bin/make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild'
/usr/bin/cmake -E cmake_progress_start /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild/CMakeFiles 0
cd /home/ubuntu/orb_slam2_ws/build/catkin_tools_prebuild; catkin build --get-env catkin_tools_prebuild | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
Finished   << catkin_tools_prebuild:make                                                                                                              
Starting   >> catkin_tools_prebuild:symlink                                                                                                           
Output     << catkin_tools_prebuild:symlink /home/ubuntu/orb_slam2_ws/logs/catkin_tools_prebuild/build.symlink.000.log                                
Symlinking /home/ubuntu/orb_slam2_ws/devel/./_setup_util.py
Symlinking /home/ubuntu/orb_slam2_ws/devel/./env.sh
Symlinking /home/ubuntu/orb_slam2_ws/devel/./setup.zsh
Symlinking /home/ubuntu/orb_slam2_ws/devel/./setup.bash
Symlinking /home/ubuntu/orb_slam2_ws/devel/./setup.sh
Symlinking /home/ubuntu/orb_slam2_ws/devel/lib/pkgconfig/catkin_tools_prebuild.pc
Symlinking /home/ubuntu/orb_slam2_ws/devel/share/catkin_tools_prebuild/cmake/catkin_tools_prebuildConfig.cmake
Symlinking /home/ubuntu/orb_slam2_ws/devel/share/catkin_tools_prebuild/cmake/catkin_tools_prebuildConfig-version.cmake
Finished   << catkin_tools_prebuild:symlink                                                                                                           
Finished  <<< catkin_tools_prebuild                [ 14.3 seconds ]                                                                                   
Starting  >>> orb_slam2_ros                                                                                                                           
Starting   >> orb_slam2_ros:loadenv                                                                                                                   
Output     << orb_slam2_ros:loadenv /home/ubuntu/orb_slam2_ws/logs/orb_slam2_ros/build.loadenv.000.log                                                
Loading environment from: /home/ubuntu/orb_slam2_ws/devel/env.sh
Finished   << orb_slam2_ros:loadenv                                                                                                                   
Starting   >> orb_slam2_ros:mkdir                                                                                                                     
Starting   >> orb_slam2_ros:mkdir                                                                                                                     
Starting   >> orb_slam2_ros:cache-manifest                                                                                                            
Starting   >> orb_slam2_ros:ctr-nuke                                                                                                                  
Starting   >> orb_slam2_ros:cmake                                                                                                                     
Subprocess  > orb_slam2_ros:cmake `cd /home/ubuntu/orb_slam2_ws/build/orb_slam2_ros; catkin build --get-env orb_slam2_ros | catkin env -si  /usr/bin/cmake /home/ubuntu/orb_slam2_ws/src/orb_slam_2_ros --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/ubuntu/orb_slam2_ws/devel/.private/orb_slam2_ros -DCMAKE_INSTALL_PREFIX=/home/ubuntu/orb_slam2_ws/install; cd -`
Output     << orb_slam2_ros:cmake /home/ubuntu/orb_slam2_ws/logs/orb_slam2_ros/build.cmake.000.log                                                    
Not searching for unused variables given on the command line.
Re-run cmake no build system arguments
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.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
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Using CATKIN_DEVEL_PREFIX: /home/ubuntu/orb_slam2_ws/devel/.private/orb_slam2_ros
-- Using CMAKE_PREFIX_PATH: /home/ubuntu/orb_slam2_ws/devel;/opt/ros/melodic
-- This workspace overlays: /home/ubuntu/orb_slam2_ws/devel;/opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.15", 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/ubuntu/orb_slam2_ws/build/orb_slam2_ros/test_results
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.15")
-- 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/googletest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.14
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "3.1.0")
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/orb_slam2_ws/build/orb_slam2_ros
cd /home/ubuntu/orb_slam2_ws/build/orb_slam2_ros; catkin build --get-env orb_slam2_ros | catkin env -si  /usr/bin/cmake /home/ubuntu/orb_slam2_ws/src/orb_slam_2_ros --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/ubuntu/orb_slam2_ws/devel/.private/orb_slam2_ros -DCMAKE_INSTALL_PREFIX=/home/ubuntu/orb_slam2_ws/install; cd -
Finished   << orb_slam2_ros:cmake                                                                                                                     
Starting   >> orb_slam2_ros:make                                                                                                                      
Subprocess  > orb_slam2_ros:make `cd /home/ubuntu/orb_slam2_ws/build/orb_slam2_ros; catkin build --get-env orb_slam2_ros | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -`
[build - 09:19.6] [1/2 complete] [1/1 jobs] [0 queued] [High Load] [orb_slam2_ros:make (14%) - 09:36.5] 

building process always freeze here.
Any way to solve this issue?

Creation of a listener for tf from map to camera_link

Hi,
I'm trying to use the transformation in order to know the camera pose in the map frame. Apparently this doesn't work, because the only existing frame is the camera_link frame with parent map, while no map frame without any parents exists as expected. Is something known or I'm getting something wrong?
Thank you in advance for your attention,
Best,
Tommaso

Launch File Issue

Hello,

I am having trouble launching ROS with the associated launch file using the following command,
roslaunch orb_slam_2_ros orb_slam2_r200_mono.launch

This produces the following error,
RLException: [orb_slam2_r200_mono.launch] is neither a launch file in package [orb_slam_2_ros] nor is [orb_slam_2_ros] a launch file name The traceback for the exception was written to the log file
I have tried following the readme and have executed the following,
source devel/setup.bash

I have also tried following the advice given by http://answers.ros.org/question/143496/roslaunch-is-neither-a-launch-file-in-package-nor-is-a-launch-file-name/. The rospack find orb_slam_2_ros command returned that the package was not found. Giving the absolute path for the commands tried did not yield different results.

(I am using ROS Melodic.)

Any help or advice would be greatly appreciated.

Thanks

Cannot launch node of type []: can't locate node [] in package []

Hi,

When I try running roslaunch orb_slam2_ros orb_slam2_r200_mono.launch the following error appears
ERROR: cannot launch node of type [orb_slam2_ros/orb_slam2_ros_mono]: can't locate node [orb_slam2_ros_mono] in package [orb_slam2_ros]

Any help troubleshooting the issue? If it an issue with setup then what in particular needs to be changed in the installation to solve this?

Thanks

Cannot view keep point see key point on rviz.

Hi,

I am running orb_slam_2_ros to generate a point cloud and build an octomap out of it. However, even though the orb_slam_2_ros debug image shows key points being identified, the corresponding point could do not seem to be generated which contradicts log messages.

SNIPPET OF LOG OUTPUT
Waiting 3 seconds after advertising topics... done. Hit space to toggle paused, or 's' to step. New map created with 615 points 2.382931 Duration: 0.680575 / 173.477680 5151.03

Here are the details of my setup?
dataset - rgbd_dataset_freiburg2_large_with_loop.bag
camera parameters file - TUM2.yaml

RVIZ SCREENSHOT
Screenshot from 2019-10-22 07-50-18

Relevant files.
relevantfiles.zip

Where is "orb_slam2_mono" source file?

Hi all, I'm trying to understand the source code for this wrapper of orbslam2. When I was reading the launch file for mono part, I can not find the source file of orb_slam2_mono: type="orb_slam2_ros_mono" output="screen">

Can anyone help me for this part? Thanks

Wrong TF between map and camera_link

(moved from "Wrong TF between MAP and Odom #13")
It looks wrong tf between map and camera_link.

I just run the original launch files with realsense D435.
$ roslaunch realsense2_camera rs_rgbd.launch
$ roslaunch orb_slam2_ros orb_slam2_d435_rgbd.launch

This is the screenshot in which the camera_link is fixed frame. I can see the point cloud of the map above the camera, initially.
Screenshot from 2019-03-08 11-44-08

This is the tf tree.
Screenshot from 2019-03-13 17-40-12

I can make the point cloud map like this.
Screenshot from 2019-03-13 17-30-47
Here, I am using TUM1.yaml instead of RealSenseD435RGBD.yaml. Because of it was not stable with that.

This is initial output of 'rostopic echo tf'. I can see a twisted rotation.

transforms:

header: 
  seq: 0
  stamp: 
    secs: 1552466541
    nsecs: 638240644
  frame_id: "map"
child_frame_id: "camera_link"
transform: 
  translation: 
    x: -5.157461419e-05
    y: -3.99771925004e-05
    z: 5.12675360369e-05
  rotation: 
    x: -0.500074472098
    y: 0.500079234907
    z: -0.499891153489
    w: 0.499955105592

orb slam pose correction

Question, I have a wheel odometry and due to its covariance it will eventually bring up errors. So I was thinking to use orb slam to correct the pose. What is the best practice for that? I was thinking to correct my odometry message from the wheel encoders every time the loop closure is being detected (from this code):
https://github.com/appliedAI-Initiative/orb_slam_2_ros/blob/master/orb_slam2/src/LoopClosing.cc

Is that a good way to correct the pose? Because feeding the orb slam visual odometry to the sensor fusion algorithms like EKF in robot_localization package is not a solution, as I cannot make it as an absolute position that will make the covariances to collapse.

Unable to show point cloud

Hi

I'm trying to extend support to Orbbec Astra Pro. I can successfully produce keypoints, but unfortunately point cloud cannot be shown:

Screen Shot 2019-09-02 at 2 23 36 am

The launch file is as follows:

<launch>
  <node name="orb_slam2_rgbd" pkg="orb_slam2_ros"
      type="orb_slam2_ros_rgbd" output="screen">

       <param name="publish_pointcloud" type="bool" value="true" />
       <param name="publish_pose" type="bool" value="true" />
       <param name="localize_only" type="bool" value="false" />
       <param name="reset_map" type="bool" value="false" />

       <!-- static parameters -->
       <param name="load_map" type="bool" value="false" />
       <param name="map_file" type="string" value="map.bin" />
       <param name="settings_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/config/TUM1.yaml" />
       <param name="voc_file" type="string" value="$(find orb_slam2_ros)/orb_slam2/Vocabulary/ORBvoc.txt" />

       <param name="pointcloud_frame_id" type="string" value="map" />
       <param name="camera_frame_id" type="string" value="camera_link" />
       <param name="min_num_kf_in_map" type="int" value="5" />
  </node>
</launch>

Does anyone know why the point cloud cannot be shown even when the fixed frame is already set to map?

Thanks in advance.

CMakeLists.txt correction - DBoW2 undefined reference

Hi,

I use your orbslam2 ROS wrapper and appreciate your work. I am not sure, if I am the only one, but when I want to successfully run catkin_make to build this package I need to adjust CmakeLists.txt a bit.

At lines:

${LIBS_ROS}

${LIBS_ROS}

${LIBS_ROS}

I need to add ${LIBS_ORBSLAM} to the target libraries to make it run properly. Otherwise I would get errors with undefined reference to DBoW2. So the commands for linking libraries for mono, stereo and rgbd look like this:

target_link_libraries(${PROJECT_NAME}_mono ${LIBS_ROS} ${LIBS_ORBSLAM} )

target_link_libraries(${PROJECT_NAME}_stereo ${LIBS_ROS} ${LIBS_ORBSLAM} )

target_link_libraries(${PROJECT_NAME}_rgbd ${LIBS_ROS} ${LIBS_ORBSLAM} )

That's one adjustment. Maybe you could ask other people, if that's an issue for them and change CMakeLists.txt here in your repo. Maybe it is just specific issue and it will help someone in the future, so it can be seen here.

Keep up the good work you're doing!

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.