Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2

Repository Summary

Description Shenzhen MSU-BIT University PolarBear Team's Sentry Navigation Sim2Real Package for RoboMaster2025. QQ group: 932119307
Checkout URI https://github.com/smbu-polarbear-robotics-team/pb2025_sentry_nav.git
VCS Type git
VCS Version main
Last Updated 2025-07-21
Dev Status UNKNOWN
Released UNRELEASED
Tags robotics ugv ros2 robomaster livox-lidar navigation2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

pb2025_sentry_nav

License Build and Test pre-commit

深圳北理莫斯科大学 北极熊战队 2025 赛季哨兵导航仿真/实车包

PolarBear Logo

BiliBili: 谁说在家不能调车!?更适合新手宝宝的 RM 导航仿真

https://github.com/user-attachments/assets/d9e778e0-fa43-40c2-96c2-e71eaf7737d4

https://github.com/user-attachments/assets/ae4c19a0-4c73-46a0-95bd-909734da2a42

1. Overview

本项目基于 NAV2 导航框架 并参考学习了 autonomous_exploration_development_environment 的设计。

  • 关于坐标变换:

    本项目大幅优化了坐标变换逻辑,考虑雷达原点 lidar_odom 与 底盘原点 odom 之间的隐式变换。

    mid360 倾斜侧放在底盘上,使用 point_lio 里程计,small_gicp 重定位,loam_interface 会将 point_lio 输出的 /cloud_registeredlidar_odom 系转换到 odom 系,sensor_scan_generationodom 系的点云转换到 front_mid360 系,并发布变换 odom -> chassis

    frames_2025_03_26

  • 关于路径规划:

    使用 NAV2 默认的 Global Planner 作为全局路径规划器,pb_omni_pid_pursuit_controller 作为路径跟踪器。

  • namespace:

    为了后续拓展多机器人,本项目引入 namespace 的设计,与 ROS 相关的 node, topic, action 等都加入了 namespace 前缀。如需查看 tf tree,请使用命令 ros2 run rqt_tf_tree rqt_tf_tree --ros-args -r /tf:=tf -r /tf_static:=tf_static -r __ns:=/red_standard_robot1

  • LiDAR:

    Livox mid360 倾斜侧放在底盘上。

    注:仿真环境中,实际上 point pattern 为 velodyne 样式的机械式扫描。此外,由于仿真器中输出的 PointCloud 缺少部分 field,导致 point_lio 无法正常估计状态,故仿真器输出的点云经过 ign_sim_pointcloud_tool 处理添加 time field。

  • 文件结构

    .
    ├── fake_vel_transform                  # 虚拟速度参考坐标系,以应对云台扫描模式自旋,详见子仓库 README
    ├── ign_sim_pointcloud_tool             # 仿真器点云处理工具
    ├── livox_ros_driver2                   # Livox 驱动
    ├── loam_interface                      # point_lio 等里程计算法接口
    ├── pb_teleop_twist_joy                 # 手柄控制
    ├── pb2025_nav_bringup                  # 启动文件
    ├── pb2025_sentry_nav                   # 本仓库功能包描述文件
    ├── pb_omni_pid_pursuit_controller      # 路径跟踪控制器
    ├── point_lio                           # 里程计
    ├── pointcloud_to_laserscan             # 将 terrain_map 转换为 laserScan 类型以表示障碍物(仅 SLAM 模式启动)
    ├── sensor_scan_generation              # 点云相关坐标变换
    ├── small_gicp_relocalization           # 重定位
    ├── terrain_analysis                    # 距车体 4m 范围内地形分析,将障碍物离地高度写入 PointCloud intensity
    └── terrain_analysis_ext                # 车体 4m 范围外地形分析,将障碍物离地高度写入 PointCloud intensity
    

2. Quick Start

2.1 Option 1: Docker

2.1.1 Setup Environment

  • Docker

  • 允许 Docker Container 访问宿主机 X11 显示

    xhost +local:docker
    

2.1.2 Create Container

docker run -it --rm --name pb2025_sentry_nav \
  --network host \
  -e "DISPLAY=$DISPLAY" \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /dev:/dev \
  ghcr.io/smbu-polarbear-robotics-team/pb2025_sentry_nav:1.3.1

2.2 Option 2: Build From Source

2.2.1 Setup Environment

```bash sudo apt install -y libeigen3-dev libomp-dev

git clone https://github.com/koide3/small_gicp.git

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing Guidelines

Thank you for your interest in contributing to pb2025_sentry_nav. 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.
# Contributing Guidelines Thank you for your interest in contributing to `pb2025_sentry_nav`. 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][issues], or [recently closed][closed-issues], 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](https://help.github.com/articles/fork-a-repo/) and [creating a pull request](https://help.github.com/articles/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'][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](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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. ~~~ [issues]: https://github.com/SMBU-PolarBear-Robotics-Team/pb2025_sentry_nav/issues [closed-issues]: https://github.com/SMBU-PolarBear-Robotics-Team/pb2025_sentry_nav/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20 [help-wanted]: https://github.com/SMBU-PolarBear-Robotics-Team/pb2025_sentry_nav/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2
Repo symbol

pb2025_sentry_nav repository

robotics ugv ros2 robomaster livox-lidar navigation2