Ranger Mini V3 底盘运动性能测试与录包步骤
2026/7/21 21:57:43 网站建设 项目流程
  1. 测试目标
    本测试仅负责采集 Ranger Mini V3 的底盘运动数据。所有 rosbag 录制完成后,再统一进行数据处理、轨迹对齐和误差统计。

完整测试共分为以下八个部分:

静止误差测试;
正向与反向直线运动测试;
正向与反向圆周运动测试;
正向与反向启停响应测试;
正向与反向转向切换及回正测试;
分段发布的角速度增量阶梯响应测试;
单节点连续变速与不规则曲线响应测试;
主动制动、连续转向切换与连续角速度阶梯测试。
2. 重要操作原则
每一次测试对应一个独立 bag,不把多个工况录入同一个 bag。
每一个测试小节中,终端 1 的录包指令只对应紧随其后的终端 2 速度指令。
每次录包开始后先静止 5 秒,再发布运动指令。
运动结束后必须持续发布零速度,保留完整停车过程。
零速度发布结束、车辆确认停止后,再在录包终端按 Ctrl+C。
每次动态测试都尽量从相同起点和相同初始朝向开始。
测试过程中不得同时运行导航、LQR、MPPI、键盘遥控或其他 /cmd_vel 发布节点。
3. 终端分工
终端 作用
终端 1 执行当前测试对应的 ros2 bag record 指令
终端 2 执行当前测试对应的 /cmd_vel 指令
终端 3 保留紧急停车指令
4. 测试目录建立
全部测试数据统一保存在 ~/ranger_motion_test/ 下。以下命令一次性建立八个测试部分所需的全部目录。

4.1 创建测试目录
mkdir -p ~/ranger_motion_test/01_static_error
mkdir -p ~/ranger_motion_test/02_straight/forward
mkdir -p ~/ranger_motion_test/02_straight/reverse
mkdir -p ~/ranger_motion_test/03_circle/forward
mkdir -p ~/ranger_motion_test/03_circle/reverse
mkdir -p ~/ranger_motion_test/04_start_stop/forward
mkdir -p ~/ranger_motion_test/04_start_stop/reverse
mkdir -p ~/ranger_motion_test/05_steering_switch/forward
mkdir -p ~/ranger_motion_test/05_steering_switch/reverse
mkdir -p ~/ranger_motion_test/06_angular_step/G01_DW001/forward
mkdir -p ~/ranger_motion_test/06_angular_step/G01_DW001/reverse
mkdir -p ~/ranger_motion_test/06_angular_step/G02_DW002/forward
mkdir -p ~/ranger_motion_test/06_angular_step/G02_DW002/reverse
mkdir -p ~/ranger_motion_test/06_angular_step/G05_DW005/forward
mkdir -p ~/ranger_motion_test/06_angular_step/G05_DW005/reverse
mkdir -p ~/ranger_motion_test/06_angular_step/G10_DW010/forward
mkdir -p ~/ranger_motion_test/06_angular_step/G10_DW010/reverse
mkdir -p ~/ranger_motion_test/06_angular_step/G20_DW020/forward
mkdir -p ~/ranger_motion_test/06_angular_step/G20_DW020/reverse
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_A_straight_ramp/forward
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_A_straight_ramp/reverse
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_B_constant_radius/forward
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_B_constant_radius/reverse
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_C_irregular_curve/forward
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_C_irregular_curve/reverse
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_D_fast_switch/forward
mkdir -p ~/ranger_motion_test/07_continuous_variable/profile_D_fast_switch/reverse
mkdir -p ~/ranger_motion_test/08_completion/active_zero_brake/forward
mkdir -p ~/ranger_motion_test/08_completion/active_zero_brake/reverse
mkdir -p ~/ranger_motion_test/08_completion/continuous_steer_switch/forward
mkdir -p ~/ranger_motion_test/08_completion/continuous_steer_switch/reverse
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G01_DW001/forward
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G01_DW001/reverse
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G02_DW002/forward
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G02_DW002/reverse
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G05_DW005/forward
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G05_DW005/reverse
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G10_DW010/forward
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G10_DW010/reverse
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G20_DW020/forward
mkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G20_DW020/reverse
4.2 检查目录
find ~/ranger_motion_test -type d | sort
find ~/ranger_motion_test/06_angular_step -type d | sort
find ~/ranger_motion_test/07_continuous_variable -type d | sort
find ~/ranger_motion_test/08_completion -type d | sort
4.3 目录结构
~/ranger_motion_test/
├── 01_static_error/
├── 02_straight/
│ ├── forward/
│ └── reverse/
├── 03_circle/
│ ├── forward/
│ └── reverse/
├── 04_start_stop/
│ ├── forward/
│ └── reverse/
├── 05_steering_switch/
│ ├── forward/
│ └── reverse/
├── 06_angular_step/
│ ├── G01_DW001/
│ │ ├── forward/
│ │ └── reverse/
│ ├── G02_DW002/
│ │ ├── forward/
│ │ └── reverse/
│ ├── G05_DW005/
│ │ ├── forward/
│ │ └── reverse/
│ ├── G10_DW010/
│ │ ├── forward/
│ │ └── reverse/
│ └── G20_DW020/
│ ├── forward/
│ └── reverse/
├── 07_continuous_variable/
│ ├── profile_A_straight_ramp/
│ │ ├── forward/
│ │ └── reverse/
│ ├── profile_B_constant_radius/
│ │ ├── forward/
│ │ └── reverse/
│ ├── profile_C_irregular_curve/
│ │ ├── forward/
│ │ └── reverse/
│ └── profile_D_fast_switch/
│ ├── forward/
│ └── reverse/
└── 08_completion/
├── active_zero_brake/
│ ├── forward/
│ └── reverse/
├── continuous_steer_switch/
│ ├── forward/
│ └── reverse/
└── continuous_angular_step/
├── G01_DW001/
│ ├── forward/
│ └── reverse/
├── G02_DW002/
│ ├── forward/
│ └── reverse/
├── G05_DW005/
│ ├── forward/
│ └── reverse/
├── G10_DW010/
│ ├── forward/
│ └── reverse/
└── G20_DW020/
├── forward/
└── reverse/
5. 测试前检查
5.1 检查 /cmd_vel 消息类型
ros2 topic type /cmd_vel
预期输出:

geometry_msgs/msg/Twist
5.2 检查 /cmd_vel 发布者
ros2 topic info /cmd_vel -v
正式测试前,应关闭导航、LQR、MPPI、遥控器和其他所有 /cmd_vel 发布节点。

5.3 检查轮式里程计
ros2 topic hz /odom
ros2 topic echo /odom --once
5.4 检查雷达定位里程计
ros2 topic hz /lio/odom
ros2 topic echo /lio/odom --once
5.5 紧急停车指令
终端 3 中提前保留以下命令。车辆运动异常时立即执行:

timeout --signal=INT 3s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
6. 测试总表
部分 测试内容 工况数 单工况次数 Bag 数量
第一部分 静止误差 1 3 3
第二部分 正向与反向直线 6 3 18
第三部分 正向与反向圆周 4 3 12
第四部分 正向与反向启停 2 5 10
第五部分 正向与反向转向切换 2 3 6
第六部分 分段角速度增量阶梯 10 3 30
第七部分 连续变速与不规则曲线 8 3 24
第八部分 主动制动、连续转向及连续角速度阶梯 18 3 54
总计 八部分完整测试 51 — 157
八个部分按照“静态性能 → 基础运动 → 分段动态响应 → 连续动态响应”的顺序组织。
每一次实验均保留独立的录包指令和独立的速度发布命令,所有命令可直接复制粘贴执行。

第一部分:静止误差测试
1.1 作用
用于记录车辆完全静止时,轮式里程计和雷达定位里程计的位置漂移、航向漂移、随机波动和定位跳变。该结果决定后续厘米级运动误差统计的可信下限。

1.2 测试要求
车辆保持上电且完全静止;
不触碰车辆;
人员不要在雷达近距离范围内频繁移动;
每次持续 60 秒;
共录制 3 次。
静止测试第 1 次:STATIC_T60_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/01_static_error/STATIC_T60_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

持续发布零速度 60 秒:

timeout --signal=INT 60s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

静止测试第 2 次:STATIC_T60_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/01_static_error/STATIC_T60_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

持续发布零速度 60 秒:

timeout --signal=INT 60s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

静止测试第 3 次:STATIC_T60_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/01_static_error/STATIC_T60_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

持续发布零速度 60 秒:

timeout --signal=INT 60s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第二部分:正向与反向直线运动测试
2.1 作用
用于评价实际速度、实际行驶距离、直线横向漂移、航向漂移、正反向对称性,以及轮式里程计相对于雷达定位里程计的累计偏差。

2.2 场地要求
建议在地面标记一条至少 7 m 的直线;
标记车辆初始参考点和车身初始中心线;
前方和后方均预留足够安全距离;
每次测试重新回到相同起点和相同朝向。
2.3 工况表
工况 linear.x angular.z 运动时间 理论距离 次数
正向直线 0.2 m/s 0 rad/s 10 s 2.0 m 3
反向直线 -0.2 m/s 0 rad/s 10 s -2.0 m 3
正向直线 0.4 m/s 0 rad/s 10 s 4.0 m 3
反向直线 -0.4 m/s 0 rad/s 10 s -4.0 m 3
正向直线 0.6 m/s 0 rad/s 10 s 6.0 m 3
反向直线 -0.6 m/s 0 rad/s 10 s -6.0 m 3
建议按“正向 0.2 → 反向 0.2 → 正向 0.4 → 反向 0.4 → 正向 0.6 → 反向 0.6”的顺序测试。

2.4 正向直线 0.2 m/s
运动时间:10 秒
角速度:0 rad/s
理论距离:2.0 m
重复次数:3 次
第 1 次:FWD_STRAIGHT_V020_T10_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V020_T10_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 2 次:FWD_STRAIGHT_V020_T10_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V020_T10_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 3 次:FWD_STRAIGHT_V020_T10_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V020_T10_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

2.5 反向直线 -0.2 m/s
运动时间:10 秒
角速度:0 rad/s
理论距离:-2.0 m
重复次数:3 次
第 1 次:REV_STRAIGHT_V020_T10_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V020_T10_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 2 次:REV_STRAIGHT_V020_T10_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V020_T10_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 3 次:REV_STRAIGHT_V020_T10_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V020_T10_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

2.6 正向直线 0.4 m/s
运动时间:10 秒
角速度:0 rad/s
理论距离:4.0 m
重复次数:3 次
第 1 次:FWD_STRAIGHT_V040_T10_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V040_T10_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.4, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 2 次:FWD_STRAIGHT_V040_T10_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V040_T10_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.4, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 3 次:FWD_STRAIGHT_V040_T10_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V040_T10_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.4, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

2.7 反向直线 -0.4 m/s
运动时间:10 秒
角速度:0 rad/s
理论距离:-4.0 m
重复次数:3 次
第 1 次:REV_STRAIGHT_V040_T10_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V040_T10_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.4, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 2 次:REV_STRAIGHT_V040_T10_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V040_T10_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.4, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 3 次:REV_STRAIGHT_V040_T10_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V040_T10_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.4, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

2.8 正向直线 0.6 m/s
运动时间:10 秒
角速度:0 rad/s
理论距离:6.0 m
重复次数:3 次
只有在 0.2 m/s 和 0.4 m/s 工况运行安全且场地允许时,才执行本工况。

第 1 次:FWD_STRAIGHT_V060_T10_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V060_T10_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.6, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 2 次:FWD_STRAIGHT_V060_T10_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V060_T10_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.6, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 3 次:FWD_STRAIGHT_V060_T10_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/forward/FWD_STRAIGHT_V060_T10_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.6, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

2.9 反向直线 -0.6 m/s
运动时间:10 秒
角速度:0 rad/s
理论距离:-6.0 m
重复次数:3 次
只有在 0.2 m/s 和 0.4 m/s 工况运行安全且场地允许时,才执行本工况。

第 1 次:REV_STRAIGHT_V060_T10_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V060_T10_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.6, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 2 次:REV_STRAIGHT_V060_T10_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V060_T10_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.6, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第 3 次:REV_STRAIGHT_V060_T10_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/02_straight/reverse/REV_STRAIGHT_V060_T10_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布直线运动速度 10 秒:

timeout --signal=INT 10s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.6, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第三部分:正向与反向圆周运动测试
3.1 作用
用于评价实际转弯半径、角速度响应、左右转向对称性、正反向转向对称性、圆周闭合误差和转弯过程中的轮胎侧滑。

3.2 参数
理论半径:

[
R=\frac{|v|}{|\omega|}=\frac{0.3}{0.2}=1.5\ \mathrm{m}
]

理论一周时间:

[
T=\frac{2\pi}{|\omega|}=\frac{2\pi}{0.2}\approx31.42\ \mathrm{s}
]

建议测试场地至少为 4 m × 4 m 的无障碍区域;
每个工况重复 3 次;
每次运动时间为 31.42 秒。
3.3 工况对应关系
正向工况 对应反向工况 理论半径
(0.3, 0.2) (-0.3, -0.2) 1.5 m
(0.3, -0.2) (-0.3, 0.2) 1.5 m
3.4 正向圆周:0.3 m/s,0.2 rad/s
运动时间:31.42 秒
理论半径:1.5 m
重复次数:3 次
第 1 次:FWD_CIRCLE_V030_WP020_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/forward/FWD_CIRCLE_V030_WP020_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

第 2 次:FWD_CIRCLE_V030_WP020_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/forward/FWD_CIRCLE_V030_WP020_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

第 3 次:FWD_CIRCLE_V030_WP020_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/forward/FWD_CIRCLE_V030_WP020_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

3.5 反向圆周:-0.3 m/s,-0.2 rad/s
运动时间:31.42 秒
理论半径:1.5 m
重复次数:3 次
第 1 次:REV_CIRCLE_VN030_WN020_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/reverse/REV_CIRCLE_VN030_WN020_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

第 2 次:REV_CIRCLE_VN030_WN020_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/reverse/REV_CIRCLE_VN030_WN020_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

第 3 次:REV_CIRCLE_VN030_WN020_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/reverse/REV_CIRCLE_VN030_WN020_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: -0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

3.6 正向圆周:0.3 m/s,-0.2 rad/s
运动时间:31.42 秒
理论半径:1.5 m
重复次数:3 次
第 1 次:FWD_CIRCLE_V030_WN020_run01
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/forward/FWD_CIRCLE_V030_WN020_run01
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

第 2 次:FWD_CIRCLE_V030_WN020_run02
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/forward/FWD_CIRCLE_V030_WN020_run02
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

第 3 次:FWD_CIRCLE_V030_WN020_run03
终端 1:开始录包

ros2 bag record
-o ~/ranger_motion_test/03_circle/forward/FWD_CIRCLE_V030_WN020_run03
/cmd_vel /odom /lio/odom /tf /tf_static
终端 2:按顺序执行本次测试对应的速度指令

sleep 5
发布圆周运动速度 31.42 秒:

timeout --signal=INT 31.42s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -0.2}}”
停车并继续记录 5 秒:

timeout --signal=INT 5s ros2 topic pub -r 20
/cmd_vel geometry_msgs/msg/Twist
“{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}”
终端 1:确认车辆已经停止后,按 Ctrl+C 结束本次录包。

第一次执行该方向时,可先将运动时间临时改为 2 秒,以低速确认实际运动方向和转向方向。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询