移动机器人入门篇

从零九年开始接触机器人研发,不得不说,有必要写一篇长文了。

我在接触机器人前,接触过单片机,那时候的单片机还是51、PIC16这种,当时就特别好奇:机器人一个关节需要几颗这样的芯片?这个问题我记得最清楚,因为做了机器人,发现根本不用芯片,整个机器人一个芯片就够了。不过随着认知的不断提升,这个问题很难回答。那我们就开始我们的机器人之旅。

机器人解释为机器获得了一些人的特点。电视里经常看到的变形金刚、钢铁侠、铁胆火车侠都具有人的形状,更容易被人理解;

《特种部队》里出现的机器蜜蜂、《Agents of S.H.I.E.L.D》中的飞行器说是机器人我们也可以认可,因为这些仿生机器人科技含量很高;

波士顿动力(www.bostondynamics.com)的大狗系列也可以说是机器人,即便它是机器人狗。

不过大家一定记得机器人瓦力,这部08年安德鲁斯坦顿编导的《机器人总动员》,在无数科技爱好者心里埋下了机器人的种子。瓦力的特点是移动能力依靠履带,视觉能力靠两颗眼睛,具有两个机器人手臂,大脑发达。这种履带式的移动方式,也被目前的很多机器人采用,不过更适合野外,对于室内或者地面状况比较好的情景中,轮式以其高度的灵活性被广泛应用。这就像汽车里只有挖掘机类似的采用履带,而多数汽车都采用轮子。

轮式移动机器人在移动机器人应用中占有很大的比例,最近火的一塌糊涂的申通小黄人(http://tv.fanjian.net/110237.html),代表了移动机器人在智能分拣系统中的应用,机器人的规模大家可以根据我国16年313亿件快递量推算。各大物流公司、电商都在积极布局,挖掘人才以及引入技术(http://www.agvbaike.com/cangchujiqiren/2017-03-28/6523.html)。

其实这些移动机器人在物流以及电商火之前就存在,只不过名字不同,比如AGV(https://en.wikipedia.org/wiki/Automated_guided_vehicle),在20世纪就开始服役。现在仓储物流火了,各大AGV公司开始了变形计。

再放眼国内外的机器人竞赛,轮式移动机器人绝对是随处可见。高等院校竞赛中Robocon(http://www.cnrobocon.org/)是亚太区的一项机器人竞赛,由日本发起,目前举办了16届,前面链接是国内赛链接,这项比赛难度高,技术含量高,门槛高,已经是一个三高状态,在行业内的认可度也高,每年为社会输送机器人技术人才数以千计。十几年来,在各个机器人公司的关键岗位,都有Robocon人。参加院校可以是985/211,也可以是高职,下面是16年参赛院校。

下面附上16年比赛视频,2017年比赛会在5月末开始。

国内决赛东北大学VS成都电子科技大学

http://www.iqiyi.com/w_19ruippw4l.html

国际赛东北大学VS日本

https://v.qq.com/x/page/e0322raz6tf.html

Robocon技术含量高,不过却在行外鲜为人知。虽然也在CCTV播放,不过在节目强调价值观与娱乐性的今天,娱乐性强的真人秀备受追捧,跑男一个明星至少要几个摄影师,多台录像机以及手持设备。而我们比赛场上,科技精英们的作品被表现的却差强人意。

另一项机器人比赛Robomaster(https://www.robomasters.com/zh-CN)这几年很火,这项比赛发起者是06年Robocon队员。这位队员创建了大疆公司,目前年营业额过百亿。这项比赛观赏性比较强,行业内普遍认为技术含量较Robocon低,不过这项比赛我并没有太多了解,所以无法过多评价。不过可以确定的是,这项比赛同样培养了一批优秀的机器人精英。

此外,Robotac(http://www.robotac.cn/)是面向高等职业院校的机器人竞赛。

中小学比赛FLL、WER、VEX、NOC等等,都是移动机器人项目。不得不提,目前机器人行业中,唯有中小学教育这一块是发展的好。公司旁边就有家做乐高机器人培训的,做的有模有样(公众号:小张老师)。

移动机器人多种多样,不过移动部分大同小异,我们将它叫做移动底盘或者移动单元。

移动底盘主要由几部分组成:主控制器、电机(马达),电机驱动器,传感器,轮子,机械底盘组成。

主控制器主要负责机器人移动的控制,包括了传感器数据的采集,走行决策以及路径的规划。目前主控芯片还没有大一统,有MCU、MPU、PLC、电脑等,MCU具体有意法半导体的STM32系列、恩智浦LPC系列、Arduino系列(分到这里不太妥)、51系列等。不得不说两家公司,一个是伟大的ARM,一个是意法半导体。

ARM公司(http://www.arm.com/)是一家芯片授权公司,自己不生成销售芯片,从以前的ARM7~ARM11,再到ARM CORTEX-A系列和M系列,A系列占领了大部分手机市场,可以说大部分手机内核都手机芯片厂商从ARM拿的授权;M系列也厉害,基本代替了以前的8位、16位单片机,M0系列主打低功耗,干掉TI的MSP430,M3、M4是单片机中的战斗机,高性能。

这里意法半导体(http://www.stmicroelectronics.com.cn)的STM32系列就是一个赢家。当年各个芯片厂家都有自己的MCU IP,不过意法半导体率先采用ARM M3/M4,配合大量的市场推广,导致现在几乎很少人知道其他厂商M3/M4 的MCU。对于大学市场,意法半导体做到了让很多同学可能不知道ARM,却知道STM32。Cortex-M系列确实适合于新兴的机器人、智能家居、物联网、智能穿戴等领域。

单片机这块编程主流采用C语言,部分汇编;因为没有MMU以及资源不足,无法运行类似linux等操作系统,不过freertos、usos、mqx等小型OS还是可以的。编程软件目前多采用IDE,比如Keil、IAR等,不过也有很多人直接使用tool train来开发。

单片机外设丰富,包括可以控制LED的IO、控制蜂鸣器的PWM、检测开关状态的IO、读取测距传感器数值的AD、多轴协调控制抗干扰的CAN、串行总线SPI、UART、I2C、用来即时的Timer。总之,多种多样的传感器以及其他设备,都可以使用这个控制器来处理。目前可以根据需求采购不同型号的MCU,然后自己设计SCH、PCB,手焊或者SMT,不过也可以采购开发板,开发板功能全,个大,学习用非常适合。既然提到了硬件设计,那就提下硬件设计的主流的几个软件:altium designer,cadence,pads,protel等等。

PLC我们可以理解为稳定性特别高的单片机。1968年为了取代汽车中大量的继电器,PLC应运而生,不过到现在我们把它定义为稳定的单片机也并不过分。PLC在工业中被广泛使用,其编程方式也更加适合于电气工程师,就像Arduino更适合于设计一样,类似我们这些计算机的老帮子来讲,不喜欢!PLC内部的资源并没有单片机那样丰富,为了提高稳定性,不能什么都搞一堆,单片机中动辄上百的IO,在这里少的可怜。PLC价格也不菲,现在几百块能买一块很好的开发板,不过差不多的PLC得几千上万。PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。梯形图用的多,不过对于我来讲,更喜欢ST。如果你的机器人稳定性要求特别高,那么用PLC吧。

当然,这几年流行起来的Arduino(http://www.arduino.org/)和树莓派(https://www.raspberrypi.org/)也可以用在机器人中。

Arduino是为设计师开发的,也可以认为是给一些创客开发的,不需要多少基础,就能完成一个小发明。Arduino只是定义了电路板的封装接口和软件编程接口,所以芯片可以是任意能够满足这些要求的,这里更正下大家对于Arduino的看法:Arduino性能一定很low,这个不对的。对于Arduino编程来讲,真是简单透了,一个setup函数,一个loop函数就搞定了。

 

树莓派就是一个微型电脑,如下图,轻松连接显示器。所以树莓派和Arduino不同,其目的是像小电脑一样驰骋在需要它的战场上。有人用树莓派搭建了服务器集群,不过我想说树莓派也可以用在机器人控制上。最近很火的SLAM技术,很多人可以通过ROS(www.ros.org)体验SLAM的帅呆,这个ROS就可以运行在树莓派上。目前很多自主定位导航机器人基本采用了ROS。树莓派接口丰富,已经出了三代,树莓派3价格也就几百块,只有掌心大小。

                                                     

笔记本电脑、工控机也会出现在机器人移动底盘上,不过并不多见。

轮子 轮式机器人不得不提轮子,有了轮子配合一部分机械件就可以想象出机器人的移动底盘了。这个也容易理解,生活中给一个轮子就是独轮车,两个轮子自行车,三个轮子三轮车,四个轮子轿车….

机器人中也有生活这种轮子,我们叫它普通轮子。

 

 

这种轮子主要用在差速控制中,也就是两轮同速走直线,不同转弯走弧线。下面这个玩具机器人就是采用的这样的轮子,同样申通的机器人也是采用的这样的结构。这个轮子因为有电机(马达)带动,所以我们叫做驱动轮。

 


 

轮子轮毂可以采用金属也可以是塑料材料,轮胎采用橡胶或者聚氨酯材料。聚氨酯轮的寿命和负载能力是橡胶轮的4~5倍。

差速轮详细走行算法可以参考http://mp.weixin.qq.com/s/8jT51bC_hCeTmAM8jdYTVg

 

差速轮无法实现机器人的平移,也就是我们倒车入库费劲的主要原因。而下面这个轮子结构,就可以让倒车入库简单。

 


这两种轮子的共同点是轮毂上还有小辊子,第一个叫做全方位轮,另一个是麦克纳姆轮。全方位轮上面的小辊子和轮子方向成90°,而麦克纳姆轮成45°。全方位轮可以组成三轮、四轮结构,而麦克纳姆轮只能成对出现,至少4个。这种轮子可以组成这样的机器人移动底盘。

 



 

三轮结构灵活,不需要浮动机构,不过相对四轮驱动能力和速度弱一些。具体控制方法参考http://mp.weixin.qq.com/s/2dLgQ_i4nnWEZCmaFIxo0g

四轮结构需要额外的浮动设计,不同性能好很多,控制方法参考http://mp.weixin.qq.com/s/mgRoaRcUELwfDqg4JkFcjw

这个像不像一台小轿车?停车很方便,,这种轮子能够做到大负载,现在很多工业叉车采用这种。具体控制方法参考http://mp.weixin.qq.com/s/5V0Ie1KLDlOjtRt_NivWvQ

这几个移动底盘都可以实现任意方向的平移以及旋转,如果把它用到《速度与激情》里,漂移会编程什么样?

轮子还没完,轮式机器人中,地面通过与轮子摩擦给机器人提供牵引力。所以很多时候,驱动力不足就是小马拉大车,不过驱动力十足而摩擦力不够,也是件头疼的事情。另外,由于控制原因,让驱动轮不打滑很难做到,只是打滑多少的问题。

电机(马达)电机这东西有意思,你可以叫它电机,也可以叫它马达。不过经常叫他电机的人会瞧不起叫它马达的人,其实没必要。马达是motor的音译,而电机是对motor原理上的翻译,用电动起来的机器,电动机。在机器人中,电机很常见,马达也很常见。就在我们的移动底盘中,它又要登场了。我们要抛却单驱、双驱、四驱这些概念,因为在我们这里,我们要全驱,也就是有轮子就要有电机。所以上面的底盘用到几个电机大家数数就知道。

这里我们只考虑直流供电的电机,因为目前大部分机器人是这样的,使用的电池供电。直流电机中分为有刷电机和无刷电机。

有刷电机换向是通过碳刷或者稀有金属刷等完成的,这种机械换向的方式控制简单,不过寿命短、噪音大、耗电多。相对无刷,缺点真是一大把,所以无刷也是趋势,目前来看有刷控制太简单了,整个产业链还并没有被无刷替代。

直流有刷电机可以简单到玩具车里的普通直流马达,也可以复杂到精密仪器里的伺服电机。他们从控制方式上的区别是一个开环控制,一个闭环控制;硬件上的区别就是电机的指标:功率密度、扭矩、转速、机械时间常数、电压等等。所以5块钱能买到马达,并不稀奇,上万块买到一个电机也要惊讶。通常来讲,玩具包括现在大部分中小学教育机器人、大部分机器人竞赛用的都是普通直流电机,而用作伺服的电机因为比较贵,在大众眼中并不多见。

所以直流有刷电机的驱动器也可以简单到只实现一个H桥电路板,亦可以复杂到是一个系统。价格是从几十块到上万块都有。国外贵的典型美国Copley http://www.copleycontrols.com/和以色列ELMO http://www.elmomc.com/

安川电机http://www.yaskawa.com.cn/

MAXON电机http://www.maxonmotor.com

当然如果对性能有要求却又支付不起伺服电机,可以到一些平台淘二手,有些成色还是可以的。

对于机器人移动底盘,我们通常比较关心两点:速度和加速度。所以在已知机器人重量后,选择电机不能随便算,要根据机器人速度、加速度需求进行计算电机的扭矩和转速,根据系统的电源电压选择合适的电机。电机选好后,选择驱动器也要仔细,第一要看的就是最大持续电流以及温升。最大持续电流一定要满足上面计算好的电机的需要,为什么提温升呢?电机驱动器也是有电子器件组成,通常温升10度,器件寿命会减半,这也就是有名的10度原则。所以驱动器选型这一块,可能很多驱动都能做大这个持续电流,不过温升很可能不一样。另外就是驱动器控制响应是否快速,是否精准,这些都是驱动器的基本性能指标。

无刷电机采用电子换向,所以不是两个电源线,是三根。驱动器有规律的给三根线电压,来控制电机旋转。没有刷的束缚,效率提高了,寿命提高了,不过这些也提高了软件控制难度,如果容易的话,当初也不会发明有刷,而不是无刷。有了驱动器,主控制器可以忽略电机是有刷的还是无刷的,因为这个对于主控制器来说透明。主控制器只需要告诉驱动器让电机如何运动就行了。

上面断断续续的提了电机驱动器,我们这里只提伺服驱动器。什么叫做伺服呢?伺服就是主控制器让电机怎么运动,电机和驱动器合伙要保证这个,不让主控大人操心,并且要准确,还要迅速,不能拖拖拉拉。所以对于那些性能贼差的电机我们就不要做伺服了,对于那些不需要精确控制的比如遥控玩具车,我们也不要用伺服了。伺服电机一定是电机中的精英,机电时常数小、线性度高、始动电圧低。

那么这样的电机肯定不需要猪一样的队友,驱动器要稳、准、快。也就是对于速度、位置或者力矩的控制要稳、要准、要快。这也就是我们常说的驱动器的速度环控制、位置环控制以及力矩环控制。

主控制器想要控制电机,只需要通过通讯接口向驱动器发送命令就可以了,这些命令可以简单到是一个模拟信号,一个pwm数字信号,也可以复杂到CAN信号等。不管是什么,根据驱动器和主控制器的说明,一步一步做就可以了。

上面要进行伺服控制,电机都需要带传感器来测量速度和位置。传感器可以增量式数字编码器、霍尔传感器、绝对式数字编码器等。不过增量式数字编码器较为常见。通常安装在电机轴上。

那么如果我们要做一个三轮全方位的移动底盘,需要一个主控制器,三个轮子,三个电机,三个驱动器(也有一个驱动器可以驱动多个电机的,在此不讨论)。不过还缺少电源,如果要锦上添花,还需要些传感器。不过我迫不及待的要上传下我们还没做好的一个底盘。

 











上面多了一个定位系统,少了一个主控。另外,图上欧巴不是我。

锂电池我们还是继续说电池吧。目前机器人电池已经基本都是锂电池了,镍氢、铅酸基本不用了,不过前几年的irobot用的是镍氢电池。

锂电池学问也不少,首先安装包装来分有圆柱和软包。话说特斯拉用了7200多个圆柱18650拼成了密密麻麻的电池系统。圆柱里面是液态锂化合物,而软包里是固态锂聚合物。锂电池有燃烧、甚至爆炸的危险,这里我们认为燃烧要比爆炸温柔。所以很多业内人士说圆柱液态锂电池危险,因为它会爆炸,而软包聚合物电池只会燃烧不会爆炸。这个说法好像一直都被大部分人认可,直到三星事件那些少部分人才找到了有力的理由。



锂电池从多方面具有先天的优势,所以现在锂电池才能在大部分场景替换掉了老大哥们。能量密度高,无记忆效应,寿命长等。不过在介绍不同的锂电池前,我们要提下锂电池的两个缺点,第一个大倍率充放电容易膨胀,第二个不耐低温。

锂电池有很多指标:内阻、标称电压、容量、充放电截止电压、充放电倍率、循环寿命、能量密度、功率密度等。这些一旦电池材料选好,基本就是根据供应商的差异而不同了。

下面说下不同材料锂电池区别。

钴酸锂:大规模生产,价格昂贵,容量较低,存在一定的安全性问题;

镍酸锂:成本较低,容量较高,但制备困难,材料性能的一致性和重现性差,存在较为严重的安全问题;

三元镍钴锰酸锂:集成上面有点,可逆容量大,结构稳定,安全性较好,循环性能好,合成容易;

磷酸铁锂:不含贵重元素,原料廉价,资源极大丰富;工作电压适中(3.4V)平台特性好,电压极平稳理,论容量大(170mAh/g);结构稳定,安全性能极佳,高温性能和热稳定性明显优于已知的其它正极材料;循环性能好,无毒。成本、高温性能、安全性方面具有突破。但是能量密度低。

我们关心的电池寿命,标称800次循环,指的是充满后,放电到截止电压算一个循环。

标称容量是只1C放电,当达到截止电压时,时间应该达到1小时。

锂电池的使用,通常应该是充好电后,静置一段时间再使用。不用时,应该充电储藏,置于充电多少,手册都会给出。

据调查,机器人市场,目前采用三元锂和磷酸铁锂居多,软包和圆柱均有。

传感器通常我们采用的传感器多种多样,上面的这些选好后,机器人移动底盘已经可以移动了!不过,也只是能够移动,加个遥控可以手动遥控。要想自动还差一些工序。机器人如果想室内定位,也就是知道自己在哪里,那么得需要定位的传感器,这个时候gps、北斗等室外定位方式肯定不行了,这个可以自己研发了,目前市面上室内定位的也就是上面底盘上那个定位系统了,不过那个使我们开发的,大家也可以自己开发,是基于mems的。

臂章呢?简单的就加一圈光电传感器,可是距离2米,这样也行,这些传感器是二值化的,就是有东西就输出高电平,没有东西就低电平;发现哪个方向有障碍物,那就赶紧躲开。不过这个不准,我们可以用红外测距传感器测量障碍物的距离,只有距离近时才躲避。这些传感器无法保证无死角,如果障碍物就在扇形盲区,麻烦就大了。那我们试试激光雷达,可以简单理解为一个能够360度扫描的传感器,扫描距离10米,一秒钟扫描5圈,这回应该够了。所以可以在移动机器人底盘上加个激光雷达来避障。

如果把机器人底盘DIY后放在家里,可以添加温湿度传感器来测量温湿度,用一个小的显示屏或者语音播报模块播出来。也可以添加一个煤气检测模块,一旦检测到煤气泄漏,就用蜂鸣器报警。这些传感器都可以连接到主控制器上。移动机器人的好处在于,一旦做好,一切东西都可以做到上面去,编程移动的。再比如放个摄像头,就是一个移动的监控哦~

当然也可以安装机械手,不过机械手不是传感器范畴,属于执行器。可以在底盘上添加语音识别模块,然后让机器人帮我们做些事情。

我们只抛砖引玉,下面是上面未完成底盘的哥哥还有他的女朋友。

 


发布了2 篇原创文章 · 获赞 19 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/BillyThe/article/details/71758807