Skip to content

Add Doppler ICP Registration Documentation#7425

Open
heethesh wants to merge 2 commits intoisl-org:mainfrom
heethesh:heethesh/doppler-icp-docs
Open

Add Doppler ICP Registration Documentation#7425
heethesh wants to merge 2 commits intoisl-org:mainfrom
heethesh:heethesh/doppler-icp-docs

Conversation

@heethesh
Copy link
Contributor

@heethesh heethesh commented Feb 1, 2026

Type

  • Bug fix (non-breaking change which fixes an issue): Fixes #
  • New feature (non-breaking change which adds functionality). Resolves #
  • Breaking change (fix or feature that would cause existing functionality to not work as expected) Resolves #

Motivation and Context

Checklist:

  • I have run python util/check_style.py --apply to apply Open3D code style
    to my code.
  • This PR changes Open3D behavior or adds new functionality.
    • Both C++ (Doxygen) and Python (Sphinx / Google style) documentation is
      updated accordingly.
    • I have added or updated C++ and / or Python unit tests OR included test
      results
      (e.g. screenshots or numbers) here.
  • I will follow up and update the code if CI fails.
  • For fork PRs, I have selected Allow edits from maintainers.

Description

  • Adds documentation for Doppler ICP registration to the tutorial notebook, including algorithm explanation, parameter details, and example code comparing Doppler ICP with point-to-plane ICP.
  • Updated reference.rst with Hexsel2022 citation.
  • Fixed typo: goemetric_kernel to geometric_kernel in Python binding, example script, and notebook.

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@heethesh
Copy link
Contributor Author

heethesh commented Feb 1, 2026

@ssheorey this PR is ready for a review

@ssheorey ssheorey requested a review from Copilot February 23, 2026 17:29
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive documentation for the Doppler ICP registration algorithm and fixes a typo in the parameter name goemetric_kernel to geometric_kernel.

Changes:

  • Added Doppler ICP tutorial documentation with algorithm explanation, mathematical formulation, parameter descriptions, and example code comparing Doppler ICP with point-to-plane ICP
  • Added Hexsel2022 reference citation for the Doppler ICP algorithm
  • Fixed typo: goemetric_kernelgeometric_kernel in Python binding, example script, and tutorial notebook

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

File Description
examples/python/pipelines/doppler_icp_registration.py Fixed typo in parameter name from goemetric_kernel to geometric_kernel
docs/tutorial/reference.rst Added Hexsel2022 citation for Doppler ICP algorithm
docs/jupyter/t_pipelines/t_icp_registration.ipynb Added comprehensive Doppler ICP documentation including algorithm explanation, requirements, parameter descriptions, and example code comparing with point-to-plane ICP; also removed trailing whitespace
cpp/pybind/t/pipelines/registration/registration.cpp Fixed typo in Python binding parameter name from goemetric_kernel to geometric_kernel

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"\n",
"- **`period`** (double, default: 0.1): Time period in seconds between the source and target point clouds. This is used to compute the velocity implied by the transformation. For sequential scans, multiply the base period by the frame difference (e.g., `period * (target_idx - source_idx)`).\n",
"\n",
"- **`lambda_doppler`** (double, default: 0.01): Weight parameter `λ ∈ [0, 1]` that balances the geometric and Doppler terms in the objective function `(1-λ)E_G + λE_D`. A smaller value (e.g., 0.01) emphasizes geometric constraints, while a larger value increases the influence of Doppler measurements. Emprirically 0.01 is a good default value.\n",
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

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

Corrected spelling of 'Emprirically' to 'Empirically'.

Suggested change
"- **`lambda_doppler`** (double, default: 0.01): Weight parameter `λ ∈ [0, 1]` that balances the geometric and Doppler terms in the objective function `(1-λ)E_G + λE_D`. A smaller value (e.g., 0.01) emphasizes geometric constraints, while a larger value increases the influence of Doppler measurements. Emprirically 0.01 is a good default value.\n",
"- **`lambda_doppler`** (double, default: 0.01): Weight parameter `λ ∈ [0, 1]` that balances the geometric and Doppler terms in the objective function `(1-λ)E_G + λE_D`. A smaller value (e.g., 0.01) emphasizes geometric constraints, while a larger value increases the influence of Doppler measurements. Empirically 0.01 is a good default value.\n",

Copilot uses AI. Check for mistakes.
"\n",
"- **Source point cloud** with:\n",
" - `dopplers` attribute: Measured Doppler or radial velocities for each point.\n",
" - `directions` attribute: Unit direction vectors from sensor to each point (normalized point positions). The direction vectors must correspond the raw range measurements (without any motion compensation or undistortion applied).\n",
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

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

Missing 'to' between 'correspond' and 'the'. Should be 'must correspond to the raw range measurements'.

Suggested change
" - `directions` attribute: Unit direction vectors from sensor to each point (normalized point positions). The direction vectors must correspond the raw range measurements (without any motion compensation or undistortion applied).\n",
" - `directions` attribute: Unit direction vectors from sensor to each point (normalized point positions). The direction vectors must correspond to the raw range measurements (without any motion compensation or undistortion applied).\n",

Copilot uses AI. Check for mistakes.
@ssheorey
Copy link
Member

Hi @heethesh can you check the generated documentation in CI? The t_icp_registration.[ipynb|html] files are missing the new Doppler ICP docs that you added. Check your updated notebook for errors / issues.

Checks tab near the top -> Documentation (on left) -> Summary -> Artifacts (right) -> download.

@ssheorey ssheorey added the status / needs info Waiting for information from reporter / author label Feb 24, 2026
@ssheorey ssheorey added this to the v0.20 milestone Mar 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status / needs info Waiting for information from reporter / author

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants