本站所有资源均为高质量资源,各种姿势下载。
本项目是一个基于 MATLAB 实现的 RatSLAM(Rat Simultaneous Localization and Mapping)仿生导航系统。RatSLAM 是一套模拟啮齿类动物(如大鼠)海马体和内嗅皮层神经机理的算法,通过模拟大脑中的导航细胞活动来实现机器人的自主定位与地图构建。
该实现专门针对低分辨率单目视觉数据设计,通过计算神经科学模型将视觉输入和运动感知结合,即使在感知模糊或存在漂移的情况下也能构建一致的环境拓扑地图。本项目采用单文件架构,包含完整的仿真环境生成器,无需外部硬件或数据集即可直接运行并观察大鼠脑部导航机制的模拟过程。
imgaussfilt 函数)main。SIM_STEPS (默认500步) 结束。本项目的主要逻辑集中在 main 函数及其子函数中,以下是基于实际代码的详细实现分析:
PARAMS,确立了神经网络的规模和动力学属性:
STATE.pose_cells 被初始化为中心点有一个高斯能量包,代表初始位置信念。SIM_STEPS 循环中,系统依次执行以下步骤:步骤 A: 获取传感器数据
调用 DATA 结构体获取当前时间步的模拟图像和里程计数据(线速度 v 和角速度 w)。
步骤 B: 局部视图细胞 (LVC) 处理
由 process_visual_view 函数执行。该模块维护一个视觉模板库:
LVC_MATCH_THRESH,则判定为新场景,创建新的视觉模板 ID;否则复用旧 ID,实现场景再认。path_integration 函数根据里程计速度,通过 circshift (循环移位) 操作移动 3D 姿势细胞矩阵中的能量包。先处理方向 (theta) 层的移位,再根据不同角度层计算对应的 XY 位移。inject_energy 函数会提取该视图历史上关联的姿势细胞坐标,并在当前网络对应位置注入能量。这实现了闭环校正,将机器人的位置信念“拉”回记忆中的位置。attractor_dynamics 函数模拟神经元的相互作用。通过 3D 高斯平滑 (imgaussfilt 和 smoothdata) 模拟局部兴奋,随后进行全局归一化和全局抑制 (减去常量),最后再次归一化。这一过程确保能量包不会因为计算误差消散或扩散,始终保持紧凑的“小包”形状。步骤 D: 经验地图 (Experience Map) 更新
由 update_experience_map 函数管理:
EXP_DELTA_PC_THRESH) 时,创建新的经验节点。find_node_by_view_and_pc 查找视觉 ID 相同且姿势细胞坐标相近的现有节点。如果找到,说明发生了闭环,建立当前节点到旧节点的边。relax_graph 函数通过迭代算法优化地图。它遍历所有边,根据边记录的相对位移约束来调整相连节点的空间位置,从而消除累积误差。imgaussfilt (XY平面) 和 smoothdata (Theta轴) 的组合来近似模拟 3D 卷积神经网络的兴奋核效应。