目标跟踪中的坐标变换问题以及四元数

在自动驾驶的目标跟踪问题中,自车的坐标系随着自车运动,包括yaw angle。因此,在跟踪时,需要这样做:车身偏航角的变化率是可以得到的yaw_rate,在每次触发跟踪算法时根据两帧时间戳的差值对yaw_rate做积分,就有这个时间段内产生的偏航角变化,把这个值算到卡尔曼的估计中,再和测量值做加权。也就是说,卡尔曼的预测过程=基于目标运动模型+自车坐标系变化引起的坐标变换(旋转).

可以这样理解,就是自车偏转时的跟踪,相当于自车不动,而将目标状态根据yaw angle 进行坐标变换。这样目标跟踪就始终处于自车坐标系下了。

在多目标的跟踪中,分为三个步骤,1. 预测(包括自车yaw angle 的补偿),2. 匹配,即多个测量点和对象列表中的多个ID一一对应(Apollo中用的是匈牙利算法)。3. 测量更新

 

 

由于欧拉角有万向节死锁的缺点,自动驾驶中常用 四元数,有关四元数的简洁讲解在下面的链接中:
链接:http://www.zhihu.com/question/23005815/answer/33971127

附上原文:

作者:Yang Eninala
链接:https://www.zhihu.com/question/23005815/answer/33971127
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

根据我的理解,大多数人用汉密尔顿四元数就只是做三维空间的旋转变换(我反正没见过其他用法)。那么你不用学群论,甚至不用复习线性代数,看我下面的几张图就可以了。

首先,定义一个你需要做的旋转。旋转轴为向量v=(vx,vy,vz),旋转角度为\theta(右手法则的旋转)。如下图所示:
此图中v=(\frac{1}{\sqrt{14} } ,\frac{2}{\sqrt{14} } ,\frac{3}{\sqrt{14} }),\theta =\frac{\pi }{3}


那么与此相对应的四元数(下三行式子都是一个意思,只是不同的表达形式)
q=(cos(\frac{\theta }{2} ),sin(\frac{\theta }{2} )*vx,sin(\frac{\theta }{2} )*vy,sin(\frac{\theta }{2} )*vz)

### 无人机跟踪系统中的坐标系转换 在无人机跟踪系统中,坐标系之间的转换对于准确定位和追踪目标至关重要。通常涉及的坐标系包括但不限于:世界坐标系、相机坐标系、图像像素坐标系以及地理信息系统(GIS)所使用的经纬度高度(LLA)坐标系。 #### 坐标系定义 - **LLA (Latitude Longitude Altitude)**: 地理位置的标准表示方式,即纬度、经度和海拔高度。 - **ECEF (Earth-Centered Earth-Fixed)**: 是一种三维笛卡尔坐标系,原点位于地球质心,X轴指向本初子午线与赤道交点,Z轴沿地球自转轴正向。 - **Camera Coordinate System**: 对于安装有摄像头设备而言,其自身的局部坐标体系用于描述相对于摄像机光心的位置关系。 - **Pixel Coordinates**: 图像平面上各点对应的二维索引值(x,y),由传感器捕捉到的信息映射而成[^1]。 #### 转换过程概述 当涉及到从视频流获取的目标物体定位时,首先需要将检测框中心点从像素坐标变换至相机坐标系下;接着再进一步投影回真实世界的地理位置上。这一系列操作依赖于内外参矩阵参数校准结果来完成几何透视变化计算: 1. 使用已知的内参矩阵K和平移旋转矢量[rvec|tvec]可以实现从像素坐标(u,v)到相机坐标(Xc,Yc,Zc)间的相互转变; 2. 接着利用四元数或者欧拉角表达的姿态信息把上述得到的空间直角坐标映射成全球统一标准下的大地测量学参照框架内的数值形式——也就是常说的地心地固(ECEF)坐标; 3. 最终借助特定地区的椭球体模型(如WGS84),可求解出最终所需的地理坐标(lat,lon,h)。 ```matlab % 将像素坐标转换为相机坐标 function [xc, yc, zc] = pixel_to_camera_coords(K, rvec, tvec, u, v) % K is the camera intrinsic matrix % rvec and tvec are rotation vector and translation vector from solvePnP or similar function R = rodrigues(rvec); % Convert Rodrigues to Rotation Matrix inv_K = inv(K); uv_ones = [u; v; ones(size(u))]; xyz_c = R' * ((inv_K * uv_ones) - tvec); end ``` 为了提升坐标转换精度,在实践中往往还需要考虑大气折射效应等因素的影响,并采取适当的方法加以修正。此外,采用高阶椭球模型也是改善准确性的有效途径之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值