文章资料-情感.机器.认知-电子AI 游客
华为天才少年发布了一款无人驾驶自行车2
【90851】by1 2023-07-26 最后编辑2023-07-26 11:53:00 浏览257

实际上这也是在太空中卫星

在没有摩擦力的情况下调整自身姿态的一样的原理。


图片


而后面的无刷电机就是靠摩擦力驱动后轮,让车子整体前后运动。


图片


关于零件的加工,其中一部分零件可以用3D打印来制作,不过考虑到功率问题,3D打印塑料的硬度和刚性都不太适合作为核心的结构件,因此用于固定电机的零件,稚晖君还是选择用金属来加工。


所有的零件配齐组装完成后,就需要安装电力系统了 ,也就是主控模块和  AI计算单元。



第二部分,让车子有机器大脑



和人类一样,将计算单元分为小脑和大脑,那么小脑部分就分为低算力、低时延、运行实时系统,大脑部分就分为高算力、高时延、运行非实时操作系统,用于感知、思考和决策。


图片


在这个系统中使用的是在HoloCubic里面的MCU,ESP32作为小脑。


图片


大脑则应用了昇腾边缘计算机芯片昇腾310  AI处理器。


然后设计一个载板,将这两个计算单元整合到一起,板子的结构为四层设计,比较简单:


图片


PCB打样之后再手工焊接一下,这也是传统艺能环节:


图片


之后通过总线把大脑和小脑相连,在软件上实现一套RPC框架,让它们可以方便地通信。其中小脑的框架基于FreeRtos,主要是实现传感器的数据处理,以及电机的控制算法。简单分为三个任务: 闭环控制线程、电机通信线程、以及屏幕刷新线程。


另外用下面这个小屏幕来实时显示一些参数。


图片


而大脑的软件框架就要复杂很多。除了基于昇腾的整个AI栈之外,还在系统中使用了一个做机器人常用的框架—— ROS,本质上是一个高性能的通信中间件。


到现在电路方面已经有了脑子,还缺一个很重要的模块,那就是心脏,也就是此前设计的Ctrl-FOC驱动器。


图片


作为Ctrl的二代作品,它的表现还是非常的猛的,在很小的体积之下, 实现了两路共100安 的无刷电机FOC控制,同时还顺便  驱动了前面60Kg的舵机,以及一个散热风扇。


此时,把结构零件和电路全部 整合起来,车辆的完全体就诞生啦!


图片


到了这里,稚晖君表示以上组装还算比较常规,接下来的注入灵魂才是关键。


这就要涉及到机器人了,机器人是一个复杂的系统,设计一台机器人的时候,科学的方法是将机器人进行理论上的分析,也就是运用运动学和动力学的建模,通过数学模型知道哪些事情是相对 容易的哪些是复杂的。


例如,这辆车子的控制代码中,有超过50个重要参数:控制周期、反馈矩阵、PID增益、滤波器截止频率等。这些魔法数字要全部得到合理的设置,才能使系统进入稳定且快速收敛的状态。(这里可以类比深度学习的调参大法)


而一些物理参数的设置,如电机功率应该选多大的?飞轮质量应该选多少?


重心的分布应该怎样设置才比较合理?也都需要准确的数学模型进行指导才行。


在得到模型之后, 为了进一步验证理论的准确性,一般要在计算机中进行仿真,这里稚晖君使用的是游戏引擎Unity——先在游戏引擎中构建一个虚拟的物理环境,赋给小车真实的的质量和重力, 接着将控制算法的计算结果可视化呈现出来。


图片


这一步验证完成之后 ,还有一个sim2real的过程,也就是把仿真结果迁移到现实环境中。其实这是一个很复杂的过程,因为现实中有更多的不确定性因素,很多情况下机器人往往在仿真中重拳出击,而在现实中“唯唯诺诺”秒变智障

有的甚至在仿真中也一言难尽。


图片


同理,这辆车在调试的过程中也是非常艰辛的。


在这套系统中在姿态控制中,稚晖君使用的LQR控制器,方向控制使用了经典的PID算法,传感器则是对加速度计和陀螺仪数据使用了二阶的巴特沃斯滤波器之后再通过卡尔曼滤波器进行数据融合,最终得到车身姿态。




终于,在经过稚晖君漫长的参数整定之后,控制算法终于收敛到了完美的效果!


你现在已经是一辆「成熟」的自行车了,是时候拉出去遛一遛了证明自己了。


图片


哇!可以看出它做到了静态保持静止:


图片


这主要得益于合理的算法和设计,且当车子受到一定的冲击和突然增加负载的情况下,也能稳定地保持平衡。



甚至能在高危场景下保持平衡!就差在铁栅栏上跳舞

了。




再结合下后轮电机的驱动能力,让它「走两步」也毫无压力,而且刹车功能也是很正常的,有网友表示至少要比X撕辣强。


图片


所以说如果大家某天晚上看到一辆会自己行驶的自行车也不要害怕,它只是「成精了」而已。


到现在,能动的基本目标已经达成,可是这就结束了吗?


当然没有,接下来就是最令人期待的自动驾驶环节了!


这就要通过引入AI 来实现了,当然了话先说到前面,这里实现的自动驾驶也只是一定程度上的。



图片

另外由于这个车子搭载了深度相机,在电脑上就可以看到车子WIFI实时的RGB图传画面,再结合一些AI算法即可实现一些有趣的功能,比如说自动避障、运动识别跟随。


图片


另外,自动驾驶怎么能少的了路径规划呢,此时车子搭载的激光雷达就排上了用场。激光雷达通过测量激光发射到反射所需时间,再乘以光速就可以获得目标的距离位置。

图片


由此360°成像的结果可获取摄像头更加可靠的深度信息,将这些数据用于SLAM图与路径规划,最后就可以实现让自行车自主探索了。


图片


不过稚晖君表示这只是“非常基础”的自动驾驶设计,还有很多地方需要改进。比如龙头的传统结构设计不太合理,如果换成谐波减速伺服电机直驱,那么行驶的稳定性将大幅度提升。


另外受限于整车功率,这套系统目前还无法载人,就只能真.无人驾驶了,但是如果换成电动车可能就不一样了。

最后,稚晖君谈起最初设计这样一俩自行车的想法最早是因为看到清华大学曾研制了一款自动驾驶的自行车,还登上了Nature封面:


图片


所以他就想着自己也复现一个类似的项目,并给车子起名为XUAN,这是因为轩是我国古代对车子的称呼。


Tips:本次项目的结构设计是全部开源的,有兴趣想要复现的同学可以尝试一下。


图片


最后,说到稚晖君,大家估计都很熟悉了。目前稚晖君已经加入了“华为天才少年计划”。 不管是做嵌入式的还是计算机的,稚晖君都是诸多电子爱好者钦佩的大佬。他本硕就读于电子科技大学,之后进入OPPO算法岗工作,目前已经是华为AI架构师。


其实稚晖君并非第一次这般“硬核”,AI 科技评论曾报道过他自制B站百大Up奖杯,这位斜杠青年有如此充沛的精力输出高质量工作,让大家有种“平时上班的工作量还是太小了”的错觉。