小编大学学的是自动化(控制)专业,自打上大学的天起,老师们就语重心长的告诉我们,自动化专业是万金油(SHA DOU XUE)专业,培养了大量从事嵌入式软硬件开发,IT,互联网,人工智能,计算机视觉,仪器仪表,甚至是管理等各行各业的人才,就是毕业后从事本专业的人少之又少,哎,大学专业选择真是一门科学啊。
本文与大家分享一下移动机器人研发中所涉及的一系列控制问题,以说明作为机器人领域里内的核心技术之一,控制学也是很“硬核”的。
1. 移动机器人运动控制
“天下武功,唯快不破”,移动机器人一般通过电机控制轮子完成移动。作为末端执行机构,电机的运动控制要求响应快(毫秒级响应时间),精度高。目前,典型的电机控制是一个串级控制系统,由三个闭环反馈组成,即位置环,速度环,电流环,其原理如下:
图1 运动控制原理图
OK,控制模块本质上就是三个PID嵌套,So easy。老师告诉我们,目前90%以上控制系统使用的都是PID,因为PID真的很鲁棒。另外,对于移动机器人的主动轮电机,往往以控制电机转速为被控变量,此时没有外面的位置环,只需要速度环,电流环两个环即可。
2. 机器人运动模型
模型是一切控制系统的基础,机器人运动模型描述的是移动机器人主动轮转动的速度与机器人整体运动状态的关系,不同底盘构造的移动人运动模型大不相同。常见机器人运动模型有三种:单舵轮、双轮差动、双舵轮。
图2 常见移动机器人运动模型
本文以单舵轮为例(其实就是一种三轮车),由后面两个固定轴的从动轮,以及前面一个可以转向的主动轮(舵轮)组成。假设我们过一个不急的弯,需要以v = 1m/s的线速度前进,同时带着w = 0.1rad/s角速度漂亮的漂移过弯。那么我们既要决定打多少方向,又需要决定脚蹬的多猛,这就是机器人运动模型所解决的问题。
根据图中所示:
根据输入的v= 1m/s, w = 0.1rad/s,可以反算出vf与θ的值,其中θ对应于三轮车车头转的方向大小,而vf对应于脚蹬的多快。其他两种机器人运动模型读者可自行推导或查找相关资料,而且实际上的运动模型并没有如此简单,还需要考虑车轮的弹性系数等复杂的物理变量。
3. 路径跟踪
控制论中经典Tracking问题,即给定一条轨迹,移动机器人需要尽量沿轨迹行走,控制目标是尽量减小机器人实际行走路线与规划轨迹的偏差。如下图所示:
图3 路径跟踪问题示意图
4. 定位问题
其中,f是运动方程,u是输入,w是输入噪声,g是观测方程,y是观测数据,n是观测噪声。
常用里程计信息预测机器人下一个状态的位置,也就式(1)可以简化为:
Δxk表示采用里程计信息计算得到两个时间间隔中机器人的相对运动。
而对于激光定位来说,所谓的观测方程,就是激光雷达所检测到的所有激光点与地图匹配后得到的机器人位置估计。
对于视觉SLAM来说,所谓的观测方程,就是相机拍摄到的图片中的特征点与地图匹配后得到的机器人位置估计。
根据定义,这是典型的卡尔曼滤波(俗称“即卡又慢”)表示形式,学过系统辨识与滤波的同学可以愉快的玩耍了。
5. 多机调度
实际场景中往往需要多台机器人同时在线解决复杂的多项任务,多机调度系统需要优化每个移动机器人的行走路径,避免路径死锁,也就是路径互相被占,且无法自主释放。
图5 堵车是死锁问题,移动机器人调度中也会遇到
除了需满足不死锁的基本要求,多机调度系统更需要合理分配任务至每个移动机器人以提升总体任务执行效率,同时选择合适时机分配空闲的移动机器人自动充电。考虑到机器人随时可能遇到异常故障退出调度,以及添加新的机器人等情况,因此多机调度系统解决的是一个随机环境下的动态优化命题,问题复杂度是NP-hard的,需要开发人员熟练掌握《运筹学》、《图论》、《Multi-agent》、《分布式系统控制》、《离散事件动态系统》等相关控制领域的知识。
后,作为控制学众多研究方向中的当红小生,近火热出天际,号称人类第N次工业革命“人工智能”之术,怎么还没出现呢?其实,移动机器人领域的很多问题,终ji的解决方案就是人工智能,比如轨迹跟踪问题,如果达到人类的智能就可以随心所欲的漂移过弯,停车一把到位,比如自主定位问题,人类仅凭一双眼睛就能环游世界而不迷路,因此,已经有大量研究尝试采用强化学习的方法解决移动机器人行走的问题,采用深度学习方法解决自主定位的问题,这些前沿的算法将是使机器人真正能够像人一样“会看,会想,会走,会做事”的技术基础。
本文属于纯原创文章,转载请注明杭州蓝芯科技有限公司