RoboCup-SSL / ssl-vision

Shared Vision System For The RoboCup Small Size League
GNU General Public License v3.0
92 stars 111 forks source link

4 Geometry infomation from 2 cameras (at 2 SSL-vision, each one has 2 cameras) #96

Closed adakamakiri closed 6 years ago

adakamakiri commented 6 years ago

I am trying to setup the 2 SSL-Vision environment with 4 cameras (one SSL-Vision has 2 cameras). I set the parameter "local number of cameras" is 2, and global is 4. Then I got 4 geometry data from each SSL-Vision like bellow. I set all camera height 3500mm, but I received strange height (3956, 3976), maybe from unused camera. Detection packets is maybe OK.

calib.camera_id() 3 calib.tx() 2476.096680 calib.ty() -1633.769043 calib.tz() 3500.000000 calib.camera_id() 2 calib.tx() 2937.382568 calib.ty() 2531.677734 calib.tz() 3500.000000 calib.camera_id() 2 calib.tx() 2264.761719 calib.ty() 1794.231323 calib.tz() 3956.000000 calib.camera_id() 3 calib.tx() 2693.679932 calib.ty() 1818.718872 calib.tz() 3976.000000 calib.camera_id() 0 calib.tx() -2278.458496 calib.ty() 1920.441406 calib.tz() 3500.000000 calib.camera_id() 1 calib.tx() 2560.914795 calib.ty() 1941.649292 calib.tz() 3500.000000 calib.camera_id() 2 calib.tx() 2264.761719 calib.ty() 1794.231323 calib.tz() 3956.000000 calib.camera_id() 3 calib.tx() 2693.679932 calib.ty() 1818.718872 calib.tz() 3976.000000

g3force commented 6 years ago

Should be fixed with #97.

With #97, only geometry of cameras with valid camera ids are published. That is, camera ids from 0 to number of global cameras. If you use only two of the four cameras in one vision instance, make sure you set the camera ids of the remaining cameras to something >= number of global cameras.

adakamakiri commented 6 years ago

I have just tested now. Before this, I set 4567 to unused cameras. Then, I received bellow.

calib.camera_id() 0 calib.tx() -2278.458496 calib.ty() 1920.441406 calib.tz() 3500.000000 calib.camera_id() 1 calib.tx() 2560.914795 calib.ty() 1941.649292 calib.tz() 3500.000000 calib.camera_id() 6 calib.tx() 2264.761719 calib.ty() 1794.231323 calib.tz() 3956.000000 calib.camera_id() 7 calib.tx() 2693.679932 calib.ty() 1818.718872 calib.tz() 3976.000000 calib.camera_id() 3 calib.tx() 2476.096680 calib.ty() -1633.769043 calib.tz() 3500.000000 calib.camera_id() 2 calib.tx() 2937.382568 calib.ty() 2531.677734 calib.tz() 3500.000000 calib.camera_id() 4 calib.tx() -1495.181641 calib.ty() 3108.539062 calib.tz() 3956.000000 calib.camera_id() 5 calib.tx() 1476.798950 calib.ty() 3210.196289 calib.tz() 3976.000000

And next, I checkout 96-too-many-geometry-information branch as follows. git pull git checkout -b 96-too-many-geometry-information origin/96-too-many-geometry-information make -j bin/vision -s

Then, I got geometry packets like this. calib.camera_id() 0 calib.tx() -2278.458496 calib.ty() 1920.441406 calib.tz() 3500.000000 calib.camera_id() 1 calib.tx() 2560.914795 calib.ty() 1941.649292 calib.tz() 3500.000000 calib.camera_id() 3 calib.tx() 2476.096680 calib.ty() -1633.769043 calib.tz() 3500.000000 calib.camera_id() 2 calib.tx() 2937.382568 calib.ty() 2531.677734 calib.tz() 3500.000000 calib.camera_id() 4 calib.tx() -1495.181641 calib.ty() 3108.539062 calib.tz() 3956.000000 calib.camera_id() 5 calib.tx() 1476.798950 calib.ty() 3210.196289 calib.tz() 3976.000000

I touched both PC with same operation, maybe...

adakamakiri commented 6 years ago

The previous problem is from the one of my vision PC didn't have finished make. I clone SSL-Vision again, and checkout, make, now I get packets bellow.

geometry.calib_size() 2 calib.camera_id() 0 calib.tx() -2278.458496 calib.ty() 1920.441406 calib.tz() 3500.000000 calib.camera_id() 1 calib.tx() 2560.914795 calib.ty() 1941.649292 calib.tz() 3500.000000 geometry.calib_size() 2 calib.camera_id() 3 calib.tx() 2476.096680 calib.ty() -1633.769043 calib.tz() 3500.000000 calib.camera_id() 2 calib.tx() 2937.382568 calib.ty() 2531.677734 calib.tz() 3500.000000

Thank you so much for your fixing. We'll try to refuse invalid camera id in software too.