今天下午,来自清华建筑学院的大一学生到我的办公室来,讨论车模控制问题。原来他参加了汽车工程系举办的科技冬令营-芯动计划活动,参加这个活动将会学习基本软件操作方法、MCU基本知识以及常见的传感器等。其中 一个活动项目就是制作一个可以巡线运行的电动小车。
^基于模型设计ANYmal 出现的错误动作^
电子、传感器、单片机等学科在电类系中都作为基础课程进行讲授。对于进入建筑学院的这位同学来说,显然对建筑学科内容的兴趣比不上对电子类内容。所以他在交谈中也提到考虑在大一下或者大二上希望能够从建筑学院(这个往日比较热门的系)转动电类系别,比如自动化系等等。
None
当然,他到我这儿不是来请教电子、传感器、单片机等问题的。为的是一个问题,那就是如果根据车模通过视频检测到的赛道信息,完成车模的巡线控制。
对,这是一个控制问题。是自动化专业的重要的核心问题之一。每当此时,我都会比较自豪给学生讲解如何巧妙从系统的观点,从反馈的观点来分析讨论控制。此时,仿佛感觉所有重要的问题都会留给自动化来解决。
学好自动化,走遍天下都不怕。
ANYmal通过自学过程获得控制算法完成爬起运行动作
当然,这是一个虚幻的想法。而且越来越感到,随着控制理论的不断成熟,控制器设计不再需要人工去深入理解其 机理,被直接成熟的软件所替代完成。未来,你只要产生应用的想法,如何设计控制器将不再是问题。所以学不学自动化,实际上不影响你的应用。
那么,我们自动化系专业还有什么用呢?也许,这种对于专业的担忧还仅仅是开始。更可怕的是,往后,这种依靠传统的经典和现代控制理论指导下的设计结果,有可能还比不上直接使用机器学习获得的结果。这是因为经典的控制理论所依赖的系统的线性时不变特性,会在越来越多的场景下不符合。
将学习算法直接部署到ANYmal中,就获得非常好的效果
这两天,一个四足机器狗-ANYmal-通过机器学习的方法获得运行、爬起、抗击打的文章在朋友圈中广泛传播。虽然看起来它的动作还远不如几年前波士顿动力公司给出的“BigDog”画面冲击,但仔细阅读文章之后,就会被它所使用的机器学习方法来完成对ANYmal控制感到惊讶。
ANYmal中的运动策略算法和肢体运动控制算法经过人工神经网络学习之后,获得了更高的运行速度、更低的功耗和力矩消耗。并可以利用到身体的运动惯性帮助从跌倒的状态爬起来。
所有的这些学习仅仅靠普通的台式机,运行半天功夫就完成了所有的算法的训练。而这些控制算法如果靠经典的方式,由工程师来调试,往往需要几周、几个月的时间。
ANYmal获得更高的运动效率和自主爬起的能力
看到这个文章之后,一种浓浓的专业被取消的焦虑感油然而生。比起在2000年左右所遇到的自动化专业危机更强了。
在去年11月底,亚马逊公布的一款依靠深度学习完成运动控制的车模:AWS Deepracer。
在这个车模中,从摄像头获取环境图像,到车模舵机控制的策略,都是依靠在亚马逊云端服务器的训练完成的,然后再直接部署到实际的车模中。车模扭扭捏捏的运行仿佛让我们看到它的确是一个玩具。这个车模动作也比不过有智能车参赛队员经过仔细调整后的速度效果。
^Deepracer 依靠强化学习完成赛道运动控制^
但是今天看到由瑞士苏黎世联邦工学院研究人员公布的ANYmal学习的效果,就令人感到机器学习在这样的动态控制方面超过人类的可能性了。
无论是Deepracer,还是ANYmal的训练过程中,都使用了强化学习的算法。为了解决学习样本不足的问题,都使用了仿真方法,增加虚拟的环境的训练样本数量。如果虚拟环境与实际环境相互接近,则算法可以直接部署到运动平台,无需进行后期的调整。
为了解决实际环境中存在的偏差和噪声。则需要在训练过程中对于仿真数据增加一定分布的噪声,提高训练结果的鲁棒性。
ANYmal机器平台由于采用了高精度的滚珠轴承,使得虚拟仿真对象和实际平台之间很接近,从而增加了训练算法的有效性和可移植性。
ANYmal所学会的侧向移动步伐
话题现在需要转移到全国大学生智能车竞赛上。参加过比赛的同学都会知道,这个比赛中实际上是锻炼同学们基础的机械、电子、嵌入式和控制方面的知识。而这方面的能力锻炼很多学科竞赛平台上都会有,比如电子竞赛、Robomaster、光电竞赛等等。而机器学习和人工智能方面在比赛内容中反而没有被提及。
这其中有比赛平台本身的问题。比如比赛所使用的车模精度并不高,具有很多的随机性和时变特性,这与ANYmal的情形并不相同。
换句话说,如果在仿真环境中训练好的算法,直接部署到现在的车模上,效果会相差很大。
另外就是所使用的传功的单片机平台,在运行机器学习算法方面,计算实时性还远不够。但是有一个赛题组是可以留给竞赛车模来运行的。那就是利用
电磁传感器来导航车模运行的组别。
^ANYmal 失控状态^
如果这个问题放在之前的比赛中,对于电磁传感器长度没有限制,实际上不会显示出机器学习的任何优点。只要在车模机械许可的情况下,将电磁传感器往前尽可能的远,就足以保证车模飞快的运行了。几乎达到车模可控运行速度极限,也就是车模在赛道上开始打滑时的速度。
但今年,电磁车模的长度(包括电磁传感器在内)被死死的限制在30厘米之内。如果只是用车模前面一排的电磁传感器来获取车模偏差的话,参加过比赛的同学都知道,车模将只能像乌龟一样慢慢的爬下来。
可以在车模的后边再增加一排电磁传感器,结合前面所获得传感器,更多可以感知车模相对于赛道的偏移距离和方向,能够提高速度。比如下面这款车模,就是利用车模底部前后两个光电传感器感知赛道灰度,进而得到车模相对于赛道中心的距离偏差和方向偏差,进而完成车模高速运行的。
依靠车模底部前后两个光电传感器运行的竞速车模
当然,也可以在车模两侧部署更多的电磁传感器,在不同方向和高度。
同学们应该会注意到,
以往比赛中传感器的个数都是限制小于16个,但这留下了一个问题。这么多的电磁传感器所获得车模周围磁场的强度,该如何利用呢?如何进行计算,如何进行控制,现在都摆在的新一届的比赛同学面前。
应该说这是一个应用机器学习,完成电磁控制的最佳场景了。这是因为:
1、对于传感器以及电磁环境放置还是比较容易进行,远远比亚马逊的DeepRacer中的赛道图像环境仿真要简单。
ANYmal获得更高的运动效率和自主爬起的能力
2、输入数据维度少,就是电磁传感器的个数,也就是十几个维度。远远小于摄像头所提供的图片信息。因此,无论是训练网络,还是实时控制都是可以的。特别是,对于只有十几个维度的神经网络,使用单片机也可以试试完成运行,这是关键。
3、由于车模本身运行速度已经很慢了,所以对于车模精度不高的所带来的问题并不明显。换句话说,车模运行在中低速下,精度还算可以的。
当然,对于提高电磁导航下的车模速度,也许不会引起同学们的更高的兴趣,原因是规则还允许车模安装摄像头。
但是别忘了,如果赛道中的断路总长度很长,或者阳光晒到了赛道的大部分区域,车模所依靠的还是电磁考航。
有可能最后,车模跑的快与慢,竞赛的胜负就看电磁导航下的速度了。
提问:请问如下车模可以用在节能组比赛中码?
回复:这两车模只是将车模轮胎换成了球形。不允许使用在今年的节能组比赛中。
提问:卓老师,我们在车模前面打了孔并用铜线与前瞻连接起来,但不知道这算不算是违反了 “不能改装避震结构”的规则。
回复:这是允许的。
提问:
曾经有辆车没有跑好,后来我把它的头割下来了。
回复:(我默默的流下了眼泪。)
来源:CSDN
作者:卓晴
链接:https://blog.csdn.net/zhuoqingjoking97298/article/details/104134908