ethz-asl / kalibr

The Kalibr visual-inertial calibration toolbox
Other
4.21k stars 1.38k forks source link

numpy v1.24 bug #632

Closed Dead-Hand closed 8 months ago

Dead-Hand commented 1 year ago

I am trying to run the kalibr_calibrate_cameras script in a python3 environment using numpy version 1.24.3, but I get the following error:

Traceback (most recent call last):
  File "kalibr_calibrate_cameras", line 465, in <module>
    main()
  File "kalibr_calibrate_cameras", line 286, in main
    kcc.printParameters(calibrator)
  File "/home/user/ws/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_camera_calibration/CameraUtils.py", line 662, in printParameters
    me, se = getReprojectionErrorStatistics(rerrs)
  File "/home/user/ws/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_camera_calibration/CameraUtils.py", line 123, in getReprojectionErrorStatistics
    mean = np.mean(rerr_matrix, 0, dtype=np.float)
  File "/home/user/venv/lib/python3.8/site-packages/numpy/__init__.py", line 305, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations

This prevents me from successfully running the script. I can revert to an older numpy version than 1.20, but moving forward it sounds like this will be a bug if you ever jump to a newer version of numpy (at least newer than 1.20, from the looks of it).

Dead-Hand commented 1 year ago

Found an existing pull request #597 that would fix this if merged