-
Notifications
You must be signed in to change notification settings - Fork 203
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
Port point cloud transformation to numpy #507
Conversation
CI is failing here because it couldn't resolve the |
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.
This looks like a great contribution. I don't know about adding numpy as a dependency, specially since upstream efforts for PyKDL are underway, but the maintainers can decide on that. I've left some suggestions inline.
Also, it looks like your commits aren't signed-off. Do you mind signing them off?
https://docs.ros.org/en/rolling/Contributing/Developer-Guide.html#change-control-process
Also, is the DCO bot not configured on this repo for some reason? @clalancette |
Done |
There seems to be an issue with
And the CI fails with a similar one. |
fdece22
to
adac985
Compare
Sorry I needed to force push the new commit with signature. |
e36337a
to
14b378d
Compare
All tests are passing. But I would want to wait for the serialization pull request, which would open some possibilities for improvements in this pr. Any further suggestions regarding this implementation? |
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.
The PR looks good mostly. I've left some small comments in-line.
It might make sense to import the API in the scope of tf2_sensor_msgs/__init__.py
with:
from .tf2_sensor_msgs import do_transform_cloud, transform_points # noqa
@ros-pull-request-builder retest this please |
CI: |
@Flova looks like there are some linter errors in CI: can you address that? |
Also, it looks like some of the numpy changes from ros2/common_interfaces#175 caused regressions on RHEL: https://ci.ros2.org/view/nightly/job/nightly_linux-rhel_release/1091/ . I would suggest holding off on this PR until we figure out what is going on there and how to mitigate it (as we may need to do the same thing here). |
Related to ros2/common_interfaces#185, the |
Not only for RHEL. Afaik Ubuntu has a recent version that doesn't support it too. So i will remove the npt typing. |
All TODOs should be resolved now. I added
The rolling CI also passes, so we should be fine to rerun the tests for all architectures. @aprotyas |
Friendly ping @aprotyas :) |
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.
Apparently this was left as a pending review and I just never submitted - thank you for the ping @Flova.
This PR looks good. I've left a bunch of nits inline, but feel free to ignore them if they don't make sense.
Consider what constitutes the public API of tf2_sensor_msgs
though, i.e. my comments in the __init__.py
file.
@aprotyas everything should be resolved now |
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.
Thanks for iterating @Flova. I've left a couple of stray, minor nits that you can consider, but I'll approve regardless.
@Flova can you rebase your branch on the upstream HEAD? I can run CI for you once that's done. |
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Signed-off-by: Florian Vahl <[email protected]>
Signed-off-by: Florian Vahl <[email protected]>
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Signed-off-by: Florian Vahl <[email protected]>
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Co-authored-by: Abrar Rahman Protyasha <[email protected]>
Signed-off-by: Florian Vahl <[email protected]>
Thanks for rebasing @Flova. Running CI now. Repos file: https://gist.githubusercontent.com/aprotyas/25ed5c597ccf7fd55a64975b4a5c0abe/raw/0eb6fb2688926456e2944b39c07492898e9a8078/ros2.repos |
@Flova looks like there are some flake8 linter warnings, can you address them please? For the set comprehension warning, going from |
Signed-off-by: Florian Vahl <[email protected]>
@aprotyas I fixed the flake8 errors. Do you know why they only occur in this CI and not in the Jammy Build that is done automatically or my local installation? |
@Flova it looks like the CI job installs these flake8 extensions which aren't present in the PR job. Same could apply for your local environment?
Re-running CI after 2cdf774. |
@clalancette feature PRs can now be merged into Rolling again right? If so, this PR is ready to go. |
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.
One more small thing to fix, then I think this is good.
Signed-off-by: Florian Vahl <[email protected]>
The fix is applied. @clalancette |
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.
LGTM. Running CI again:
Repos file: https://gist.githubusercontent.com/aprotyas/25ed5c597ccf7fd55a64975b4a5c0abe/raw/0eb6fb2688926456e2944b39c07492898e9a8078/ros2.repos
Build args: --packages-above-and-dependencies tf2_sensor_msgs
Test args: --packages-above tf2_sensor_msgs
Job: https://ci.ros2.org/job/ci_launcher/10208/
Green CI + two approvals, so I'll merge this. Thanks for your contribution @Flova! |
👨🌾 Looks like this PR introduced a build regression in the cyclonedds jobs of the buildfarm, see: Rci__nightly-cyclonedds_ubuntu_jammy_amd64#57
Can you take a look @Flova ? |
Mmm I think it only requires adding |
Just saw it, thanks! @aprotyas |
Implements the point cloud transformation in NumPy. This speeds up the transformation operation by 20000% for large point clouds (excluding the serialization and deserialization). The code needs some further testing but should work as it is. I also try to improve the performance of the serialization and deserialization as seen in ros2/common_interfaces#175.
This adds NumPy as a dependency and drops the dependency on PyKDL which should solve #471.
The API is also improved by adding proper interface descriptions.
Cheers