Skip to content

Conversation

rsoussan
Copy link
Member

@rsoussan rsoussan commented Dec 13, 2021

Added depth_odometry package that computes ICP based and image feature based depth odometry. Also added point_cloud_common package with a point to plane ICP class that supports point to plane and symmetric point to plane (using normals for source and target points) in addition to a coarse to fine ICP approach. Point cloud common also has a class for registration with known correspondences that uses an optimization based approach with an optional point to plane or symmetric point to plane cost. This is used for image features since we don't need to recalculate correspondences as is done in ICP, while using the optimization approach with a robust cost helps limit the affect of outliers. Supporting scripts were added to plot depth odometry results and run depth odometry on a bagfile.

For localization integration, a new depth odometry factor adder was added that creates factors using either relative poses from depth odometry or using corresponding points. Relative poses are easier and faster to compute, while relative points factors are more robust to outliers. In practice, the most efficient depth odometry method for localization is image features and relative pose factors, so these are set in the config files.

Future work includes performing a more in depth parameter sweep for the depth odometry itself. Additionally, one issue in this pr is that the pcl_conversions.h file wasn't linking properly, so I temporarily copied it to the point cloud common package. I will try to resolve this before this pr is merged.

@rsoussan rsoussan marked this pull request as ready for review December 17, 2021 19:43
@rsoussan rsoussan changed the title Depth odometry image features with pcl fix Depth odometry Dec 17, 2021
@bcoltin
Copy link
Member

bcoltin commented Dec 17, 2021

@rsoussan will this need any new debians on the robot?

Copy link
Member

@bcoltin bcoltin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you update the readme files a bit, and I'm guessing the submodule changes are an accident. Otherwise looks good!

@rsoussan
Copy link
Member Author

rsoussan commented Dec 20, 2021

@rsoussan will this need any new debians on the robot?

Yes, several pcl libraries need to be installed (they've also been added to the packages_base_xx.lst files, let me know if there's an additional place to reference these):
libpcl-features1.7
libpcl-filters1.7
libpcl-kdtree1.7
libpcl-octree1.7
libpcl-sample-consensus1.7
libpcl-search1.7

@rsoussan rsoussan requested a review from bcoltin December 20, 2021 17:04
@bcoltin
Copy link
Member

bcoltin commented Dec 20, 2021

@rsoussan will this need any new debians on the robot?

Yes, several pcl libraries need to be installed (they've also been added to the packages_base_xx.lst files, let me know if there's an additional place to reference these): libpcl-features1.7 libpcl-filters1.7 libpcl-kdtree1.7 libpcl-octree1.7 libpcl-sample-consensus1.7 libpcl-search1.7

Great, we'll just need to talk with the facility about installing these with the new release.

@bcoltin
Copy link
Member

bcoltin commented Dec 20, 2021

@rsoussan did you fix this pcl_conversions.h problem you mentioned? Once you do that we can squash and merge.

@rsoussan
Copy link
Member Author

@rsoussan did you fix this pcl_conversions.h problem you mentioned? Once you do that we can squash and merge.

It's now fixed, the libpcl-conversions-dev will also need to be installed on the LLP/MLP.

@bcoltin
Copy link
Member

bcoltin commented Dec 24, 2021

@rsoussan Oops, looks like Oleg's pull request created some conflicts, can you fix these and then merge?

@rsoussan rsoussan merged commit 2ffae0b into nasa:develop Dec 29, 2021
luisa-mao pushed a commit to luisa-mao/astrobee-1 that referenced this pull request Jul 11, 2023
Added depth_odometry package that computes ICP and image feature based depth odometry as well as a point_cloud_common package with point to plane ICP and registration with known correspondences classes and a vision_common package with several feature tracking approaches. Also added a new depth odometry factor adder using either relative poses or corresponding points.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants