L3自动驾驶接管请求:监控请求与接管时间间隔对驾驶员行为的影响
论文信息
标题: A study of the effect of monitoring request and takeover request time interval on takeover characteristics
期刊: Transportation Safety and Environment, Vol 8, Issue 2, 2026
链接: https://doi.org/10.1093/tse/tdaf028
发表日期: 2026年6月22日
核心方法: 监控请求(MR)→接管请求(TR)时间间隔对接管质量的影响
核心创新 首次系统研究监控请求(Monitoring Request, MR)和接管请求(Takeover Request, TR)之间的时间间隔 对L3自动驾驶接管质量的影响。解决了L3自动驾驶的关键安全问题:何时要求驾驶员恢复注意力,何时要求接管。
关键发现:
✅ MR-TR间隔≥8秒时接管质量显著提升
✅ MR(监控请求)比TR(接管请求)提前4-8秒发出
❌ 间隔<4秒时接管质量严重退化(碰撞风险↑3倍)
✅ NDRT(非驾驶任务)类型影响恢复速度
方法详解 1. L3接管流程
sequenceDiagram
participant V as L3自动驾驶
participant D as 驾驶员
participant H as HUD/DMS
Note over V,D: L3正常自动驾驶
D->>H: 驾驶员做NDRT(看手机/阅读)
Note over V: 检测到需要接管的条件
V->>H: 触发监控请求(MR)
H->>D: "请恢复对道路的监控"
D->>H: 驾驶员抬头看路
Note over V,D: MR-TR间隔(关键变量)
V->>H: 触发接管请求(TR)
H->>D: "立即接管!"
D->>V: 驾驶员接管控制
Note over V,D: 接管过渡期(5-15秒)
V->>D: 驾驶员完全控制
2. 实验设计
变量
条件
MR-TR间隔
0s(无MR)/ 4s / 8s / 12s
NDRT类型
视频/阅读/手机
驾驶场景
高速公路/城市/施工区
参与者
48名(24男/24女,21-65岁)
模拟器
6自由度运动模拟器
3. 核心代码复现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 import numpy as npfrom dataclasses import dataclassfrom typing import List , Tuple @dataclass class TakeoverEvent : """接管事件数据结构""" mr_time: float tr_time: float takeover_time: float response_time: float ndrt_type: str lane_deviation: float speed_deviation: float collision: bool class L3TakeoverAnalyzer : """ L3自动驾驶接管质量分析器 论文: Trans. Safety and Environment, 2026 核心发现: MR-TR间隔≥8s时接管质量显著提升 """ THRESHOLDS = { 'response_time_good' : 2.5 , 'response_time_acceptable' : 4.0 , 'lane_dev_good' : 0.3 , 'lane_dev_critical' : 0.75 , 'speed_dev_good' : 5 , } def analyze_takeover_quality (self, events: List [TakeoverEvent] ) -> dict : """ 分析不同MR-TR间隔下的接管质量 Args: events: 接管事件列表 Returns: dict: 按间隔分组的分析结果 """ intervals = {} for event in events: mr_tr_gap = event.tr_time - event.mr_time if mr_tr_gap == 0 : group = 'no_mr' elif mr_tr_gap <= 4 : group = '4s' elif mr_tr_gap <= 8 : group = '8s' else : group = '12s' if group not in intervals: intervals[group] = [] intervals[group].append(event) results = {} for group, group_events in intervals.items(): n = len (group_events) response_times = [e.response_time for e in group_events] lane_devs = [e.lane_deviation for e in group_events] speed_devs = [e.speed_deviation for e in group_events] collisions = sum (1 for e in group_events if e.collision) results[group] = { 'n' : n, 'response_time_mean' : np.mean(response_times), 'response_time_std' : np.std(response_times), 'lane_dev_mean' : np.mean(lane_devs), 'lane_dev_std' : np.std(lane_devs), 'speed_dev_mean' : np.mean(speed_devs), 'collision_rate' : collisions / n * 100 , 'quality' : self ._assess_quality(response_times, lane_devs, collisions) } return results def _assess_quality (self, response_times, lane_devs, collisions ): """评估接管质量等级""" rt_mean = np.mean(response_times) ld_mean = np.mean(lane_devs) collision_rate = len (collisions) / len (response_times) if rt_mean < self .THRESHOLDS['response_time_good' ] and \ ld_mean < self .THRESHOLDS['lane_dev_good' ] and \ collision_rate == 0 : return 'good' elif rt_mean < self .THRESHOLDS['response_time_acceptable' ] and \ ld_mean < self .THRESHOLDS['lane_dev_critical' ]: return 'acceptable' else : return 'poor' if __name__ == "__main__" : print ("=== L3接管质量 vs MR-TR间隔 ===\n" ) print ("| MR-TR间隔 | 响应时间(s) | 车道偏差(m) | 碰撞率 | 质量 |" ) print ("|-----------|------------|------------|--------|------|" ) print ("| 无MR(0s) | 4.2±1.3 | 0.52±0.21 | 12.5% | 差 |" ) print ("| 4s | 3.1±0.9 | 0.38±0.15 | 8.3% | 可接受|" ) print ("| 8s | 2.3±0.7 | 0.25±0.10 | 0% | 良好 |" ) print ("| 12s | 2.1±0.6 | 0.22±0.09 | 0% | 良好 |" ) print (f"\n关键发现:" ) print (f"1. MR-TR≥8s: 接管质量良好,碰撞率0%" ) print (f"2. MR-TR=4s: 可接受但有8.3%碰撞风险" ) print (f"3. 无MR: 12.5%碰撞率,响应延迟1.9s" ) print (f"4. 8s和12s差异不显著→8s是最优间隔" ) print (f"\nNDRT类型影响:" ) print (f"| NDRT | 恢复时间(s) | 接管质量 |" ) print (f"|------|------------|---------|" ) print (f"| 视频 | 2.5±0.8 | 良好 |" ) print (f"| 阅读 | 3.2±1.1 | 可接受 |" ) print (f"| 手机 | 3.8±1.4 | 差 |" ) print (f"\nDMS在L3接管中的角色:" ) print (f"1. MR前: 监控驾驶员NDRT状态" ) print (f"2. MR时: 确认驾驶员是否恢复注意力" ) print (f"3. MR-TR间隔: 持续监控恢复进度" ) print (f"4. TR时: 确认驾驶员准备就绪" ) print (f"5. 接管后: 监控过渡期控制质量" )
4. DMS在L3接管中的5个关键角色
阶段
DMS任务
检测内容
失败后果
1. MR前
评估驾驶员准备状态
NDRT参与度、疲劳等级
MR太晚→来不及
2. MR时
确认注意力恢复
视线回到道路、坐姿调整
驾驶员未注意MR
3. MR-TR间隔
监控恢复进度
视线扫视频率、认知状态
恢复不充分就TR
4. TR时
确认准备就绪
手在方向盘、脚在踏板
接管失败
5. 接管后
过渡期监控
控制稳定性、车道保持
接管后碰撞
5. Euro NCAP 2026对L3的要求
要求
标准
DMS对应
驾驶员在场
座椅传感器+摄像头
确认驾驶员在座
驾驶员清醒
DMS PERCLOS检测
确认非睡眠状态
驾驶员可接管
DMS注意力检测
确认恢复注意力
MR-TR间隔
≥4秒
DMS评估恢复进度
接管质量
车道+速度控制
过渡期监控
IMS开发启示 1. L3接管DMS功能优先级
优先级
功能
技术方案
周期
P0
NDRT检测
视线方向+手部位置
3个月
P0
注意力恢复判定
视线回道路频率+持续时间
3个月
P0
接管准备状态
手在方向盘+脚在踏板+视线前方
3个月
P1
MR-TR动态调整
根据恢复进度动态调整TR时机
6个月
P1
接管质量评估
过渡期控制稳定性评分
6个月
P2
个性化MR时机
个体恢复速度基线
12个月
2. MR-TR间隔动态调整方案 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 class DynamicTakeoverManager : """ 动态接管管理器 论文发现: 8s是最优MR-TR间隔 但个体差异大→需要动态调整 策略: 1. 发出MR 2. DMS持续监控恢复进度 3. 恢复充分→提前TR(减少等待) 4. 恢复不充分→延迟TR(如果安全允许)或紧急停车 """ def __init__ (self ): self .min_mr_tr_gap = 4.0 self .max_mr_tr_gap = 12.0 self .optimal_gap = 8.0 self .recovery_metrics = { 'gaze_road_ratio' : {'weight' : 0.30 , 'target' : 0.7 }, 'gaze_scan_freq' : {'weight' : 0.25 , 'target' : 2.0 }, 'hand_on_wheel' : {'weight' : 0.20 , 'target' : 1.0 }, 'foot_on_pedal' : {'weight' : 0.15 , 'target' : 1.0 }, 'sit_upright' : {'weight' : 0.10 , 'target' : 1.0 }, } def assess_recovery (self, current_metrics: dict ) -> dict : """ 评估驾驶员恢复进度 Returns: dict: 恢复分数和建议 """ score = 0 for metric, config in self .recovery_metrics.items(): value = current_metrics.get(metric, 0 ) normalized = min (1.0 , value / config['target' ]) score += config['weight' ] * normalized if score >= 0.85 : return { 'recovery_level' : 'ready' , 'score' : score, 'action' : 'can_issue_TR' , 'suggested_delay' : 0 } elif score >= 0.6 : return { 'recovery_level' : 'partial' , 'score' : score, 'action' : 'wait' , 'suggested_delay' : 2 } else : return { 'recovery_level' : 'not_ready' , 'score' : score, 'action' : 'extend_wait_or_emergency_stop' , 'suggested_delay' : 4 }
3. NDRT类型对DMS检测的影响
NDRT
视线特征
恢复时间
DMS检测难度
视频
看中控屏
2.5s
✅ 容易(视线偏离明确)
阅读
低头看书/平板
3.2s
✅ 容易(低头明确)
手机
多样化
3.8s
⚠️ 中等(位置不定)
睡眠
闭眼
8s+
✅ 容易(PERCLOS)
思考
看前方发呆
5s
🔴 困难(认知分心)
4. BMW L3量产参考
特性
BMW L3 (2026)
IMS要求
速度范围
≤60km/h(高速拥堵)
低速场景
场景
高速公路拥堵
结构化道路
MR
视觉+听觉
DMS辅助
TR
多模态警告
DMS确认
驾驶员监控
摄像头DMS
✅ 已有
NDRT
允许看手机/视频
DMS检测
接管时间
10秒
论文8s吻合
5. L3接管的DMS测试场景
场景
条件
通过标准
TOR-01
MR后8s→TR
≤3s接管,车道偏差<0.3m
TOR-02
MR后4s→TR
≤4s接管,车道偏差<0.5m
TOR-03
无MR→直接TR
≤5s接管,碰撞率<10%
TOR-04
驾驶员睡眠→MR
≤15s恢复,≤8s接管
TOR-05
驾驶员手机→MR
≤5s恢复,≤4s接管
TOR-06
多次TR
每次均通过
总结 L3自动驾驶的接管安全是DMS的核心应用场景。MR-TR间隔8秒是最优平衡点。
对IMS的5条可执行建议:
MR-TR间隔8秒是最优值 ——接管质量良好,碰撞率0%
NDRT检测是L3 DMS的基础 ——必须识别驾驶员在做什么
动态MR-TR调整优于固定间隔 ——根据恢复进度调整
接管过渡期监控是最后防线 ——确保接管后控制稳定
认知分心是最难恢复的NDRT ——视线看前方但心不在
论文链接: https://doi.org/10.1093/tse/tdaf028 数据: 48名参与者,6自由度模拟器