CMOS 探测器星敏感器的跟踪窗口星图处理方法
2023-09-06王燕清郑循江钟金凤杜伟峰
王燕清,郑循江,钟金凤,杜伟峰,张 磊
(上海航天控制技术研究所,上海 201109)
0 引言
姿态测量系统是航天飞行器的重要组成部分,它是控制航天器稳定或平稳运动的前提,而姿态测量系统中的首要关键部件就是姿态敏感器。随着航天技术的不断发展,对航天飞行器姿态的测量精度也提出了更高的要求。尤其商业微小卫星受体积、质量、功率、成本等条件约束,需要配置低功耗、轻小型、低成本的姿态敏感器。星敏感器是一种高度自主的姿态敏感器,通过探测器对星空成像,测量恒星矢量在星敏感器坐标系中的分量,并利用已知恒星的精确位置来确定卫星相对于惯性坐标系的三轴姿态。由于星敏感器是迄今为止最精密且漂移最小的姿态测量部件,已经成为卫星上必不可少的姿态敏感器[1-3]。星敏感器的测量精度和动态性能是衡量星敏感器性能的最重要指标。分析影响测量精度和动态性能的因素,提高星敏感器的姿态测量精度和动态性能,是星敏感器研究中需要解决的关键问题。对地遥感测量卫星的分辨率已经达到了亚米级,对于卫星的控制和测量精度的要求已经优于5(°)/s。卫星初始入轨、快速机动、大角度调姿等条件对星敏感器动态性能提出了很高要求[4-5]。传统的星敏感器在精度和动态性方面无法满足现有需求[6-9]。
星敏感器开始工作时为初始姿态捕获模式,进行全天的星图匹配和识别,所以搜索和匹配花的时间比较多,一般识别过程需要秒级的时间,这对于实时姿态的输出是不利的。经过全天星图识别获得初始姿态后,星敏感器自动进入星跟踪模式。全天识别初始捕获时间一般小于5 s,随后的大部分时间星敏感器处于星跟踪模式,而跟踪模式不需要进行全天搜索和识别,所以跟踪模式处理时间短。初始姿态捕获只有在起始或跟踪丢失时才进行,如果跟踪模式非常稳定,则经过初始姿态捕获,星敏感器就一直处于实时跟踪的状态。因此实时跟踪是星敏感器的主要工作模式之一,直接影响星敏感器的整体性能。星跟踪模式下星图成像质量和快速处理的能力的提高,对星敏感器整体的精度和动态性能的影响非常明显,因此研究此星图处理算法是非常有意义的[10-13]。
目前国内外主流星敏感器公司主要有2 类产品,其中,1 类产品是高精度高可靠星敏感器,其主要特点为精度高、寿命长、质量体积大和价格高;另1 类产品是微小型星敏感器,其主要特点为质量尺寸小、价格便宜,精度、数据更新率等性能一般。根据目前商业卫星对控制和测量精度的要求,国内外的星敏感器在精度和动态性能指标上都不能满足新的航天飞行器的要求。如德国Jena 的ASTRO CL 星敏感器的静态测量精度为6″/48″,法国Sodern 公司的AURIGA SA 星敏感器的静态测量精度为6″/40″。
现有的星跟踪算法主要有3 类,第1 类为窗口法,第2 类为质心跟踪法,第3 类为滤波算法。文献[14]提出的星跟踪算法需要先对图像根据阈值粗筛检测到星点像素,然后在其周围开窗口求取精确的质心坐标。该算法需要先求取阈值,并对全帧图像数据进行筛选,处理时间长。文献[15-16]提出的星跟踪算法主要根据之前连续两帧的姿态数据来计算角速度和预报当前的姿态。该算法提供了预报的星像坐标,并没有给出具体的指导星敏感器在该像素坐标开窗、探测器的驱动和采集等详细方法。文献[17]提出的主要是基于基于卡尔曼预测的跟踪算法,该算法需要借助先验信息对星点轨迹的建模,在计算机平台上完成了星跟踪仿真实验,并未给出该算法应用到具体星敏感器硬件平台的具体实施方法和测试效果。文献[18]提出的星跟踪算法,利用星矢量与角速率间关系进行星点预测,但是在大动态角速度下,角速率估计会误差随之增大。
文中的星图处理算法,深入分析了影响星敏感器精度和动态性能的成因,并根据星敏感器的电路框架以及CMOS 探测器特点,给出了一种星跟踪模式下的星图处理算法,根据之前帧的姿态数据预测当前的姿态,并利用预测姿态信息指导星敏感器下一帧的开窗区域,给出了探测器的图像驱动和采集具体方法,应用到实际的星敏感器硬件平台上,并通过动态光星模和外场观星试验验证,数据分析结果证明该算法可有效提高星敏感器整机的精度和动态性能。
1 星图处理算法
1.1 星跟踪原理
星敏感器在全天识别成功后,星敏感器即进入星跟踪模式,在星跟踪模式下的图像处理算法由以下步骤组成:
1)跟踪准备,角速率估计;
2)预测光轴指向;
3)预测视场内的导航星;
4)预测的导航星与实测星点匹配;
5)定姿星筛选;
6)基于ESOQ2 算法进行姿态解算;
7)Kalman 滤波;
8)更新姿态四元数和角速率。
星跟踪的目的是:在具备了姿态先验信息后,再快速建立数字星图中已提取出的星点与导航星库中存储恒星的对应关系。
全天识别成功后,已算得全天捕获成功后的四元数Q=[q0,q1,q2,q3],(q0为标量,下同),星敏感器即自主转入星跟踪模式。
为了方便描述该星跟踪算法,后面论述中假设星跟踪过程中的第k-1 帧星图的识别结果已知,对当前第k帧的观测星图(星敏感器采集到的星图)进行跟踪识别,星跟踪算法原理框图如图1 所示,图中对每个步骤进行详细描述。图中ESOQ2(Second EStimator of the Optimal Quaternion)为姿态确定算法,Kalman 滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。
图1 星敏感器星跟踪算法原理框Fig.1 Principle block diagram of the star sensor tracking algorithm
步骤1)描述星跟踪的准备工作主要根据前几帧星图的姿态四元数估计出当前帧的星敏感器的角速率。步骤2)描述预测光轴指向是基于第k-1 帧算得的姿态四元数Qk-1,可以计算对应的星敏感器光轴指向。步骤3)根据星表中保存有导航星在天球坐标系下的坐标(赤经、赤纬)、亮度(星等)、星号等信息,得到在光轴指向下某一定天区范围(星敏感器视场)的导航星坐标集合;步骤4)经过星敏感器透视投影变换,即将此范围内导航星的坐标从天球坐标系向图像坐标系的变换(将星表中星体的赤经、赤纬信息转化为图像传感器感探测器面上的位置坐标信息),可以得到第k帧参考星图,此参考星图中所有的导航星信息均已知,建立跟踪星列表,与探测星列表进行匹配。以各导航星坐标为中心,在半径为2R(R为星跟踪半径,取值与星敏感器运动的角速度有关)的圆形范围内,查看第k帧星点质心数据包中是否存在相应的实测星点,存在且唯一,则完成匹配;若预测的导航星与实测星点匹配失败,则退回至全天识别模式,若匹配成功执行步骤5)~步骤8),随后进行下一拍星跟踪。利用第k帧观测星图的识别结果产生第k+1 帧参考星图,用以实现对第k+1 帧观测星图的识别。如此循环,可以实现星体的跟踪。
1.2 跟踪窗口设置
星敏感器进行全天球识别时,因无当前天区的先验姿态位置信息,所以需要驱动星敏感器的探测器处理模块对拍摄的整幅星图进行处理,并提取星点,即采用全帧式图像处理。全天识别成功并积累多拍姿态信息后星敏进入稳态星跟踪模式,在星跟踪模式下星敏感器根据先验姿态和角速度信息,驱动探测器模块只对部分图像进行星点提取处理,即采用局部式图像处理。
本文利用星跟踪模式下已知的姿态和角速度先验信息,将当前天区视场内星库中的星点(导航星)转换到探测器平面内,并根据该导航星理论位置对该区域像素进行处理和星点提取。以大小为2 048×2 048 像素的探测器面阵为例,该窗口跟踪设置方式具体描述如下:
1)根据恒星在星敏感器探测器像平面上成高斯弥散斑的大小特征[19],星敏感器系统的80%的能量会集中在4×4 像素的区域内,一般恒星的能量分布范围都在8×8 像素的区域内,因此将探测器面阵以8×8 像素为单元,均等划分为65 536 个网格。
2)根据探测器图像数据逐行依次读出的物理特性,行方向对齐的256 个网格组成1 个图像条带,整个探测器面阵被分割成256 个条带,如图2 所示
图2 探测器面阵分割Fig.2 Division diagram of the detector array
3)根据当前星敏姿态和角速度信息预测星敏视场天区内导航星位置,并记录其所在的网格编号作为待处理的窗口波门图。当导航星点坐标与网格边界的距离较近时,相邻网格也被记录,因此一个波门图像可能由1 个、2 个或4 个网格组成。波门采集如图3 所示,设某颗恒星的预测位置由黑色十字标示,该恒星所在网格由阴影标示,提出波门采集要求时,应在图像条带中选择包含预测星点弥散斑的波门,将波门对应的行坐标与列坐标记录,作为每个网格的位置(x,y)坐标。
图3 预测星点波门Fig.3 Predicted star gate diagram
4)因为将所有导航星对应的网格图像进行存储、处理会增大存储器成本和CPU 处理的运算量,通常会对处理的网格总数或条带总数进行限制。当导航星点对应的波门网格数超过限制时,按星等优先级进行控制。
5)根据预测的导航星位置,对上述波门图像进行处理并提取星点,完成波门窗口设置以及波门内星点提取。
以星敏感器CMOS 探测器CMV4000 为例,从存储空间资源、图像读出时间和质心定位精度等几个方面,来分析传统图像处理方式和基于跟踪窗口设置的图像处理方式之间的差异。
传统的星图处理算法主要是分为2 个部分,首先,处理器读取图像数据并对其进行阈值分割、连通性分析和内插细分定位后,得到星点的有效坐标信息并保存,完成对图像的星点提取工作。其次,处理器根据星点信息采用三角形算法,使星点构成的三角形模式与导航星库中的三角形进行匹配。这种传统的星图处理算法由于需要对整个图像进行读取和处理,需要的时间较长,而且容易引入探测器的噪声和环境干扰,产生假星点影响整体精度,同时计算速度慢影响动态性能[26-27]。
传统图像处理方式需要将整个探测器图像进行存储,探测器有2 048 行,2 048 列像素,每个像素按 照8 bit 存储,需要2 048×2 048×8 bit=33 554 432 bit 存储空间。
跟踪窗口设置图像处理方式,根据实际星敏感器姿态算法需要的探测星数要求30 颗(上限)为例,并且按照星点处于4 个网格的交界处最差情况,最多需要的存储空间为30×4×8×8×8=61 440 bit存储空间。从图像输出时间分析,根据图像传感器CMV4000 的数据手册可以查询到,读出时间为
式中:T为图像读出时间;Tm为探测器输入主时钟周期;Noutput为图像输出通道数;Nline为图像输出行数。
传统图像处理方式需要驱动探测器输出整张图像,采集后进行处理,探测器输入主时钟频率为5 MHz,时钟周期Tm为200 ns,按照4 通道输出,Noutput为4,整图输出行数Nline为2 048。因此可以计算得到,图像传感器输出整张图像时间T为211.4 ms。
跟踪窗口设置图像处理方式由于只要输出预测星点附近的图像数据,根据实际星敏感器姿态算法需要的探测星数要求30 颗(上限)为例,并且按照星点处于4 个网格的交界处最差情况,最多需要的输出的图像行数为30×2×8=480 行,图像输出时间T1为49.5 ms。
星敏感器是姿态测量敏感器,在相同的姿态识别算法条件下,姿态精度取决于测量星点坐标的准确度,星点坐标的计算中阈值起到关键作用,阈值用来分割图像中的星点和背景,其取值的合理会影响到星点质心的精度。
跟踪窗口设置图像处理算法是以每个导航星4个网格的形式(16×16 pix)存储波门图像,以预测的导航星坐标为中心,处理10×10 pix 范围内的图像数据,在提取星点前,首先确定星点提取阈值,阈值在计算得到的灰度均值基础上,累加灰度偏移量得到,计算方法如下:
1)计算16×16 pix.范围内的灰度均值m;
2)星点提取阈值
式中:m为该像素所在子区域的灰度均值;Offset为灰度偏移量。
在传统的星图处理算法中,Offset的值根据灰度均值自适应调整,考虑到整个图像阵列内未知的噪声和坏像元等因素,为了避免错误信息的干扰,一般取灰度均值1/2,传统的星图处理算法中的m值的选取是整张星图的灰度平均值,由于星空背景大多情况下是黑暗的,因此这个灰度均值相对于恒星星点附近能量的均值存在误差,通常是过低,均值过低会导致星点提取阈值偏低,从而会受到噪声干扰,提取出假星点,影响星图识别的姿态精度。在跟踪窗口设置图像处理算法中,由于星点信息是之前四元数姿态信息预测计算得到,因此只要考虑星点附近窗口内的像素,受到像素随机噪声、坏像元和环境干扰的因素降低,在求得子区域的灰度均值后,灰度偏移量的值可以取小一些。因此,跟踪窗口图像处理方法既避免了全局图像灰度均值带来的噪声、坏像元等环境因素的干扰,同时在窗口范围内计算得到更加精确的均值,再通过降低阈值偏移量,使得星点弥散斑的效应充分得到利用,筛选出的有效像素数量提升4 倍。在后续应用质心法计算星点中心坐标时,质心定位精度可以从传统的1/20 像素提升到1/50 像素。星点质心精度的提升,可以加快三角形角距匹配速度,减少误匹配的概率,为最后姿态识别和精度提升提供保证,传统星图处理算法和跟踪窗口设置图像处理算法的对比见表1。
表1 传统星图处理算法和跟踪窗口设置图像处理算法的对比Tab.1 Comparison between the traditional star image processing algorithm and the proposed tracking window algorithm
相对于传统方式,将整个探测器图像进行存储并从整个探测器图像中通过逐行扫描提取星点方式,基于跟踪窗口设置的图像处理方式大幅降低了图像存储空间和处理时间,在降低存储器成本的同时提高姿态数据更新频率,从而实现星敏感器动态性能和的提升。同时预测姿态信息选择合适的窗口范围,选取合适的阈值,充分利用星点弥散效应,提高星点质心定位精度,从而实现提高星敏感器姿态精度的效果。
2 试验结果
2.1 试验方法
星敏感器主要性能指标很大程度上与星图处理算法设计相关。基于外场观星试验对本文所述算法进行验证,验证内容如下:1)静态精度;2)动态性能;3)数据有效率。
精度测试试验方法:在地速条件下,垂直对天,利用地速的稳定性。分析星敏感器垂直对天时的观星实测数据,画出数据曲线。以多项式拟合四元数样本点,得到参考四元数曲线,将实测四元数与参考四元数做差,并转化为三轴姿态角,可得到姿态误差曲线[20-25]。
动态性能测试试验方法:控制二维观星转台绕产品X或Y轴以一定角速度旋转运动,观察不同速度下遥测数据中的数据有效标志以及星点数。
2.2 实际测试
外场观星对比试验中,应用传统星图算法的星敏感器可稳定跟踪的最高角速度为0.8(°)/s,采用跟踪窗口设置图像处理算法的星敏感器可稳定跟踪的最高角速度为3(°)/s。
测试方法:控制二维观星转台绕产品X或Y轴以一定角速度旋转。
控制转台,使星敏感器按照0.6、0.7、0.8、0.9、1.0、2.3、2.8、3.0(°)/s 的速度运动,观察不同速度下遥测数据中的数据有效标志以及星点数,有效标志以及星点数曲线如图4 所示。
图4 传统图像处理算法星敏感器在不同角速度下数据有效标志以及星点数曲线Fig.4 Valid data marks and star points of the star sensor obtained by the traditional star image processing algorithm under different angular velocities
由图4 可得星敏感器在以角速度0.6、0.7(°)/s机动过程中,可以稳定跟踪,数据有效率为100%,星敏感器在以角速度0.8(°)/s 机动过程中,可以稳定跟踪,数据有效率为99.2%,在星敏感器0.9(°)/s机动过程中,数据有效率为73.3%,不能稳定跟踪。用跟踪窗口处理算法星敏感器三轴角速度曲线如图5 所示,在不同角速度下数据有效标志以及星点数曲线如图6 所示。
图5 采用跟踪窗口处理算法星敏感器角速度曲线Fig.5 Angular velocity curves of the star sensor processed by the tracking window algorithm
图6 跟踪窗口处理算法星敏感器在不同角速度下数据有效标志以及星点数曲线Fig.6 Valid data marks and star points of the star sensor obtained by the tracking window processing algorithm algorithm under different angular velocities
由图6 可得,星敏感器以角速度1.0、2.3、2.8、3.0(°)/s 转动时,数据有效率100%,可以稳定跟踪。传统星图处理算法的星敏感器三轴姿态精度如图7 所示。
图7 传统星图处理算法的星敏感器姿态精度Fig.7 Attitude accuracy of the star sensor based on the traditional star image processing algorithm
如图7 所得,星敏感器使用传统星图算法,垂直对天观测数据进行分析,计算三轴姿态精度,得到三轴姿态精度分别为Z轴4.41(°)/s,Y轴4.64(°)/s,X轴27.23(°)/s。应用跟踪窗口设置星图处理算法的星敏感器三轴姿态精度如图8所示。
如图8 所得,星敏感器使用跟踪窗口星图处理算法,垂直对天观测数据进行分析,计算三轴姿态精度,得到三轴姿态精度分别为Z轴2.05(°)/s,Y轴2.17(°)/s,X轴15.91(°)/s。
星敏感器采用不同星图处理算法的主要性能参数对比见表2。
表2 星敏感器不同星图处理算法主要性能参数对比表Tab.2 Main performance parameters of the star sensor obtained by different algorithms
3 结束语
本文提出的这种星图处理算法,在星跟踪环节,基于姿态信息和导航星库得到预测导航星,并对其升序排列,通过坐标系旋转和透视投影变换,得到预测星点坐标。根据星敏感器选用CMV4000 探测器特点,对预测星点相邻区域进行合并得到探测器开窗的起始和结束位置,星图读出时间减少1/3,提高数据更新率。对预测星图与实测星图进行匹配,求取新的姿态信息。该星图处理算法通过外场观星试验数据的分析,星敏感器的主要性能指标精度从4.5″(3σ)提升到2.1″(3σ),动态性能从0.8(°)/s 提升到3.0(°)/s,证明在精度和动态性能方面均有显著效果。给出了一种星敏感器的星图处理方法和试验验证结果,为提高星敏感器的姿态精度、动态跟踪以及数据有效率等核心性能提供了参考。