ethz-asl / kalibr

The Kalibr visual-inertial calibration toolbox
Other
4.33k stars 1.4k forks source link

Nothing happens when run kalibr_camera_validator #652

Closed donaldduckkkkk closed 6 months ago

donaldduckkkkk commented 10 months ago

I haved run three commands: terminal1 : roscore terminal2: rosbag play -l mybag.bag terminal3: rosrun kalibr kalibr_camera_validator --cam /home/zy-trl/Downloads/kalibr_validator/dataset_sun7-camchain.yaml --target /home/zy-trl/Downloads/kalibr_validator/target.yaml but nothing happens. "The Camera:" windows and the"Rectified view"windows are all empty. It seems like that there are no image messages to pass in. When i print log in " def synchronizedCallback(self, *cam_msgs): " , nothing happens. It seems like this function is not called. So what should I do?

goldbattle commented 9 months ago

Hmm, likely the topics specified are not correct, have you checked this? Could you provide a bag, the config, and the target you are using so I can reproduce locally?

rytse commented 7 months ago

Update

My issue was that the tool waits until it receives images from all specified cameras at once, but my system has cameras that do not overlap with all other cameras in the system.

Original Post

I am experiencing something similar using the Dockerfile_ros1_20_04 image. Specifically, I get these floating error messages:

image

Steps to reproduce:

Terminal 1:

(host) $ FOLDER=~/Documents/kalibr_validation
(host) $ xhost +local:root
(host) $ docker run -it -e "DISPLAY" -e "QT_X11_NO_MITSHM=1" -v "/tmp/.X11-unix:/tmp/.X11-unix:rw" -v "$FOLDER:/data" kalibr
(container) $ source devel/setup.bash 
(container) $ roscore

Terminal 2:

(host) $ docker exec -it <name> /bin/bash
(container) $ cd catkin_ws/
(container) $ source devel/setup.bash
(container) $ DATAPATH=<path>
(container) $ rosbag play -l ${DATAPATH}/kalibr/kalibr/rosbag/rosbag.bag

Terminal 3:

(host) $ docker exec -it <name> /bin/bash
(container) $ cd catkin_ws/
(container) $ source devel/setup.bash
(container) $ DATAPATH=<path>
(container) $ rosrun kalibr kalibr_camera_validator --cam ${DATAPATH}/kalibr/output/rosbag-camchain.yaml --target ${DATAPATH}/kalibr/output/board.yaml --verbose

I've provided rosbag.bag, rosbag-camchain.yaml, and board.yaml in the archive file at this Google drive link.