智能汽车触觉交互的人机协同转向控制与驾驶行为理解研究【附数据】

博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。

 ✅ 具体问题可以私信或扫描文章底部二维码。


(1)人机共驾背景与研究目标

在智能汽车发展的进程中,虽然无人驾驶承载着交通 “零伤亡” 的美好愿景,但由于受到汽车技术发展规律、法律法规和道德伦理等因素的限制,驾驶人在相当长的时间内仍会参与甚至主导驾驶过程。随着智能汽车技术的持续进步,汽车与驾驶人之间的关系变得异常复杂。基于多源信息感知的机器智能系统和行为各异的驾驶人构成了人机并行二元控制,二者动态交互、相互作用且耦合关系强烈。在不同的行驶环境和工况下,它们可能相互制约甚至产生冲突,这不仅会严重影响驾驶人的驾驶体验和智能系统的性能,还会对驾驶安全造成潜在威胁。鉴于当前汽车智能化水平难以迅速满足无人驾驶需求以及人机交互关系复杂多变的现状,人机共驾概念受到广泛关注和研究,成为迈向完全无人驾驶的必经之路。本研究依托相关国家重点研发计划课题和基金项目,以触觉交互为基础,针对汽车横向运动,在执行控制层协调驾驶人和智能系统的控制作用,构建人机触觉交互桥梁和智能融合渠道,旨在提高汽车行驶安全性、降低驾驶人驾驶负荷,重点围绕人机转矩耦合状态下的驾驶人行为提取和理解、体现人机触觉交互和冲突消解的驾驶权分配机制这两个关键科学问题展开。

(2)驾驶人行为理解的方法研究

首先是研究基于人工势场的时空风险场构建方法。通过构建时空风险场来描绘特定时间跨度和路段内动态交通风险在时空域中的分布,为驾驶人风险认知度评估提供依据。依据交通元素的性质和影响机制,将其分为具象元素和抽象元素。针对具象元素构建偏置扫掠法生成其风险分布,针对抽象元素则采用基于高斯分布的方法生成风险分布。通过示例场景分析和在轨迹规划中的应用,证实时空风险场能够以统一、直观的方式展现动态交通风险在时空域中的分布情况。

接着是基于视觉特性的驾驶人风险认知度评估方法研究。为描述驾驶人视觉认知特性,建立基于伽马分布的视觉认知模型,以注视行为作为系统激励,以伽马分布描述的认知水平变化过程为系统响应,运用卷积计算驾驶人的认知水平。开展眼动行为实车道路数据采集试验,并基于这些数据对模型进行标定。结合时空风险场(作为动态交通风险的客观分布)和视觉认知模型(作为驾驶人主观认知水平)来计算驾驶人风险认知度。实车数据测试表明该方法实现了对驾驶人风险认知度的定量估计。

然后是基于握力分布的驾驶人转向能动性辨识方法研究。通过在转向盘上阵列布置柔性薄膜压力传感器制作智能转向盘,并开展握力分布数据采集试验。以转向阻抗作为驾驶人上肢神经肌肉系统状态的参数化描述,基于试验数据对转向阻抗的特性参数进行辨识,形成基于转向阻抗的转向能动性表征方法。构建由卷积神经网络和门控循环单元构成的级联模型,依据转向阻抗与转向能动性的表征关系解算出转向能动性,测试验证了该辨识方法的有效性。

(3)人机触觉交互协同转向控制方法与测试

研究基于变虚拟阻抗架构的人机触觉交互协同转向控制方法。提出基于阻抗概念的人机触觉交互架构,基于此架构开发变虚拟阻抗转向控制算法。分析虚拟阻抗对驾驶人操纵手感和控制系统性能的影响,为驾驶权分配创造条件。构建前向 - 后向组合阻抗调协策略,使智能系统的虚拟阻抗与驾驶人行为状态相协调,形成基于驾驶人行为理解的驾驶权分配机制。虚拟仿真测试显示该方法能够描述人机触觉交互作用过程,为驾驶权分配提供有效途径。

最后基于人机并行在环试验对所建立的方法进行测试。搭建人机并行在环试验平台,设计六类试验和三种阻抗调协模式进行对比。试验结果表明,所建立的方法能够依据对驾驶人的行为理解对虚拟阻抗进行前向预设和后向修正,通过阻抗调协形成良好的驾驶权分配机制,实现了和谐的人机触觉交互并消解了人机冲突。通过客观评价分析进一步验证了该方法能为驾驶人带来正向助益,为驾驶人提供更安全、舒适的驾驶体验。

 

# 以下是时空风险场构建中具象元素风险分布生成(偏置扫掠法)的示例代码
import numpy as np
import matplotlib.pyplot as plt

# 具象元素的相关参数(示例)
element_size = 10  # 具象元素的大小(假设为正方形边长)
road_length = 100  # 道路长度
road_width = 50  # 道路宽度
num_points = 1000  # 用于生成风险分布的点数

# 偏置扫掠法生成风险分布函数
def generate_risk_distribution_for_concrete_element():
    risk_distribution = np.zeros((road_length, road_width))
    center_x = np.random.randint(element_size, road_length - element_size)  # 具象元素中心 x 坐标
    center_y = np.random.randint(element_size, road_width - element_size)  # 具象元素中心 y 坐标
    for i in range(num_points):
        x = np.random.randint(0, road_length)
        y = np.random.randint(0, road_width)
        distance = np.sqrt((x - center_x) ** 2 + (y - center_y) ** 2)
        if distance <= element_size:
            risk_value = 1 - (distance / element_size)  # 风险值与距离相关(示例)
            risk_distribution[x][y] += risk_value
    return risk_distribution

# 可视化风险分布(示例)
risk_distribution = generate_risk_distribution_for_concrete_element()
plt.imshow(risk_distribution, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.title("Risk Distribution of Concrete Element")
plt.show()

python

复制

# 基于伽马分布的视觉认知模型计算驾驶人认知水平的示例代码
import numpy as np
from scipy.stats import gamma
import matplotlib.pyplot as plt

# 视觉认知模型参数(示例)
alpha = 2.0  # 伽马分布的形状参数
beta = 1.0  # 伽马分布的尺度参数
num_time_steps = 100  # 时间步数(注视行为的持续时间等分为这些步数)

# 注视行为数据(示例,这里简单用随机数模拟注视强度)
fixation_intensity = np.random.rand(num_time_steps)

# 计算认知水平函数
def calculate_cognitive_level():
    cognitive_level = np.zeros(num_time_steps)
    for t in range(num_time_steps):
        # 卷积计算(这里简化,实际可能更复杂)
        cognitive_level[t] = np.sum(fixation_intensity[max(0, t - 5):t + 1] * gamma.pdf(np.arange(t - max(0, t - 5), t + 1), alpha, scale=beta))
    return cognitive_level

# 可视化认知水平变化(示例)
cognitive_level = calculate_cognitive_level()
plt.plot(cognitive_level)
plt.xlabel("Time Step")
plt.ylabel("Cognitive Level")
plt.title("Driver's Cognitive Level based on Visual Model")
plt.show()

python

复制

# 基于握力分布数据采集试验数据辨识转向阻抗特性参数的示例代码
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# 模拟握力分布数据(示例,这里简单生成一些随机数据)
num_samples = 100
grip_force_data = np.random.rand(num_samples, 5)  # 假设 5 个传感器采集的数据
# 假设与转向阻抗相关的其他数据(示例)
related_data = np.random.rand(num_samples, 3)

# 合并数据用于线性回归(示例,实际可能需要更复杂的模型和数据处理)
combined_data = np.concatenate((grip_force_data, related_data), axis=1)

# 目标转向阻抗参数(示例)
target_impedance = np.random.rand(num_samples, 1)

# 线性回归模型训练
model = LinearRegression()
model.fit(combined_data, target_impedance)

# 预测和可视化(示例)
predicted_impedance = model.predict(combined_data)
plt.scatter(target_impedance, predicted_impedance)
plt.xlabel("True Impedance")
plt.ylabel("Predicted Impedance")
plt.title("Impedance Parameter Identification")
plt.show()

python

复制

# 基于变虚拟阻抗架构的人机触觉交互协同转向控制算法示例代码
import numpy as np

# 虚拟阻抗参数(示例)
initial_impedance = np.array([1.0, 2.0])  # 初始虚拟阻抗值(假设为简单的二维参数)
driver_behavior_factor = np.random.rand(2)  # 驾驶人行为因素(示例,模拟与行为相关的影响)

# 变虚拟阻抗转向控制算法函数
def variable_virtual_impedance_steering_control():
    new_impedance = initial_impedance + 0.1 * driver_behavior_factor  # 根据行为因素调整阻抗(示例)
    return new_impedance

# 模拟驾驶人行为因素更新(示例)
for i in range(10):
    driver_behavior_factor = np.random.rand(2)
    new_impedance = variable_virtual_impedance_steering_control()
    print("Iteration", i, " - New Virtual Impedance:", new_impedance)

python

复制

# 前向 - 后向组合阻抗调协策略函数示例代码
import numpy as np

# 驾驶人当前行为状态(示例)
driver_state = np.array([0.5, -0.3])  # 假设是二维的行为状态表示
# 智能系统当前虚拟阻抗
current_impedance = np.array([1.2, 1.8])

# 前向 - 后向组合阻抗调协策略函数
def impedance_adjustment_strategy():
    forward_adjustment = 0.05 * driver_state  # 前向调整量(示例)
    backward_adjustment = -0.03 * (current_impedance - np.array([1.0, 1.0]))  # 后向调整量(示例)
    adjusted_impedance = current_impedance + forward_adjustment + backward_adjustment
    return adjusted_impedance

# 执行阻抗调协并输出结果(示例)
adjusted_impedance = impedance_adjustment_strategy()
print("Adjusted Virtual Impedance:", adjusted_impedance)

python

复制

# 人机并行在环试验平台中部分试验模拟代码示例
import numpy as np

# 试验参数(示例)
num_trials = 6  # 六类试验
impedance_adjustment_modes = 3  # 三种阻抗调协模式

# 模拟试验数据生成函数
def generate_trial_data():
    trial_data = []
    for trial in range(num_trials):
        for mode in range(impedance_adjustment_modes):
            # 模拟试验结果数据(示例,这里简单生成随机数据)
            trial_result = np.random.rand(5)  # 假设每个试验结果有 5 个数据点
            trial_data.append(trial_result)
    return np.array(trial_data)

# 分析试验数据(示例,这里简单计算数据均值)
trial_data = generate_trial_data()
mean_data = np.mean(trial_data, axis=0)
print("Mean of Trial Data:", mean_data)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坷拉博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值