1 Star 0 Fork 0

Morcool/nqy-git

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

CSU-RM-Sentry

中南大学FYT机器人战队哨兵机器人上位机算法(定位与导航部分)。基于点云分割和Nav2导航框架,导航过程中上坡

文件的命名参考了rm_vision项目

作者: 邹承甫

找我交流: 3548054568(QQ)

思路介绍

  • 使用fast-lio获得3D里程计
  • 使用icp-localization进行重定位
  • 使用linefit_ground_segmentation对MID360的点云进行分割,分割为地面和障碍物
  • 将障碍物的点云从PointCloud2压缩为LaserScan,输入Nav2
  • 用Nav2进行导航
地面分割效果图 导航功能像Nav2一样实现

该项目高度参考了以下开源项目,感谢他们

1. 框架

  • rm_bringup (启动相机驱动,串口驱动,自瞄程序和robot_state_publisher,参考rm_vision项目)
  • rm_interfaces (自定义msg和srv)
  • rm_robot_description (机器人的urdf)
  • rm_autoaim (自瞄算法,基于陈君rm_vision项目做了一点修改)
  • rm_camera_driver (工业相机驱动)
  • rm_serial_driver (和下位机进行通信的串口驱动程序,参考rmoss开源项目)
  • rm_localization (定位算法)
  • rm_navigation (Nav2的launch和参数)
  • rm_perception (处理传感器数据的一些算法)
  • rm_sensors (传感器的驱动)
src
|
├── rm_bringup                
|
├── rm_interfaces
|
├── rm_robot_description           
|
├── rm_autoaim                
|
├── rm_camera_driver          
|
├── rm_serial_driver          
|
├── rm_localization           
│   ├── fast_lio              
│   └── icp_localization_ros2 
|
├── rm_navigation
|
├── rm_perception
│   ├── imu_complementary_filter
│   ├── linefit_ground_segementation_ros2
│   └── pointcloud_to_laserscan
|
└── rm_sensors
    ├── livox_ros_driver2
    └── rplidar_ros(optional)

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

安装依赖

sudo apt-get install -y  libpcl-ros-dev
rosdep install --from-paths src --ignore-src -r -y

编译

colcon build --symlink-install

运行

运行前请按照实际机器人情况,修改rm_robot_description/urdf/rm_robot.urdf中的坐标系定义

# 建图
./mapping.sh
# 导航
./nav.sh
  • 如何移植到自己的机器人上?

      1. 修改rm_robot.urdf中的坐标系定义
      1. 修改rm_sensors/livox_ros_driver2中的mid360外参
      1. 根据实际情况修改rm_localization/linefit_ground_segmentation_ros/launch/segmentation_params.yaml中的sensor_height参数
      1. 根据实际情况修改rm_perception/pointcloud_to_laserscan/launch/pointcloud_to_laserscan_launch.py中min_height和max_height参数
      1. 根据需求修改nav2的参数
      1. 你可能还要调一调FAST_LIO的参数和linefit_ground_segmentation的参数以达到最好效果
  • 如何配合rm_vision?

    • 将rv中的robot_gimbal_description去掉,将rm_serial_driver中发布的odom->gimbal_link的变换改为base_link->gimbal_link的变换

3. 依赖

  • 系统
    • Ubuntu 22.04
    • ROS Humble (desktop-full)
    • LIVOX-SDK2
    • libpcl-ros-dev
    • eigen、pcl、opoencv、ceres等

4. 硬件

  • Mini PC
    • cpu: AMD Ryzen R7 7735HS
    • ram: 16GB DDR5
  • 传感器
    • Livox MID-360
    • 大恒水星工业相机
    • rplidar A2M7 (只是辅助)

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/morcool/nqy-git.git
git@gitee.com:morcool/nqy-git.git
morcool
nqy-git
nqy-git
master

搜索帮助