日志系统在嵌入式系统开发中是必不可少的,主要用于记录程序运行发生的现象,数据变化,异常点出发,对于slam系统可以记录位姿pose,点云point cloud和地图数据map,以便于进行回放复现问题,下面对日志系统在实际移动机器人的工程化应用做简单介绍。
在工程化中,量产后主要通过各个模块的日志进行问题分析,比如slam查找建图和定位问题,导航规划查找路径规划问题,系统端查找系统任务下发等问题。
slam模块需要记录收到的里程计数据,机器姿态数据,帧数统计,匹配率,点云参数,定位位姿,局部地图数据,全局地图数据,里程计异常信息打印等,重定位要记录重定位帧相关信息,后端优化要记录关键帧位姿和优化结果,记录完整且全面的数据有利于后期查找问题。系统调度层需要记录任务下发,手动自动操作,各模块状态切换,cpu占用率统计,mcu底板传感器数据以及位姿融合后数据。应用软件层需要记录闸机梯控通信交互信息,并有录制屏幕操作的功能。app端要记录异常信息上报,地图模块要保存所有的云端地图及备份。感知导航规划要记录局部路径,全局路径,导航地图,识别结果等必要信息。
有了各个模块的日志信息,可以在跑机后进行打包上传,后期遇到问题可以查看所有模块的相关时间点的动作状态以快速复现机器当时的操作状态便于快速定位问题点。