基于carsim的线控转向仿真(1)--carsim车辆模型目标角度跟踪

一、Rwa转向执行总成建模

 Rwa包括齿轮齿条机构、转向组件以及转向执行电机;如下图,电机输出轴通过齿轮减速增扭后,再经过一个半径为rp的小齿轮,直接带动齿条左右移动。齿条的移动通过转向摇臂,带动车轮转动,整套系统从电机的转动,转换为齿条的左右移动,再转换成车轮的左右摆动。

1、转向电机建模

在线控转向中,转向电机是一个执行器,上层给多少需求力矩,电机控制器便响应多少力矩。这里,我们用一个一阶惯性环节来简单模拟电机响应。

 仿真响应如下:

2、齿轮齿条机构建模

齿轮齿条动力来源是电机,阻力有左右车轮的阻力,齿条自身的加速度和阻尼,依据牛顿力学第二定律,可以列出微分方程

M_{r}\ddot{X}_{r}+B_{r}\dot{X}_{r}+F_{z}=T_{m}/r_{p}

式中,F_{z}--齿条上等效阻力;T_{fl},T_{fr}--左右前轮主销回正力矩。

参数名称物理意义单位数值
i_{Mot}转向电机减速比--18
l_{fl}左前轮转向摇臂长度m0.132
l_{fr}右前轮转向摇臂长度m0.132
r_{p}小齿轮半径m0.007
B_{r}齿轮齿条阻尼系数N.m/rad651
M_{r}齿轮齿条质量kg2.25

二、搭建Rwa总成simuink模型

依据以上几个公式,搭建Rwa执行总成模型。

三、simulink与carsim的联合仿真

1、仿真接口

低调一点选了个b级车

Carsim与Simulink模型的交互接口如下:

名称含义方向
IMP_STEER_L1左前轮转角simulink给到carsim
IMP_STEER_R1右前轮转角simulink给到carsim
Mz_L1左前轮转向阻力carsim到simulink
Mz_R1右前轮转向阻力carsim到simulink
Steer_L1左前轮转角carsim到simulink
Steer_R1右前轮转角carsim到simulink

 此外还需要注意到,carsim前轮转角是带阿克曼转向的,因此再给需求角度时,也需要考虑到,在这里,从carsim的转向系统里,提取出齿条位移--转向角度。

 2、仿真思路

首先,需要关闭carsim原有自带的转向系统;用OPT_STEER_EXT=0这个指令就可以;其次,关闭carsim里路径跟随的功能。这两个设置后,carsim的转向系统便会听simulink的。

整个仿真信号传递思路如下:

 1)根据车辆模型实时转角与参考转角的差距,用pid算出需求电机需求力矩;
 2)一阶电机模型响应电机需求理解;
 3)有了电机力矩,以及车辆模型的转向阻力,便可以套公式算齿条位移;
 4)有了齿条位移,便可以查表得到左右前轮需要的转角,响应前轮需求转角就是carsim的事了。

三、仿真结果

如下图,第一步我们已经实现,通过给需求转角,转向执行机构能实现需求转角,并与carsim实现了联调。

返回专栏目录

参考论文

《线控转向系统理想传动比和前轮转角控制策略研究》_殷凡青

### 车辆目标跟踪算法的实现方法 车辆目标跟踪是一种结合计算机视觉技术和机器学习模型的技术,用于实时监控和追踪视频中的移动物体。以下是关于该主题的一些重要概念和技术细节: #### 基于检测的目标跟踪 基于检测的目标跟踪方法通常依赖先进的目标检测算法来定位每帧中的对象,并利用这些位置信息完成后续的跟踪任务。YOLOv8 是一种高效的目标检测框架,能够快速准确地识别图像中的多个目标[^1]。一旦检测到目标,可以通过多目标跟踪算法(如 DeepSORT)进一步处理检测结果。 DeepSORT 使用卡尔曼滤波器预测目标在下一帧中的可能位置,并通过外观特征匹配解决遮挡等问题,从而显著提升跟踪性能[^2]。具体来说,它会提取每个检测框内的高维特征向量并将其存储在一个短期记忆库中,以便与新帧中的候选区域进行相似性比较。 #### 动态轮廓法 除了传统的基于检测的方式外,还有其他类型的车辆跟踪策略可供选择。比如动态轮廓法试图捕捉连续画面间的变化情况作为判断依据之一。这类方法虽然相对简单易懂,但在面对复杂背景或者光照条件变化较大的场景下表现欠佳。 #### 特征描述子的应用 为了增强区分能力以及鲁棒性,在实际应用过程中往往还需要引入额外的信息源——即所谓的“特征”。例如颜色直方图、纹理模式或者是更高级别的卷积神经网络(CNN)输出层得到的深层语义表示都可以充当有效的补充材料供系统决策时参考。 ```python import cv2 from ultralytics import YOLO model = YOLO('yolov8n.pt') # 加载预训练模型 video_capture = cv2.VideoCapture(0) while True: ret, frame = video_capture.read() results = model(frame)[0].boxes.data.cpu().numpy() for result in results: x_min, y_min, x_max, y_max, conf, cls_id = map(int, result[:6]) label = f'{cls_id} {conf:.2f}' cv2.rectangle(frame,(x_min,y_min),(x_max,y_max),color=(0,255,0)) cv2.putText(frame,label,(x_min,y_min-10),cv2.FONT_HERSHEY_SIMPLEX,.9,(0,255,0)) cv2.imshow('Video',frame) if cv2.waitKey(1)&0xFF==ord('q'): break video_capture.release() cv2.destroyAllWindows() ``` 上述代码片段展示了如何使用 Ultralytics 提供的 YOLO 工具包来进行基本的对象探测操作。然而需要注意的是这仅仅是一个初步的例子,完整的解决方案还需考虑更多因素诸如数据关联逻辑等才能达到理想的跟踪效果。 #### 总结 综上所述,现代车辆目标跟踪方案大多融合了多种先进技术手段共同作用以克服单一途径存在的局限性问题。其中尤以深度学习为基础构建起来的新一代智能化监测体系最为突出代表作当属前述提及过的Yolo系列配合Sort家族成员所组成的联合体架构形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极简车辆控制

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

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

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

打赏作者

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

抵扣说明:

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

余额充值