测试目标本测试仅负责采集 Ranger Mini V3 的底盘运动数据。所有 rosbag 录制完成后再统一进行数据处理、轨迹对齐和误差统计。完整测试共分为以下八个部分静止误差测试正向与反向直线运动测试正向与反向圆周运动测试正向与反向启停响应测试正向与反向转向切换及回正测试分段发布的角速度增量阶梯响应测试单节点连续变速与不规则曲线响应测试主动制动、连续转向切换与连续角速度阶梯测试。2. 重要操作原则每一次测试对应一个独立 bag不把多个工况录入同一个 bag。每一个测试小节中终端 1 的录包指令只对应紧随其后的终端 2 速度指令。每次录包开始后先静止 5 秒再发布运动指令。运动结束后必须持续发布零速度保留完整停车过程。零速度发布结束、车辆确认停止后再在录包终端按 CtrlC。每次动态测试都尽量从相同起点和相同初始朝向开始。测试过程中不得同时运行导航、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_errormkdir -p ~/ranger_motion_test/02_straight/forwardmkdir -p ~/ranger_motion_test/02_straight/reversemkdir -p ~/ranger_motion_test/03_circle/forwardmkdir -p ~/ranger_motion_test/03_circle/reversemkdir -p ~/ranger_motion_test/04_start_stop/forwardmkdir -p ~/ranger_motion_test/04_start_stop/reversemkdir -p ~/ranger_motion_test/05_steering_switch/forwardmkdir -p ~/ranger_motion_test/05_steering_switch/reversemkdir -p ~/ranger_motion_test/06_angular_step/G01_DW001/forwardmkdir -p ~/ranger_motion_test/06_angular_step/G01_DW001/reversemkdir -p ~/ranger_motion_test/06_angular_step/G02_DW002/forwardmkdir -p ~/ranger_motion_test/06_angular_step/G02_DW002/reversemkdir -p ~/ranger_motion_test/06_angular_step/G05_DW005/forwardmkdir -p ~/ranger_motion_test/06_angular_step/G05_DW005/reversemkdir -p ~/ranger_motion_test/06_angular_step/G10_DW010/forwardmkdir -p ~/ranger_motion_test/06_angular_step/G10_DW010/reversemkdir -p ~/ranger_motion_test/06_angular_step/G20_DW020/forwardmkdir -p ~/ranger_motion_test/06_angular_step/G20_DW020/reversemkdir -p ~/ranger_motion_test/07_continuous_variable/profile_A_straight_ramp/forwardmkdir -p ~/ranger_motion_test/07_continuous_variable/profile_A_straight_ramp/reversemkdir -p ~/ranger_motion_test/07_continuous_variable/profile_B_constant_radius/forwardmkdir -p ~/ranger_motion_test/07_continuous_variable/profile_B_constant_radius/reversemkdir -p ~/ranger_motion_test/07_continuous_variable/profile_C_irregular_curve/forwardmkdir -p ~/ranger_motion_test/07_continuous_variable/profile_C_irregular_curve/reversemkdir -p ~/ranger_motion_test/07_continuous_variable/profile_D_fast_switch/forwardmkdir -p ~/ranger_motion_test/07_continuous_variable/profile_D_fast_switch/reversemkdir -p ~/ranger_motion_test/08_completion/active_zero_brake/forwardmkdir -p ~/ranger_motion_test/08_completion/active_zero_brake/reversemkdir -p ~/ranger_motion_test/08_completion/continuous_steer_switch/forwardmkdir -p ~/ranger_motion_test/08_completion/continuous_steer_switch/reversemkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G01_DW001/forwardmkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G01_DW001/reversemkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G02_DW002/forwardmkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G02_DW002/reversemkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G05_DW005/forwardmkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G05_DW005/reversemkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G10_DW010/forwardmkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G10_DW010/reversemkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G20_DW020/forwardmkdir -p ~/ranger_motion_test/08_completion/continuous_angular_step/G20_DW020/reverse4.2 检查目录find ~/ranger_motion_test -type d | sortfind ~/ranger_motion_test/06_angular_step -type d | sortfind ~/ranger_motion_test/07_continuous_variable -type d | sortfind ~/ranger_motion_test/08_completion -type d | sort4.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/Twist5.2 检查 /cmd_vel 发布者ros2 topic info /cmd_vel -v正式测试前应关闭导航、LQR、MPPI、遥控器和其他所有 /cmd_vel 发布节点。5.3 检查轮式里程计ros2 topic hz /odomros2 topic echo /odom --once5.4 检查雷达定位里程计ros2 topic hz /lio/odomros2 topic echo /lio/odom --once5.5 紧急停车指令终端 3 中提前保留以下命令。车辆运动异常时立即执行timeout --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。静止测试第 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。静止测试第 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第二部分正向与反向直线运动测试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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第三部分正向与反向圆周运动测试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 m3.4 正向圆周0.3 m/s0.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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 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 --signalINT 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 --signalINT 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确认车辆已经停止后按 CtrlC 结束本次录包。第一次执行该方向时可先将运动时间临时改为 2 秒以低速确认实际运动方向和转向方向。