diff --git a/chrono/undergraduate/content/chapter2.tex b/chrono/undergraduate/content/chapter2.tex index 94f5407e..7d63d72a 100644 --- a/chrono/undergraduate/content/chapter2.tex +++ b/chrono/undergraduate/content/chapter2.tex @@ -15,7 +15,7 @@ \subsubsection{多智能体一体化仿真能力} \subsubsection{本土化高保真开源数字资产库} -平台使用UE4引擎创建了具有影视级3D场景渲染和物理模拟能力的系统,能支持Carla所有的数字资产,并且有自己的开放式非国标开放数字资产管理库(CARTA),包含了按照中国道路标准建好的城镇规划图、建筑物、交通标志标识线以及20种具备完整的动力学参数的国产车、187个带有骨骼动作的行人模型及各种各样的道路器材\cite{zhao2025carlascene}。所有的资产都遵守了统一的物理尺寸的规定10,使用git-lfs来处理大型文件资产,并且为了提高渲染速度以及视觉效果,在保证准确性的前提下尽量保持大小不变,可以直接应用于国内交通场景的算法测试当中\cite{li2025virtual}。 +平台使用UE4引擎创建了具有影视级3D场景渲染和物理模拟能力的系统,能支持Carla所有的数字资产,并且有自己的开放式非国标开放数字资产管理库(CARTA),包含了按照中国道路标准建好的城镇规划图、建筑物、交通标志标识线以及20种具备完整的动力学参数的国产车、187个带有骨骼动作的行人模型及各种各样的道路器材\cite{zhao2025carlascene}。所有的资产都遵守了统一的物理尺寸的规定,使用git-lfs来处理大型文件资产,并且为了提高渲染速度以及视觉效果,在保证准确性的前提下尽量保持大小不变,可以直接应用于国内交通场景的算法测试当中\cite{li2025virtual}。 \subsubsection{全栈式传感器仿真与扩展能力} @@ -35,11 +35,11 @@ \subsection{基于hutb的仿真场景搭建流程} \subsubsection{预编译版本快速部署流程} -根据一般的算法测试要求,可以直接使用平台上预编译的完整的环境,不需要源码编译,主要过程如下:首先从官方发布的页面下载对应的平台预编译安装包并解压运行启动脚本CarlaUE4.exe(Windows)或者Linux中的CarlaUE4.sh来开启hutb-carlaue4仿真服务器,在终端环境中输入命令'pip install hutb'to一键安装Python API工具包以达到客户端环境的搭建目的,再利用客户端API与本地仿真服务器进行连接(默认IP:127.0.0.1,端口:2000),然后设定各种各样的环境参数如天气、光照、时间等,并且加载相应的中国城镇道路网地图到仿真中去,在此基础上我们还可以创建出一个目标点的主车及多个传感器套件出来,并对其所有的硬件设备以及采集的数据进行设置和追踪功能的操作加以配置之后,就可以按照所设定好的条件和顺序来进行一系列复杂而又繁重的路况模拟试验任务了,而这一切都是依靠着ScenarioRunner这个应用程序程序实现起来的。 +根据一般的算法测试要求,可以直接使用平台上预编译的完整的环境,不需要源码编译,主要过程如下:首先从官方发布的页面下载对应的平台预编译安装包并解压运行启动脚本CarlaUE4.exe(Windows)或者Linux中的CarlaUE4.sh来开启hutb-carlaue4仿真服务器,在终端环境中输入命令"pip install hutb"to一键安装Python API工具包以达到客户端环境的搭建目的,再利用客户端API与本地仿真服务器进行连接(默认IP:127.0.0.1,端口:2000),然后设定各种各样的环境参数如天气、光照、时间等,并且加载相应的中国城镇道路网地图到仿真中去,在此基础上我们还可以创建出一个目标点的主车及多个传感器套件出来,并对其所有的硬件设备以及采集的数据进行设置和追踪功能的操作加以配置之后,就可以按照所设定好的条件和顺序来进行一系列复杂而又繁重的路况模拟试验任务了,而这一切都是依靠着ScenarioRunner这个应用程序程序实现起来的。 \subsubsection{源码编译与自定义场景全流程开发} -针对不同的测试场景需求,平台提供完整的源代码编译和自定义场景开发流程:第一步用 ‘git clone’ 拉取 htb 分支下的最新源码,依照官方中文文档对 UE4 引擎进行适配、环境搭建和全编译,最终得到可供自定义开发的仿真服务器;第二步使用 RoadRunner 工具根据 OpenDRIVE 标准绘制符合中国道路规范的道路中心线、车道线、交通标志、信号灯等要素图,保存为 OpenDRIVE 地形文件,并将其提交到本地路径下以供编辑;第三部将地形文件导入 UE4 引擎并配置完成本土化的 3D 场景资源,从指定版本包下载静态物体及环境设置(例如建筑模型),然后设定材质样式以及光源参数组合效果,并给各个碰撞体添加必要的属性;第四部利用 Hutb Python/C++ API 编写场景运行程序,实现不同类型车辆之间的交互作用,譬如如何让汽车跟随行人行动,或怎样把风力影响计算进去,又或是经由雷达获取信息后做出相应的驾驶判断,所有这些过程均要依靠自定义场景来执行,且在过程中涉及到了大量技术问题解决工作内容,比如系统性能提升策略分析以及硬件兼容性优化方法探究等方面研究成果颇有价值,本课题致力于探索各种新颖有趣应用领域方向前景表现状况发展趋向特点特征所在之处,其背后所蕴含价值意义远超传统意义上学术层面要求范畴限制范围内所能触及到之处之外。 +针对不同的测试场景需求,平台提供完整的源代码编译和自定义场景开发流程:第一步用 "git clone" 拉取 hutb 分支下的最新源码,依照官方中文文档对 UE4 引擎进行适配、环境搭建和全编译,最终得到可供自定义开发的仿真服务器;第二步使用 RoadRunner 工具根据 OpenDRIVE 标准绘制符合中国道路规范的道路中心线、车道线、交通标志、信号灯等要素图,保存为 OpenDRIVE 地形文件,并将其提交到本地路径下以供编辑;第三部将地形文件导入 UE4 引擎并配置完成本土化的 3D 场景资源,从指定版本包下载静态物体及环境设置(例如建筑模型),然后设定材质样式以及光源参数组合效果,并给各个碰撞体添加必要的属性;第四部利用 Hutb Python/C++ API 编写场景运行程序,实现不同类型车辆之间的交互作用,譬如如何让汽车跟随行人行动,或怎样把风力影响计算进去,又或是经由雷达获取信息后做出相应的驾驶判断,所有这些过程均要依靠自定义场景来执行,且在过程中涉及到了大量技术问题解决工作内容,比如系统性能提升策略分析以及硬件兼容性优化方法探究等方面研究成果颇有价值,本课题致力于探索各种新颖有趣应用领域方向前景表现状况发展趋向特点特征所在之处,其背后所蕴含价值意义远超传统意义上学术层面要求范畴限制范围内所能触及到之处之外。 \section{Chrono::Vehicle车辆动力学模块化建模体系} @@ -171,4 +171,4 @@ \subsubsection{车辆子系统与整车参考系} \end{figure} \subsubsection{模拟世界坐标系} -Chrono::Vehicle默认的世界坐标系和车辆参考系是一致的,使用的是ISO标准的Z轴向上坐标系,还可以设置为自定义的世界坐标系,在不同的仿真环境下可以有不同的约定27[]。对于使用Y轴向上的仿真是可以方便地进行设置和切换,如模块提供了一种快捷的方式来设定为X轴向前、Y轴向上、Z轴向右的世界坐标系即ChWorldFrame::SetYUP();另外,还具有各种工具函数比如坐标系的转换,高度获取以及平面投影等等都可以在ChWorldFrame类里用到,从而能够满足多种仿真平台之间的兼容性需求\cite{ge2025rl}。 +Chrono::Vehicle默认的世界坐标系和车辆参考系是一致的,使用的是ISO标准的Z轴向上坐标系,还可以设置为自定义的世界坐标系,在不同的仿真环境下可以有不同的约定。对于使用Y轴向上的仿真是可以方便地进行设置和切换,如模块提供了一种快捷的方式来设定为X轴向前、Y轴向上、Z轴向右的世界坐标系即ChWorldFrame::SetYUP$()$;另外,还具有各种工具函数比如坐标系的转换,高度获取以及平面投影等等都可以在ChWorldFrame类里用到,从而能够满足多种仿真平台之间的兼容性需求\cite{ge2025rl}。 diff --git a/chrono/undergraduate/content/chapter3.tex b/chrono/undergraduate/content/chapter3.tex index e9aee782..75c1a754 100644 --- a/chrono/undergraduate/content/chapter3.tex +++ b/chrono/undergraduate/content/chapter3.tex @@ -55,7 +55,7 @@ \subsection{Chrono算法优化设计} 面对多体物理仿真所遇到的技术难题,研究人员先从 Chrono 核心算法着手做改进工作,目的是提升仿真的精确度以及求解速度;在约束精度优化方面,研究人员使用更准确的约束求解算法来解决约束问题,并对约束方程的求解过程进行改良与调整,减少因约束产生的误差,以保证多体系统的协调运动;另外,将约束分为重要和次要两类,对重要的悬挂、车轮等约束采用较高的求解精度,而对于其他非关键约束则适当降低精度,从而兼顾仿真精度与求解效率之间的平衡;针对动力学求解器迭代的方式进行了优化,选择了一些能自主调整步长的求解算法,在车辆运动较为稳定的时候增加步长以加快进程,在车辆剧烈运动如制动、转向时减小步长保障准确性的同时提高求解的速度;此外研究人员还将并行计算的概念应用到了仿真当中,将多个子系统动力学的计算任务平均分配给不同的计算机处理器去完成,进而提升整体仿真速度;最后,对于Chrono的核心代码做了简化,删除了不必要的计算部分以提高程序执行的高效性。 \subsection{CarlaUE4与Chrono耦合优化} -针对多平台数据交互延迟的问题,相关方对 CarlaUE4、Chrono 之间的耦合过程进行了改进,从而提高数据交互的速度和同步情况\cite{openhutb2025hutb};首先,相关人员改善了数据交互接口的设计,并且制定了一个简单的数据交换协议,减小了数据的传输量并使用UDP协议来实现实时数据传输,降低了解算周期;另外,相关人员将各个平台所使用的数据格式加以整合,防止在数据传递的过程中产生差异而导致误差的发生;接着,在耦合过程中应用到的时间同步技术手段可以使得Chrono与CarlaUE4的仿真步数相一致,从而使两者之间存在的运动不一致性得以消除并且保证各种平台协同仿真的顺畅运行;最后,相关的部分还采取措施来保障数据交换是安全可靠的,并没有受到由外界因素影响而造成的种种困扰的情况;而且也对CarlaUE4的可视化渲染速度做了调整处理工作,并将其效果体现在系统响应能力上以及性能方面表现出来,以此为依托让各项任务都得到有效的完成,并达到预期的目标值所在之处。见表\ref{tab:coupling optimization}。 +针对多平台数据交互延迟的问题,相关方对 CarlaUE4、Chrono 之间的耦合过程进行了改进,从而提高数据交互的速度和同步情况\cite{openhutb2025hutb};首先,相关人员改善了数据交互接口的设计,并且制定了一个简单的数据交换协议,减小了数据的传输量并使用UDP协议来实现实时数据传输,降低了解算周期;另外,相关人员将各个平台所使用的数据格式加以整合,防止在数据传递的过程中产生差异而导致误差的发生;接着,在耦合过程中应用到的时间同步技术手段可以使得Chrono与CarlaUE4的仿真步数相一致,从而使两者之间存在的运动不一致性得以消除并且保证各种平台协同仿真的顺畅运行;最后,相关的部分还采取措施来保障数据交换是安全可靠的,并没有受到由外界因素影响而造成的种种困扰的情况;而且也对CarlaUE4的可视化渲染速度做了调整处理工作,并将其效果体现在系统响应能力上以及性能方面表现出来,以此为依托让各项任务都得到有效的完成,并达到预期的目标值所在之处。见表\ref{tab:timestamp}。 \begin{table}[H] \centering diff --git a/chrono/undergraduate/content/chapter4.tex b/chrono/undergraduate/content/chapter4.tex index af9cdda8..3c5a016d 100644 --- a/chrono/undergraduate/content/chapter4.tex +++ b/chrono/undergraduate/content/chapter4.tex @@ -6,7 +6,7 @@ \subsection{环境配置} 本文实验环境为Intel Core i7-12700h处理器、16G的运行内存、NVIDiA GeForce RTX 3060 Laptop GPU。本文实验以PyCharm和vscode平台为基础,在Python3.8环境下利用cuda11.1、carla 0.9.15以及CarUe4作为支持系统,并且使用了Windows11操作系统。 \subsection{实验数据集与参数设置} -本次实验的测试场景是在CARLA仿真的平台上构建起来的,启用了两种不同的物理引擎,一种是CARLA自己用Bullet游戏引擎开发的,另一种是Chrono多体物理引擎,将两者所有的参数设置为完全相同,在仿真时间上设置了20秒的时间段,前15秒是正常行驶阶段,车辆进行加速、减速、转向等常规动作,后5秒也就是15到20秒是车辆碰撞的测试部分,通过模拟极端工况下车辆的动力学响应来完成实验;当实验开始之后,会同时采集两种物理引擎输出的IMU核心数据,包括X/Y/Z轴平动速度、X/Y/Z轴平动加速度和X/Y/Z轴角速度,然后对这两组数据进行对比处理以便于之后的研究工作;最终会在结束后的所有过程中得到一个包含多种因素影响的数据集合。 +本次实验的测试场景是在CARLA仿真的平台上构建起来的,启用了两种不同的物理引擎,一种是CARLA默认使用的PhysX引擎,另一种是Chrono多体物理引擎,将两者所有的参数设置为完全相同,在仿真时间上设置了20秒的时间段,前15秒是正常行驶阶段,车辆进行加速、减速、转向等常规动作,后5秒也就是15到20秒是车辆碰撞的测试部分,通过模拟极端工况下车辆的动力学响应来完成实验;当实验开始之后,会同时采集两种物理引擎输出的IMU核心数据,包括X/Y/Z轴平动速度、X/Y/Z轴平动加速度和X/Y/Z轴角速度,然后对这两组数据进行对比处理以便于之后的研究工作;最终会在结束后的所有过程中得到一个包含多种因素影响的数据集合。 \section{评价指标} 本文认为相同的行动路径是两个引擎控制车辆做完全一样的运动轨迹、加速、减速、转向,在此基础上对 Chrono 和 PhysX 的传感器数据,如三轴加速度、三轴角速度进行了对比,用同一图的曲线特点来说明它们的不同之处,从而确定哪个更适合,以此为基础进行论文中的实验分析和仿真引擎的选择。 @@ -25,7 +25,7 @@ \subsubsection{数值稳定性} \subsubsection{IMU各维度数据细节} 三轴加速度,在加速时逐渐上升,减速时慢慢下降,并存在真实的动力学延迟现象;转向的时候Y向的加速度会随着转向角度而变化,峰值和转向幅度正相关;Z轴永远有一定的规律性的微震动,符合了现实中的汽车垂直方向动力学反应。 三轴角速度:转向时曲线平稳上下,没有突变的现象出现,说明转向系统具有一定的阻尼作用;不进行转向操作的时候,角速度保持在正负0.01rad/s的范围内之内,并且是稳定的,可以比较准确地反映出车辆对于高度、横倾以及侧滑的情况如何。如图\ref{fig:9}是Chrono仿真的IMU数据曲线。 -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{9} \caption{chrono仿真引擎的IMU数据曲线图} @@ -45,7 +45,7 @@ \subsubsection{IMU各维度数据细节} 三轴加速度为理想的阶跃变化,在加速时刻达到最大值,减速度时回落到零附近,忽略车的惯性,匀速行驶的时候曲线是直线的,Z轴没有合理的波动,缺少悬挂系统以及发动机振动之类的物理特征。 三轴角速度,转向时立即达到最大值、转向后马上回到零位置,没有转向阻尼特性,正常工作的时候会出现一些伪噪声的波形,在真实地反映出车辆的姿态改变过程中所经历的事情方面有很大的缺陷。如图\ref{fig:11}为PhysX仿真的IMU数据曲线。 -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{11} \caption{physx仿真引擎的IMU数据曲线图} @@ -57,7 +57,13 @@ \subsection{Chrono与PhysX IMU数据对比分析} 本次实验共生成 4 张 IMU 数据对比图,以蓝色曲线表示 CARLA 原生物理引擎输出数据,红色曲线表示Chrono 多体物理引擎输出数据,时间轴统一为 0-20 秒,各图分工明确,分别实现 IMU 数据的全维度总览与各核心分量的专项放大对比,具体如下: \subsubsection{速度专项对比图} 如图\ref{fig:12}所示,仅显示了速度的X、Y、Z这三个方向上的变化情况,从车体运动的总体趋势上做了一点模拟。X轴代表车辆的纵向即前进或者后退的速度,Y轴代表车辆的横向(左右方向)速度是X轴代表的车辆水平(纵向)速度,Y轴上的速度为Z轴所代表的车辆垂直(横向)速度,在车模拟运行过程中可以进行比较以发现两者之间有什么共同之处以及不同之点。 -\begin{figure}[H] + +趋势一致性:两套仿真平台在运动时序、启停时刻、三轴运动方向上高度匹配,Chrono 模型可以复现 CARLA 的车辆运动行为; + +动力学差异:纵向(X):Chrono 速度波动更平缓;侧向(Y):Chrono 侧向速度幅值更小,物理约束更真实;垂向(Z):Chrono 对瞬时垂向冲击响应更剧烈; + +仿真特性:CARLA 更偏向交通场景宏观运动仿真,速度波动更大;Chrono 基于多体动力学,底盘 / 垂向动力学细节更精准,更适合车辆动力学精细化研究。 +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{12} \caption{chrono与physx仿真引擎的IMU数据速度曲线图} @@ -66,7 +72,13 @@ \subsubsection{速度专项对比图} \subsubsection{加速度专项对比图} 如图\ref{fig:13}所示,只放大了加速度的X、Y、Z这三个方向上的一段仿真结果,并且特别注意到了车辆瞬间受到的作用力是如何不同的。加速度为速度的导数,数据峰值比速度更加陡峭,在描述碰撞、急刹车等瞬态过程时可以很好地体现冲击力的大小,因此它是评价引擎瞬态动力学仿真是不是非常精细的一个指标。 -\begin{figure}[H] + +时序一致性:两套仿真平台加速度变化的时间节点、运动触发时刻完全匹配,Chrono 可完整复现 CARLA 的车辆运动逻辑; + +仿真特性差异:CARLA:偏向宏观交通场景仿真,加速度波动平缓,瞬时冲击弱;Chrono:基于多体动力学,纵向制动、侧向冲击、垂向颠簸的瞬时加速度尖峰显著,对车辆底盘、悬架、瞬时受力的仿真更贴合真实物理; + +核心结论:Chrono 在精细化车辆动力学、瞬时冲击响应上优于 CARLA,适合车辆动力学细节层面的仿真研究;CARLA 更适合宏观交通流、长时程运动仿真。 +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{13} \caption{chrono与physx仿真引擎的IMU数据加速度曲线图} @@ -75,7 +87,7 @@ \subsubsection{加速度专项对比图} \subsubsection{角速度专项对比图} 如图\ref{fig:14}所示,此图只放大了角速度X、Y、Z三个方向的仿真差别,注意是把车的姿态运动给放出来了。这里X轴角速度代表的是车辆侧倾(Roll)的速率,它反映了车辆左右倾斜变化的速度如何;Y轴角速度表示的是车辆俯仰(Pitch)的速率,它反映的是车辆前后抬头或低头变化的速度有多快;Z轴角速度指的就是车辆偏航(Yaw)的速率,它是用来表现车辆左右转向变动迅速的程度。可以清楚的看出,两者的车辆姿态动力学仿真有诸多不同之处,在碰撞之后的姿态恢复情况就是其中的一个具体体现。 -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{14} \caption{chrono与physx仿真引擎的IMU数据角速度曲线图} @@ -84,7 +96,13 @@ \subsubsection{角速度专项对比图} \subsubsection{IMU数据综合对比总览} 如图\ref{fig:15}所示,用一个3乘以3的网格来表示IMU的所有主要测量分量,从上到下分别为平动速度(VelocityX/XY/Z)、平动加速度(AccelerationX/Y/Z)和角速度(AngularVelocityX/Y/Z)。根据该图可以很快建立起两个平台IMU数据的大致全局印象,从整体上看各个数据的变化趋势大致相同,只是在大约15、20秒这个碰撞时刻之前是逐渐平稳上升的过程,之后才开始急剧下降,在其余时间点上两者的变化轨迹都较为接近。 -\begin{figure}[H] + +速度层面:纵向 X、侧向 Y:两种模型运动趋势、时间节点基本一致;但Chrono 侧向速度更小,不会出现过大的侧向滑动。垂向 Z:遇到路面冲击时,只有 Chrono 能产生明显的上下速度波动,PhysX 几乎无反应。 + +加速度层面:在 15–18s 车辆急刹、转向、过坎阶段,Chrono 三轴都出现尖锐的瞬时加速度峰值,冲击效果明显;PhysX 曲线整体平缓,缺失瞬时冲击细节。 + +角速度层面(车身姿态):三种角速度变化时序一致,但Chrono 姿态变化更细腻、突变更真实;PhysX 姿态运动偏大、理想化,缺少真实车辆侧倾、俯仰的细节。 +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{15} \caption{chrono与physx仿真引擎的IMU数据综合对比图} @@ -95,6 +113,11 @@ \subsection{分维度数据深度解读} 结合上述 4 张对比图,从平动速度、平动加速度、角速度三个核心维度,对两个平台的 IMU 数据进行深度分析,明确数据差异的具体表现及背后的物理意义,具体如下: \subsubsection{平动速度维度分析} 平动速度直接反映车辆的整体运动状态,其数据一致性直接影响自动驾驶算法对车辆运动趋势的判断,各分量的具体对比分析如下表\ref{平动速度维度分析表}所示: + +\subsubsection{平动加速度维度分析} +平动加速度与速度的变化趋势一致,它所达到的峰值越大,就表示瞬时事件中受到的冲击力量越强,这是评价引擎动力学仿真是不是真实的最主要的标准。结合图3分析可以得出结论,在碰撞时刻,Chrono引擎所给出的纵向加速度最大为-80m/s²(相当于8倍重力),而CARLA引擎的最大纵向加速度只有-50m/s²,二者在碰撞时出现的是很大的减速;在横向方向上,碰撞时两者的平均加速度分别为45m/s²和5m/s²,两者间差别十分大,竖直方向上也是这样一样;因此从以上三个维度都可以看到Chrono引擎对于物理过程的再现更加接近现实世界。由此可知,Chrono引擎对于碰撞能量传递的仿真是更加接近于实际物理规律的一种方式,在处理瞬时冲击力的时候可以做到更精确、细致一些,而CARLA原生物理引擎对于碰撞冲击力的仿真是很简单的. +\subsubsection{角速度维度分析} +角速度直接反映车辆的姿态变化,是碰撞后车辆动力学响应的核心评估指标,结合图 2 分析可知,两个平台的角速度差异同样集中在碰撞阶段,具体表现为:1、X 轴(侧倾):碰撞后,Chrono 引擎输出的侧倾角速度峰值更高(-25 m/s vs -10 m/s),且峰值持续时间更长,说明其对车辆侧倾姿态的仿真更贴合真实情况;2、Y 轴(俯仰):为两者最核心的姿态差异,Chrono 引擎出现±30 m/s 的巨大俯仰角速度尖峰,模拟了车辆碰撞后车头先猛烈抬起、再快速下压的真实姿态变化,而 CARLA 引擎输出的俯仰角速度几乎为 0,未体现出明显的俯仰运动;3、Z 轴(偏航):0-15 秒正常转向阶段,两个平台的数据趋势完全一致,17 秒碰撞后,Chrono 引擎出现额外的偏航尖峰,而 CARLA 引擎没有很大的波动。该维度的差异也完全体现了 Chrono多体物理引擎可以准确地模拟出车辆的质心运动以及悬架的弹性、阻尼特性,而 CARLA原生物理引擎却对车辆俯仰等姿态动力学做了一些较大的简化,并且仿真出来的准确性也比较低。 \begin{table}[H] \centering \caption{平动速度维度分析表} @@ -113,11 +136,6 @@ \subsubsection{平动速度维度分析} \end{tabularx} \end{table} -\subsubsection{平动加速度维度分析} -平动加速度与速度的变化趋势一致,它所达到的峰值越大,就表示瞬时事件中受到的冲击力量越强,这是评价引擎动力学仿真是不是真实的最主要的标准。结合图3分析可以得出结论,在碰撞时刻,Chrono引擎所给出的纵向加速度最大为-80m/s²(相当于8倍重力),而CARLA引擎的最大纵向加速度只有-50m/s²,二者在碰撞时出现的是很大的减速;在横向方向上,碰撞时两者的平均加速度分别为45m/s²和5m/s²,两者间差别十分大,竖直方向上也是这样一样;因此从以上三个维度都可以看到Chrono引擎对于物理过程的再现更加接近现实世界。由此可知,Chrono引擎对于碰撞能量传递的仿真是更加接近于实际物理规律的一种方式,在处理瞬时冲击力的时候可以做到更精确、细致一些,而CARLA原生物理引擎对于碰撞冲击力的仿真是很简单的. -\subsubsection{角速度维度分析} -角速度直接反映车辆的姿态变化,是碰撞后车辆动力学响应的核心评估指标,结合图 2 分析可知,两个平台的角速度差异同样集中在碰撞阶段,具体表现为:1、X 轴(侧倾):碰撞后,Chrono 引擎输出的侧倾角速度峰值更高(-25 m/s vs -10 m/s),且峰值持续时间更长,说明其对车辆侧倾姿态的仿真更贴合真实情况;2、Y 轴(俯仰):为两者最核心的姿态差异,Chrono 引擎出现±30 m/s 的巨大俯仰角速度尖峰,模拟了车辆碰撞后车头先猛烈抬起、再快速下压的真实姿态变化,而 CARLA 引擎输出的俯仰角速度几乎为 0,未体现出明显的俯仰运动;3、Z 轴(偏航):0-15 秒正常转向阶段,两个平台的数据趋势完全一致,17 秒碰撞后,Chrono 引擎出现额外的偏航尖峰,而 CARLA 引擎没有很大的波动。该维度的差异也完全体现了 Chrono多体物理引擎可以准确地模拟出车辆的质心运动以及悬架的弹性、阻尼特性,而 CARLA原生物理引擎却对车辆俯仰等姿态动力学做了一些较大的简化,并且仿真出来的准确性也比较低。 - \section{极端场景仿真对比(高速急打方向)} 常规工况的 IMU 数据对比工作已经完成,为了进一步验证优化后模型的相关性能,也就是在高速、急转向这类极限动态的工作条件下,它在物理方面是否合理,运行时是否稳定,研究中专门设置了高速急打方向的极限场景测试;我们会对车辆姿态、运动连续性以及动力学响应进行直观的对比,借助这种对比方法,来分析原生 CARLA(PhysX)和 Chrono 这两个模型,在表现上存在哪些差异 @@ -142,13 +160,13 @@ \subsubsection{原生 CARLA(PhysX):僵硬转向,动力学失真} \begin{figure}[H] \centering \includegraphics[width=1\textwidth]{16} - \caption{physx仿真情况下车辆姿态变化图1} + \caption{physx仿真情况下车辆姿态变化图} \label{fig:16} \end{figure} \begin{figure}[H] \centering \includegraphics[width=1\textwidth]{17} - \caption{physx仿真情况下车辆姿态变化图2} + \caption{physx仿真情况下车辆姿态变化图} \label{fig:17} \end{figure} \subsubsection{未优化 Chrono:过度灵敏,易发生非物理侧翻} @@ -158,16 +176,16 @@ \subsubsection{未优化 Chrono:过度灵敏,易发生非物理侧翻} 2、高速急转时侧倾角速度大、外侧载荷激增,达到侧翻阈值后发生倾覆,符合实车极限工况的失稳机理; 3、由于求解器没有进行优化,平台同步出现了误差,车辆过早或者过于迅速地进入了失稳状态,并且不能被控制也无法复现,工程上的应用价值不高\cite{deng2024rail}。 -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{18} - \caption{chrono仿真情况下车辆姿态变化图1} + \caption{chrono仿真情况下车辆姿态变化图} \label{fig:18} \end{figure} -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{19} - \caption{chrono仿真情况下车辆姿态变化图2} + \caption{chrono仿真情况下车辆姿态变化图} \label{fig:19} \end{figure} \subsubsection{优化后 Chrono:真实可控,兼具真实性与稳定性} @@ -176,16 +194,16 @@ \subsubsection{优化后 Chrono:真实可控,兼具真实性与稳定性} 1、车身侧倾角度随着转向输入是平滑的变化,符合真实的车辆悬架刚度和轮胎侧偏性特点,并没有明显的僵硬失真以及过分的侧倾造成伪翻车的情况发生; 2、运动轨迹是连贯的,没有出现突变的现象或者穿透的情形存在,在纵向加速度及纵向前方的速度线图上呈现出平稳上升的趋势,峰值值也是合理的并且没有过多的噪音; 3、既能不致使物理模拟中出现僵化的状况,也不易造成Chrono进行优化之后结果不稳定的问题出现在其中,并且还能较好的体现出在高速极限情况下所展现出来的车辆动力学表现:左边的悬挂变得比较长一些,右边的悬挂则有所缩短,在此期间还会伴随着轮胎摩擦力被推至极限而引发出一定的横向滑动活动情况的发生发展过程之中,这些都同实际驾驶环境当中所表现出的各种动态特征有着很大的契合程度,而且它还具有着较好的仿真性能表现并可作为一种可靠的工程参照对象来加以使用\cite{huang2025roll}。 -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{20} - \caption{chrono仿真情况下车辆姿态变化图3} + \caption{chrono仿真情况下车辆姿态变化图} \label{fig:20} \end{figure} -\begin{figure}[H] +\begin{figure}[htbp] \centering \includegraphics[width=1\textwidth]{21} - \caption{chrono仿真情况下车辆姿态变化图4} + \caption{chrono仿真情况下车辆姿态变化图} \label{fig:21} \end{figure} \subsection{实验核心结论} diff --git a/chrono/undergraduate/content/reference.bib b/chrono/undergraduate/content/reference.bib index 6086df1f..83af4696 100644 --- a/chrono/undergraduate/content/reference.bib +++ b/chrono/undergraduate/content/reference.bib @@ -6,7 +6,6 @@ @article{gao2026suspension volume={1--10}, year={2026}, note={[Online; accessed 2026-04-29]}, - url={https://link.cnki.net/urlid/11.4493.TH.20260331.1555.003} } @article{wang2026auv, @@ -16,7 +15,7 @@ @article{wang2026auv volume={1--16}, year={2026}, note={[Online; accessed 2026-04-29]}, - doi={10.16182/j.issn1004731x.joss.26-0012} + doi={10.16182} } @article{chai2026trajectory, @@ -27,7 +26,7 @@ @article{chai2026trajectory number={3}, pages={529--541}, year={2026}, - doi={10.19562/j.chinasae.qcgc.2026.03.004} + doi={10.19562} } @article{li2026carfollowing, @@ -47,7 +46,7 @@ @article{song2026fuzzy number={2}, pages={17--19}, year={2026}, - doi={10.19475/j.cnki.issn1674-957x.2026.02.010} + doi={10.19475} } @article{luo2026sar, @@ -57,7 +56,6 @@ @article{luo2026sar volume={1--30}, year={2026}, note={[Online; accessed 2026-04-29]}, - url={https://link.cnki.net/urlid/11.3092.v.20260123.0934.003} } @article{gao2025pitch, @@ -68,7 +66,7 @@ @article{gao2025pitch number={6}, pages={311--315+337}, year={2025}, - doi={10.13952/j.cnki.jofmdr.2025.0172} + doi={10.13952} } @article{wang2025longitudinal, @@ -109,7 +107,7 @@ @article{zhang2025multiscene number={10}, pages={48--54}, year={2025}, - doi={10.13879/j.issn.1000-7458.2025-10.24275} + doi={10.13879} } @article{xu2025mining, @@ -120,7 +118,7 @@ @article{xu2025mining number={4}, pages={50--54}, year={2025}, - doi={10.13235/j.cnki.ltcm.20240366} + doi={10.13235} } % 学位论文 @@ -129,7 +127,7 @@ @phdthesis{ge2025rl author={戈伦}, school={北京邮电大学}, year={2025}, - doi={10.26969/d.cnki.gbydu.2025.000065} + doi={10.26969} } @masterthesis{zhao2025carlascene, @@ -137,7 +135,7 @@ @masterthesis{zhao2025carlascene author={赵盼}, school={西安工业大学}, year={2025}, - doi={10.27391/d.cnki.gxagu.2025.01115} + doi={10.27391} } @article{li2025virtual, @@ -148,7 +146,7 @@ @article{li2025virtual number={9}, pages={210--213+218}, year={2025}, - doi={10.16661/j.cnki.1672-3791.2412-5042-1075} + doi={10.16661} } % 在线电子文献 @@ -175,7 +173,7 @@ @article{gu2025rbf volume = {23}, number = {03}, pages = {410-414}, - doi = {10.15999/j.cnki.311926.2025.03.027} + doi = {10.15999} } @article{guo2025pid, @@ -186,7 +184,7 @@ @article{guo2025pid volume = {21}, number = {02}, pages = {122-126}, - doi = {10.16812/j.cnki.cn31-1945.2025.02.006} + doi = {10.16812} } @article{huang2025roll, @@ -197,7 +195,7 @@ @article{huang2025roll volume = {23}, number = {01}, pages = {23-27+33}, - doi = {10.15999/j.cnki.311926.2025.01.018} + doi = {10.15999} } @article{deng2024rail, @@ -207,7 +205,7 @@ @article{deng2024rail year = {2024}, number = {11}, pages = {26-31}, - doi = {10.20151/j.cnki.1672-7533.2024.11.005} + doi = {10.20151} } @article{wang2023crash, @@ -228,7 +226,7 @@ @article{xiong2023semi volume = {48}, number = {16}, pages = {40-45}, - doi = {10.16638/j.cnki.1671-7988.2023.016.008} + doi = {10.16638} } @mastersthesis{bai2024mixed, @@ -236,5 +234,5 @@ @mastersthesis{bai2024mixed title = {考虑智能驾驶技术与车辆类型的混合车流仿真研究}, school = {中南大学}, year = {2024}, - doi = {10.27661/d.cnki.gzhnu.2024.003137} + doi = {10.27661} } \ No newline at end of file diff --git a/chrono/undergraduate/images/1.png b/chrono/undergraduate/images/1.png index fc84f956..20888881 100644 Binary files a/chrono/undergraduate/images/1.png and b/chrono/undergraduate/images/1.png differ diff --git a/chrono/undergraduate/images/16.png b/chrono/undergraduate/images/16.png new file mode 100644 index 00000000..0d992b2e Binary files /dev/null and b/chrono/undergraduate/images/16.png differ diff --git a/chrono/undergraduate/images/17.png b/chrono/undergraduate/images/17.png new file mode 100644 index 00000000..1a31b272 Binary files /dev/null and b/chrono/undergraduate/images/17.png differ diff --git a/chrono/undergraduate/images/18.png b/chrono/undergraduate/images/18.png new file mode 100644 index 00000000..ddabfb0c Binary files /dev/null and b/chrono/undergraduate/images/18.png differ diff --git a/chrono/undergraduate/images/19.png b/chrono/undergraduate/images/19.png new file mode 100644 index 00000000..c023c5d9 Binary files /dev/null and b/chrono/undergraduate/images/19.png differ diff --git a/chrono/undergraduate/images/2.png b/chrono/undergraduate/images/2.png index ddf5da9e..355ba6ac 100644 Binary files a/chrono/undergraduate/images/2.png and b/chrono/undergraduate/images/2.png differ diff --git a/chrono/undergraduate/images/20.png b/chrono/undergraduate/images/20.png new file mode 100644 index 00000000..cd27dbd8 Binary files /dev/null and b/chrono/undergraduate/images/20.png differ diff --git a/chrono/undergraduate/images/21.png b/chrono/undergraduate/images/21.png new file mode 100644 index 00000000..9ec92c82 Binary files /dev/null and b/chrono/undergraduate/images/21.png differ diff --git a/chrono/undergraduate/images/6.png b/chrono/undergraduate/images/6.png index f433cf88..0ae1b27b 100644 Binary files a/chrono/undergraduate/images/6.png and b/chrono/undergraduate/images/6.png differ diff --git a/chrono/undergraduate/images/Power transmission path.png b/chrono/undergraduate/images/Power transmission path.png new file mode 100644 index 00000000..9b86abda Binary files /dev/null and b/chrono/undergraduate/images/Power transmission path.png differ diff --git a/chrono/undergraduate/images/signature.png b/chrono/undergraduate/images/signature.png new file mode 100644 index 00000000..b231ae95 Binary files /dev/null and b/chrono/undergraduate/images/signature.png differ diff --git a/chrono/undergraduate/images/signature2.png b/chrono/undergraduate/images/signature2.png new file mode 100644 index 00000000..01395caf Binary files /dev/null and b/chrono/undergraduate/images/signature2.png differ