首页 / 专利分类库 / 测时学 / 无线电控制的计时器[2013.01] / 摄影测量时间同步的方法、装置、存储介质及程序产品

摄影测量时间同步的方法、装置、存储介质及程序产品

申请号 CN202410142995.9 申请日 2024-01-31 公开(公告)号 CN117806147A 公开(公告)日 2024-04-02
申请人 广州吉欧电子科技有限公司; 发明人 顾建伟; 李仁德;
摘要 本 申请 实施例 公开了一种摄影测量时间同步的方法、装置、存储介质及程序产品,因为GNSS数据、图片和 姿态 信息的时间戳均来自GNSS板卡计算出的GPS时间,可以提高摄影测量的 精度 。本申请实施例方法包括:通过GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,第一信息包括GNSS数据和第一时间戳,第二信息包括图片和对应的第二时间戳,第三信息包括姿态信息和对应的第三时间戳,第一时戳、第二时间戳和第三时间戳均来自GNSS板卡计算出的GPS时间;取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
权利要求

1.一种摄影测量时间同步的方法,其特征在于,包括:
通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;
将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;
取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
2.根据权利要求1所述的方法,其特征在于,所述GNSS数据包括经纬度信息和高程信息,及GPS时间;所述GPS时间包括GPS周数和周内秒。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述GPS时间计算得到第一时间戳;
将所述经纬度信息和高程信息,及对应的第一时间戳作为第一信息,通过GNSS板卡使用第一预置频率输出;
所述将第一信息保存在第一存储区,包括:
通过第一进程将所述第一信息保存在第一存储区。
4.根据权利要求2所述的方法,其特征在于,所述通过摄像头进行拍照得到图片,包括:
在当前秒内,通过摄像头使用对应的第二预置频率进行拍照得到多张图片;
所述将第二信息保存在第二存储区,包括:
根据所述GPS时间和所述第二预置频率,计算每张图片对应的第二时间戳;
通过第一进程将每张图片和对应的第二时间戳,作为第二信息保存在第二存储区。
5.根据权利要求4所述的方法,其特征在于,所述通过第一进程将每张图片和对应的第二时间戳,作为第二信息保存在第二存储区,包括:
根据第一预置频率,从所述多张图片中选取目标数量的图片;
通过第一进程将所述目标数量的图片和对应的第二时间戳作为所述第二信息保存在第二存储区;所述第一预置频率小于等于第二预置频率。
6.根据权利要求2所述的方法,其特征在于,所述通过惯性测量单元IMU获取姿态信息,包括:
在当前秒内,通过惯性测量单元IMU对应的第三预置频率获取多个姿态信息;
所述将第三信息保存在第三存储区,包括:
根据所述GPS时间和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳;
通过第一进程将每个姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区;第一预置频率小于等于所述第三预置频率。
7.一种摄影测量时间同步的装置,其特征在于,包括:
处理模,用于通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;
存储模块,用于将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;
所述处理模块,用于取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
8.一种实时动态测量设备,其特征在于,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1‑6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1‑6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1‑6中任一项所述的方法。

说明书全文

摄影测量时间同步的方法、装置、存储介质及程序产品

技术领域

[0001] 本申请涉及摄影测量领域,尤其涉及一种摄影测量时间同步的方法、装置、设备、存储介质及程序产品。

背景技术

[0002] 用摄影测量的方法测量前方被测物的坐标时,需要用带摄像头的实时动态测量(Real Time Kinematic,RTK)设备从不同度连续拍摄多张图片,同时还需要记录下来拍照时RTK的经度、纬度、高程三维坐标以及RTK姿态信息。测量时,RTK处于运动状态,经纬度坐标、高程和姿态信息时刻发生变化。为了使测量达到厘米级精度,图片和对应的经度、纬度、高程以及姿态信息在时间上要做到精确同步。比如,在测量时,第1秒零200毫秒时拍摄的图片需要用到第1秒零200毫秒的经纬度和姿态信息,不能用第1秒零400毫秒时的姿态信息。图片、经纬度和高程、姿态信息分别由摄像头、全球导航卫星系统(Global Navigation Satellite System,GNSS)板卡、惯性测量单元(Inertial Measurement Unit,IMU)三个不同的芯片输出,因此,三个芯片之间必须由引用某个相同的时间源,让数据在时间上做到同步,是个亟待解决的问题。发明内容
[0003] 本申请实施例提供了一种摄影测量时间同步的方法、装置、设备、存储介质及程序产品,因为GNSS数据、图片和姿态信息的时间戳均来自GNSS板卡计算出的GPS时间,从而同步摄影时GNSS数据、图片和姿态信息时,可以提高摄影测量的精度。
[0004] 本申请第一方面提供一种摄影测量时间同步的方法,可以包括:
[0005] 通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;
[0006] 将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;
[0007] 取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
[0008] 本申请第二方面提供一种摄影测量时间同步的装置,可以包括:
[0009] 处理模,用于通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;
[0010] 存储模块,用于将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;
[0011] 所述处理模块,用于取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
[0012] 本申请第三方面提供一种实时动态测量设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的方法。
[0013] 本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的方法。
[0014] 本申请实施例公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请实施例所述的方法。
[0015] 本申请实施例公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请实施例所述的方法。
[0016] 从以上技术方案可以看出,本申请实施例具有以下优点:
[0017] 在本申请实施例中,通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。因为GNSS数据、图片和姿态信息的时间戳均来自GNSS板卡计算出的GPS时间,在同步摄影时GNSS数据、图片和姿态信息时,可以取时间戳相同的GNSS数据、图片和姿态信息进行测量计算,从而提高摄影测量的精度。附图说明
[0018] 为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。
[0019] 图1为本申请实施例中摄影测量时间同步的方法的一个实施例示意图;
[0020] 图2为RTK设备中GNSS板卡、摄像头和IMU的一个连接示意图;
[0021] 图3为本申请实施例中摄影测量时间同步的装置的一个实施例示意图;
[0022] 图4为本申请实施例中实时动态测量设备的一个实施例示意图;
[0023] 图5为本申请实施例中实时动态测量设备的另一个实施例示意图。

具体实施方式

[0024] 本申请实施例提供了一种摄影测量时间同步的方法、装置、设备、存储介质及程序产品,因为GNSS数据、图片和姿态信息的时间戳均来自GNSS板卡计算出的GPS时间,从而同步摄影时GNSS数据、图片和姿态信息时,可以提高摄影测量的精度。
[0025] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。
[0026] 下面对本申请所涉及的一些术语做一个简要的说明,如下所示:
[0027] 摄影测量:是指运用摄影机和胶片组合测量目标物的形状、大小和空间位置的技术。
[0028] 实时动态(Real‑time kinematic,RTK)载波相位差分技术,是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标。这是一种新的常用的卫星定位测量方法,以前的静态、快速静态、动态测量都需要事后进行解算才能获得厘米级的精度,而RTK是能够在野外实时得到厘米级定位精度的测量方法,它采用了载波相位动态实时差分方法,是全球定位系统(Global Positioning System,GPS)应用的重大里程碑,它的出现为工程放样、地形测图,各种控制测量带来了新的测量原理和方法,极大地提高了作业效率。RTK(Real Time Kinematic)实时动态测量技术由基准站接收机、数据链、流动站接收机三部分组成。在基准站上安置1台接收机为参考站,对卫星进行连续观测,并将其观测数据和测站信息,通过无线电传输设备,实时地发送给流动站,流动站GPS接收机在接收GPS卫星信号的同时,通过无线接收设备,接收基准站传输的数据,然后根据相对定位的原理,实时解算出流动站的三维坐标及其精度(即基准站和流动站坐标差△X、△Y、△H,加上基准坐标得到的每个点的WGS-84坐标,通过坐标转换参数得出流动站每个点的平面坐标X、Y和海拔高H)。
[0029] 高程:指的是某点沿铅垂线方向到绝对基面的距离,称绝对高程,简称高程。某点沿铅垂线方向到某假定准基面的距离,称假定高程。
[0030] GPS时间,也称为GPS Time(GPST),是一种基于原子时基准的时间系统。它使用的基础是原子钟的计时方法,这是通过同步卫星组中的多个原子钟来实现的。GPS时间的特点是其时间基准固定且不会跳秒,这与UTC(Universal Time Coordinated,世界协调时间)不同,后者会定期加入或减去闰秒以保持与地球自转的同步。
[0031] 从全球定位系统(Global Positioning System,GPS)计时零点(1980年1月6号00:00:00)开始,到当前时刻,共累计多少整数周,就是GPS周;不足一周的换算成秒,就是周内秒。周内秒是从每周日的00:00:00,到当前时刻的秒数。
[0032] 卫星定向主要指全球导航卫星系统(Global Navigation Satellite System,GNSS),是能在地球表面或近地空间的任何地点为用户提供全天候的3维坐标和速度以及时间信息的空基无线电导航定位系统基于卫星载波相位信号差分测量原理,确定空间两点所成几何矢量在给定坐标系下的指向,以坐标北为方位基准,能够同时得到定位结果。全球导航卫星系统(GNSS)包括一个或多个卫星星座及其支持特定工作所需的增强系统。
[0033] IMU全称Inertial Measurement Unit,惯性测量单元,主要用来检测和测量加速度与旋转运动的传感器。大多用在需要进行运动控制的设备,如汽车机器人上。也被用在需要用姿态进行精密位移推算的场合,如潜艇、飞机、导弹和航天器的惯性导航设备等。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。
[0034] 在计算机中,输入输出控制(input/output control,ioctl)是一个专用于设备输入输出操作的系统调用,该调用传入一个跟设备有关的请求码,系统调用的功能完全取决于请求码。举个例子,只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)驱动程序可以弹出光驱,它就提供了一个对应的ioctl请求码。设备无关的请求码则提供了内核调用权限。ioctl这名字第一次出现在Unix第七版中,他在很多类Unix系统(比如Linux、Mac OSX等)都有提供,不过不同系统的请求码对应的设备有所不同。
[0035] 脉冲宽度调制(Pulse width modulation,PWM)是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或金半场效晶体管(Metal‑Oxide‑Semiconductor Field‑Effect Transistor,MOSFET,可简称为MOS)管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器数字信号对模拟电路进行控制的一种非常有效的技术。广泛应用在从测量、通信到功率控制与变换的许多领域中。
[0036] 系统级芯片(System on Chip,SoC),一般说来,SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
[0037] epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用输入输出(Input/Output,IO)接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统中央处理器(Central Processing Unit,CPU)利用率。
[0038] 下面以实施例的方式,对本申请技术方案,做进一步的说明,如图1所示,为本申请实施例中摄影测量时间同步的方法的一个实施例示意图,可以包括:
[0039] 101、通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息。
[0040] RTK测量设备可以通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,可以通过摄像头进行拍照得到图片,可以通过惯性测量单元IMU获取姿态信息。
[0041] 可选的,所述GNSS数据包括经纬度信息和高程信息,及GPS时间。
[0042] 可选的,所述GPS时间包括GPS周数和周内秒。
[0043] 需要说明的是,RTK设备包括全球导航卫星系统GNSS板卡、摄像头和惯性测量单元IMU。如图2所示,为RTK设备中GNSS板卡、摄像头和IMU的一个连接示意图。
[0044] 102、将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间。
[0045] 可选的,所述方法还可以包括:根据所述GPS时间计算得到第一时间戳;将所述经纬度信息和高程信息,及对应的第一时间戳作为第一信息,通过GNSS板卡使用第一预置频率输出;
[0046] 所述将第一信息保存在第一存储区,可以包括:通过第一进程将所述第一信息保存在第一存储区。
[0047] 可选的,根据所述GPS时间计算得到第一时间戳,可以包括:根据周内秒计算得到第一时间戳。
[0048] 需要说明的是,第一预置频率可以根据用户的实际需求而定,本申请不做具体限定。
[0049] 可选的,所述方法还可以包括:在根据所述GNSS数据计算出整秒到来的情况下,将PPS管脚从第一电平变为第二电平,所述第二电平的电压高于所述第一电平的电压。
[0050] 可选的,所述第一存储区、所述第二存储区和所述第三存储区,可以是缓存、内存等存储区域,本申请不做具体限定。
[0051] 可选的,所述方法还可以包括:配置GNSS板卡输出第一信息的输出频率,作为所述第一预置频率。
[0052] 可选的,所述方法还可以包括:在通过第一进程解析当前秒的第一信息的情况下,将下一秒的时间周内秒写到IMU。
[0053] 示例性的,RTK测量设备通过GNSS板卡搜索卫星,获取GNSS数据,GNSS板卡包括PPS管脚(为时钟脉冲输出脚),PPS管脚默认为第一电平(可以理解为低电平),每当GNSS板卡根据GNSS数据计算出整秒到来时,会短暂的拉高PPS管脚,变为第二电平(可以理解为高电平);还可以配置GNSS板卡输出第一信息的输出频率为第一预置频率。例如:第一信息为bin3消息,第一预置频率为5Hz,即每隔200毫秒(ms)输出一次,GNSS板卡在每秒的第0毫秒、第200毫秒、第400毫秒、第600毫秒、第800毫秒时输出一次bin3消息。
[0054] 以RTK测量设备配置GNSS板卡输出bin3消息的输出频率为5Hz,即每隔200ms输出一次,GNSS数据输出到GNSS板卡的串口1。bin3消息除了包含经纬度信息和高程信息外,还包括GPS周数和周内秒,周内秒精确到毫秒,可以根据周内秒计算出bin3消息的时间戳。bin3消息分别在每秒的第0毫秒,第200毫秒,第400毫秒,第600毫秒,第800毫秒输出一次。
如表1所示,为本申请实施例中bin3数据的前14位数据的数据格式示意说明。
[0055] 需要说明的是,bin3消息是GNSS板卡输出的一种二进制消息,包括GNSS板卡搜星数量;当前的GPS时间,包括GPS周数和GPS周内秒;当前的三维坐标,包括经度,维度,高程;水平移动速度等信息。从GNSS板卡输出的bin3消息中解析出来的周内秒单位是秒,精确到毫秒,例如1234.200。
[0056] 表1
[0057]
[0058] 示例性的,GNSS板卡的串口1连接到SOC ttyS2串口,可以实现第一进程,例如守护进程P1,守护进程P1打开ttyS2串口,可以用epoll技术监控串口数据,每当GNSS板卡存在串口有数据输出时,epoll触发通知守护进程P1读取数据。守护进程P1读取到的数据就是bin3消息。守护进程P1读取GNSS板卡的bin3消息,可以解析bin3消息的时间戳,即守护进程P1每读取到一个bin3消息,就解析出bin3消息的GPS周数和周内秒,假设解析到200毫秒、400毫秒、600毫秒或800毫秒的bin3消息时,就通过ioctl将下一秒的时间周内秒写到IMU驱动。例如,读取周内秒为1234800ms时,将在此时把GPS周数和1235000(毫秒为单位的周内秒值)写到IMU驱动。然后,守护进程P1把bin3消息放置到缓存区M1。
[0059] 因为写入操作本身是耗时的,为了保证IMU驱动总是能在每秒的0时刻更新数据,所以假设在当前这一秒的800毫秒时先把下一秒的数据计算出来,写入到IMU驱动,IMU驱动先把下一秒的数据备份。IMU驱动在每整秒都可以得到一个GPIO中断,在这个GPIO中断的中断处理函数内把提前写入的备份数据更新成当前周内秒的值。这样一来,可以最大程度的避免写入本身带来的延时。
[0060] 可选的,所述通过惯性测量单元IMU获取姿态信息,可以包括:在当前秒内,通过惯性测量单元IMU对应的第三预置频率获取多个姿态信息;
[0061] 所述将第三信息保存在第三存储区,可以包括:根据所述GPS时间和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳;通过第一进程将每个姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区;第一预置频率小于等于所述第三预置频率。
[0062] 可选的,所述根据所述GPS时间和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳,可以包括:根据所述GPS时间包括的周内秒和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳。这里IMU对应的第三预置频率,可以理解为IMU的中断频率,每中断一次,会重新读取一次IMU的姿态信息;所以,可以根据IMU的中断频率,计算读取一次IMU的姿态信息的周期。可以根据该周期,计算每次读取一次IMU的姿态信息的秒内的毫秒时间戳,从而,可以得到每个姿态信息对应的第三时间戳。
[0063] 可选的,通过第一进程将每个姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区,可以包括:根据第一预置频率,从所述多个姿态信息中选取目标数量的姿态信息;通过第一进程将所述目标数量的姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区。
[0064] 可选的,所述方法还包括:在根据所述GNSS数据计算出整秒到来的情况下,将PPS管脚从第一电平变为第二电平,通过IMU驱动注册通用输入/输出接口GPIO中断处理,以及通过IMU驱动注册数据准备(Data Ready)中断处理。
[0065] 可选的,通过IMU驱动注册通用输入/输出接口GPIO中断处理,可以包括:启动脉冲宽度调制(Pulse Width Modulation,PWM),以驱动摄像头进行拍照;更新当前周内秒的值;更新秒内毫秒值为零。
[0066] 可选的,通过IMU驱动注册数据准备中断处理,可以包括:读取IMU的姿态信息;根据IMU对应的第三预置频率更新秒内毫秒值;根据GPS周数和周内秒,以及更新的秒内毫秒值,计算每个姿态信息对应的第三时间戳。
[0067] 可以理解的是,RTK测量设备实现IMU驱动。IMU驱动提供GPS周数和周内秒的读写接口,每当有GPS周数和周内秒写入时,IMU驱动就把GPS周数保存到week,把周内秒保存到tow。其中,IMU获取到的周内秒总是一个整秒值,并且是下一个整秒的值,单位是毫秒。
[0068] 示例性的,RTK测量设备通过IMU驱动注册通用输入/输出接口(General‑Purpose Input/Output ports,GPIO)中断,中断源为PPS管脚,触发方式配置为上升沿触发。因此,每到整秒时,IMU驱动都能获得一个GPIO中断。
[0069] IMU驱动注册GPIO中断处理函数,做如下处理:
[0070] (1)启动脉冲宽度调制(Pulse Width Modulation,PWM),以驱动摄像头进行拍照。例如:设置PWM的频率为25Hz,极性为低变高。具体可以是先禁用再启用一个PWM,配置PWM的频率为25Hz,即PWM周期为40ms。PWM管脚前半个周期由低到高,持续20ms,后半个周期由高到低,持续20ms。这样,PWM总是在每个整秒时启动。因为PWM用来驱动摄像头进行拍照,每个PWM周期拍摄一张图片,每整秒先禁用PWM,再启用,是为了在每秒的0时刻初始化一次PWM,让PWM严格在每秒0时刻启动,这样可以避免PWM本身的误差。
[0071] (2)向守护进程P1发送信号S1,告知整秒到来。
[0072] (3)更新当前周内秒的值。例如:周内秒的值已经在上一秒的800毫秒时写入惯性测量单元(Inertial measurement unit,IMU)驱动,并且IMU驱动已经把这个值保存在tow,现在只需把tow赋值给周内秒cur_tow即可。
[0073] (4)更新秒内毫秒值cur_ms为0。
[0074] 示例性的,RTK测量设备启用IMU芯片的数据准备(Data Ready)中断,中断源为IMU芯片的Data Ready管脚。例如设置IMU的中断频率为500Hz,则IMU每秒钟产生500个Data Ready中断。
[0075] IMU驱动注册Data Ready中断处理函数,做如下处理:
[0076] (1)读取IMU的姿态信息。
[0077] (2)更新秒内毫秒值。这里秒内毫秒值cur_ms值加2。因为IMU的中断频率为500Hz,每秒钟产生500个Data Ready中断,即每隔2毫秒产生一次Data Ready中断,那么,每次中断后的秒内毫秒值就需要加2。这里的中断频率即为上述所说的IMU对应的第三预置频率。
[0078] (3)计算IMU的姿态信息基于当前周内秒的时间戳,计算公式为周内秒cur_tow+秒内毫秒值cur_ms。
[0079] (4)把IMU的姿态信息和对应的时间戳一起保存,等待守护进程P1读取。
[0080] 守护进程P1可以创建IMU的姿态信息读取线程T1,不停的从IMU驱动读取IMU的姿态信息。例如,IMU的中断频率为500Hz,IMU的中断周期为2ms,在IMU第一次读取姿态信息时,秒内的毫秒时间戳为0ms,第二次读取姿态信息时,秒内的毫秒时间戳为0+2=2ms,第三次读取姿态信息时,秒内的毫秒时间戳为0+2+2=4ms,依次类推。所以,在当前秒内,可以读取500次IMU的姿态信息,因为每组IMU的姿态信息都包含对应的时间戳,IMU的姿态信息读取线程T1判断每组IMU的姿态信息包含的时间戳,因为bin3消息的输出频率为5Hz,可以选择时间戳在每秒的0毫秒、200毫秒、400毫秒、600毫秒、800毫秒处,就把这组数据保存到缓存区M3。
[0081] 可选的,所述通过摄像头进行拍照得到图片,可以包括:在当前秒内,通过摄像头使用对应的第二预置频率进行拍照得到多张图片;
[0082] 所述将第二信息保存在第二存储区,可以包括:根据所述GPS时间和所述第二预置频率,计算每张图片对应的第二时间戳;将每张图片和对应的第二时间戳,作为第二信息保存在第二存储区;所述第一预置频率小于等于第二预置频率。
[0083] 需要说明的是,这里的第二预置频率可以理解为PWM的频率,PWM周期大于等于摄像头最大曝光时间。
[0084] 可选的,所述根据所述GPS时间和第二预置频率,计算每张图片对应的第二时间戳,可以包括:根据所述GPS时间包括的周内秒和PWM的频率,计算每张图片对应的第二时间戳。这里第二预置频率,可以理解为PWM的频率。根据PWM的频率,可以得到PWM周期;根据PWM周期,计算每次拍照得到图片的秒内的毫秒时间戳。
[0085] 可选的,所述通过第一进程将每张图片和对应的第二时间戳,作为第二信息保存在第二存储区,可以包括:根据第一预置频率,从所述多张图片中选取目标数量的图片;通过第一进程将所述目标数量的图片和对应的第二时间戳作为所述第二信息保存在第二存储区。
[0086] 示例性的,摄像头设置外部GPIO触发,触发方式为上升沿触发,假设设置摄像头最大曝光时间为10毫秒。
[0087] 守护进程P1的S1信号处理函数总是在每秒的0时刻执行。守护进程P1可以注册信号S1,并在信号处理函数中设置图片索引值camera_index为0,即守护进程P1在信号S1的处理函数中可以初始化图片编号camera_index的值为0,创建摄像头管理线程T2,摄像头管理线程T2不断从摄像头获取图片,每次获取一张图片,就把camera_index的值加1。
[0088] 设置摄像头的触发方式为外部GPIO触发,触发源为PWM,触发方式为上升沿触发,最大曝光时间设置为10ms。由上文可知,每秒的0时刻,PWM触发,管脚由低变高,行成一个上升沿,摄像头开始拍照。假设PWM周期为40毫秒,摄像头最大曝光时间10毫秒,这就保证了下一个上升沿来临时,上一次曝光已结束,摄像头处于空闲状态,可再次启动拍照。拍照结束,摄像头内核驱动会通知用户进程读取图片数据。
[0089] 第一次拍照得到图片的秒内的毫秒时间戳为0ms,第二次拍照得到图片的秒内的毫秒时间戳为0+40=40ms,第三次拍照得到图片的秒内的毫秒时间戳为0+40+40=80ms,依次类推。所以,在当前秒内,可以进行25次拍照,每次拍照得到的图片所对应的毫秒时间戳也可以计算得到。所以摄像头总是在每秒的0时刻开始拍照,在每秒的第0毫秒,第40毫秒,第80毫秒,第120毫秒……第960毫秒分别拍摄一张图片。摄像头管理线程T2获取到图片后,通过IMU的ioctl接口读取到周内秒cur_tow和GPS周数week,并计算出当前图片拍照时的周内秒值,计算公式如下:camera_tow=cur_tow+(camera_index–1)*40,单位为毫秒。因为上文中以bin3消息的输出频率为5Hz,即每隔200毫秒(ms)输出一次,GNSS板卡在每秒的第0毫秒、第200毫秒、第400毫秒、第600毫秒、第800毫秒时输出一次bin3消息为例进行说明的。那么,用于计算的图片的输出频率也是5Hz,这里对应选择camera_index等于1、6、11、16、21的图片,即拍照时刻(秒内时间戳)分别是每秒的第0毫秒,第200毫秒,第400毫秒,第600毫秒,第800毫秒的图片,再从IMU驱动获取到当前周内秒,就可以计算出图片的周内秒的时间戳,也即第二时间戳。再将camera_index等于1、6、11、16、21的图片和对应的第二时间戳保存到缓存区M2。
[0090] 103、取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
[0091] 示例性的,守护进程P1读取到GNSS的bin3消息,摄像头的图片数据,IMU的姿态数据,每份数据都包含基于周内秒的时间戳,单位是毫秒。然后对比这三种数据的时间戳,匹配时间戳相等的数据。
[0092] 守护进程P1创建数据匹配线程T3,因为缓存区M1、M2、M3分别保存了带时间戳信息的经纬度和高程、图片、姿态信息。时间戳的格式都是精确到毫秒的周内秒值。数据匹配线程T3分别从三个缓存区取数据,对比时间戳,取出时间戳相同的数据。至此,经纬度和高程、图片、姿态信息时间同步完成,可把数据打包发给算法程序参与测量计算。
[0093] 本申请所提供的一种时间同步的方法,可以让摄像头、GNSS板卡、IMU三个芯片输出的数据在时间上同步,因为经纬度和高程、图片、姿态信息的时间戳都基于GNSS板卡解算出来的GPS时间,时间来源相同。时间戳精度精确到了毫秒级,可大大保证数据的同步性。使用本申请的技术方案,可以提高摄影测量的精度。
[0094] 在本申请实施例中,通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。因为GNSS数据、图片和姿态信息的时间戳均来自GNSS板卡计算出的GPS时间,在同步摄影时GNSS数据、图片和姿态信息时,可以取时间戳相同的GNSS数据、图片和姿态信息进行测量计算,从而提高摄影测量的精度。
[0095] 如图3所示,为本申请实施例中摄影测量时间同步的装置的一个实施例示意图,可以包括:
[0096] 处理模块301,用于通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;
[0097] 存储模块302,用于将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;
[0098] 处理模块301,还用于取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
[0099] 可选的,所述GNSS数据包括经纬度信息和高程信息,及GPS时间;所述GPS时间包括GPS周数和周内秒。
[0100] 可选的,处理模块301,具体用于根据所述GPS时间计算得到第一时间戳;将所述经纬度信息和高程信息,及对应的第一时间戳作为第一信息,通过GNSS板卡使用第一预置频率输出;
[0101] 存储模块302,具体用于通过第一进程将所述第一信息保存在第一存储区。
[0102] 可选的,处理模块301,具体用于在当前秒内,通过摄像头使用对应的第二预置频率进行拍照得到多张图片;根据所述GPS时间和所述第二预置频率,计算每张图片对应的第二时间戳;
[0103] 存储模块302,具体用于通过第一进程将每张图片和对应的第二时间戳,作为第二信息保存在第二存储区;所述第一预置频率小于等于第二预置频率。
[0104] 可选的,处理模块301,具体用于根据所述GPS时间包括的周内秒和PWM的频率,计算每张图片对应的第二时间戳。
[0105] 可选的,处理模块301,具体用于根据第一预置频率,从所述多张图片中选取目标数量的图片;
[0106] 存储模块302,具体用于通过第一进程将所述目标数量的图片和对应的第二时间戳作为所述第二信息保存在第二存储区。
[0107] 可选的,处理模块301,具体用于在当前秒内,通过惯性测量单元IMU对应的第三预置频率获取多个姿态信息;根据所述GPS时间和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳;
[0108] 存储模块302,具体用于通过第一进程将每个姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区;第一预置频率小于等于所述第三预置频率。
[0109] 可选的,处理模块301,具体用于根据所述GPS时间包括的周内秒和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳。
[0110] 可选的,处理模块301,具体用于根据第一预置频率,从所述多个姿态信息中选取目标数量的姿态信息;
[0111] 存储模块302,具体用于通过第一进程将所述目标数量的姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区。
[0112] 如图4所示,为本申请实施例中实时动态测量设备的一个实施例示意图,可以包括如图3所示的摄影测量时间同步的装置。
[0113] 如图5所示,为本申请实施例中实时动态测量设备的另一个实施例示意图,可以包括:
[0114] 存储器501和处理器502,存储器501存储有可在处理器502上运行的计算机程序;
[0115] 处理器502,用于通过全球导航卫星系统GNSS板卡搜索卫星,得到GNSS数据,通过摄像头进行拍照得到图片,通过惯性测量单元IMU获取姿态信息;
[0116] 存储器501,用于将第一信息保存在第一存储区,将第二信息保存在第二存储区,将第三信息保存在第三存储区,所述第一信息包括所述GNSS数据和第一时间戳,所述第二信息包括所述图片和对应的第二时间戳,所述第三信息包括所述姿态信息和对应的第三时间戳,所述第一时戳、所述第二时间戳和所述第三时间戳均来自GNSS板卡计算出的全球定位系统GPS时间;
[0117] 处理器502,还用于取时间戳相同的GNSS数据、图片和姿态信息进行测量计算。
[0118] 可选的,所述GNSS数据包括经纬度信息和高程信息,及GPS时间;所述GPS时间包括GPS周数和周内秒。
[0119] 可选的,处理器502,具体用于根据所述GPS时间计算得到第一时间戳;将所述经纬度信息和高程信息,及对应的第一时间戳作为第一信息,通过GNSS板卡使用第一预置频率输出;
[0120] 存储器501,具体用于通过第一进程将所述第一信息保存在第一存储区。
[0121] 可选的,处理器502,具体用于在当前秒内,通过摄像头使用对应的第二预置频率进行拍照得到多张图片;根据所述GPS时间和所述第二预置频率,计算每张图片对应的第二时间戳;
[0122] 存储器501,具体用于通过第一进程将每张图片和对应的第二时间戳,作为第二信息保存在第二存储区。
[0123] 可选的,处理器502,具体用于根据第一预置频率,从所述多张图片中选取目标数量的图片;
[0124] 存储器501,具体用于通过第一进程将所述目标数量的图片和对应的第二时间戳作为所述第二信息保存在第二存储区;所述第一预置频率小于等于第二预置频率。
[0125] 可选的,处理器502,具体用于根据所述GPS时间包括的周内秒和PWM的频率,计算每张图片对应的第二时间戳。
[0126] 可选的,处理器502,具体用于在当前秒内,通过惯性测量单元IMU对应的第三预置频率获取多个姿态信息;根据所述GPS时间和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳;
[0127] 存储器501,具体用于通过第一进程将每个姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区;第一预置频率小于等于所述第三预置频率。
[0128] 可选的,处理器502,具体用于根据所述GPS时间包括的周内秒和所述IMU对应的第三预置频率,计算每个姿态信息对应的第三时间戳。
[0129] 可选的,处理器502,具体用于根据第一预置频率,从所述多个姿态信息中选取目标数量的姿态信息;
[0130] 存储器501,具体用于通过第一进程将所述目标数量的姿态信息和对应的第三时间戳作为所述第三信息保存在第三存储区。
[0131] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
[0132] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0133] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0134] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0135] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0136] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0137] 以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
QQ群二维码
意见反馈