一.环境配置
1.克隆仓库(安装ROS2 humble)
git clone --recursive https://gitee.com/SMBU-POLARBEAR/pb_rmsimulation --depth=1
2.安装Livox SDK2
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make install
3.安装依赖
cd pb_rm_simulation
rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
4.编译
colcon build --symlink-install
二.运行
在进行下面的代码之前要先设置环境变量
source /opt/ros/humble/setup.bash
source ~/pb_rm_simulation/install/setup.bash #pb_rm_simulation这里要根据你自己的文件名进行更换
2.1.仿真模式
边建图边导航
ros2 launch rm_nav_bringup bringup_sim.launch.py \
world:=RMUL \
mode:=mapping \
lio:=fastlio \
lio_rviz:=False \
nav_rviz:=True
已知全局地图导航
ros2 launch rm_nav_bringup bringup_sim.launch.py \
world:=RMUL \
mode:=nav \
lio:=fastlio \
localization:=slam_toolbox \
lio_rviz:=False \
nav_rviz:=True
2.2.真实模式
Tips:
- 保存点云 pcd 文件:需先在 fastlio_mid360.yaml 中 将
pcd_save_en
改为true
,并设置 .pcd 文件的路径,运行时新开终端输入命令ros2 service call /map_save std_srvs/srv/Trigger
,即可保存点云文件。 - 保存地图:请参考 如何保存 .pgm 和 .posegraph 地图?。地图名需要与
YOUR_WORLD_NAME
保持一致。
边建图边导航
ros2 launch rm_nav_bringup bringup_real.launch.py \
world:=YOUR_WORLD_NAME \
mode:=mapping \
lio:=fastlio \
lio_rviz:=False \
nav_rviz:=True
已知全局地图导航
ros2 launch rm_nav_bringup bringup_real.launch.py \
world:=YOUR_WORLD_NAME \
mode:=nav \
lio:=fastlio \
localization:=slam_toolbox \
lio_rviz:=False \
nav_rviz:=True
Tips: 栅格地图文件和 pcd 文件需具为相同名称,分别存放在 src/rm_nav_bringup/map
和 src/rm_nav_bringup/PCD
中,启动导航时 world 指定为文件名前缀即可。
2.3.小工具-键盘控制
ros2 run teleop_twist_keyboard teleop_twist_keyboard
三. 实车适配关键参数
-
雷达 ip
本导航包已内置 livox_ros_driver2,可直接修改 MID360_config.json -
lidar_configs
-ip
-
测量机器人底盘正中心到雷达的相对坐标
x, y 距离比较重要,将影响云台旋转时解算到 base_link 的坐标准确性
填入 measurement_params_real.yaml
若雷达倾斜放置,无需在此处填入 rpy,而是将点云旋转角度填入 MID360_config.json -
extrinsic_parameter
-
测量雷达与地面的垂直距离
此参数影响点云分割效果
填入 segmentation_real.yaml -
sensor_height
-
nav2_params
参数很多,比较重要的是 robot_radius 和 速度相关参数。详见 nav2官方文档