分享

基于MATLAB&SIMULINK开发自动驾驶系统第二十六讲虚幻引擎仿真自动驾驶原理及坐标系

 小明师兄 2021-11-22

MATLAB&SIMULINK自动驾驶工具箱提供了一个协同仿真框架,可以用它在Simulink中对驾驶算法进行建模,并在虚拟仿真环境中可视化其性能。该环境使用Epic Games的虚幻引擎。

了解这个仿真环境的工作原理可以帮助排除故障和定制的模型。

26.1 与3D仿真环境的通信

当使用自动驾驶工具箱运行算法时,Simulink会在可视化引擎中共同仿真算法。 

在Simulink环境中,自动驾驶工具箱:

- 配置可视化环境,特别是射线跟踪、从摄像机捕捉场景和初始对象位置。

- 通过使用仿真环境反馈确定对象的下一个位置该图总结了Simulink和可视化引擎之间的通信。

26.2 模块执行指令

在仿真过程中,虚幻引擎仿真块遵循特定的执行顺序。

1 仿真3D车辆与地面跟随块初始化车辆,并将它们的X、Y和Yaw信号数据发送到仿真3D场景配置块。

2 仿真三维场景配置块接收车辆数据并发送给传感器块。

3 传感器块接收到车辆数据后,利用这些数据对车辆进行准确定位和可视化。

块的优先级属性控制该执行顺序。要访问任何块的该属性,请右键单击该块,选择属性,然后单击常规选项卡。默认情况下,仿真三维车辆与地面跟随块的优先级为-1,仿真三维场景配置块的优图中显示了这种执行顺序。

如果传感器没有探测到场景中的车辆,则可能是虚幻引擎仿真块执行顺序错误。请尝试更新执行顺序,然后重新进行仿真。

还要确保所有的3D仿真块都位于同一个子系统中。即使块有正确的优先级设置,如果它们位于不同的子系统中,仍然可能会执行顺序错误。

自动驾驶工具箱使能够在一个使用Epic Games的虚幻引擎的虚拟环境中仿真的驾驶算法。一般来说,该环境中使用的坐标系遵循《基于MATLAB&SIMULINK开发自动驾驶系统第一讲之传感器配置和坐标系转换 》"自动驾驶工具箱中的坐标系 "中描述的约定。然而,在此环境中进行仿真时,必须注意坐标系的具体差异和实现细节。

27.3 世界坐标系

与其他自动驾驶工具箱功能一样,仿真环境使用ISO 8855中定义的右手笛卡尔世界坐标系。以下为二维俯视图图像虚拟麦城场景显示了该场景的X-坐标和Y-坐标。

                        

 在这个坐标系中,当从X轴的正方向看,Y轴的正方向指向左边。Z轴的正方向从地面向上指向。当分别从Z轴、Y轴和X轴的正方向看时,偏航角、俯仰角和滚转角都是顺时针正向的。如果从二维自上而下的角度查看场景,那么偏航角是逆时针方向的正值,因为是在Z轴的负方向上查看场景。

26.4.1在场景中放置车辆

车辆被放置在场景的世界坐标系中。图中显示了如何在 "仿真三维车辆与地面跟随 "块中指定X、Y和Yaw端口,以决定它们在场景中的位置。

地面的仰角和岸角决定了车辆的Z轴、滚动角和俯仰角。

26.4.2 与虚幻编辑器世界坐标的区别 

Unreal® Editor使用左手世界笛卡尔坐标系,其中正Y轴指向右。如果要从虚幻编辑器坐标系转换到3D环境的坐标系, 必须将Y轴和俯仰角的符号翻转。X轴、Z轴、滚动角和偏航角在两个坐标系中是相同的。

26.5 车辆坐标系统

车辆坐标系以世界坐标系为基础。在这个坐标系中.

- X轴指向车辆的前方。

- Y轴指向车辆的左侧。

- Z轴从地面向上。

- 滚动、俯仰和偏航分别在X轴、Y轴和Z轴的前进方向上为顺时针正向。与世界坐标系一样,当从上往下看车辆时,那么偏航角是逆时针正向的。

车辆原点在地面上,位于车辆的几何中心。在本图中,蓝点代表车辆原点。


26.5.1 在车辆上安装传感器 

当将传感器块(如仿真三维相机块)添加到模型中时, 可以将传感器安装到预定义的车辆位置,如根中心的前保险杠。这些安装位置在车辆坐标系中。当指定这些位置的偏移时, 从安装位置的原点偏移,而不是从车辆原点偏移。

这些公式定义了具有位置(X、Y、Z)和方向(滚动、俯仰、偏航)的传感器的车辆坐标。

- (X, Y, Z) = (Xmount + Xoffset, Ymount +Yoffset, Zmount + Zoffset)

- (Roll, Pitch, Yaw) = (Rollmount +Rolloffset, Pitchmount + Pitchoffset, Yawmount + Yawoffset)

安装 "变量指的是相对于车辆原点的预定义安装位置,可以在传感器块的安装位置参数中定义这些安装位置。可以在传感器块的安装位置参数中定义这些安装位置。

偏移 "变量指的是与这些安装位置的偏移量。在传感器块的相对平移 [X, Y, Z](m) 和相对旋转 [Roll, Pitch, Yaw] (deg) 参数中定义这些偏移量。

例如,考虑安装在后保险杠位置的传感器。相对于车辆原点,传感器的方向为(0,0,180)。换句话说,当从上向下观察车辆时,传感器的偏航角逆时针旋转180度。

要将传感器再向右指向90度,需要将相对旋转[滚动、俯仰、偏航](度)参数设置为[0,0,90]。换句话说,传感器相对于车辆原点逆时针旋转270度,但相对于预定义后保险杠位置的原点仅逆时针旋转90度。

 

26.5.2 与场景仿真汽车坐标原点的区别

在立方体仿真环境中,如 "立体场景仿真 "中所述,原点在地面上,车辆后轴中心下方。

Cuboid Vehicle Origin
3D Simulation  Vehicle Origin

如果要在坐标系之间转换传感器位置,那么需要使用立方体到 3D 仿真块来解释这种原点的差异。

26.5.3 与虚幻编辑器车辆坐标的差异

虚幻编辑器使用左手的笛卡尔车辆坐标系,其中正Y轴指向右。如果要从虚幻编辑器坐标系转换到虚幻引擎环境的坐标系,必须翻转Y轴和俯仰角的符号。X轴、Z轴、滚动角和偏航角在两个坐标系中是相同的。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多