收藏 分销(赏)

基于STM32的VI-SLAM数据存储系统设计_邓斌.pdf

上传人:自信****多点 文档编号:304959 上传时间:2023-07-31 格式:PDF 页数:6 大小:1.90MB
下载 相关 举报
基于STM32的VI-SLAM数据存储系统设计_邓斌.pdf_第1页
第1页 / 共6页
基于STM32的VI-SLAM数据存储系统设计_邓斌.pdf_第2页
第2页 / 共6页
基于STM32的VI-SLAM数据存储系统设计_邓斌.pdf_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、电子设计工程Electronic Design Engineering第31卷Vol.31第15期No.152023年8月Aug.2023收稿日期:2022-04-03稿件编号:202204020基金项目:国家自然科学基金项目(52061042)作者简介:邓 斌(1996),男,河南林州人,硕士研究生。研究方向:SLAM导航。随着对海洋资源开发程度的逐渐深入,水下探测技术也随之不断更新。当前,在水下作业方面,尤其是在水下环境探测场景中,水下航行器的 SLAM技术有着广阔的应用前景。水下航行器 SLAM技术的前提是它所搭载的各种传感器能正常传回相关数据,借助这些传感器所采集的数据,航行器便可以了

2、解自身周围环境的情况,并确定自身的位置信息,进而构建出水下环境的地图,最终实现航行器的自主导航。传统的视觉 SLAM在航行器进行快速运动时位姿解算误差较大,且会出现构建的地图与实际地图尺度不匹配的问题。在视觉 SLAM中加入惯导数据可较好地解决上述两个问题。视觉惯导 SLAM(VI-SLAM)技术融合了图像信息与惯导信息这两种基于STM32的VI-SLAM数据存储系统设计邓 斌,刘 明(云南民族大学 电气信息工程学院,云南 昆明 650500)摘要:为了满足小型水下航行器在定位导航过程中使用VI-SLAM技术进行图像与惯导数据存储的要求,该文设计了一种基于 STM32 与 SD 卡的低成本数据

3、采集存储系统。IMU 通过 I2C 总线与STM32连接并传输惯导数据;相机借助高速缓存模块来保存图像并传输给 STM32;借助 STM32单片机与SD卡存储器的接口,通过移植后的FatFS文件管理系统来实现数据存储。存储在SD卡中的数据可通过 PC 机上的 SD 卡接口,方便快捷地被 PC 机直接读取,并进行后续的 VI-SLAM 算法实验。该设计满足了数据所需存储容量大的要求,且易于后续的存储扩展。经实验验证表明,该数据采集存储系统能够稳定可靠地保存传感器所产生的数据。关键词:数据存储;VI-SLAM;STM32;SD卡;FatFS文件系统中图分类号:TN703文献标识码:A文章编号:16

4、74-6236(2023)15-0060-06DOI:10.14022/j.issn1674-6236.2023.15.013Design of VI-SLAM data storage system based on STM32DENG Bin,LIU Ming(School of Electrical Information Engineering,Yunnan Minzu University,Kunming 650500,China)Abstract:In order to meet the image and inertial navigation data storage requ

5、irements in the process ofpositioning and navigation of small underwater vehicles using VI-SLAM technology,this paper designs adata acquisition and storage system based on STM32 and SD card.The IMU is connected to the STM32through the I2C bus and transmits the inertial navigation data;The camera use

6、s the cache module to savethe image and transmits it to the STM32;With the interface of the STM32 microcontroller and the SDcard memory,the transplanted FatFS file management system is used to achieve data storage.The datastored in the SD card can be directly read by the PC through the SD card inter

7、face on the PC,and thesubsequent VI-SLAM algorithm experiments can be carried out.This design satisfies the requirement oflarge storage capacity for data,and is easy for subsequent storage expansion.The experimental verificationshows that the data acquisition and storage system can store the data ge

8、nerated by the sensor stably andreliably.Keywords:data storage;VI-SLAM;STM32;SD card;FatFS file system-60互补的数据,惯导为快速运动提供了较好的解决方案,而相机又能解决慢速运动下惯导的漂移问题1,2,是SLAM未来发展的趋势之一。而在研究VI-SLAM算法之前,需要实现图像与惯导数据的采集与存储。在水下航行器行驶过程中,会产生大量需要存储的传感器数据,又因为后续数据解算处理以及多传感器数据融合的 SLAM算法实验均需要在机能强大的PC上位机上进行,这就需要数据可以方便地导入PC机中。考虑到小

9、型航行器体积有限,采集系统体积不宜过大,且受单片机硬件的制约,想要存储大量的数据,还需要便捷地将存储的数据传送给 PC机,综合考虑最终选用 SD卡来存储数据3。SD卡自身容量可根据航行时间进行灵活选择,且SD卡相关电路的可移植性强,安装与编程较为简单,支持 SPI与 SDIO 两种传输方式。搭配移植到 STM32 上的FatFS 文件系统,能较好地满足频繁传输数据到 PC机的需求,且基于FatFS文件系统保存的数据可以直接在PC机上打开4-6,具有一定的实用价值。1系统组成与硬件介绍数据采集存储系统主要搭载在小型水下航行器上,航行器在水中运动的同时,系统采集并存储传感器 数 据。该 设 计 包

10、 含 STM32 核 心 板、惯 导 模 块(IMU)、相机模块与SD卡,系统框架如图1所示。图1系统框架1.1STM32设计采用了 STM32F103系列单片机,该系列芯片是意法半导体(ST)公司旗下一款常用的增强型系列微控制器。其内核是 32 位的 Cortex-M3;内部集成了定时器 Timer、SPI、I2C、USB 等多种外设接口。STM32电路如图2所示。图2STM32电路1.2相机模块OV7725 是一款集成了 1/4 英寸单芯片 VGA 相机和图像处理器的高性能传感器。具有标准的SCCB 配置接口;支持 VGA、QVGA,以及 4030 到CIF(352288)分辨率的图像尺寸

11、;可搭配AL422B高速缓存器一起使用。相机电路如图3所示。1.3JY-901惯导模块JY-901模块是一款集成了高精度陀螺仪、加速度计和地磁场传感器的小型惯导模块。它可由STM32核心板上的供电引脚直接供电;可用串口和I2C两种接口分别连接 PC 与单片机进行数据传输;惯导数据回传频率为 0.2200 Hz;角度静态误差为邓 斌,等基于STM32的VI-SLAM数据存储系统设计-61电子设计工程 2023年第15期0.05;动态误差为0.1。IMU电路如4所示。图4IMU电路1.4SD卡SD 卡选用了闪迪 32 GB 大容量高速内存卡。SD卡槽与STM32板连接电路如图5所示。图5SD卡槽与

12、STM32板连接电路1.5系统性能指标相机模块的图像数据以 RGB565的格式进行输出,采用QVGA(320240)像素进行图像拍摄,每张图像的大小为150 kB。高速缓存模块写入时钟最小周期为20 ns,换算可得读写操作速率最高为12.5 MB/s,能够以较高的速度对图像数据进行缓存。IMU模块每个寄存器中的数据为16 bit,实际每次采集的数据一般只涉及到 6个寄存器,也就是每次采集 12 B 数据。进行惯导解算时一般所用的IMU数据为100 Hz,每秒采集的数据大小为 1.2 kB。所采用的 STM32F103芯片板理论串口速率可达到 4.5 MB/s,既可满足从FIFO中读取缓存一帧图

13、像数据的速度要求,也可以满足 IMU 数据读取的速度要求。采用的闪迪 A1高速 SD 卡经实测写入速度最高可达到 50 MB/s7。移植到 STM32 中的 FatFS 系统,在写入 SD 卡时的速度会随写入块大小的改变而改变,在向空白的SD卡中写入 512 kB 或是 1 MB 的数据块时,其速度可达4.6 MB/s,基本可以满足 IMU 与相机的数据写入需求8。要注意的是当 SD 卡的存储空间不足两成时,写入速度会明显降低。2数据采集实现流程2.1图像数据采集流程以QVGA像素(240320)模式为例,分析图像数据的传输过程,其数据传输时序图如图6所示。图 6中 VSYNC 为帧同步信号,

14、相邻两个信号之间传输的数据便是一帧图像。当STM32检测到该信图3相机电路-62号时,便控制 AL422B开始缓存一帧的图像数据,可以选择使用下降沿或上升沿来触发中断9。HREF和HSYNC均为行同步信号,相邻两个信号之间为一行的图像数据。两者均为一个引脚产生的信号,在不同的场合下,可使用不同的信号来控制。在使用HREF信号时,只有在HREF高电平期间的数据才为有效数据。STM32通过检测帧同步信号与行同步信号即可获得完整的图像数据10。在 VGA 模式下,每行输出 320 个周期,每一个周期中根据图像格式的不同会有一个或两个字节,共输出 240 行数据完成一帧图像。一帧原始数据的大小约为15

15、0 kB11-12。当完成一帧数据的缓存之后,STM32 控制缓存模块停止图像数据的读取,并开始读取其中的数据;待一帧图像读取完毕后,将数据指针复位,控制模块继续读取图像数据;等待下一个帧同步信号到来时,缓存模块再缓存下一帧的图像13-14。循环该过程,完成图像数据的采集。2.2惯导数据采集流程将JY-901惯导模块通过I2C总线与STM32板相连接。STM32采用选择寄存器地址的方式对寄存器中的数据进行访问15。每个地址内的数据均为16位数据,占两个字节。通过对其内部特性寄存器数据的修改,来设置波特率、选择输出数据的类型、从站的地址等信息。实际所需要采集的数据以及数据所对应的寄存器地址如表1

16、所示。读取 IMU模块数据需要 STM32先通过 I2C总线向惯导元件从机发送一个开始符;再写入模块的I2C 从站地址;之后查看手册找到所需数据对应的寄存器地址,将地址输入进去;IMU 模块收到该信息后返回一个收到符;然后 IMU 会按照寄存器的字节前后顺序依次将选中的数据输出;STM32需在收到每一个字节后,向 IMU 回复一个收到符;当接收到的数据总量到达 16 bit 时,STM32 便不再回复,IMU 也不再输出,并回复一个结束符表明传输过程已经结束16。表1寄存器数据表地址RegAddr0 x340 x350 x360 x370 x380 x39符号AXAYAZGXGYGZ含义X轴加

17、速度Y轴加速度Z轴加速度X轴角速度Y轴角速度Z轴角速度3数据SD卡存储流程数据存储设计思路:首先为 STM32板接通电源进行复位操作,紧接着配置时钟、GPIO、SD 卡接口、使能 SPI时钟;然后对 IMU、相机、SD 卡进行硬件配置,并将设置文件保存在程序中。配置的内容主要是 IMU 输出数据寄存器的选择、相机分辨率与图像格式的选择、SD卡传输模式的选择;接着配置 FaTFS底层存储介质的接口函数,例如创建工作区、数据读写之类的函数;然后借助提前留好的 API接口函数来创建工作区、新建文本文件并向 SD 卡写入数据;完成数据的存储之后,需要把保存好数据的SD卡从STM32中拔出并插入 PC机

18、,检查存储的数据。在数据格式无误的情况下,导出数据给后续的算法使用。系统流程图如图7所示。图6QVGA时序图邓 斌,等基于STM32的VI-SLAM数据存储系统设计-63电子设计工程 2023年第15期图7系统流程图3.1SD卡的初始化SD卡在SPI模式初始化的流程:1)在将 SPI模块初始化好之后,将 SPI速度设为低速模式(100400 kHz),并做好接收本地指令的准备;2)上电延时 250 ms,相当于等待 74 个时钟,然后发送CMD0命令,得到返回值0 x01;3)进入卡类型检验。首先发送命令 CMD8,然后检测返回值。返回值为0 x01时,说明SD卡为V2.0卡,之后发送循环命令

19、CMD55与ACMD41,直到返回0 x00,确定SD2.0卡初始化成功。4)初始化成功后,提高 SPI的速率。3.2SD卡操作命令向 SD 卡写入一个 CMD 的过程:首先使 CS为低电平,SD卡使能;其次在SD卡的Din写入指令;写入指令后还要附加8个填充时钟,完成SD卡内部操作;之后在 SD 卡的 Dout上接受回应;接受完毕后使 CS为低电平,并添加8个填充时钟。常见的命令及其意义可查看 SD 卡 2.0 协议文件,不再赘述。3.3SD卡数据的读写SD 卡的写入数据流程:STM32 发送 CMD24(单块)或者 CMD25(多块)的写命令;接收卡响应 R1(0 x00);发送写数据起始

20、令牌0 xFE或0 xFC;发送512字节的正式数据;发送2 B的CRC。SD 卡的读取数据流程:STM32 发送 CMD17(单块)或者 CMD18(多块)的读指令;接收卡响应 R1(0 x00);接收数据起始令牌0 xFE或者0 xFC;接收512字节的正式数据;接收2 B的CRC。3.4FaTFS文件管理系统FaTFS 是一个开源的、为小型嵌入式系统设计的通用 FAT文件管理系统。它支持多种存储媒介,可对多个文件进行读写,且不依赖硬件架构,可以被移 植 到 各 种 低 性 能 的 系 统 中,例 如 该 文 所 用 的STM32F103。移植过程简单,使用前只需要先通过底层储存介质接口参

21、数函数对存储设备进行配置,再调用所提供的 API接口,借助其中的 f_mount函数在SD卡中创建工作区,借助其中的f_open函数在SD卡中打开对应的文本文件,如果未检测到该文件,便会创建一个文本文件,最后借助其中的f_write函数,将所选寄存器中的传感器数据写入SD卡。4实验测试与结果所用相机、惯导模块实物如图8所示。图8硬件实物图将模块连接到 STM32上,通过板载引脚为其供电,惯导模块水平固定静止,相机竖立。在静止状态下系统采集存储的惯导数据如图9所示。图9SD卡存储惯导数据数据格式每一列依次为三轴的加速度(单位为g)、三轴的角速度(单位为deg/s)。系统采集存储的图像集中一张图像

22、数据(240320)如图10所示。固定时间间隔连续采集图像数据,并将其按顺序排列组合成图像数据集便可供算法使用。5结束语该文为满足小型水下航行器 VI-SLAM 导航的-64大容量数据存储需求,设计了一款小体型低成本的数据采集存储系统。系统采用基于 STM32与 SD 卡的采集存储方式,并借助移植的FatFS文件系统实现了将采集到的数据写入SD卡的功能,数据的存储格式也方便了后续算法的直接调用。经测试,该系统可稳定可靠的采集存储图像与惯导数据,所采集的数据基本满足后续 VI-SLAM算法的使用需求,有一定的实际应用价值。参考文献:1 王晨曦.基于IMU与单目视觉融合的位姿估计方法研究D.哈尔滨

23、:哈尔滨工业大学,2019.2 刘芳.基于单目视觉和惯导数据融合的SLAM方法研究D.哈尔滨:哈尔滨理工大学,2020.3 汤才刚,刘京京,沈瑞东.STM32单片机的SD卡存储器读写模块设计J.单片机与嵌入式系统应用,2020,20(12):75-78,83.4 段素平.基于STM32的嵌入式存储系统的设计与实现J.数字海洋与水下攻防,2021,4(5):380-385.5 段梦月.基于AHB总线的SD卡控制器设计D.沈阳:辽宁大学,2021.6 卢俊辉,刘旗,史丽娟.基于SD卡的FAT32文件系统可靠性设计J.江汉大学学报(自然科学版),2021,49(2):82-88.7 罗雄飞.基于SD

24、卡的风电变流器存储设计与应用J.工业控制计算机,2020,33(6):97-98,102.8 戈晓宁.基于FPGA和SD协议的大容量高速存储系统设计与实现D.燕山:燕山大学,2021.9 杜文略,李红薇,高越.水下试验图像数据采集存储系统的设计与实现J.电子器件,2019,42(3):733-739.10程雨,杜馨瑜,顾子晨,等.基于FPGA和DSP的高速实时轨道巡检图像采集处理系统J.中国铁道科学,2021,42(1):32-42.11姜艳茹,孟令军,尚桠朝,等.基于STM32的图像采集与网络传输系统设计J.自动化与仪表,2020,35(12):45-49,53.12郝惠惠,张君君.分析嵌入

25、式单片机系统在图像采集中的运用J.电子测试,2018(24):22-23,84.13陈国栋.基于STM32的无线图像实时采集传输系统J.电子世界,2020(24):116-118.14吴菊.声透镜成像关键技术研究D.哈尔滨:哈尔滨工程大学,2013.15万淼.采煤机惯性导航定位方法研究D.北京:中国矿业大学,2020.16林关成.基于STM32的智能平衡小车控制系统设计J.信息技术,2021(2):44-49.图10SD卡存储图像(上接第59页)覆 盖 测 试 数 据 生 成 J.电 子 学 报,2020,48(7):1330-1342.10朱佳莹,高茂庭.融合粒子群与改进蚁群算法的AUV路径

26、规划算法J.计算机工程与应用,2021,57(6):267-273.11郑延斌,王林林,席鹏雪,等.动态环境下改进蚁群算法的多Agent路径规划J.计算机工程与科学,2019,41(6):1078-1085.12赵震.模糊XML数据分类与整合方法研究D.沈阳:东北大学,2017.13刘中强,游晓明,刘升.一种启发式动态信息素更新策略的蚁群算法J.计算机工程与应用,2018,54(20):20-27.14何亮亮,王晓东.基于初始信息素和二次挥发的改进蚁群算法J.西安工程大学学报,2018,32(6):739-744.15张松灿,普杰信,司彦娜,等.基于种群相似度的自适应改进蚁群算法及应用J.计算机工程与应用,2021,57(8):70-77.16钟原.基于蚁群算法的SDN负载均衡的技术研究J.微型电脑应用,2019,35(5):65-67,77.邓 斌,等基于STM32的VI-SLAM数据存储系统设计-65

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服