DavidGillsjo / VideoIMUCapture-Android

Android application for capture of Video, IMU data and Camera data useful in SLAM and Structure from Motion research. Differs between Optical Image Stabilization (OIS) and Digital Video Stabilization (DVS) and can provide OIS data if the device supports it.
GNU General Public License v3.0
232 stars 43 forks source link

Error converting video to rosbag #15

Closed BUG423 closed 1 year ago

BUG423 commented 1 year ago

I am calibrating with reference to README in calibration. When I run "_kalibr_calibrate_cameras --bag kalibr.bag --target target.yaml --models pinhole-equi --topics /cam0/imageraw", "RuntimeError: Could not find topic /cam0/image_raw in kalibr.bag." appears. When I look at kalibr.bag, it's really only IMU topics, which puzzles me. My guess is that there may have been an error when the video was converted to rosbag. Hope to ask you and get some answers, thank you very much! image

sajjad-hm commented 1 year ago

@BUG423 Can you please share how you have calibrated and converted to rosbag? I find it confusing following the instructions of README in calibration. I'm a newbie in this field. Sorry, if I'm asking some dumb questions.

BUG423 commented 1 year ago

您好,我已经收到您的来信,非常感谢!

BUG423 commented 1 year ago

@BUG423 Can you please share how you have calibrated and converted to rosbag? I find it confusing following the instructions of README in calibration. I'm a newbie in this field. Sorry, if I'm asking some dumb questions.

I've closed this question and the reason for this issue is that I forgot to change the file name, which is a very stupid mistake. I have compiled my own calibration process, including some of my own understandings, and I have collected some successful stories of others here. But these are all Chinese, hope it helps you. You can visit this website at: https://www.wolai.com/xmuer/m4329RZnrrvdg5HUw3FxcQ also welcome to contact me by email: 1264696035@qq.com

sajjad-hm commented 1 year ago

Thank you so much!

sajjad-hm commented 1 year ago

I'm having this problem. I have checked my path. But still, it's showing No such file or directory

sajjad@sajjad-VirtualBox:~/VideoIMUCapture-Android/calibration$ SUDO=1 DATA=/home/sajjad/2023_07_29_21_13_31 ./run_dockerhub.sh
[sudo] password for sajjad: 
Using default tag: latest
latest: Pulling from davidgillsjo/videoimucapture-calibration
Digest: sha256:2c531c91c19d49df7145dcc8dc1887eb336dddea180ded87bfdd10fa6f520fcc
Status: Image is up to date for davidgillsjo/videoimucapture-calibration:latest
docker.io/davidgillsjo/videoimucapture-calibration:latest
groups: cannot find name for group ID 1000
sajjad@06e13ec48ab5:/calibration$ python data2statistics.py
/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
usage: data2statistics.py [-h] [--result-dir RESULT_DIR] [--hide-plot]
                          proto_file
data2statistics.py: error: too few arguments
sajjad@06e13ec48ab5:/calibration$ python data2statistics.py /home/sajjad/2023_07_29_21_13_31/video_meta.pb3
Traceback (most recent call last):
  File "data2statistics.py", line 168, in <module>
    with open(args.proto_file,'rb') as f:
IOError: [Errno 2] No such file or directory: '/home/sajjad/2023_07_29_21_13_31/video_meta.pb3'
sajjad@06e13ec48ab5:/calibration$ 
BUG423 commented 1 year ago

Your problem stems from a path error, when you are in a docker environment, the path name is different from your original path. Most importantly, ${host_name} refers to the original "/home/username". In the terminal, you can use the "tab" button to see if you can automatically complete the path; Or check the file directory that you are familiar with docker first. Good luck.

sajjad-hm commented 1 year ago

It works now, thanks for helping me out. It seems I can't generate kalibr.yaml file. It's showing this error.

sajjad@71a676657caa:/host_home/2023_08_01_23_08_39/kalibr$ kalibr_calibrate_cameras --bag kalibr.bag --target target.yaml --models pinhole-equi --topics /cam0/image_raw
importing libraries
the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'
Traceback (most recent call last):
  File "/kalibr_workspace/devel/bin/kalibr_calibrate_cameras", line 15, in <module>
    exec(compile(fh.read(), python_script, 'exec'), context)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 447, in <module>
    main()
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 152, in main
    targetConfig = kc.CalibrationTargetParameters(parsed.targetYaml)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 529, in __init__
    ParametersBase.__init__(self, yamlFile, "CalibrationTargetConfig", createYaml)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 200, in __init__
    self.data = self.readYaml()
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 211, in readYaml
    self.raiseError( "Could not read configuration from {0}".format(self.yamlFile) )
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 234, in raiseError
    raise RuntimeError( "{0}{1}".format(header, message) )
RuntimeError: [CalibrationTargetConfig Reader]: Could not read configuration from target.yaml
sajjad@71a676657caa:/host_home/2023_08_01_23_08_39/kalibr$ 
BUG423 commented 1 year ago

It works now, thanks for helping me out. It seems I can't generate kalibr.yaml file. It's showing this error.

sajjad@71a676657caa:/host_home/2023_08_01_23_08_39/kalibr$ kalibr_calibrate_cameras --bag kalibr.bag --target target.yaml --models pinhole-equi --topics /cam0/image_raw
importing libraries
the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'
Traceback (most recent call last):
  File "/kalibr_workspace/devel/bin/kalibr_calibrate_cameras", line 15, in <module>
    exec(compile(fh.read(), python_script, 'exec'), context)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 447, in <module>
    main()
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 152, in main
    targetConfig = kc.CalibrationTargetParameters(parsed.targetYaml)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 529, in __init__
    ParametersBase.__init__(self, yamlFile, "CalibrationTargetConfig", createYaml)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 200, in __init__
    self.data = self.readYaml()
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 211, in readYaml
    self.raiseError( "Could not read configuration from {0}".format(self.yamlFile) )
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 234, in raiseError
    raise RuntimeError( "{0}{1}".format(header, message) )
RuntimeError: [CalibrationTargetConfig Reader]: Could not read configuration from target.yaml
sajjad@71a676657caa:/host_home/2023_08_01_23_08_39/kalibr$ 

Hello, I have not encountered your problem, I suggest you start from scratch and re-do the whole process. The tutorial I provided is more detailed, maybe you missed it at some point. In addition, judging from the error message, your "target.yaml" may have a problem, you can check the file content to confirm whether there is a problem, here is my own file content (need to change according to the actual calibration board information): image

zss@zs:~/VideoIMUCapture-Android/dataset/Video/kalibr$ cat target.yaml tagCols: 6 tagRows: 6 tagSize: 0.025 tagSpacing: 0.3 target_type: aprilgrid

sajjad-hm commented 1 year ago

It works now, thanks for helping me out. It seems I can't generate kalibr.yaml file. It's showing this error.

sajjad@71a676657caa:/host_home/2023_08_01_23_08_39/kalibr$ kalibr_calibrate_cameras --bag kalibr.bag --target target.yaml --models pinhole-equi --topics /cam0/image_raw
importing libraries
the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'
Traceback (most recent call last):
  File "/kalibr_workspace/devel/bin/kalibr_calibrate_cameras", line 15, in <module>
    exec(compile(fh.read(), python_script, 'exec'), context)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 447, in <module>
    main()
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 152, in main
    targetConfig = kc.CalibrationTargetParameters(parsed.targetYaml)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 529, in __init__
    ParametersBase.__init__(self, yamlFile, "CalibrationTargetConfig", createYaml)
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 200, in __init__
    self.data = self.readYaml()
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 211, in readYaml
    self.raiseError( "Could not read configuration from {0}".format(self.yamlFile) )
  File "/kalibr_workspace/src/Kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 234, in raiseError
    raise RuntimeError( "{0}{1}".format(header, message) )
RuntimeError: [CalibrationTargetConfig Reader]: Could not read configuration from target.yaml
sajjad@71a676657caa:/host_home/2023_08_01_23_08_39/kalibr$ 

Hello, I have not encountered your problem, I suggest you start from scratch and re-do the whole process. The tutorial I provided is more detailed, maybe you missed it at some point. In addition, judging from the error message, your "target.yaml" may have a problem, you can check the file content to confirm whether there is a problem, here is my own file content (need to change according to the actual calibration board information): image

zss@zs:~/VideoIMUCapture-Android/dataset/Video/kalibr$ cat target.yaml tagCols: 6 tagRows: 6 tagSize: 0.025 tagSpacing: 0.3 target_type: aprilgrid

@BUG423 Thanks, I have solved this problem. I forgot to add target.yaml file in the appropriate way.