华为天才少年造出自动驾驶单车!图纸已开源,硬件成本一万,B 站老板:重新定义「自行」车...
Posted 公众号码个蛋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为天才少年造出自动驾驶单车!图纸已开源,硬件成本一万,B 站老板:重新定义「自行」车...相关的知识,希望对你有一定的参考价值。
文章转载自量子位,上图为b站up主华为天才少年稚晖君
果然高手在民间。
谁能料到,一辆自行车的硬核打开方式,竟是大火的自动驾驶。
踢开脚撑,金鸡独立、稳如泰山:
单侧加个板砖?小场面:
毕竟,它是连高难度 “杂技姿势” 都能 hold 住的自行车:
没事走两步?
可以有,还是会自己拐弯的那种:
避障、上路,毫无压力:
甚至还配备了特斯拉都没有的激光雷达。
这就是 B 站 “野生钢铁侠” 稚晖君耗时 4 个月时间(基本只是周末),打造出的全新项目 XUAN (轩)。
短短几天,播放量超过 150W,硬核、复杂程度之高,直接看呆一众网友。
来感受一下这个画风。
连 B 站老板陈睿都被吸引而来:
甚至业内人士也直呼:
任何一个部分拿出来都是一篇本科毕业论文。
还有实物,硕士毕业绰绰有余……
稚晖君到底是如何打造的这么一台 “赛博朋克” 自行车?
接下来,让我们一起一探究竟(经授权)。
(你可能还很关心它的价格,别着急,我们文末揭晓答案~)
把自行车做成自动驾驶,共分几步?
稚晖君选择的自行车,是大家非常熟知的死飞 (Fixed Gear)。
(没错,就是漂移玩家的最爱)
这种自行车的一大特点,便是结构简单、没有刹车。
于是,稚晖君先对死飞进行了一个 CAD 建模的工作。
建模工作完成之后,便得到了一辆虚拟自行车。
此后的所有改造工作,便可以在计算机上完成。
整体来看,XUAN 的诞生一共分为三大步:
硬件改造:因为自行车是一个欠驱动系统,所以先要做的就是让它站稳,然后跑起来。这一步将涉及一套复杂的自动控制系统。
智能化:毕竟自动驾驶嘛,“工具人” 就得被抹去。因此,这一步便是搭载一整套传感器组成的感知网络,以及一个算力足够强大的计算芯片作大脑。
软件和算法:最后一步,便是在上述的硬件基础上,开发、实现一套感知和控制算法。稚晖君称之为 “注入灵魂”。
Step by Step,先来看下第一个大问题。
自行车怎么自己保持平衡?
在骑自行车的时候,前后方向的平衡,靠得是 2 个轮子的支撑和地面摩擦力。
而左右方向上,运动过程中靠的是龙头的左右调节,获取转向的加速度,以此抵消重力的影响。像这样:
那么在静止状态下呢?
稚晖君给出的思路便是 —— 角动量守恒。
简单来说,当车子在重力作用下发生倾倒,就用动量轮来产生一个相反力矩,抵消掉重力力矩。
具体而言,稚晖君在这辆死飞座位下方安装了一个无刷电机,目的是驱动一个金属的动量轮。
而在座位后方,他也安装了一个无刷电机,这个目的则是靠摩擦力来驱动后轮,让自行车整体前后运动。
稚晖君本是想用 3D 打印来完成这两个零件的加工,但碍于材料硬度和刚性不足,所以金属材料成为了此次的首选。
(所幸,稚晖君朋友家里 “有厂”,问题迎刃而解)
而后,便是快乐的组装环节:
OK,自行车的平衡问题,就此解决。
自行车的 “机器大脑”
硬件框架有了,想让自行车能跑起来,甚至能认路,下一步就是上 “脑子”。
跟人类相似,机器人也分 “大脑” 和 “小脑”。
简单来说,小脑用来控制实时行动;大脑则负责耗费算力、高时延的感知和决策。
这一回,稚晖君给自行车上的 “小脑” 是 ESP32。
ESP32 是一种低成本、低功耗的单片机控制器,集成 Wi-Fi 和双模蓝牙。
基于 FreeRTOS(一个开源嵌入式实时操作系统),稚晖君搭建了小脑的 RPC 通信框架,用来实现传感器的数据处理,以及电机的控制算法。
“大脑” 则是昇腾 310。这是昇腾系列的边缘计算芯片,基于达芬奇架构,最高能够提供 22TOPs 的算力。
大脑的算法开发,主要基于昇腾 AI 栈和 ROS(机器人操作系统)实现。
于是,在深度相机、激光雷达等传感器的帮助之下,这辆自行车能够检测出周围的物体,实现避障和跟随:
还能够机智地识别地形,给自己规划路径:
自行车的 “机器心脏”
当然啦,“成精” 的自行车,不仅要有头脑,还要有一颗强劲的 “心脏” 来驱动它工作。
而 XUAN 的 “心脏” 来自稚晖君的另一个项目,Ctrl-FOC 矢量控制驱动器。
这是一个超迷你双通道无刷电机驱动器,单路最大驱动电流能超过 100A。
值得一提的是,稚晖君的这一 FOC 驱动器有两个版本的设计方案,其中一个版本,电路设计为上下叠板设计,将逻辑单元和功率单元分开。也就是说,只需要替换掉驱动电路,就可以匹配更大功率的电机。
具体到 XUAN 这个项目,下图中这么大点的驱动器,最终实现了两路共 100A 的无刷电机 FOC 控制,还驱动了车头 60kg 扭力舵机和散热风扇。
最后,注入灵魂
万事俱备,但想要上路,至此还少了一点炼丹的灵魂 —— 调参。
稚晖君表示,这辆自动驾驶自行车的控制代码中,有超过 50 个重要参数,包括控制周期、反馈矩阵、PID 增益、滤波器截止频率等等。
此外,电机的功率、重心的分布等物理参数,也都会对最终的效果造成影响。
稍有不慎,那自行车就不是稳如老狗那画风了……
在数学建模之后,稚晖君还采用了游戏引擎 Unity 作为仿真环境,像正经自动驾驶研发那样,先在仿真环境里让自行车跑了个踏实。
总之,让一辆自行车成熟起来,自己上路,够不容易的。
就有网友表示:
人傻了,毕业设计题目是自行车自平衡系统设计,做到调参就不会了。
不过,受限于整车功率,目前这辆自行车还不能载人。
另外,也有网友提出,用动量轮来控制平衡属于某种意义上的作弊。对此,稚晖君回应:现在的龙头传动结构设计不太合理,之后会尝试只用龙头控制平衡。
为什么要造 XUAN?
有关 “栈溢出工程师”、“野生钢铁侠” 稚晖君,想来关注 B 站科技区的小伙伴们已经很熟悉了。
稚晖君本名彭志辉,2018 年毕业于电子科技大学,2020 年通过 “天才少年计划” 加入华为。
他的视频向来以硬核著称,比如从手画 PCB 到写 C++ 代码全部一人搞定的套娃小电视。
辣么这次,稚晖君又是怎么萌发了打造一辆自动驾驶自行车的念头的呢?
理由有些 “暴力”……
骑车不小心摔了,脸刹着地……
稚晖君表示,“这事不能就这么过去了”,于是乎:
(心疼稚晖君几秒)
当然,稚晖君本人也在视频中表示,其实很早就有设计这种自行车的想法。
最初是因为看到清华大学的那项自行车研究,可以跟随人类,敏捷避开障碍物。
其背后的类脑芯片 “天机” ,也于 2019 年 8 月登上 Nature 封面。
好奇的小伙伴肯定会问了,二者有何区别?
量子位替你们问完了哈~
首先,是原理不太一样。
清华的自行车模仿的是人类行为,没有使用动量控制,而稚晖君的 “轩” 则涉及到了动量控制。
此外,在龙头方面,稚晖君表示在改进过后,也可以实现清华的控制方式(移动过程使用龙头平衡,静止状态使用动量平衡)。
但最核心的一个区别就是,清华打造的自行车背后,核心是类脑芯片。
对此,稚晖君表示:
他们的工作很厉害,我这个无法类比,只是受他们启发做了个类似的应用。
为了体现跟清华工作的区别,稚晖君本人还在项目名字上下点了功夫。
XUAN 里的 “U”,代表的意思是 unNATURAL,“正经翻译” 就是 —— 没上过 Nature……
这个项目一如既往地开源了,如果你也想复刻一下……
哦对了,是时候该揭晓 XUAN 的造价了 —— 据大神本人不完全统计,超 3 万元。
不过,稚晖君也表示:
最终硬件成本来算的话应该不到一万,就激光雷达贵一点,主要还是试错成本。
以及,划重点,不售卖哈~
视频连接:
https://www.bilibili.com/video/BV1fV411x72a
项目连接:
https://github.com/peng-zhihui/XUAN-Bike/tree/main/Hardware/XUAN%E5%8A%A0%E5%B7%A5%E4%BB%B6
参考链接:
[1]https://zhuanlan.zhihu.com/p/147659820
[2]https://www.bilibili.com/video/BV11V41127pq
关注本公众号后台回复“github”
即可获得我珍藏的1000本开源技术书!
码个蛋专属活动:打卡入口
为什么要做这个活动?
关注「码个蛋」,一起打卡成长
关注后可获得码仔动态表情包
以上是关于华为天才少年造出自动驾驶单车!图纸已开源,硬件成本一万,B 站老板:重新定义「自行」车...的主要内容,如果未能解决你的问题,请参考以下文章
华为天才少年造出自动驾驶单车!图纸已开源,硬件成本一万,B站老板:重新定义「自行」车...
搏一搏,单车变摩托!华为天才少年耗时四月将自行车强势升级为自动驾驶
“搏一搏,单车变摩托!”华为天才少年耗时四个月,将自行车强势升级为自动驾驶...
“搏一搏,单车变摩托!”华为天才少年耗时四个月,将自行车强势升级为自动驾驶...