代码拉取完成,页面将自动刷新
深圳北理莫斯科大学 北极熊战队 哨兵导航仿真包
本项目使用麦克纳姆轮仿真小车,附加 Livox Mid360 雷达与 IMU,在 RMUC/RMUL 地图进行导航算法仿真。
功能演示视频:寒假在家,怎么调车!?更适合新手宝宝的 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 | 麦克纳姆轮小车运动控制接口 |
当前开发环境为 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 --depth=1
cd pb_rmsimulation
./build.sh
world
:
(仿真模式)
RMUL
- 2024 Robomaster 3V3 场地
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 指定为文件名前缀即可。
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Mid360 点云仿真:参考了 livox_laser_simulation、 livox_laser_simulation_RO2、 Issue15: CustomMsg
导航算法框架:基于 中南大学 FYT 战队 RM 哨兵上位机算法 略微修改以适配仿真。
非常非常感谢以上开源项目 / Issue 的帮助!!!
详见 Issue
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型