一、器件说明
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 指令可以参考连接:
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=””
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 的坐标是
右 – 前 – 上
,师兄的后处理软件是
前 – 右 – 下
,
因此需要转换一下!
这时候便可以 对数据进行处理,如有其他细节,后续更新!