-
- Ben@MVSILICON
-
1 发帖5 回复139 积分
- 私信他 + 关注
基于山景P20系列芯片的导航扫地机器人DEMO介绍(1)
大概在去年的时候从老大那接到一个智能扫地机的任务,目的有两点:
1)将智能扫地机作为一个综合展示平台,展示我们芯片的特色,以及这些特色所带来的性价比优势;同时也是把自己当做客户,对芯片的各个方面进行持续验证反馈;
2)智能扫地机牵涉的面比较广——传感器、电机、电池、电源管理、遥控、WI-FI、蓝牙、音视频、RTOS、行为控制、等等等等,一大堆。通过这样一个智能扫地机DEMO来给我们在相关领域的客户一些比较实用的例子,和趟坑经历。
去年底我们完成了基于P10的智能扫地机Demo,从查资料、拆机、逆向到方案设计、软硬件实现、调试、再版、整机微调(主要是传感器参数、行为动作调整,和debug),也是颇有波折。接下来我着重介绍一下我觉得可能比较有参考价值的地方。
下图是我们参考科沃斯扫地机做的Demo板,基于P10开发,P10采用M3内核,主频为96MHz。PCB布局比较乱,让各位看官见笑了。
要介绍P20的导航式扫地机,不得不先简单介绍一下P10的这版 ,这版扫地机是没有导航和定位的,有四个工作模式:自由模式(随机转角+小区域困境判断)、沿边模式、精扫模式(犁田式弓形)、局部清扫模式(螺旋向外);以及三个特殊模式:待机模式、回充模式、错误模式。退出特殊模式需要判断扫地机现状是否符合退出条件。
通过一个模式控制器(任务)对这些模式进行管理,主要是借助SDK内嵌的FREERTOS的任务进行管理,这几个模式的优先级是相同的,且不同模式之间互斥。模式切换意味着前一个模式被KILL。每个模式可以看做是一个工作场景。每个场景对应的机器人的行为特点不同,但是一些基本的行为是每个工作模式都会用到的。
介绍一下关于这版扫地机器人的控制,主要是基于行为的机器人控制,我们只是参考了这些理论,所以和你们查到的文献描述的可能不太一样。请你们也只是参考就行啦。主要可以分为三类行为(视实际需要规划)。其中理性行为的优先级最高,大家可以想象一下火中取栗这个场景,此时理性行为就是高于应激行为的。
举个例子,地上有一个栗子你准备捡起来,于是伸手去捡,这是计划行为;当手抓到栗子,感觉到很烫,手不由自主的缩了回来,这是应激行为;但是如果不赶紧捡起来就会被别人捡起来了,于是克服烫手的感觉,又捡起了栗子,这是理性行为。
对于这几层行为的优先级:理性行为>应激行为>计划行为。如下图所示:
每层行为可以细分若干行为,例如理性行为就包含了:假死、防堵转、防静止三个行为,这三个行为在设计上的优先级是一样的,只是后来因为实际需要,将假死的优先级又提高了。
那么这些行为如果发生冲突是如何处理的呢,当消息事件产生后,通过仲裁机制来决定执行哪个行为。三层行为(理性行为、应激行为、计划行为)对应了高低不同的优先级,通过一个竞裁器来完成,当高优先级事件源来了,则通过竞裁器执行高优先行为。同一层行为的优先级设计上是一致的,这样通过抑裁器来仲裁,主要以事件源消息来的时间先后来决定执行哪个行为,从抑裁器获得执行的行为会保证其执行完或者执行合理的一段时间。
设计好了之后就是调试了,附件是《P10扫地机器人DEMO开发调试记录》,其实就是调试修改的历史记录,分享出来,仅供参考。
-----------------------------------------------------分界线---------------------------------------------------------
也许是最终演示效果不错,所以在近期,完成了P40的相关验证项目后,我们又从老大那接到一个智能扫地机的任务。。。项目就是带导航规划式智能扫地机。
套路不变,先大致做个调研:
产品型号 |
定位介质 |
构图算法 |
路径规划 |
处理器 |
iRobot980 |
摄像头 |
VSlam |
即时规划 |
iRobot |
科沃斯DR95 |
水平RPS激光扫描定位 |
Slam视觉定位与地图规划 |
全规划 |
M4 |
米家扫地机 |
水平RPS激光扫描定位 |
Slam |
全规划 |
M3+ARM9 |
TM510 |
垂直RPS激光扫描定位 |
Slam |
全规划 |
M3+ARM9 |
LG VR6270LVM |
顶部和底部摄像头 |
视频图像偏移检测技术 |
全规划 |
|
蓝天S |
电磁波定位 |
Slam |
全规划 |
M3+ARM9 |
科沃斯朵朵S |
无 |
栅格图法 |
即时规划 |
M3 |
后来还弄来一台IROBOT的拖地机器人研究了一下,这台拖地机器人的方案是由一个小盒子向天花板打红外射线,拖地机器人通过陀螺仪进行导航,通过反射回来的网格进行定位和矫正,不过不开小盒子的影响似乎不大。
之所以把朵朵S也对比进来,是因为,朵朵S在清扫覆盖率上也有不俗的表现(官方数据大于95%)。也就是说在完成清扫任务,降低重扫和盲区,这一项上,个人认为性价比最高的方案是朵朵S这个方案。
因此我们决定参考朵朵S,采用陀螺仪做惯性导航的方案。
MCU芯片选型
由于带导航的规划的方案会有更多的运算需求,且生成地图时,如果要包含更多信息以做更好的规划,则地图占用的内存也是开销不少。我们选用了P20系列的128pin芯片。
这里简单介绍一下P20:
内核:32位 RISC Core ,主频120MHz
集成224KB内存,可选SIPflash
8通道DMA 支持M2M/M2P/P2M/P2P模式
1个12-bit SAR-ADC(逐次逼近型ADC) @ max. 450KHz采样率,28通道
18通道PWM
专用无刷直流电机接口及其驱动
6路PWC
3路UART @max.3MHz波特率
1路IIC
2个SPI Master
1个SPI Slaver
蓝牙和Wi-Fi协议栈
方案定型
软件框架还是继承P10版扫地机。
方案能够有些什么优势呢:
Wifi支持AP模式/路由模式
DEMO软件框架:
Platform:
丰富的底层驱动,减少开发周期
Midware:
稳定可靠且高效的中间件,有效提高软件效率和开发效率
Frameworks:
基于行为的机器人控制应用框架,有效整合机器人的感知、决策、执行、人机交互、互联互通五要素,响应等级为1ms
Applcation:
1)底层框架等的配置
2)用户自定义配置,如GPIO、Key、语音键控
3)基于任务的模式管理
4)出错机制
5)电源管理,如充电管理、电机监控
6)地图定位及路径规划
Demo软件任务框图:
硬件实现
画了个板子,并总结了P10那版扫地机的一些经验教训(板子画的是不是好看些了,这是测试板,还有飞线,人艰勿喷):
加上了陀螺仪,包括了单陀螺仪芯片(XV7001B)和陀螺仪模块(R1071T)(或者R6091U三轴加速度单轴陀螺仪,可以进行斜面上的陀螺仪校准和并实现大斜面逃离行为)两个方案,单陀螺仪芯片需要去校准温漂和零漂。陀螺仪模块方案则可以不进行温漂校准,但前提是需要使用温漂特性符合要求的LDO供电。
调试
由于规划式方案,需要调试校准陀螺仪,以及校调路径规划等算法。为了调试方便,简单做了调试软件,用MFC开发,有两个调试界面,能够通过wifi或者串口进行调试,如下图所示
目前还在调试阶段,如果各位看官感兴趣的话,后续我会继续将更多更详细的内容与大家分享,也包括更新调试中遇到的问题及应对策略。


-
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
-
- jingyeyousi
-
0 发帖9 回复114 积分
- 私信他 +关注
-
- jiangquanzi
-
0 发帖49 回复191 积分
- 私信他 +关注
-
- huanghongjia1992
-
0 发帖9 回复122 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖