一、器件说明
1、GNSS 接收机是 Propak6,
如下图所示:
具体得介绍:
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 在串口打印出来 ,rawimub文件, 不是 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 的坐标是 右 - 前 - 上,师兄的后处理软件是 前 - 右 - 下,
因此需要转换一下!
这时候便可以 对数据进行处理,如有其他细节,后续更新!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)