背景: 在上学期间想给小车做个自动回充来着,结果简单的在网上搜索一下,发现竟然没有一套很完整的方案(古月居论坛甚至一篇相关文章都没有QAQ),大多都在卖成品,后来由于时间和精力的原因就不了了之了,借助Originbot的这次机会,正好从零探索一下……


常见的移动机器人自主回充技术

通常自动回充的流程为:

  1. 接到信息或低电量情况下,返回充电桩附近(通过slam等方法,回到充电桩附近的目标点);

  2. 在充电桩附近进行近距离与充电桩对接,充电;

  3. 直到下一次出发的指令到来,离开充电桩,开始导航……

其中,远距离情况下,通过slam导航回家的实现手段和正常的导航并无区别,在充电桩附近设置目标点记录坐标即可,本项目先将重点汇聚在如何与充电桩对接的匹配上。

对于充电桩和车身的的触点以及充电电路的改造,可以在对位匹配实现后再进行尝试。


1. 红外传感器

主要原理: 在充电桩上设置红外发射装置,机器人上设置红外接收装置,根据接收装置检测到的红外信息通过相应的算法推算出大致方位,调整姿态进行对位。

其中对接收端的处理有两种方式:

  1. 只通过红外接收收到红外信号为判断条件:由于只有0-1信号,所以需要安装较多传感器,对信号的处理和算法的需求相对简单;

  2. 通过接受到的信号强度作为判断条件:红外传感器数量少,但是对算法的要求就相对高一些。

1.1 红外对位方法探索

红外对位的方法也是现在绝大多数扫地机器人直接或间接采用的方法,也是我最初的改造计划——由于OriginBot本身没有红外接收模块,因此需要对Originbot做一些简单的改装:增加两个红外接收模块,并且两个模块通过固定夹具实现对特定方位红外信号的接收。

用来固定红外接收器并且分割信号范围的夹具示意图如下图所示,计划通过3D打印制作:

将模块安装在小车的尾部,此时整个接收范围就可以分为三个区域,分别为:

  • 只有红外接收器1接收到信号的接收区A

  • 只有红外接收器2接收到信号的接收区B

  • 接收器1和2共同接收到信号的接收区C

通过接收区A、B、C的信号接收强度,可以让Originbot知道充电桩在自己的哪个方向,以便调整姿态让充电接口对向充电桩。


同样在充电桩上通过两个红外发射器实现发射两个扇区的红外信号,分别为发射区A和发射区B,通过Originbot感应到的红外信号,来让自己知道自己身处充电桩的哪个位置,如下图所示:

如此,大致位置和方向都判断出来之后,通过对各个位置下红外的接收情况进行分析,可以梳理出向充电桩对位过程的逻辑,以此实现接收到红外信号之后,从不同方位向充电桩对位的运动,下面举个简单的小例子(仅用来表示思路,未仔细分析)

一个简单的举例

如上图所示:

  1. 接收区B接收到发射区A的信号,及接收器2检测到发射区A的信号,接收器1检测不到的情况;

  2. 右转到接收区A和C的临界区域,及接收器1可以检测到发射区A的信号,接收器2处于临界位置;

  3. 后退至接收区A离开发射区A的范围,及接收器1检测不到发射区A的信号的临界位置;

  4. 左转至接收区A接收到发射区A的信号,接收区B接收到发射区B的信号;

  5. 后退,如果接收区A接收不到发射区A的信号后,重复步骤4,然后继续步骤5,直到对接成功;


2. 视觉传感器

对于自动充电印象比较深的就是Anki公司的机器人Vector,它应该算得上是纯视觉实现近距对位自动回冲的一个典型案例,也是我十分喜欢的一种方案。

之前做过一些简单的研究,Vector本身好像并没有红外和激光传感器,根据它回家前的动作(记不太清了,好像是先360度一直旋转,直到看向充电桩,然后简单调整一下自己的姿态,掉头倒车入库,一发入魂—-当然也有概率会回家失败,这时候它会跑出来继续360旋转,重复上述步骤)

因此Vector回家充电可能仅仅依靠视觉图像,充电桩的HOME小标志以及那个互动的小立方体上面的小标志,像极了ArUco码或者AprilTag码的变种,推测技术原理应该类似于ArUco码或者AprilTag码这种原理,通过识别到的图像畸变程度,估算出自己和充电桩的相对位置,然后规划出一套回家轨迹,直接通过轮子尺寸计算出旋转圈数,开环执行;如果一直没到家,就反方向走,直到再次看到充电桩的时候,重新执行

以上也仅仅是本人根据Vetcor的动作逻辑和简单的拆解进行的分析推测


2.1 视觉对位方法探索

既然是用Originbot去做,那么尽可能的用Originbot现有的能力进行尝试——摄像头,因此这里重点分析一下视觉传感器实现自动回充的方案:

想要近距离对位回家充电,那么知道充电桩的位置最重要(与机器人的距离,方位等),那么仅依靠视觉的话,首先想到的就是通过AprilTag码的方法。

AprilTag码

如上图便是AprilTag码,可以发现AprilTag和二维码极其相似,相对于二维码,它的优势在于降低了复杂度可以满足实时性要求,另外AprilTag的识别范围也会更远一些。

首先先了解一下AprilTag,按官方说法,AprilTag是一个视觉基准库,在AR,机器人,相机校准领域广泛使用。通过特定的标志,可以快速地检测标志,并计算相对位置……

“…并计算相对位置…”,似乎该方案也具备一定的可行性,已知充电桩和Originbot的相对位置,那不就和方案1中的红外对位想要达到的目的一样了么,而且此方案也不需要额外加装传感器,在充电桩上贴个AptilTag码,然后利用Originbot自带的摄像头即可实现效果

因此,依靠纯视觉对位方案成为首选方案。


3. 激光雷达

往往移动机器人都会搭配激光雷达作为环境感知的传感器,因此仅靠激光雷达也变成了一个近距离对位的一种方式。

主要原理: 将充电座表面区设计为高低不同的凹凸区域,凹区域与凸区域上面覆盖不同的材质,凹区域的材质的光线反射率高,凸区域的材质的光线吸收率高,激光雷达通过对这些区域进行扫描从而识别充电座。

既然都用到激光雷达,而且可以识别出来充电桩,剩下的实现方案就简单很多了,直接用SLAM导航的方法扔进来直接对位就行了。

由于手中的这个Originbot没有雷达,暂不采用该方案



关于自动充电方案的分析就先到此告一段落,后续着重围绕视觉方案继续探索:第一步——对AprilTag码的识别以及相对位置计算。