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

2023-05-16

一、器件说明

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(使用前将#替换为@)

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

  • Python中Array的常用操作(二)数组基本操作

    1 数组操作 x代表数组中的元素 xff0c i代表位置 a append x 把元素x添加到数组的尾部 b insert i x 把元素x 插入到位置i c remove x 删除第一个元素x d pop i 删除第i个元素 xff0c
  • Python中Array的常用操作(三)数组高级操作

    1 抽取数组中不重复的数据 gt gt gt a 61 x 2 for x in range 1 5 2 gt gt gt uniq 61 list set a 8 2 4 6 gt gt gt uniq 61 sorted set a 2
  • 2011年,移动互联网加速蔓延 – 来自2011移动开发者大会

    2011移动开发者大会 xff0c 这是第二届移动开发者大会了 xff0c 这一年来移动互联网各个领域蔓延开来 xff0c 蔓延这个词是开复老师演讲的主题 从事塞班开发的请举手 xff0c 举手者寥寥 记得在去年移动开发者大会上 xff0c
  • main函数之前做了什么?

    main函数之前 真正的函数执行入口或开始 一种解释 实际上 xff0c 在可执行文件被加载之后 xff0c 控制权立即交给由编译器插入的Start函数 xff0c 它将对后面这些全局变量进行准备 xff1a osver 操作系统的构件编号
  • detecron2中的注册机制

    文章目录 一 为什么使用注册类二 注册类的实现 传送门 Detectron2 01 注册机制 Registry 实现 一 为什么使用注册类 以下转自知乎 https zhuanlan zhihu com p 93835858 对于detec
  • 单目视觉SLAM在无人机上的应用

    目录 写在前面 本文说明 论文链接和实验视频 源代码链接 一 实验环境 硬件 软件 算法 二 实验环境搭建过程 1 Intel NUC安装Ubuntu 16 04 2 安装ROS D435i驱动以及ORB SLAM2算法 3 ORB SLA
  • TypeError: Expected cv::UMat for argument ‘img‘

    研究Detectron2中的在线数据增强的源码 并显示数据增强后的图像时 xff0c 遇到 TypeError Expected cv UMat for argument 39 img 的问题 显然 xff0c 问题要求是输入一个uint8
  • Linux 桌面终于迎来了 Docker Desktop

    Docker 桌面是容器化应用程序的最简单方法 无需考虑在你选择的系统上设置环境即可开始使用 只需要安装 Docker 桌面 xff0c 就可以开始了 Docker 桌面应用程序附带容器工具 xff0c 如 Kubernetes Docke
  • Dockerfile制作镜像和常用Shell脚本语法记录

    一 常规命令和使用记录 1 定义变量 判断匹配 赋值等 定义变量 addr 61 a namespace 61 b 判断匹配自定义的 包括参数化构建设置的变量 环境变量 xff0c 并赋值 case 34 Env 34 in dev nam
  • [Holo_wo]-vscode常用配置项说明

    vscode 配置文件核心 settings json xff1a 整个vscode的配置 xff0c 是本地vscode的配置 xff0c 如果有ssh远程 xff0c 那么会在远程主机的 vscode server目录下有setting
  • 基于jQuery的ajax跨域请求,PHP作为服务器端代码

    ajax实现跨域请求有两种方式 xff1a 方法一 xff1a jsonp的方式 jsonp方式的关键点在客户请求以jsonp作为数据类型 xff0c 服务器端接收jsonp的回调函数 xff0c 并通过回调函数进行数据的传输 具体代码如下
  • 无人机位置信息计算无人机的瞬时速度的matlab仿真

    目录 1 算法描述 2 仿真效果预览 3 MATLAB核心程序 4 完整MATLAB 1 算法描述 无人机最早在20世纪20年代出现 xff0c 1914年第一次世界大战正进行得如火如荼 xff0c 英国的卡德尔和皮切尔两位将军 xff0c
  • 基于simulink的无人机姿态飞行控制仿真

    目录 1 算法描述 2 仿真效果预览 3 MATLAB核心程序 4 完整MATLAB 1 算法描述 无人机是无人驾驶飞机的简称 xff08 Unmanned Aerial Vehicle xff09 xff0c 是利用无线电遥控设备和自备的
  • 基于ADRC自抗扰控制器的simulink仿真,ESO和TD等模块使用S函数开发

    目录 1 算法仿真效果 2 MATLAB核心程序 3 算法涉及理论知识概要 4 完整MATLAB 1 算法仿真效果 matlab2022a仿真结果如下 xff1a 2 MATLAB核心程序 function sys x0 str ts 61
  • m基于模糊控制与遗传优化的自适应ADRC双闭环控制策略matlab仿真

    目录 1 算法仿真效果 2 MATLAB核心程序 3 算法涉及理论知识概要 4 完整MATLAB 1 算法仿真效果 matlab2013b仿真结果如下 xff1a 遗传优化的优化迭代过程仿真图 xff1a 这个是我们采用的优化算法的有过过程
  • VINS-mono在Ubuntu20.04上从零开始安装运行和环境配置(尝试)

    最近尝试在Ubuntu 20 04上安装运行港科大的VINS mono算法 详细记录一下安装过程以及遇到的问题 先记录一下结果 ROS opencv Eigen Ceres以及VINS mono都编译并安装成功了 但是用euroc数据集跑V
  • 数据结构-C++实现

    之前的2周一直在学数据结构 xff0c 头都大了 我是之前对数据结构一点认识都没有 xff0c 我是直接看书怼的 xff0c 我看的是 大话数据结构 xff0c 前面的讲解还不错 xff0c 到了树 图后 xff0c 就有点看不懂了 xff
  • 几款好看的css表格

    表格一 xff1a 代码 xff1a html代码段 xff1a 是用vs写的 表头 lt th gt 那是从数据库读取的数据段 lt td gt 那是我为测试效果加的代码 xff0c 大家可以自行更改 lt h1 gt 待处理订单 lt
  • 非线性优化 (曲线拟合) 问题:高斯牛顿、g2o 方法总结

    其实还有一个Ceres库可以进行优化 xff0c 但是之前的博客已经具体分析了 xff0c 所以这里就对其余两个进行了介绍 xff0c 相关的内容是SLAM14讲里面的知识 一 理论部分 我们先用一个简单的例子来说明如何求解最小二乘问题 x
  • VINS-Fusion : EUROC、TUM、KITTI测试成功 + 程序进程详细梳理

    完成以下任务的前提是系统安装了必备的库 xff0c 比如cere Eigen3 3等 提前下载好了数据集EUROC xff0c KITTI等 一 相关论文 T Qin J Pan S Cao and S Shen A General Opt

随机推荐

  • ROS 简单理解

    https download csdn net download qq 30022867 11120759 utm medium 61 distribute pc relevant download none task download b
  • ROS系列:七、熟练使用rviz

    7 熟练使用rviz xff08 1 xff09 rviz整体界面 rviz是ROS自带的图形化工具 xff0c 可以很方便的让用户通过图形界面开发调试ROS 操作界面也十分简洁 xff0c 如图29 xff0c 界面主要分为上侧菜单区 左
  • ROS系列:八、图像消息和OpenCV图像之间进行转换-cv_bridge

    cv bridge是在ROS图像消息和OpenCV图像之间进行转换的一个功能包 一 xff09 在ROS图像和OpenCV图像之间转换 xff08 C 43 43 xff09 xff11 xff0e Concepts xff08 概念 xf
  • ROS系列:九、rosbag使用

    文章目录 解析rosbag中的 bag文件 xff0c 得到 jpg图片数据和 pcd点云数据 https blog csdn net weixin 40000540 article details 83859694 1 rosbag写入文
  • 三、松灵课堂 | SCOUT的仿真使用

    仿真环境的介绍 Gazebo Gazebo是一款3D动态模拟器 xff0c 能够在复杂的室内和室外环境中准确有效地模拟机器人群 与游戏引擎提供高保真度的视觉模拟类似 xff0c Gazebo提供高保真度的物理模拟 xff0c 其提供一整套传
  • 1PPS:秒脉冲 相关概念理解

    时钟模块上的GPS接收机负责接收GPS天线传输的射频信号 xff0c 然后进行变频解调等信号处理 xff0c 向基站提供1pps信号 xff0c 进行同步 GPS使用原子钟 xff08 原子钟 xff0c 是一种计时装置 xff0c 精度可
  • opencv GStreamer-CRITICAL

    使用openvino中的opencv跑之前的代码 碰到个问题 span class token punctuation span myProg span class token operator span span class token
  • 激光雷达 LOAM 论文 解析

    注意 xff1a 本人实验室买的是Velodyne VLP 16激光雷和 LOAM 论文中作者用的不一样 xff0c 在介绍论文之前先介绍一下激光雷达的工作原路 xff0c 这样更容易理解激光雷达的工作过程 xff0c 其实物图如下图1所示
  • VINS 细节系列 - 坐标转换关系

    前言 在学习VINS Mono过程中 xff0c 对初始化代码中的坐标转换关系做出了一些推导 xff0c 特意写了博客记录一下 xff0c 主要记录大体的变量转换关系 相机和IMU的外参 若需要VINS标定旋转外参 xff0c 则进入以下代
  • VINS 细节系列 - 光束法平差法(BA)Ceres 求解

    一 理论部分 学习过VINS的小伙伴应该知道 xff0c 在SFM xff08 structure from motion xff09 的计算中 光束法平差法 BA xff08 Bundle Adjustment xff09 的重要性 xf
  • Ceres 详解(一) Problem类

    引言 Ceres 是由Google开发的开源C 43 43 通用非线性优化库 xff08 项目主页 xff09 xff0c 与g2o并列为目前视觉SLAM中应用最广泛的优化算法库 xff08 VINS Mono中的大部分优化工作均基于Cer
  • VINS - Fusion GPS/VIO 融合 一、数据读取

    目录 一 相关概念 二 程序解读 2 1 参数读取 解析 xff1a 2 2 获取图像时间信息 解析 xff1a 2 3 获取图像时间信息 解析 xff1a 2 4 定义VIO结果输出路径和读取图像信息 解析 xff1a 2 5 读取GPS
  • VINS - Fusion GPS/VIO 融合 二、数据融合

    https zhuanlan zhihu com p 75492883 一 简介 源代码 xff1a VINS Fusion 数据集 xff1a KITTI 数据 程序入口 xff1a globalOptNode cpp 二 程序解读 2
  • VINS - Fusion GPS/INS/视觉 融合 0、 Kitti数据测试

    放两张图片 至于为什么 xff1f 后面会解释 xff01 程序下载 xff1a https github com HKUST Aerial Robotics VINS Fusion 数据集制作 xff1a https zhuanlan z
  • GPS/INS/视觉 融合 、 自己采集数据测试

    cd VIO GPS MapVIG cmake build cmake make run MapVIG 别忘了更新一下 一 运行程序 打开第一个终端 roscore 打开第二个终端 进入工作区间内 xff0c 分别输入 xff1a cd G
  • 九、 惯性导航解算

    一 概述 惯性导航解算就是从上一时刻的导航信息推导本时刻的导航信息 xff0c 包括姿态 速度 位置 具体来讲 xff0c 就是构建当前时刻导航信息与上一时刻导航信息 运动输入 角速度 加速度 之间的关系 xff0c 确切地说 xff0c
  • 十二、构建一个基本的组合导航系统

    一 概述 在之前的文章里 xff0c 我们从一个基本的IMU模块开始讲起 xff08 二 xff09 xff0c 利用Allan方差分析方法 xff08 三 四 xff09 xff0c 得出了其误差参数 xff0c 又通过标定 xff08
  • 电脑键盘工作原理

    xfeff xfeff 随着IBM PC机的发展 xff0c 键盘也分为XT AT PS 2键盘以至于后来的USB键盘 PC系列机使用的键盘有83键 84键 101键 102键和104键等多种 XT和AT机的标准键盘分别为83键和84键 x
  • 十三、扩展一个组合导航系统

    感谢大神分享 xff1a https zhuanlan zhihu com p 156958777 一 概述 上一篇文章我们讲述了怎样搭建一个基本的组合导航系统 xff0c 它仅仅包括IMU做预测 GPS做观测 xff0c 而实际中 xff
  • 三、FSAS + Novatel接收机和相机时间同步、数据保存、解码等 细节说明

    一 器件说明 1 GNSS 接收机是 P ropak6 如下图所示 xff1a 具体得介绍 xff1a 1 https blog csdn net hltt3838 article details 110622732 2 二 NovAtel