uzh-rpg / dslam_open

Public code for "Data-Efficient Decentralized Visual SLAM"
GNU General Public License v3.0
283 stars 73 forks source link

Simulation Plot breaks up after few iterations #11

Open Erika1012 opened 4 years ago

Erika1012 commented 4 years ago

@tcies Hello, when I executed the runSimulationAndSave() command, with the robot number 5, there are some errors. It seems that the errors are due to the optimization. What are the latent and possible reasons behind this kind of errors? Thanks a lot. P.S.: Details of the errors are shown as below: `835 out of 1708

real_time =

46.6732

Discarding place recognition near previous match!

ans =

ParallelException with properties:

 identifier: 'MATLAB:assertion:failed'
    message: 'Assertion failed.'
      cause: {}
remotecause: {[1×1 MException]}
      stack: [1×1 struct]

ans =

'Warning: Directory already exists.
 > In runSyncGaussSeidel (line 28)
   In parallel.internal.queue.evaluateRequest (line 46)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.58.0)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/libdistributed-mapper.so)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/libgtsam.so.4)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.58.0)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_timer.so.1.58.0)
 /home/lixinyue/distributed-mapper/distributed_mapper_core/cpp/build/runDistributedMapper: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.58.0)
 '

ans =

struct with fields:

file: '/home/lixinyue/my_ws/src/dslam_open/dslam/matlab/runSyncGaussSeidel.m'
name: 'runSyncGaussSeidel'
line: 32

ans =

struct with fields:

file: '/home/lixinyue/my_ws/src/dslam_open/dslam/matlab/runSyncGaussSeidel.m'
name: 'runSyncGaussSeidel'
line: 32

Error using manageAsyncGaussSeidel (line 55) Assertion failed.

Error in stepDecentrState (line 77) manageAsyncGaussSeidel(decentr_state, ...

Error in runSimulationAndSave (line 51) stepDecentrState(decentr_state, decentr_stream{step_i}, params, ... `

Erika1012 commented 4 years ago

By the way, the verification server gives the following messages: `I0616 22:56:46.952160 9376 TemplatedVocabulary.h:1480] /home/lixinyue/my_ws/src/ORB_SLAM2/orb_slam_2/Vocabulary/ORBvoc.txt.proto .proto F0616 22:58:53.050995 9376 load.h:43] Check failed: in.is_open()

Check failure stack trace: @ 0x7f74b762d43d google::LogMessage::Fail() @ 0x7f74b762f253 google::LogMessage::SendToLog() @ 0x7f74b762cfcb google::LogMessage::Flush() @ 0x7f74b762fc3e google::LogMessageFatal::~LogMessageFatal() @ 0x7f74b6c16392 rpg_common::load<>() @ 0x7f74b6c1179a dslam::processVerificationRequest() @ 0x40229e rpg_common_main() @ 0x401c96 main @ 0x7f74b62ba830 __libc_start_main @ 0x401cf9 _start Aborted (core dumped) `

MichaelJoker commented 4 years ago

The problem is solved, the problem is caused by this one: /usr/local/MATLAB/R2017a/sys/os/glnxa64/libstdc++.so.6: version GLIBCXX_3.4.21 not found. Reason for that is the incompatibility of gcc version in Ubuntu 16.04 LTS and of that version in MATLAB R2017a. To force to be compatible, we need to load the specified version every time when loading MATLAB, by using the following command: LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./matlab Details of the problem explanation can be found here

NatureLan-sudo commented 2 years ago

By the way, the verification server gives the following messages: `I0616 22:56:46.952160 9376 TemplatedVocabulary.h:1480] /home/lixinyue/my_ws/src/ORB_SLAM2/orb_slam_2/Vocabulary/ORBvoc.txt.proto .proto F0616 22:58:53.050995 9376 load.h:43] Check failed: in.is_open()

Check failure stack trace: @ 0x7f74b762d43d google::LogMessage::Fail() @ 0x7f74b762f253 google::LogMessage::SendToLog() @ 0x7f74b762cfcb google::LogMessage::Flush() @ 0x7f74b762fc3e google::LogMessageFatal::~LogMessageFatal() @ 0x7f74b6c16392 rpg_common::load<>() @ 0x7f74b6c1179a dslam::processVerificationRequest() @ 0x40229e rpg_common_main() @ 0x401c96 main @ 0x7f74b62ba830 __libc_start_main @ 0x401cf9 _start Aborted (core dumped) `

Sorry to disturb you, did you solve this problem?

NatureLan-sudo commented 2 years ago

@MichaelJoker sorry to bother you, I have some problems. It seems that the error is a problem in the optimization process, it prompts that the assertion error occurs in 'readDecentrStateFromOptG2oFiles' line 42 assert(robot_i_val == robot_i);

ans = 

  ParallelException - :

     identifier: 'MATLAB:assertion:failed'
        message: 'Assertion failed'
          cause: {}
    remotecause: {[1×1 MException]}
          stack: [2×1 struct]

ans =

     > In runSyncGaussSeidel (line 28)
       In parallel.internal.queue.evaluateRequest (line 39)
     [optimizeRotation] Change (Robot 0): 1.79769e+308
     [optimizeRotation] Change (Robot 0): 2.81606e-13
     [optimizeRotation] Change (Robot 1): 4.96494e-15
     [optimizePoses] Change (Robot 0): 332.213
     [optimizePoses] Change (Robot 0): 2.99604e-09
     [optimizePoses] Change (Robot 1): 1.57419e-10
     Creating fullGraph by combining subgraphs.
     Initial Error: 2975.31
     Centralized Two Stage Error: 7.8183e-24
     Centralized Two Stage Error: 7.8183e-24
     Centralized Two Stage + GN Error: 6.39078e-28
     Centralized Two Stage + GN Error: 6.39078e-28
     Distributed Error: 5.08048e-23
     '

ans = 

   struct with fields:

    file: '/home/nature/dlsam_ws/src/dslam_open/dslam/matlab/readDecentrStateFromOptG2oFiles.m'
    name: 'readDecentrStateFromOptG2oFiles'
    line: 42

ans = 

struct with fields:

    file: '/home/nature/dlsam_ws/src/dslam_open/dslam/matlab/runSyncGaussSeidel.m'
    name: 'runSyncGaussSeidel'
    line: 40

Do you have any ideas? The results of runSyncGaussSeidel are correct or not ?