前言
在朋友的推荐下,尝试写一个模拟的扫地机器人的程序,当做是练习(工程能力和算法)
写这篇文章一是记录和分享思路,也希望获得更多意见和建议,欢迎评论
效果
本来是打算最后再贴图的,文章没啥人气,加上感冒
偷个懒就先贴个图吧(不知道为什么没办法直接贴图片,只好贴链接了)
https://wx1.sinaimg.cn/mw1024...
https://wx4.sinaimg.cn/mw1024...
思路
想了下大概应该有下面几个模块
- 主模块,负责调用其他模块
- 地图模块,负责处理地图,比如导入外部的地图文件并转换成方便处理的格式
- 感知模块,负责感知当前所在位置的周围是否可通行
- 动作模块,负责“走动”,出于解耦的考虑,这里的动作只有最基本的走路动作,不包含寻路逻辑
- 寻路模块,负责调用感知模块和动作模块,做一些复杂动作,比如U形走法(听上去有点中二,先这么叫着)和最短路径走法(到最近的未清洁点)
- 显示模块,负责把机器人走过的路径显示出来,形式上最好是独立于程序的存在,比如gif文件