small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

Repository Summary

Description A simple example: Implementing pointcloud alignment and localization using small_gicp
Checkout URI https://github.com/smbu-polarbear-robotics-team/small_gicp_relocalization.git
VCS Type git
VCS Version main
Last Updated 2025-03-30
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
small_gicp_relocalization 1.0.4

README

small_gicp_relocalization

License Build

A simple example: Implementing point cloud alignment and localization using small_gicp

Given a registered pointcloud (based on the odom frame) and prior pointcloud (mapped using pointlio or similar tools), the node will calculate the transformation between the two point clouds and publish the correction from the map frame to the odom frame.

Dependencies

  • ROS2 Humble
  • small_gicp
  • pcl
  • OpenMP

Build

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

git clone https://github.com/LihanChen2004/small_gicp_relocalization.git

cd ..

  1. Install dependencies
    rosdepc install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
    
  1. Build
    colcon build --symlink-install -DCMAKE_BUILD_TYPE=release
    

Usage

  1. Set prior pointcloud file in launch file

  2. Adjust the transformation between base_frame and lidar_frame

    The global_pcd_map output by algorithms such as pointlio and fastlio is strictly based on the lidar_odom frame. However, the initial position of the robot is typically defined by the base_link frame within the odom coordinate system. To address this discrepancy, the code listens for the coordinate transformation from base_frame(velocity_reference_frame) to lidar_frame, allowing the global_pcd_map to be converted into the odom coordinate system.

    If not set, empty transformation will be used.

  3. Run

    ros2 launch small_gicp_relocalization small_gicp_relocalization_launch.py
    

CONTRIBUTING

Contributing Guidelines

Thank you for your interest in contributing to small_gicp_relocalization. Whether it’s a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution.

Reporting Bugs/Feature Requests

We welcome you to use the GitHub issue tracker to report bugs or suggest features.

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn’t already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

  • A reproducible test case or series of steps
  • The version of our code being used
  • Any modifications you’ve made relevant to the bug
  • Anything unusual about your environment or deployment

Contributing via Pull Requests

To send us a pull request, please:

  1. Fork the repository.
  2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
  3. Ensure local tests pass. (colcon test and pre-commit run (requires you to install pre-commit by pip3 install pre-commit)
  4. Commit to your fork using clear commit messages.
  5. Send a pull request, answering any default questions in the pull request interface.
  6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.

GitHub provides additional documentation on forking a repository and creating a pull request.

Finding contributions to work on

Looking at the existing issues is a great way to find something to contribute on. As this project, by default, uses the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ‘help wanted’ issues is a great place to start.

Licensing

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository

small_gicp_relocalization repository