zed-ros-wrapper: Running ORB-SLAM3 with ZED2 always appears error.

I has run ORB-SLAM3 with Stereo+IMU. I set the parameters following.

%YAML:1.0

#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
Camera.type: "PinHole"

# Camera calibration and distortion parameters (OpenCV) 
# I get it from the topic of /zed2/zed_node/left/camera_info.
Camera.fx: 537.50732421875
Camera.fy: 537.50732421875
Camera.cx: 630.62646484375
Camera.cy: 362.08624267578125

# I use the rectification images, so set these with zeros.
Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0

Camera.width: 1280
Camera.height: 720

# Camera frames per second 
Camera.fps: 15.0

# IR projector baseline times fx (aprox.)
# I get it from the topic of /zed2/zed_node/right/camera_info with P(4).
Camera.bf: 64.62

# 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: 40.0

# Deptmap values factor
DepthMapFactor: 1.0

# Transformation from camera 0 to body-frame (imu)
# I get it from topic of /zed2/zed_node/left_cam_imu_transform, and it seems more precise with STARTER CONSOLE information "Camera-IMU Transform" 
Tbc: !!opencv-matrix
   rows: 4
   cols: 4
   dt: f
   data: [0.999956756829, 0.00843152806614, 0.00392349541458, -0.00200000009499,
          -0.0084334428508, 0.99996540322, 0.000471741896564, -0.02300000377,
          -0.00391937794561, -0.000504810067849, 0.999992191792, -0.00200000009499,
         0.0, 0.0, 0.0, 1.0]

# IMU noise
# I get it from Project of **zed-examples/tutorials/tutorial 7 - sensor data/**.
IMU.NoiseGyro: 0.007 # 1.6968e-04 
IMU.NoiseAcc:  0.0016 # 2.0000e-3
IMU.GyroWalk:  0.0019474 
IMU.AccWalk:   0.0002509 # 3.0000e-3
IMU.Frequency: 400

I have set all parametes with ZED2 SDK provided, but I can`t run well with ORB-SLAM3(Stereo+IMU). I run well with ORB-SLAM3(Stereo), once I fuse the IMU data it damaged. The error can be found following.

New Map created with 313 points
build optimization graph
start optimization
end optimization
update Keyframes velocities and biases
IMU in Map 0 is initialized
PIOLKF: NOT ENOUGH EDGES
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 3
mnInitialFrameId = 0
40 Frames set to lost
not IMU meas
First KF:10; Map init KF:0
New Map created with 318 points
build optimization graph
start optimization
end optimization
update Keyframes velocities and biases
IMU in Map 0 is initialized
PIOLKF: NOT ENOUGH EDGES
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 44
mnInitialFrameId = 42
79 Frames set to lost
not IMU meas
First KF:20; Map init KF:10
New Map created with 388 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 84
mnInitialFrameId = 82
83 Frames set to lost
not IMU meas
First KF:21; Map init KF:20
New Map created with 377 points
build optimization graph
start optimization
end optimization
update Keyframes velocities and biases
IMU in Map 0 is initialized
PIOLKF: NOT ENOUGH EDGES
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 89
mnInitialFrameId = 87
123 Frames set to lost
not IMU meas
First KF:31; Map init KF:21
New Map created with 423 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 130
mnInitialFrameId = 128
128 Frames set to lost
not IMU meas
First KF:33; Map init KF:31
New Map created with 271 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 136
mnInitialFrameId = 134
130 Frames set to lost
not IMU meas
First KF:34; Map init KF:33
New Map created with 220 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 139
mnInitialFrameId = 137
133 Frames set to lost
not IMU meas
First KF:35; Map init KF:34
New Map created with 377 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 143
mnInitialFrameId = 141
137 Frames set to lost
not IMU meas
First KF:36; Map init KF:35
New Map created with 405 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 148
mnInitialFrameId = 146
158 Frames set to lost
not IMU meas
First KF:42; Map init KF:36
New Map created with 328 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 170
mnInitialFrameId = 168
161 Frames set to lost
not IMU meas
First KF:43; Map init KF:42
New Map created with 387 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 174
mnInitialFrameId = 172
165 Frames set to lost
not IMU meas
First KF:44; Map init KF:43
New Map created with 359 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 179
mnInitialFrameId = 177
169 Frames set to lost
not IMU meas
First KF:45; Map init KF:44
New Map created with 255 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 184
mnInitialFrameId = 182
172 Frames set to lost
not IMU meas
First KF:46; Map init KF:45
New Map created with 385 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...

Can you give me some advices to solve it? Or I must calibrate it with Kalibr?

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 31 (6 by maintainers)

Most upvoted comments

@yike-chen @zdegrh can you please use English language?

I has run ORB-SLAM3 with Stereo+IMU. I set the parameters following.

%YAML:1.0

#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
Camera.type: "PinHole"

# Camera calibration and distortion parameters (OpenCV) 
# I get it from the topic of /zed2/zed_node/left/camera_info.
Camera.fx: 537.50732421875
Camera.fy: 537.50732421875
Camera.cx: 630.62646484375
Camera.cy: 362.08624267578125

# I use the rectification images, so set these with zeros.
Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0

Camera.width: 1280
Camera.height: 720

# Camera frames per second 
Camera.fps: 15.0

# IR projector baseline times fx (aprox.)
# I get it from the topic of /zed2/zed_node/right/camera_info with P(4).
Camera.bf: 64.62

# 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: 40.0

# Deptmap values factor
DepthMapFactor: 1.0

# Transformation from camera 0 to body-frame (imu)
# I get it from topic of /zed2/zed_node/left_cam_imu_transform, and it seems more precise with STARTER CONSOLE information "Camera-IMU Transform" 
Tbc: !!opencv-matrix
   rows: 4
   cols: 4
   dt: f
   data: [0.999956756829, 0.00843152806614, 0.00392349541458, -0.00200000009499,
          -0.0084334428508, 0.99996540322, 0.000471741896564, -0.02300000377,
          -0.00391937794561, -0.000504810067849, 0.999992191792, -0.00200000009499,
         0.0, 0.0, 0.0, 1.0]

# IMU noise
# I get it from Project of **zed-examples/tutorials/tutorial 7 - sensor data/**.
IMU.NoiseGyro: 0.007 # 1.6968e-04 
IMU.NoiseAcc:  0.0016 # 2.0000e-3
IMU.GyroWalk:  0.0019474 
IMU.AccWalk:   0.0002509 # 3.0000e-3
IMU.Frequency: 400

I have set all parametes with ZED2 SDK provided, but I can`t run well with ORB-SLAM3(Stereo+IMU). I run well with ORB-SLAM3(Stereo), once I fuse the IMU data it damaged. The error can be found following.

New Map created with 313 points
build optimization graph
start optimization
end optimization
update Keyframes velocities and biases
IMU in Map 0 is initialized
PIOLKF: NOT ENOUGH EDGES
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 3
mnInitialFrameId = 0
40 Frames set to lost
not IMU meas
First KF:10; Map init KF:0
New Map created with 318 points
build optimization graph
start optimization
end optimization
update Keyframes velocities and biases
IMU in Map 0 is initialized
PIOLKF: NOT ENOUGH EDGES
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 44
mnInitialFrameId = 42
79 Frames set to lost
not IMU meas
First KF:20; Map init KF:10
New Map created with 388 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 84
mnInitialFrameId = 82
83 Frames set to lost
not IMU meas
First KF:21; Map init KF:20
New Map created with 377 points
build optimization graph
start optimization
end optimization
update Keyframes velocities and biases
IMU in Map 0 is initialized
PIOLKF: NOT ENOUGH EDGES
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 89
mnInitialFrameId = 87
123 Frames set to lost
not IMU meas
First KF:31; Map init KF:21
New Map created with 423 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 130
mnInitialFrameId = 128
128 Frames set to lost
not IMU meas
First KF:33; Map init KF:31
New Map created with 271 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 136
mnInitialFrameId = 134
130 Frames set to lost
not IMU meas
First KF:34; Map init KF:33
New Map created with 220 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 139
mnInitialFrameId = 137
133 Frames set to lost
not IMU meas
First KF:35; Map init KF:34
New Map created with 377 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 143
mnInitialFrameId = 141
137 Frames set to lost
not IMU meas
First KF:36; Map init KF:35
New Map created with 405 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 148
mnInitialFrameId = 146
158 Frames set to lost
not IMU meas
First KF:42; Map init KF:36
New Map created with 328 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 170
mnInitialFrameId = 168
161 Frames set to lost
not IMU meas
First KF:43; Map init KF:42
New Map created with 387 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 174
mnInitialFrameId = 172
165 Frames set to lost
not IMU meas
First KF:44; Map init KF:43
New Map created with 359 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 179
mnInitialFrameId = 177
169 Frames set to lost
not IMU meas
First KF:45; Map init KF:44
New Map created with 255 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 184
mnInitialFrameId = 182
172 Frames set to lost
not IMU meas
First KF:46; Map init KF:45
New Map created with 385 points
Fail to track local map!
IMU is not or recently initialized. Reseting active map...

Can you give me some advices to solve it? Or I must calibrate it with Kalibr?

你好,请问这个问题解决了嘛,我最近也是双目运行可以,但是双目加imu就报错,提示not enough accelerator

还请多多指教

Currently ORB-SLAM3 only supports Global Shutter cameras. So I can not use it to run the ORB-SLAM3.

Really? Why will a Global Shutter camera or rolling shutter camera make a difference? My image frames are actually stable but still get same problem of “PIOLKF: NOT ENOUGH EDGES Fail to track local map! IMU is not or recently initialized. Reseting active map…”