研发扫地机器人
技术要点:线程池、qt 、内存共享
开发平台:C++、gcc/g++7.5.0、ubuntu22.04
项目功能:
1) 实时显示机器人位姿、传感器数据(激光雷达点云、里程计等)、地图构建过程
2) 动态修改PID控制参数、运动速度等,并立即观察控制效果,极大提升了调试效率
3) 可视化记录与回放机器人运行日志,用于问题定位和算法分析
中英文网页混合检索与关键词联想系统
技术要点: Reactor、线程池、偏移库、倒排索引、simhash、TF-IDF、最小编辑距离、余弦相似度、LRU、json、
Redis、多线程缓存系统,内核定时器、线程局部存储,日志系统
开发平台:C++11、gcc/g++7.5.0、ubuntu18.04
项目功能:
4) 基于Reactor模型,利用线程池与cpoll多路复用技术,实现的高性能、高并发的检索系统
5) 利用cppjieba开源库对语料进行分词,过滤停用词,建立词典库
6) 利用tinyxml2开源库与std::regex解析xmI语料文件,建立网页库和偏移库
7) 利用simhash算法进行网页去重,根据TF-IDF算法求出所有单词权重、建立倒排索引库
8) 利用最小编辑距离算法,根据用户输入的关键词,求出编辑距离较小的联想词发送给用户,实现关键词联想功能
9) 利用余弦相似度算法,对用户输入的检索词进行解析,求出相似度较高的网页,并为每篇网页生成摘要信息后发送给用户,实现网页检索功能
10) 利用nlohmann/json开源库,将查询结果经json序列化后再发送给客户端
11) 利用Redis作为关键词联想模块的缓存系统,优化关键词查询效率
12) 利用LRU算法和线程局部存储机制,为工作线程分配两级LRUCache作为网页检索模块的缓存系统,并使用内核定时器timerfd实现Cache数据的更新、同步、持久化
13) 利用log4cpp开源库实现简易日志系统