同步操作将从 深圳北理莫斯科大学RoboMaster北极熊战队/PB_RMSimulation 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
深圳北理莫斯科大学 北极熊战队 哨兵导航仿真包
本项目使用麦克纳姆轮仿真小车,附加 Livox Mid360 雷达与 IMU,在 RMUC/RMUL 地图进行导航算法仿真。
Mid360 点云仿真:参考了 livox_laser_simulation、 livox_laser_simulation_RO2、 Issue15: CustomMsg
导航算法框架:基于 中南大学 FYT 战队 RM 哨兵上位机算法 略微修改以适配仿真。
非常非常感谢以上开源项目的帮助!!!
Gazebo 仿真 | Fast_LIO + Navigation2 |
---|---|
Mid360点云仿真 + FAST_LIO 里程计 + 障碍物/地面点云分割 + 三维点云转二维 + Navigation2 |
---|
Topic name | Type | Note |
---|---|---|
/livox/lidar | livox_ros_driver2/msg/CustomMsg | Mid360 自定义消息类型 |
/livox/lidar/pointcloud | sensor_msgs/msg/PointCloud2 | ROS2 点云消息类型 |
/livox/imu | sensor_msgs/msg/Imu | Gazebo 插件仿真 IMU |
/cmd_vel | geometry_msgs/msg/Twist | 麦克纳姆轮小车运动控制接口 |
/odom | nav_msgs/msg/Odometry | FAST_LIO 输出的里程计 |
当前开发环境为 Ubuntu22.04, ROS2 humble, Gazebo 11.10.0
安装依赖
sudo apt install -y ros-humble-gazebo-*
sudo apt install -y ros-humble-xacro
sudo apt install -y ros-humble-robot-state-publisher
sudo apt install -y ros-humble-joint-state-publisher
sudo apt install -y ros-humble-rviz2
sudo apt install -y ros-humble-nav2*
sudo apt install -y ros-humble-slam-toolbox
sudo apt install -y ros-humble-pcl-ros
sudo apt install -y ros-humble-pcl-conversions
sudo apt install -y ros-humble-libpointmatcher
sudo apt install -y ros-humble-tf2-geometry-msgs
sudo apt install -y libboost-all-dev
sudo apt install -y libgoogle-glog-dev
后续编译与运行过程中如果有依赖功能包未安装,按类似的方法安装。
安装 Livox SDK2
sudo apt install cmake
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make install
git clone --recursive https://gitee.com/SMBU-POLARBEAR/pb_rmsimulation
cd pb_rmsimulation
./build.sh
world
:
(仿真模式)
RMUL
- Robomaster 1V1 场地(带动态障碍物)
RMUC
- 2024 Robomaster 7V7 场地
(真实环境)
.pcd(ICP使用的点云图)
文件和 .yaml(Nav使用的栅格地图)
的名称,mode
:
mapping
- 边建图边导航nav
- 已知全局地图导航localization
(仅 mode:=nav
时本参数有效)
amcl
- 使用 AMCL 算法定位(经典算法)slam_toolbox
- 使用 slam_toolbox localization 模式定位(动态场景中性能更好)icp
- 使用 ICP_Localization 算法定位(性能开销较多)Tips:
rviz
:
True
- 可视化 robot_descrition, FAST_LIOFalse
- 仅提供 nav2 可视化窗口边建图边导航
ros2 launch rm_bringup bringup_sim.launch.py \
world:=RMUL \
mode:=mapping
已知全局地图导航
ros2 launch rm_bringup bringup_sim.launch.py \
world:=RMUL \
mode:=nav \
localization:=slam_toolbox
边建图边导航
ros2 launch rm_bringup bringup_real.launch.py \
world:=YOUR_WORLD_NAME \
mode:=mapping
Tips:
pcd_save_en
改为 true
,并设置 .pcd 文件的名称YOUR_MAP_NAME
更改为与 .pcd 文件相同的名称。保存后在当前工作空间新开终端,运行 ./save_grid_map.sh
即可已知全局地图导航
ros2 launch rm_bringup bringup_real.launch.py \
world:=YOUR_WORLD_NAME \
mode:=nav \
localization:=slam_toolbox
Tips: 栅格地图文件和 pcd 文件需具为相同名称,分别存放在 src/rm_bringup/map
和 src/rm_bringup/PCD
中,启动导航时 world 指定为文件名前缀即可。
source install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
将湖工大地图模型文件修改为动态路径(2023.9.30 完成)
多线雷达(2023.10.8 完成)
适配为 ROS2 Humble 版本 (2023.10.13 完成)
完成 nav 的适配 (忘记记录时间了)
优雅的选择地图,并根据不同地图适配小车出生点(2023.11.25完成)
决策树
优化 livox_laser_simulation 性能问题
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。