当前位置: 华文问答 > 科学

如何自己动手做一个不会摔倒的人型机器人?

2020-06-20科学

如果题主指的是双足机器人的话,那主要涉及姿态控制和步态规划,波士顿动力的Atlas相信题主肯定了解过↓

Atlas机器人 https://www.zhihu.com/video/1112713151824596992

最新视频中其能跑能跳的机动能力技惊四座,可以说是世界范围内目前人形双足机器人的巅峰了。

但是这个层级的机器人,已经远远超出了自己DIY的范畴了:波士顿动力自从 MIT 诞生开始,所做的东西就目的十分明确,招纳了大量高端人才,人才和资源丝毫不缺,MIT 的工程背景,军方的支持,之后 2013 年被 Google 收购,2017 年又被卖给软银,realtime hydraulic drive system 技术世界领先,拥有大量专利...

以上种种才有视频中的惊艳表现,自己想DIY出这样的一个机器人并不是很现实。不过呢,如果只是想以Atlas为目标朝这个这个方向去尝试,那倒还是有很多可以玩的空间的。

比如我参与学校期间就做过一个类似的双足机器人↓

全身24个自由度(不包括手指),全无刷电机加谐波减速器驱动。这么大的机器人要想顺畅又稳定地走起来是非常有难度的,不像网上卖的那些小型舵机机器人,基本都是靠着巨大的脚掌来保持平衡,在这样真人大小的机器人中我们需要进行复杂的动力学分析和建模,动态调整电机力矩输出和身体姿态来进行自平衡。

下半身的步态测试 https://www.zhihu.com/video/1112715889467756544

对于这个机器人,可以将其简单看成一个高阶倒立摆,当时控制算法使用的还是相对基础的ZMP零力矩点算法,通过采集脚底下安装的力矩传感器,调整电机力矩输出平衡运动惯性来保持稳定,基本可以实现直立行走,但是效果其实相对于Atlas来说还差得很远,远没有那种行云流水般的自然感。更何况Atlas使用的驱动方案还是液压而并不是电机,控制难度有进一步的提高。总的来说,双足是个大坑,如果有兴趣的话,值得你投入很多年的时间去深入研究。

除此之外,回答中也有人提到了村田公司的自平衡机器人,像是骑自行车的murata boy和骑独轮车走单杠的murata girl↓

这一类机器人都是通过惯性飞轮和角动量守恒来维持平衡的,以前网络上很火的Cubli方盒机器人也是一样的原理。论难度来说,要比Atlas低上好几个等级。这一类型的机器人个人在很多年前也曾经仿制过↓

独轮机器人ONE https://www.zhihu.com/video/1112718971878543360

这种轮式机器人的控制就简单很多了,ONE中我使用的控制器是一块Cortex-M3内核的STM32,控制算法使用简单的LQR甚至PID就可以满足要求了。通过陀螺仪和加速度计进行姿态解算得到位姿数据,经过PID控制器反馈到电机输出,只要参数调得好很容易就可以出效果。

关于轮式的自平衡机器人我还做过很多,比如下面这个两轮自平衡的超迷你机器人↓

全球最小自平衡机器人Nano https://www.zhihu.com/video/1112720739366670336

控制原理和上面的独轮类似,PID足矣。Nano的详细介绍可以参考我这一篇回答↓

最后简单总结一下题主的问题,要DIY一个不会摔倒的机器人有几种实现方式:

如果是想做轮式机器人的话,难度相对较低,去了解一下IMU传感器、姿态解算、PID算法,基本上就可以DIY一个自平衡机器人,推荐从两轮自平衡开始入手。

如果是想DIY一个双足机器人,那么我认为题主应该是想要做小型的舵机双足机器人,这种情况下,由于平衡主要是靠大脚掌支撑保证,那么只需要事先编辑调整好步态序列,确认行走过程不会摔倒(摔倒就看方向调整舵机输出值),然后记录下来重复执行舵机输出序列即可。

长期搞各种脑洞项目,大家不嫌弃的话也可以点上面关注一下~不定期更新

顺便微博@ _稚晖