-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calibration fixes: Supporting OpenCV prior to and after breaking changes in 4.7 #138
Calibration fixes: Supporting OpenCV prior to and after breaking changes in 4.7 #138
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @glvov-bdai and the rest of your teammates on Graphite |
Pull Request Test Coverage Report for Build 10703859405Details
💛 - Coveralls |
Pull Request Test Coverage Report for Build 10774998334Details
💛 - Coveralls |
… Z t offset; matches what's expected
@@ -7,9 +7,11 @@ bosdyn-mission==4.0.2 | |||
grpcio==1.59.3 | |||
image==1.5.33 | |||
inflection==0.5.1 | |||
opencv-python>=4.5.4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a way to not add this here? When you depend on opencv via rosdep in ros 1 or ros 2, it is pulled in via apt. We have had problems in the past with conflicting versions of opencv between apt and pip.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jbarry-bdai @khughes-bdai @tcappellari-bdai Thoughts? It should be a dependency for this to be a stand alone package, but then spot_ros2
needs to uninstall it similar to what we do elsewhere which isn't great.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@amessing-bdai I would maybe suggest just splitting up the requirements.txt between spot_ros2
and spot_wrapper
if possible, and then using that to manage dependencies for both independently. Not sure if there's a good reason to share a requirements.txt (other than potentially maintainability) that I am not aware of/not thinking of
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ya i like gary's suggestion of splitting them up (assuming that wouldn't break everything lol)
Merge activity
|
In OpenCV 4.7.0, charuco was moved from the contrib part of opencv to the core part of opencv (https://github.com/opencv/opencv/pull/22986/files#diff-09508dfcb283f5b8f2e58538584a58ce28d369f8c7e23705f004f7d15e6f40e9). Previously, the code assumed an OpenCV version prior to 4.7.0.
This adds an explicit check for the opencv version prior to prior to many charuco operations, so that the correct charuco method can be called for opencv>=4.7 despite the breaking change in 4.7
More information about OpenCV changes:
opencv/opencv#26126
This also adds an explicit dependency on opencv. Previously, this dependency was likely implicitly included if you use the spot_ros2 package (due to dependency on things like cv bridge), but this not cover the use case of using spot_wrapper completely independently of ROS2.
It is better to check OpenCV version, and adjust behavior accordingly, then just depending on opencv-contrib-python, as
depending on contrib can break existing versions of OpenCV on your system when the requirements.txt is installed
Testing:
Tested on physical robot. For code changes with OpenCV, verified the results in prior to 4.7 and after:
opencv/opencv#26126