三、FSAS + Novatel接收机和相机时间同步、数据保存、解码等 细节说明

  • Post author:
  • Post category:其他



一、器件说明

1、GNSS 接收机是

P



ropak6

,


如下图所示:



具体得介绍:

1、

https://blog.csdn.net/hltt3838/article/details/110622732

2、

二、NovAtel Connect 2.3.2 版本 操作说明_贵在坚持,不忘初心的博客-CSDN博客

2、相机是

Balser

相机



具体得介绍:



1、

ROS USB相机 的 详细介绍_贵在坚持,不忘初心的博客-CSDN博客_usb相机

2、

Basler ace 相机软件设置、 硬件连接、软件触发,程序硬件触发全套详细资料_贵在坚持,不忘初心的博客-CSDN博客_basler相机软件使用手册


二、具体实现


1、对于相机:


选择

硬件触发

模式,当外部触发信号(


单片机的脉冲或者GNSS接收机的 20HZ pps


) 连接相机得

Lin1

时,相机保存图像;

具体软件设置如下:(

软件设置一次,重启相机后仍然有效果

):


以上便是相机的

软件设置




实现效果是


:当给相机


Line1 端口


一个脉冲时,相机便可以自动保存图片(

自己写的程序

),

并且 相机的


端口Line2


可以输出 与 脉冲

同等频率



曝光脉冲

,可以用示波器看一下! 没有接收机的 PPS 脉冲 也可以 买个单片机试一下!


2、对于接收机:

首先怎么去连接线路,如下图:(


什么都不用设置,直接连接




COM1

端口 与上位机进行连接,具体的连接方式看我的上面关于接收机的博客:

二、NovAtel Connect 2.3.2 版本 操作说明_贵在坚持,不忘初心的博客-CSDN博客

然后把 下面的


9线端口


和 接收机的


I/O


连接,接收机的端口 和 对应的线如下所示:(


右边的线接在 I/O 上面






右边的 9根 I/O 线代表的意思如下:  (



本人把 2-pps 、4-Event1、9-GND 单独引了出来,其他没用到




接收机的硬件 简单已经连接,具体的细节我们看上面的 连接,现在我们把接收机供电,把

9 线I/O口

中的

地线

连在 示波器探头的地,

并测量


2号pps 线


的信号,我们可以发现,示波器上的频率是

1HZ,

但是我们需要的相机的频率是

20HZ,

怎么办?


在软件的串口输入一下信息:

ppscontrol enable positive 0.05 25000



输入位置在下图中的:




Console Window




里面的  “



Enter your Commend





完成上面的命令后,你发现 你的pps端口输出的频率变成了 20HZ,


ppscontrol enable positive 0.05 25000


命令具体的意思如下:

再说一下 接收机的


9线I/O


口中的

4- Event1

,    通俗的解释就是,

当这个端口 检测到脉冲时, 接收机便可以记录脉冲对应的时间

时间是

20HZ 的 GPS时间

,如下图所示,我们只要提取自己有用的信息即可:

这是标准的GPS 时间,我们只要提取 对应的相机时间 就行了,就是 蓝色标记下面的(

0.05s 间隔,20HZ



那这个文件怎么保存的呢?



在上面的:




Console Window




窗口里面的  “



Enter your Commend



”,  输入:




log mark1timea onnew

对用的串口 便会出现 相关的 GPS 标准时间,就是上面的txt文件 对用的,但是我们需要把这个时间文件保存下来,怎么保存,

点击 下图的


五角星


对应中 的内容,你就可以 发现 能够

保存数据



说明:



3

保存的是

串口输出

的文件,当串口没有输出时,是没有数据对的;

4

是 清除串口数据;

1

是 导入命令;


2

是输出 .gps 文件,但是 没有GPS信号 时,输出的文件解码不了,这个需要注意!

所以相机和GNSS接收机做时间同步怎么实现的? 下面我们理清一下思路!

把 接收机的

9线 I/O

口 中的


2-PPS


产生的 20HZ 的pps 脉冲给相机的


Line1 端口


, 这时相机的


Line2 端口


会产生 20HZ的 曝光脉冲;

再把


Line2 端口


产生的 20HZ 曝光脉冲 给  接收机的

9线 I/O

口 中的


4-Event 端口



这时我们便可以 通过


输入:




log mark1timea onnew

命令显示 相机20HZ的 GPS时间





并点击 上图

五角星

中的内容 对时间进行保存和 提取即可!当然,图像我们也会保存的,

这时,我们即保存了图片,也得到了 每张图片的GPS时间,而这个时间也会输出对用的GPS位置,从而实现了硬件的同步,Understand ?

串口结束命令



unlogall COM1  对应指令




//  串口1 指令的结束



unlogall COM1




//串口1所有指令的结束



unlogall




//所有串口指令的结束


3、接收机数据存储和拷贝


(1) 板载记录操作



***********************************方法一****************************************


设置指 令示例如下:


LOG FILE RANGEB ONTIME 1



//输出原始数据记录在板卡


LOG FILE RAWEPHEMB ONTIME 1



//输出 GPS 原始星历记录在板卡


SAVECONFIG



//保存命令设置


设置指令后按下如图 “按键”开始记录,

LED 闪烁表示正在存储数据



再次按键结束记录






数据会以

默认

的名称保存到板载存储器中



注意:




LOG DIRENT





命令可以


查看板卡里面的存储文件


***********************************方法二****************************************

得到 包含 GNSS原始数据 和 IMU原始数据的  XXX.LOG文件



  • LOGFILE OPEN XXXX.LOG



    //数据会被记 录到 XXXX.LOG 文件中


  • LOG FILE RANGEB ONTIME 1



    //输出原始数据记录在板卡


  • LOG FILE RAWEPHEMB ONTIME 1



    //输出 GPS 原始星历记录在板卡


  • LOG FILE bdsephemerisb ONTIME 1

    //


    输出 北斗 原始星历记录在板卡


  • log file rawimub onnew      //  IMU数据,bin文件



// 有


FILE


便可以保存到 接收机硬盘中,没有


FILE


在串口打印出来 ,


rawimu


b文件,  不是 a, 这样后面才能用GINS解码 到 .bin文件,并且当我们连iIMU-FSAS 传感器时,这个语句才会有用,具体的 iIMU-FSAS 指令可以参考连接:


iIMU-FSAS 参考系统_贵在坚持,不忘初心的博客-CSDN博客



  • LOGFILE CLOSE





    //使用命令停止记录数据


总结:GNSS、iIMU-FSAS、相机 数据采集 步骤



步骤一:


如上所述,连接好相机的接线,保证接线稳定;GNSS、iIMU-FSAS 接线完好,软件可以正常显示GPS 位置信息


步骤二:

记录GPS,iIMU-FSAS 的信息到接收机 存储卡中;



  • LOGFILE OPEN XXXX.LOG



    //开始记录数据,数据会被记 录到 XXXX.LOG 文件



    • LOG FILE RANGEB ONTIME 1



      //输出原始数据记录在板卡


    • LOG FILE RAWEPHEMB ONTIME 1



      //输出 GPS 原始星历记录在板卡


    • LOG FILE bdsephemerisb ONTIME 1

      //


      输出 北斗 原始星历记录在板卡


    • log file rawimub onnew​​​​​​​


      ​​​​​​​





      //


      输出 IMU数据记录在板卡




  • LOGFILE CLOSE





    //使用命令停止记录数据,


    当你采集完数据再停止 呀,别忘了 !!!


步骤三:

让 PPS 输出 20HZ的脉冲信号,为相机采集图片 准备



  • ppscontrol enable positive 0.05 25000

    // 此时,PPS 给相机20HZ频率,相机输出20HZ 曝光脉冲给接收机 EVENT1


步骤四:

一个电脑在 Window 下用软件 串口 打印 20HZ时间数据,

同时

,另一个电脑在 Linux下面运行数据采样程序


1、20HZ时间数据打印:



log mark1timea onnew



或者


在开一个文件加写数据:(后面测试一下,不知道是否可以打开两个文件,最后统一关闭!)



LOG FILE OPEN image_time.LOG



log file mark1timea onnew



SAVECONFIG


2、Linux 下采集图像保存到  ”




/media/hltt3838/DATA/Beihang_data/image



/

”       (自己写的程序)



cd my_c++/VINS_test/BUAA_robot/src/Sensors





catkin_make -DCATKIN_WHITELIST_PACKAGES=””





source  devel/setup.bash





roslaunch hardware_trigger_cam camera.launch


注意啦,

1 2 一定尽量保持同时,这是目前想到的方法


步骤五:

开闭文件 和 打印串口 图像时间(

点击串口右上角标识




LOGFILE CLOSE



**********************************************************************************


(2) 数据拷贝和数据删除



1)通过 U 盘拷贝数据


,数据拷贝命令如下:


LOG DIRENT



//查看板载存储文件列表


DOSCMD COPY




MYFILE.LOG



//拷贝文件名



MYFILE.LOG



的文件


SETFILECOPYMODE AUTO_ALL



/


/插 u 盘自动拷贝并删除所有文件,  这个慎重选择,可以不输入也可以拷贝数据


数据拷贝过程中,指示灯会闪烁红灯,当闪烁停止,指示灯处于常亮时,数据已拷 贝完毕,拔出 U 盘即可



2)删除数据 ,



数据删除命令如下:


DOSCMD DEL FILENAME.LOG



//删除文件名 FILENAME.LOG 文件


DOSCMD DEL *



//删除所有文件(需要等待一段 时间,删除后会提示 OK)

如果复制所有文件,1.U 盘需为空盘;2.复制后板载数据会被清空; 如果不需复制所有文件,则 U 盘不需要为空。


注意:

如果出现 disk  busy  ,     输入:


LOGFILE CLOSE


4、LOG 文件的转换

根据


方法二


得到的

XXX.LOG

文件, 用

GINS 软件

进行解码,设置图如下所示:



对 LOG 文件 进行解码



经过解码便可以得到

.o 文件

(

GNSS的数据

)、

.bin文件



IMU数据

),IMU的数据是师兄的后软件可以输入的,输出准确的PVQ结果;

需要注意的是,上图中的

“高级”

选项, 对应的 XYZ 设置如下,因为  iIMU-FSAS 的坐标是

右 – 前 – 上

,师兄的后处理软件是

前 – 右 – 下

因此需要转换一下!

这时候便可以 对数据进行处理,如有其他细节,后续更新!



版权声明:本文为hltt3838原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。