No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro kilted. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
Repository Summary
Description | 中南大学FYT战队RM哨兵机器人上位机算法 |
Checkout URI | https://github.com/baiyeweiguang/csu-rm-sentry.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-03-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
rm_bringup | 0.0.0 |
livox_ros_driver2 | 1.0.0 |
fast_lio | 0.0.0 |
icp_registration | 0.0.0 |
point_lio | 0.0.0 |
rm_navigation | 0.0.0 |
costmap_converter | 0.1.2 |
costmap_converter_msgs | 0.1.2 |
teb_local_planner | 0.9.1 |
teb_msgs | 0.0.1 |
imu_complementary_filter | 2.1.3 |
linefit_ground_segmentation | 0.0.1 |
linefit_ground_segmentation_ros | 0.0.1 |
pointcloud_to_laserscan | 2.0.1 |
rm_robot_description | 0.0.0 |
README
CSU-RM-Sentry
中南大学FYT机器人战队哨兵机器人上位机算法(定位与导航部分)。基于点云分割和Nav2导航框架,导航过程中上坡
深圳北理莫斯科大学北极熊战队的同学做了一个很出色的仿真环境,用到了本仓库的一些算法,比本仓库更完善: https://gitee.com/SMBU-POLARBEAR/pb_rmsimulation
作者: 邹承甫
找我交流: 3548054568(QQ)
我们不是强队,我也不是啥大佬,只是个代码搬运工,目前因为升学/就业的事比较忙,经常性忘记回复,见谅…
思路介绍
- 使用POINT-LIO/FAST_LIO2获得3D里程计
前者可以输出100+Hz的Odometry,对导航更友好,但相对的,CPU占用会更高
- 使用ICP进行重定位
由于一直开着ICP对性能要求较高,所以我们只在第一次启动或者手动设置/initialpose时进行点云配准。获得初始位姿后只依赖LIO进行定位,没有回环检测,在长时间运行后可能会出现累积误差
- 使用linefit_ground_segmentation对MID360的点云进行分割,分割为地面和障碍物
- 将障碍物的点云从PointCloud2压缩为LaserScan,输入Nav2
- 用Nav2进行导航
目前使用的是TEB算法作为局部规划器
地面分割效果图 | 导航功能像Nav2一样实现 |
---|---|
![]() |
![]() |
该项目高度参考了以下开源项目,感谢他们
- rm_vision: 陈君开源的rm_vision项目
- TUP-Sentry-Framwork: 沈阳航空航天大学哨兵导航框架
1. 框架
- rm_bringup (启动相机驱动,串口驱动,自瞄程序和robot_state_publisher,参考rm_vision项目)
- rm_interfaces (自定义msg和srv)
- rm_robot_description (机器人的urdf)
- rm_autoaim (自瞄算法,基于陈君rm_vision项目做了一点修改)
- rm_localization (定位算法)
-
rm_navigation (Nav2的launch和参数)
- src (Nav2的参数)
- third_party (TEB算法)
-
rm_perception (处理传感器数据的一些算法)
- imu_complementary_filter (IMU滤波,暂时不用了,节省资源)
- linefit_ground_segmentation (点云分割)
- pointcloud_to_laserscan (将PointCloud2转换为LaserScan)
-
rm_hardware_driver (传感器的驱动)
- rm_camera_driver (工业相机驱动)
- rm_serial_driver (和下位机进行通信的串口驱动程序,参考rmoss开源项目)
- livox_ros_driver2 (MID360驱动,本仓库进行了部分的修改)
src
│
├── rm_bringup
│
├── rm_interfaces
│
├── rm_robot_description
│
├── rm_autoaim
│
├── rm_localization
│ ├── fast_lio
│ ├── point_lio
│ └── icp_registration
│
├── rm_navigation
│ ├── src (Nav2)
│ └── third_party (TEB)
│
├── rm_perception
│ ├── imu_complementary_filter
│ ├── linefit_ground_segementation_ros2
│ └── pointcloud_to_laserscan
│
└── rm_hardware_driver
├── rm_camera_driver
├── rm_serial_driver
└── livox_ros_driver2
2. 安装
安装ros-humble-desktop-full,参考 ROS2官方文档
安装Livox-SDK2,参考 LIVOX-SDK2官方仓库
克隆仓库到本地
git clone https://github.com/CSU-FYT-Vision/CSU-RM-Sentry && cd CSU-RM-Sentry
安装依赖
File truncated at 100 lines see the full file
CONTRIBUTING
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.