slambook2(ch9)—— Ubuntu18.04安装MeshLab + 排错 + 例程演示

一、MeshLab安装

1.方式一:

sudo add-apt-repository ppa:zarquon42/meshlab
#####   然后按Enter键,继续
sudo apt-get install meshlab

报错:(直接方式二下载)

W: 无法下载 http://ppa.launchpad.net/zarquon42/meshlab/ubuntu/dists/bionic/InRelease  无法发起与 ppa.launchpad.net:80 (2001:67c:1560:8008::19) 的连接 - connect (101: 网络不可达) 无法连接上 ppa.launchpad.net:80 (91.189.95.85)。 - connect (111: 拒绝连接)
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

2.方式二:

软件中心安装
在这里插入图片描述
在这里插入图片描述

二、bundle_adjustment_ceres

1.CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(bundle_adjustment)
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-O3 -std=c++14")

LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

find_package(fmt REQUIRED)
Find_Package(G2O REQUIRED)
Find_Package(Eigen3 REQUIRED)
Find_Package(Ceres REQUIRED)
Find_Package(Sophus REQUIRED)
Find_Package(CSparse REQUIRED)

set(FMT_LIBRARIES fmt::fmt)
SET(G2O_LIBS g2o_csparse_extension g2o_stuff g2o_core cxsparse)

include_directories(${PROJECT_SOURCE_DIR} ${EIGEN3_INCLUDE_DIR} ${CSPARSE_INCLUDE_DIR})

add_library(bal_common common.cpp)
add_executable(bundle_adjustment_g2o bundle_adjustment_g2o.cpp)
add_executable(bundle_adjustment_ceres bundle_adjustment_ceres.cpp)

target_link_libraries(bundle_adjustment_ceres ${CERES_LIBRARIES} bal_common)
target_link_libraries(bundle_adjustment_g2o ${G2O_LIBS} bal_common)
target_link_libraries(bundle_adjustment_g2o ${G2O_LIBS} ${FMT_LIBRARIES} bal_common)

2.结果

$ ./bundle_adjustment_ceres ../problem-16-22106-pre.txt 
Header: 16 22106 83718bal problem file loaded...
bal problem have 16 cameras and 22106 points. 
Forming 83718 observations. 
Solving ceres BA ... 
iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time
   0  1.842900e+07    0.00e+00    2.04e+06   0.00e+00   0.00e+00  1.00e+04        0    6.58e-02    2.36e-01
   1  1.449093e+06    1.70e+07    1.75e+06   2.16e+03   1.84e+00  3.00e+04        1    1.68e-01    4.04e-01
   2  5.848543e+04    1.39e+06    1.30e+06   1.55e+03   1.87e+00  9.00e+04        1    1.27e-01    5.31e-01
   3  1.581483e+04    4.27e+04    4.98e+05   4.98e+02   1.29e+00  2.70e+05        1    1.23e-01    6.54e-01
   4  1.251823e+04    3.30e+03    4.64e+04   9.96e+01   1.11e+00  8.10e+05        1    1.21e-01    7.75e-01
   5  1.240936e+04    1.09e+02    9.78e+03   1.33e+01   1.42e+00  2.43e+06        1    1.24e-01    8.99e-01
   6  1.237699e+04    3.24e+01    3.91e+03   5.04e+00   1.70e+00  7.29e+06        1    1.22e-01    1.02e+00
   7  1.236187e+04    1.51e+01    1.96e+03   3.40e+00   1.75e+00  2.19e+07        1    1.20e-01    1.14e+00
   8  1.235405e+04    7.82e+00    1.03e+03   2.40e+00   1.76e+00  6.56e+07        1    1.22e-01    1.26e+00
   9  1.234934e+04    4.71e+00    5.04e+02   1.67e+00   1.87e+00  1.97e+08        1    1.22e-01    1.39e+00
  10  1.234610e+04    3.24e+00    4.31e+02   1.15e+00   1.88e+00  5.90e+08        1    1.22e-01    1.51e+00
  11  1.234386e+04    2.24e+00    3.27e+02   8.44e-01   1.90e+00  1.77e+09        1    1.23e-01    1.63e+00
  12  1.234232e+04    1.54e+00    3.44e+02   6.69e-01   1.82e+00  5.31e+09        1    1.21e-01    1.75e+00
  13  1.234126e+04    1.07e+00    2.21e+02   5.45e-01   1.91e+00  1.59e+10        1    1.21e-01    1.87e+00
  14  1.234047e+04    7.90e-01    1.12e+02   4.84e-01   1.87e+00  4.78e+10        1    1.22e-01    2.00e+00
  15  1.233986e+04    6.07e-01    1.02e+02   4.22e-01   1.95e+00  1.43e+11        1    1.21e-01    2.12e+00
  16  1.233934e+04    5.22e-01    1.03e+02   3.82e-01   1.97e+00  4.30e+11        1    1.22e-01    2.24e+00
  17  1.233891e+04    4.25e-01    1.07e+02   3.46e-01   1.93e+00  1.29e+12        1    1.23e-01    2.36e+00
  18  1.233855e+04    3.59e-01    1.04e+02   3.15e-01   1.96e+00  3.87e+12        1    1.23e-01    2.48e+00
  19  1.233825e+04    3.06e-01    9.27e+01   2.88e-01   1.98e+00  1.16e+13        1    1.23e-01    2.61e+00
  20  1.233799e+04    2.61e-01    1.17e+02   2.16e-01   1.97e+00  3.49e+13        1    1.22e-01    2.73e+00
  21  1.233777e+04    2.18e-01    1.22e+02   1.15e-01   1.97e+00  1.05e+14        1    1.27e-01    2.86e+00
  22  1.233760e+04    1.73e-01    1.10e+02   9.67e-02   1.89e+00  3.14e+14        1    1.24e-01    2.98e+00
  23  1.233746e+04    1.37e-01    1.14e+02   1.11e-01   1.98e+00  9.41e+14        1    1.21e-01    3.10e+00
  24  1.233735e+04    1.13e-01    1.17e+02   1.96e-01   1.96e+00  2.82e+15        1    1.20e-01    3.22e+00
WARNING: Logging before InitGoogleLogging() is written to STDERR
W1224 16:08:32.052875 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  25  1.233735e+04    0.00e+00    1.17e+02   0.00e+00   0.00e+00  1.41e+15        1    4.76e-02    3.27e+00
  26  1.233725e+04    9.50e-02    1.20e+02   3.98e-01   1.99e+00  4.24e+15        1    1.19e-01    3.39e+00
W1224 16:08:32.218746 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  27  1.233725e+04    0.00e+00    1.20e+02   0.00e+00   0.00e+00  2.12e+15        1    4.67e-02    3.43e+00
W1224 16:08:32.262396 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  28  1.233725e+04    0.00e+00    1.20e+02   0.00e+00   0.00e+00  5.30e+14        1    4.36e-02    3.48e+00
  29  1.233718e+04    6.92e-02    5.76e+01   1.59e-01   1.70e+00  1.59e+15        1    1.18e-01    3.60e+00
  30  1.233714e+04    3.65e-02    5.80e+01   6.25e-01   1.93e+00  4.77e+15        1    1.23e-01    3.72e+00
W1224 16:08:32.550280 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  31  1.233714e+04    0.00e+00    5.80e+01   0.00e+00   0.00e+00  2.38e+15        1    4.75e-02    3.77e+00
W1224 16:08:32.593500 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  32  1.233714e+04    0.00e+00    5.80e+01   0.00e+00   0.00e+00  5.96e+14        1    4.32e-02    3.81e+00
  33  1.233711e+04    3.32e-02    5.99e+01   2.01e-01   2.00e+00  1.79e+15        1    1.22e-01    3.93e+00
  34  1.233708e+04    3.14e-02    6.02e+01   3.64e-01   2.00e+00  5.36e+15        1    1.24e-01    4.06e+00
W1224 16:08:32.885481 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  35  1.233708e+04    0.00e+00    6.02e+01   0.00e+00   0.00e+00  2.68e+15        1    4.57e-02    4.10e+00
W1224 16:08:32.928736 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  36  1.233708e+04    0.00e+00    6.02e+01   0.00e+00   0.00e+00  6.70e+14        1    4.32e-02    4.14e+00
  37  1.233705e+04    2.50e-02    2.04e+01   1.37e-01   1.68e+00  2.01e+15        1    1.20e-01    4.26e+00
  38  1.233704e+04    1.58e-02    2.01e+01   4.77e-01   1.95e+00  6.03e+15        1    1.23e-01    4.39e+00
W1224 16:08:33.218616 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  39  1.233704e+04    0.00e+00    2.01e+01   0.00e+00   0.00e+00  3.02e+15        1    4.69e-02    4.43e+00
W1224 16:08:33.262526 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  40  1.233704e+04    0.00e+00    2.01e+01   0.00e+00   0.00e+00  7.54e+14        1    4.39e-02    4.48e+00
  41  1.233702e+04    1.51e-02    2.07e+01   3.02e-01   2.00e+00  2.26e+15        1    1.21e-01    4.60e+00
  42  1.233701e+04    1.48e-02    2.00e+01   1.14e+00   1.99e+00  6.79e+15        1    1.26e-01    4.73e+00
W1224 16:08:33.556674 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  43  1.233701e+04    0.00e+00    2.00e+01   0.00e+00   0.00e+00  3.39e+15        1    4.72e-02    4.77e+00
W1224 16:08:33.600188 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  44  1.233701e+04    0.00e+00    2.00e+01   0.00e+00   0.00e+00  8.48e+14        1    4.35e-02    4.82e+00
  45  1.233700e+04    1.42e-02    2.09e+01   2.20e-01   1.99e+00  2.54e+15        1    1.23e-01    4.94e+00
  46  1.233698e+04    1.39e-02    1.88e+01   1.65e+00   2.00e+00  7.63e+15        1    1.24e-01    5.06e+00
W1224 16:08:33.894613 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  47  1.233698e+04    0.00e+00    1.88e+01   0.00e+00   0.00e+00  3.82e+15        1    4.74e-02    5.11e+00
W1224 16:08:33.938587 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  48  1.233698e+04    0.00e+00    1.88e+01   0.00e+00   0.00e+00  9.54e+14        1    4.40e-02    5.15e+00
  49  1.233697e+04    1.36e-02    2.14e+01   3.81e-01   2.00e+00  2.86e+15        1    1.23e-01    5.28e+00
W1224 16:08:34.107534 18868 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.
  50  1.233697e+04    0.00e+00    2.14e+01   0.00e+00   0.00e+00  1.43e+15        1    4.63e-02    5.32e+00

Solver Summary (v 2.0.0-eigen-(3.3.4)-lapack-suitesparse-(5.1.2)-cxsparse-(3.1.9)-eigensparse-no_openmp)

                                     Original                  Reduced
Parameter blocks                        22122                    22122
Parameters                              66462                    66462
Residual blocks                         83718                    83718
Residuals                              167436                   167436

Minimizer                        TRUST_REGION

Sparse linear algebra library    SUITE_SPARSE
Trust region strategy     LEVENBERG_MARQUARDT

                                        Given                     Used
Linear solver                    SPARSE_SCHUR             SPARSE_SCHUR
Threads                                     1                        1
Linear solver ordering              AUTOMATIC                 22106,16
Schur structure                         2,3,9                    2,3,9

Cost:
Initial                          1.842900e+07
Final                            1.233697e+04
Change                           1.841667e+07

Minimizer iterations                       51
Successful steps                           37
Unsuccessful steps                         14

Time (in seconds):
Preprocessor                         0.169962

  Residual only evaluation           0.507175 (36)
  Jacobian & residual evaluation     1.776603 (37)
  Linear solver                      2.374681 (50)
Minimizer                            5.156110

Postprocessor                        0.005225
Total                                5.331297

Termination:                   NO_CONVERGENCE (Maximum number of iterations reached. Number of iterations: 50.)

initial.ply

meshlab initial.ply

在这里插入图片描述

final.ply

meshlab final.ply

在这里插入图片描述

报错:(没找到解决办法,不影响结果,忽略)

$ cmake ..
-- Found required Ceres dependency: Eigen version 3.3.4 in /usr/lib/cmake/eigen3
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.0.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, Multithreading]
CMake Warning (dev) at /usr/local/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (CSPARSE)
  does not match the name of the calling package (CSparse).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/FindCSparse.cmake:24 (find_package_handle_standard_args)
  CMakeLists.txt:14 (Find_Package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/sfann/sf_slam_temp_code/ch9/build

三、bundle_adjustment_g2o

CMakeLists.txt和上面一样

1.结果:

$ ./bundle_adjustment_g2o ../problem-16-22106-pre.txt 
Header: 16 22106 83718iteration= 0	 chi2= 8894423.022949	 time= 0.26843	 cumTime= 0.26843	 edges= 83718	 schur= 1	 lambda= 227.832660	 levenbergIter= 1
iteration= 1	 chi2= 1772145.050517	 time= 0.237252	 cumTime= 0.505682	 edges= 83718	 schur= 1	 lambda= 75.944220	 levenbergIter= 1
iteration= 2	 chi2= 752585.293391	 time= 0.235268	 cumTime= 0.74095	 edges= 83718	 schur= 1	 lambda= 25.314740	 levenbergIter= 1
iteration= 3	 chi2= 402814.243627	 time= 0.237712	 cumTime= 0.978662	 edges= 83718	 schur= 1	 lambda= 8.438247	 levenbergIter= 1
iteration= 4	 chi2= 284879.378894	 time= 0.236198	 cumTime= 1.21486	 edges= 83718	 schur= 1	 lambda= 2.812749	 levenbergIter= 1
iteration= 5	 chi2= 238356.214415	 time= 0.235483	 cumTime= 1.45034	 edges= 83718	 schur= 1	 lambda= 0.937583	 levenbergIter= 1
iteration= 6	 chi2= 193550.755079	 time= 0.238393	 cumTime= 1.68874	 edges= 83718	 schur= 1	 lambda= 0.312528	 levenbergIter= 1
iteration= 7	 chi2= 146859.909574	 time= 0.246289	 cumTime= 1.93502	 edges= 83718	 schur= 1	 lambda= 0.104176	 levenbergIter= 1
iteration= 8	 chi2= 122887.700218	 time= 0.238307	 cumTime= 2.17333	 edges= 83718	 schur= 1	 lambda= 0.069451	 levenbergIter= 1
iteration= 9	 chi2= 97810.139925	 time= 0.235658	 cumTime= 2.40899	 edges= 83718	 schur= 1	 lambda= 0.046300	 levenbergIter= 1
iteration= 10	 chi2= 80329.940265	 time= 0.235279	 cumTime= 2.64427	 edges= 83718	 schur= 1	 lambda= 0.030867	 levenbergIter= 1
iteration= 11	 chi2= 65663.994405	 time= 0.240875	 cumTime= 2.88514	 edges= 83718	 schur= 1	 lambda= 0.020578	 levenbergIter= 1
iteration= 12	 chi2= 55960.726637	 time= 0.236792	 cumTime= 3.12193	 edges= 83718	 schur= 1	 lambda= 0.013719	 levenbergIter= 1
iteration= 13	 chi2= 53275.547797	 time= 0.236035	 cumTime= 3.35797	 edges= 83718	 schur= 1	 lambda= 0.009146	 levenbergIter= 1
iteration= 14	 chi2= 35983.312124	 time= 0.287437	 cumTime= 3.64541	 edges= 83718	 schur= 1	 lambda= 0.006097	 levenbergIter= 2
iteration= 15	 chi2= 32091.891518	 time= 0.343953	 cumTime= 3.98936	 edges= 83718	 schur= 1	 lambda= 0.016259	 levenbergIter= 3
iteration= 16	 chi2= 31156.262647	 time= 0.295334	 cumTime= 4.28469	 edges= 83718	 schur= 1	 lambda= 0.021679	 levenbergIter= 2
iteration= 17	 chi2= 30773.139623	 time= 0.240047	 cumTime= 4.52474	 edges= 83718	 schur= 1	 lambda= 0.014453	 levenbergIter= 1
iteration= 18	 chi2= 29079.563460	 time= 0.294675	 cumTime= 4.81942	 edges= 83718	 schur= 1	 lambda= 0.012488	 levenbergIter= 2
iteration= 19	 chi2= 28484.154313	 time= 0.291629	 cumTime= 5.11104	 edges= 83718	 schur= 1	 lambda= 0.016651	 levenbergIter= 2
iteration= 20	 chi2= 28445.405201	 time= 0.236969	 cumTime= 5.34801	 edges= 83718	 schur= 1	 lambda= 0.011101	 levenbergIter= 1
iteration= 21	 chi2= 27170.592543	 time= 0.291943	 cumTime= 5.63996	 edges= 83718	 schur= 1	 lambda= 0.011118	 levenbergIter= 2
iteration= 22	 chi2= 26748.191194	 time= 0.28838	 cumTime= 5.92834	 edges= 83718	 schur= 1	 lambda= 0.014824	 levenbergIter= 2
iteration= 23	 chi2= 26675.118188	 time= 0.235429	 cumTime= 6.16377	 edges= 83718	 schur= 1	 lambda= 0.009883	 levenbergIter= 1
iteration= 24	 chi2= 26087.985781	 time= 0.287631	 cumTime= 6.4514	 edges= 83718	 schur= 1	 lambda= 0.010281	 levenbergIter= 2
iteration= 25	 chi2= 25875.818536	 time= 0.286971	 cumTime= 6.73837	 edges= 83718	 schur= 1	 lambda= 0.013708	 levenbergIter= 2
iteration= 26	 chi2= 25831.564925	 time= 0.236271	 cumTime= 6.97464	 edges= 83718	 schur= 1	 lambda= 0.009139	 levenbergIter= 1
iteration= 27	 chi2= 25568.344873	 time= 0.287858	 cumTime= 7.2625	 edges= 83718	 schur= 1	 lambda= 0.011118	 levenbergIter= 2
iteration= 28	 chi2= 25455.865005	 time= 0.292309	 cumTime= 7.55481	 edges= 83718	 schur= 1	 lambda= 0.011781	 levenbergIter= 2
iteration= 29	 chi2= 25454.942053	 time= 0.235278	 cumTime= 7.79009	 edges= 83718	 schur= 1	 lambda= 0.007854	 levenbergIter= 1
iteration= 30	 chi2= 25260.709796	 time= 0.288416	 cumTime= 8.0785	 edges= 83718	 schur= 1	 lambda= 0.009148	 levenbergIter= 2
iteration= 31	 chi2= 25171.392636	 time= 0.287608	 cumTime= 8.36611	 edges= 83718	 schur= 1	 lambda= 0.009425	 levenbergIter= 2
iteration= 32	 chi2= 25104.160294	 time= 0.288567	 cumTime= 8.65468	 edges= 83718	 schur= 1	 lambda= 0.008637	 levenbergIter= 2
iteration= 33	 chi2= 25042.986799	 time= 0.286902	 cumTime= 8.94158	 edges= 83718	 schur= 1	 lambda= 0.008765	 levenbergIter= 2
iteration= 34	 chi2= 24984.677998	 time= 0.287927	 cumTime= 9.2295	 edges= 83718	 schur= 1	 lambda= 0.005949	 levenbergIter= 2
iteration= 35	 chi2= 24943.879912	 time= 0.287299	 cumTime= 9.5168	 edges= 83718	 schur= 1	 lambda= 0.007933	 levenbergIter= 2
iteration= 36	 chi2= 24886.075504	 time= 0.289046	 cumTime= 9.80585	 edges= 83718	 schur= 1	 lambda= 0.005674	 levenbergIter= 2
iteration= 37	 chi2= 24868.088225	 time= 0.28819	 cumTime= 10.094	 edges= 83718	 schur= 1	 lambda= 0.007565	 levenbergIter= 2
iteration= 38	 chi2= 24833.053138	 time= 0.292635	 cumTime= 10.3867	 edges= 83718	 schur= 1	 lambda= 0.008448	 levenbergIter= 2
iteration= 39	 chi2= 24815.047826	 time= 0.287168	 cumTime= 10.6738	 edges= 83718	 schur= 1	 lambda= 0.009766	 levenbergIter= 2

initial.ply

meshlab initial.ply

在这里插入图片描述

final.ply

meshlab final.ply

在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值