首页 论坛 原厂专区 山景MCU 基于山景P20系列芯片的导航扫地机器人DEMO介绍(1)

发帖 回复

[原创] 基于山景P20系列芯片的导航扫地机器人DEMO介绍(1)
16032 查看
155 回复
 楼主 | 发布于 2017-12-11 | 只看楼主
分享到:


  基于山景P20系列芯片的导航扫地机器人DEMO介绍(1

 

       大概在去年的时候从老大那接到个智能扫地机的任务,目的有两点:

   1)将智能扫地机作为一个综合展示平台,展示我们芯片的特色,以及这些特色所带来的性价比优势;同时也是把自己当做客户,对芯片的各个方面进行持续验证反馈

   2)智能扫地机牵涉的面比较广——传感器、电机、电池、电源管理、遥控、WI-FI、蓝牙、音视频、RTOS、行为控制、等等等等,一大堆。通过这样一个智能扫地机DEMO给我们在相关领域的客户一些比较实用的例子,和趟坑经历

       去年底我们完成了基于P10的智能扫地机Demo,从查资料、拆机、逆向到方案设计、软硬件实现、调试、再版、整机微调(主要是传感器参数、行为动作调整,和debug),也是颇有波折。接下来我着重介绍一下我觉得可能比较有参考价值的地方。

        下图是我们参考科沃斯扫地机做的Demo板,基于P10开发,P10采用M3内核,主频为96MHzPCB布局比较乱,让各位看官见笑了。

        要介绍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:

 

 

 

内核:32RISC Core ,主频120MHz

集成224KB内存,可选SIPflash

8通道DMA 支持M2M/M2P/P2M/P2P模式

112-bit SAR-ADC(逐次逼近型ADC @ max. 450KHz采样率,28通道

18通道PWM

专用无刷直流电机接口及其驱动

6路PWC

3UART @max.3MHz波特率

1IIC

2SPI Master

1SPI Slaver

蓝牙和Wi-Fi协议栈

  方案定型

          软件框架还是继承P10版扫地机。

  


 方案能够有些什么优势呢:

Wifi支持AP模式/路由模式

 

DEMO软件框架:

 

Platform:

    丰富的底层驱动,减少开发周期

Midware:

    稳定可靠且高效的中间件,有效提高软件效率和开发效率

Frameworks:

    基于行为的机器人控制应用框架,有效整合机器人的感知、决策、执行、人机交互、互联互通五要素,响应等级为1ms

Applcation:

   1)底层框架等的配置

   2)用户自定义配置,如GPIOKey、语音键控

   3)基于任务的模式管理

   4)出错机制

   5)电源管理,如充电管理、电机监控

   6)地图定位及路径规划


Demo软件任务框图:


 

  硬件实现

  画了个板子,并总结了P10那版扫地机的一些经验教训(板子画的是不是好看些了,这是测试板,还有飞线,人艰勿喷):

 

  加上了陀螺仪,包括了单陀螺仪芯片(XV7001B)和陀螺仪模块(R1071T)(或者R6091U三轴加速度单轴陀螺仪,可以进行斜面上的陀螺仪校准和并实现大斜面逃离行为)两个方案,单陀螺仪芯片需要去校准温漂和零漂。陀螺仪模块方案则可以不进行温漂校准,但前提是需要使用温漂特性符合要求的LDO供电。

 

调试

由于规划式方案,需要调试校准陀螺仪,以及校调路径规划等算法。为了调试方便,简单做了调试软件,用MFC开发,有两个调试界面,能够通过wifi或者串口进行调试,如下图所示

 


  

 

目前还在调试阶段,如果各位看官感兴趣的话,后续我会继续将更多更详细的内容与大家分享,也包括更新调试中遇到的问题及应对策略。



本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(2 ) (5 )

智能家电 嵌入式开发 智能机器人

回复 举报

回复于 2017-12-11 沙发

感谢楼主分享;

好资料;

(0 )
评论 (0) 举报

回复于 2017-12-11 2#

感谢分享


(0 )
评论 (0) 举报

回复于 2017-12-11 3#



看看……

(0 )
评论 (0) 举报

回复于 2017-12-11 4#

有没有源码看看?
(0 )
评论 (0) 举报

回复于 2017-12-11 5#

感谢楼主分享
(0 )
评论 (0) 举报

回复于 2017-12-11 6#

看看分享,看看分享
(0 )
评论 (0) 举报

回复于 2017-12-11 7#

感谢分享!!!
(0 )
评论 (0) 举报

回复于 2017-12-11 8#

好厉害


(0 )
评论 (0) 举报

回复于 2017-12-11 9#

感谢楼主分享;

好资料;

(0 )
评论 (0) 举报

回复于 2017-12-11 10#

好资源,感谢分享学习
(0 )
评论 (0) 举报
发表回复
0/3000





举报

请选择举报类别

  • 广告垃圾
  • 违规内容
  • 恶意灌水
  • 重复发帖

全部板块

返回顶部