hengli / camodocal

CamOdoCal: Automatic Intrinsic and Extrinsic Calibration of a Rig with Multiple Generic Cameras and Odometry
Other
1.16k stars 389 forks source link

ERROR: No odometry data for 4s. Exiting... #90

Open 1JIEZHAO opened 5 years ago

1JIEZHAO commented 5 years ago

Hi,

I'm trying to run the project and have executed the intrinsic demo. But for running the extrinsic_calib demo, it failed. My data passed through four cameras and wheel odometers. my parameters are: camera-count: 4 keydist: 0.2 motions: 439

Here is the command line I'm writing: -c ../../data2/camera_calib --camera-count 4 --f 300.0 -o ../../data2/output -m 439 --data ../../data2/data --input ../../data2/input1/ --keydist 0.2 (1) -c contains the camera_i_calib.yaml files, (2) -o output (3) --data working data, (4) input folder, camera_0_time.png and pose_time.txt. I'm a little uncertain about the "pose_time.txt" format (rotation and translation). according to: file >> R(0,0) >> R(0, 1) >> R(0, 2); file >> R(1,0) >> R(1, 1) >> R(1, 2); file >> R(2,0) >> R(2, 1) >> R(2, 2); file >> t[0] >> t[1] >> t[2];

I don't know what "f" means.

Currently, I run my data and get this output: **# INFO: Initializing... Get images and pose files out from result directory

INFO: Initialization finished!

POSE: x=0, y=0, yaw=2.96729 [30] POSE: x=0, y=0, yaw=2.97017 [60] POSE: x=-0.0295893, y=0.0049473, yaw=2.97593 [90] POSE: x=-0.118572, y=0.0184687, yaw=2.98484 [120] IMG: 30 -> ../../data2/input1/camera_0_30.png Pose : 120 -0.98774 -0.156107 0 0.156107 -0.98774 0 0 0 1

INFO: Running camera-odometry calibration for each of the 4 cameras.

======run odo camera calibrate =========

ERROR: No odometry data for 4s. Exiting...**

I've been suffering from this problem for a long time. Any help would be highly appreciated. Thanks in advance!

stanathong commented 5 years ago

In your pose files, try inputting only odometry data for the first four dataset i.e. discarding the images then re-run again. See if that work.

Here is the example in which I removed the images data from the first four dataset i.e. only IMU and GPS are included (time 9953, 10015, 10078, 10156) after that both images and poses data are included in the data file (from time 10218).

9953 IMU 0 0 0.913545457642601 -0.4067366430758 9953 GPS 53.9487138293293 -1.04606432582583 0 10015 IMU 0 0 0.913545457642601 -0.4067366430758 10015 GPS 53.948713167334 -1.04606308458458 0 10078 IMU 0 0 0.913545457642601 -0.4067366430758 10078 GPS 53.9487124946613 -1.04606182332332 0 10156 IMU 0 0 0.913545457642601 -0.4067366430758 10156 GPS 53.9487116618285 -1.04606026176176 0 10218 IMU 0 0 0.913545457642601 -0.4067366430758
10218 GPS 53.9487109998332 -1.04605902052052 0 10218 CAM 0 Front_154.jpg 10218 CAM 1 Left_154.jpg 10218 CAM 2 Rear_154.jpg 10280 IMU 0 0 0.913545457642601 -0.4067366430758 10280 GPS 53.9487103378378 -1.04605777927928 0 10280 CAM 0 Front_155.jpg 10280 CAM 1 Left_155.jpg 10280 CAM 2 Rear_155.jpg 10358 IMU 0 0 0.913545457642601 -0.4067366430758 10358 GPS 53.948709505005 -1.04605621771772 0 10358 CAM 0 Front_156.jpg 10358 CAM 1 Left_156.jpg 10358 CAM 2 Rear_156.jpg .....

1JIEZHAO commented 5 years ago

@stanathong I'm glad to receive your answer. It helped me. After operating in your way, the problem is gone. But I have a new problem: When I ran 100 images, the program crash. the error is Segmentation fault. I don't know if this error is caused by my data.

I saw your #42 closed question.

I have an embarrassing request. May I try your data? I really want to see the results of this method. My email is zjack5651@gmail.com.

I've been suffering from this problem for a long time. Any help would be highly appreciated. Thanks in advance!

1JIEZHAO commented 5 years ago

@stanathong Thank you very much for your generosity. It helped me a lot. But the program did not run successfully.

my input command: -c /camodocal-master/camodocal-master/data3/calib --camera-count 3 --f 300.0 (f founction?) -o /camodocal-master/camodocal-master/data3/calibration_data -m 200 --data /INSTALL/camodocal-master/camodocal-master/data3/data --input /INSTALL/camodocal-master/camodocal-master/data3/input --event /INSTALL/camodocal-master/camodocal-master/data3/input/Event.dat --keydist 0.2

The error occurred:run odo camera calibrate exit

INFO: Initialization finished!

GPS: lat=53.9487, lon=-1.04606, alt=0, qx=0, qy=0, qz=0.913545, qw=-0.406737 [9953] GPS: lat=53.9487, lon=-1.04606, alt=0, qx=0, qy=0, qz=0.913545, qw=-0.406737 [10015] GPS: lat=53.9487, lon=-1.04606, alt=0, qx=0, qy=0, qz=0.913545, qw=-0.406737 [10078] GPS: lat=53.9487, lon=-1.04606, alt=0, qx=0, qy=0, qz=0.913545, qw=-0.406737 [10156] GPS: lat=53.9487, lon=-1.04606, alt=0, qx=0, qy=0, qz=0.913545, qw=-0.406737 [10218] GPS: lat=53.9487, lon=-1.04606, alt=0, qx=0, qy=0, qz=0.913545, qw=-0.406737 [10280] IMG: 10218 -> /home/INSTALL/camodocal-master/camodocal-master/data3/input/frames_0/Front_154.jpg Pose : 10280 -0.669131 0.743145 0 -0.743145 -0.669131 0 0 0 1

INFO: Running camera-odometry calibration for each of the 3 cameras.

======run odo camera calibrate ========= segment fault.

Based on your data set, do I need to do some extra work on this program? I'm confused about how this program works successfully. Can you help me? I really need your help.

Thank you very much for your help and look forward to your advise.

russelldj commented 5 years ago

I also spent six weeks trying to get this program to run and never got successful results. Here are my extremely messy notes. I'm not sure if any of it will help but I'm happy to try to answer questions. I think I remember random segfaults like what you mentioned, and I think it was related to not having sufficient data points.

youkely commented 4 years ago

I have tried the extrinsic calibration these days and found two bugs that can cause the crash. First thing it assumes the first odometry data is ahead of image data, otherwise it would pop the error "No odometry for 4s, exiting". The second problem is that this line erase the odometryposes when vo is finished, which causes the "Segmentation fault". But it can happen that odometryposes have different size of voposes since voposes is not updated immediately after the tracking breaks. Changing the voposes to odometryposes seems to solve this issue.

chunxiaoqiao commented 3 years ago

@russelldj I have an embarrassing request. May I try your data? I really want to see the results of this method. My email is chxqiao@gmail.com.

russelldj commented 3 years ago

@chunxiaoqiao , I apologize, I am no longer with the group that I did this work for and has such do not have access to the data. Best of luck.

ynma-hanvo commented 3 years ago

The second problem is that this line erase the odometryposes when vo is finished, which causes the "Segmentation fault". But it can happen that odometryposes have different size of voposes since voposes is not updated immediately after the tracking breaks. Changing the voposes to odometryposes seems to solve this issue.

I tried it but failed , still the same error ;

kubs0ne commented 1 year ago

Hey @youkely, I have the "No odometry for 4s, exiting" error as well. Can you please elaborate what do you mean by " it assumes the first odometry data is ahead of image data"? I am trying to run it without success for many days ...

youkely commented 1 year ago

Hey @youkely, I have the "No odometry for 4s, exiting" error as well. Can you please elaborate what do you mean by " it assumes the first odometry data is ahead of image data"? I am trying to run it without success for many days ...

@kubs0ne It should relate to the timestamp of the odometry and image data. Please check if you can modify some data or remove some data so that the timestamp of odometry is earlier than image data. It was three years ago and I almost forget everything about the tool.

kubs0ne commented 1 year ago

@youkely So the timestamp in this implementation will be taken as x from camera_0_x or pose_x right? Then there should be one more pose file than there are images? I have 153 images, then I have to have 154 poses ?

kubs0ne commented 1 year ago

Ok, so actually if anyone is wondering you have to delete the camera_0_0 file and start from camera_0_1 and have pose_0 availible. However I am still getting the "No segments, calibration fails" error and Segmentation fault after "Running camera rig calibration"