-
Notifications
You must be signed in to change notification settings - Fork 353
Depth odometry #361
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
Depth odometry #361
Conversation
@rsoussan will this need any new debians on the robot? |
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.
Can you update the readme files a bit, and I'm guessing the submodule changes are an accident. Otherwise looks good!
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): |
Great, we'll just need to talk with the facility about installing these with the new release. |
@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. |
@rsoussan Oops, looks like Oleg's pull request created some conflicts, can you fix these and then merge? |
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.
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.