大家好,我是橙子,本章主要介绍,开发过程中关于视角切换的代码,由于仿真过程中,我们需要变换视角观测车辆动态表现,所以我想的是通过GUI选择视角类型,切换不同视角,并使视角跟车行驶。
1.视角切换功能实现
我采用是使用QT的 QComboBox控件,添加不同类型的视角,通过对控件值得返回判断切换不同得视角
代码功能解析
该代码片段实现了一个视角切换功能,通过View_Select下拉菜单选择不同视角(前视、后视、俯视、侧视),调整Carla仿真环境中spectator(观察者)的位置和角度。
前视视角
将观察者设置在车辆正前方,高度略微抬升:
后视视角
将观察者设置在车辆正后方,高度略微抬升,镜头旋转180度:
俯视视角
将观察者设置在车辆正上方,镜头垂直向下:
侧视视角
将观察者设置在车辆右后侧方,高度抬升,镜头倾斜:
关键变量说明
self.ego_trans
:车辆当前的位置和旋转信息
self.forward_vector
:车辆前进方向向量
self.right_vector
:车辆右侧方向向量
self.high_adjustment
:视角高度调整参数
self.spectator
:Carla仿真环境中的观察者对象
坐标系说明
代码中使用Carla的左手坐标系:
X轴:车辆右侧方向
Y轴:车辆前进方向
Z轴:垂直向上方向 旋转角度遵循:
- Yaw:绕Z轴旋转(偏航角)
- Pitch:绕X轴旋转(俯仰角)
- Roll:绕Y轴旋转(滚动角)
该实现通过向量运算动态计算观察者位置,确保视角能跟随车辆移动和旋转。
2.视角跟车逻辑实现
这个功能实现起来比较简单,就是在初始化时,创建一个视角定时器,并将这个定时器连接到上述函数中,实现持续更新
3.效果
俯视跟车:

前视跟车:

文章转载自公众号:智驾前沿社
作者:小橙子的青葱岁月

