搏一搏,单车变摩托!华为天才少年耗时四月将自行车强势升级为自动驾驶
整理 | 苏宓
出品 | CSDN(ID:CSDNnews)
图源 | 视觉中国
自动驾驶火出天际的时代,自行车能「金鸡独立」,还能「风驰电掣」?
近日,一位来自 B 站的硬核 up 主稚晖君带着一辆改装之后的自动驾驶自行车震撼亮相,他还发布了一个名为《我把自行车做成了自动驾驶!!》的视频,短短几天内,获得 180w+ 的播放量,且曾达到全站排行榜第 1 名。
与此同时,这条视频还吸引了 B 站 CEO 陈睿的强势围观,并赞其「重新定义“自行车”」。
而要问是什么让这位博主耗时四个月非要与一辆自行车“过不去”?
是因为无聊?对自行车的热爱?还是因为对技术的执着?
其实都不是!
01
自行车自行车,不会自行怎么配叫自行车?
这个项目得以诞生的很大一部分原因或要归功于天气。
某一天,天空不作美,飘着雨,骑着车的稚晖君在转弯的时候因为一个“漂移”,一不小心摔了一跤。
在养伤的过程中,稚晖君自我调侃道,“作为一个掌握了技术密码,并且永远头铁的野生钢铁侠,我表示这事就不能这么过去了。”
同时,受 2019 年清华大学依托精密仪器系的类脑计算研究中心施路平教授团队发布的类脑计算芯片“天机芯”让无人自行车落地的启发,在天空放晴之后,素有“科技教徒”、“野生钢铁侠”之称的稚晖君决定要拯救一下这个糟糕的天气,哦,不,是糟糕的自行车。
于是,他开始着手了自动驾驶之自行车的设计与落地之路,毕竟“如果自己不能跑,凭什么叫它自行车!”
02
自动驾驶自行车三步走
所谓自动驾驶自行车,首先要实现自动,众所周知,两个轮子的自行车在没有外力的支撑下,几乎不能站稳,因此相较四轮的汽车,自动驾驶自行车首先需要解决车子“立”起来的问题,这就需要一套自动控制系统;其次,需要将驾驶人的存在性消除,这需要靠传感器网络、AI 芯片来实现;最后,要实现“驾驶”,即车子需要跑起来,其背后离不开软件与算法的存在。
为了实现以上,稚晖君主要从三个维度出发,逐个击破,开始改装传统的自行车。
第一步:硬件改造
设备
视频中,稚晖君采用的是一款骑行爱好者颇为喜欢的自行车——死飞(Fixed Gear)自行车。这款车和普通的自行车有一定的区别,是一款单速车,其车轮和脚踏板一直是处于联动状态下,没有刹车,如果想减速可以通过反向蹬车来实现。
建模
重构,首先要先搞清楚自己想法的可行性与理想状态,这就需要通过设计与模拟、验证来实现。
在此,稚晖君使用的是计算机辅助工具 CAD 实现建模工作,构建了自行车的数字孪生,基于此,所有的改造工作都可以在计算机上完成。
设计图纸
经过多番斟酌之后,稚晖君将构想落地到了图纸上:
1. 车头处安装一个控制龙头的舵机,顾名思义,它是用来控制龙头的,包括转向等;传感器方面搭载一个 RGBD 深度相机,可以用于识别前方物体,进行避障或跟随;
2. 自行车车杆处安装一个加速度计、陀螺仪,另外还有一个激光雷达,主要用于自动驾驶的路径规划;
3. 下方搭载一个 6S 航模动力锂电池,续航可达 2-3 个小时;
4. 座椅处前后安装了 2 个无刷电机,它们的主要作用是让两轮的自行车在静止且无外力支撑状态下可以屹立不倒,其中运用到的原理是物理学、自然界普遍存在的基本定律之一——角动量守恒定律,即当系统中的一个物体角动量发生变化时,其会将力矩传递给其他物体。因此,在自行车中间的这个无刷电机就是用于驱动一个金属的动量轮,而后面的无刷电机是用于靠摩擦力驱动后轮,让车子整体前后运动;
5.主控计算模块安置在了座椅的后方,其中包含了 AI 计算单元等。
基于以上,完整的设计图纸如下所示:
零件加工
针对零件部分,部分可以用 3D 打印制作而成,不过,有的零件对硬度和刚性要求较强,因此只能利用金属加工而成。在加工好所有的零件之后,组装好即可。
第二步:智能化
接下来,进入了第二个大环节——电路系统设计与安装,这其中包含了主控模块,旨在让车子跑起来。
作为 AI 算法工程师的稚晖君,将电路系统的机器大脑分为两大板块:
一个是用于控制身体的低算力、低时延、运行实时系统的小脑,这一项目中,稚晖君使用的是 MCU ESP32;
另一个是用于感知、思考和决策的高算力、高时延、运行非实时操作系统的大脑,这里稚晖君选择的是华为面向边缘场景的高能效高集成度 AI 处理器——昇腾310,其搭载的达芬奇 Core 可以提供最高 22TOPS 的AI 算力。
通过一个载板将上述的两个计算单元整合到一起。在 PCB 打样之后,基于通过手工焊接方式,将大脑和小脑通过总线相连。
第三步:软件&算法
在软件层面,稚晖君表示:
小脑的框架主要是基于 FreeRTOS 来实现传感器的数据处理,以及电机的控制算法。其中简单地划分了三个任务,一是闭环控制线程、二是电机通信线程、三是屏幕刷新线程。
大脑的软件框架相对而言,复杂得多,除了基于昇腾的整个 AI 栈之外,在系统中还使用了机器人界常用的框架 ROS,其本质上是一个高性能的通信中间件,后续的消息分发、业务串流、SLAM 等实现都是基于 ROS 开发的。
基于此,小脑和大脑均已准备就绪。除了以上,稚晖君选用了其此前自制的 FOC 控制驱动器(https://www.bilibili.com/video/BV11V41127pq)作为电路的心脏,实现了两路共 100A 的无刷电机 FOC 控制,同时还顺便驱动了前面的 60 KG 舵机,以及一个散热风扇。
在视频中,稚晖君透露,这个车子的控制代码中,包含了控制周期、反馈矩阵、PID 增益、滤波器截止频率、电机功率、飞轮质量、重心分布设置等 50 个重要参数,而这些参数都必须在合理的设置下,才能使得系统进入稳定状态。
因此,在运行调试之前,稚晖君借助 Unity 引擎工具实现了一个虚拟的物理环境,在赋给自行车正式的质量、重力后,将控制算法的计算结果可视化显示出来。
其次,通过 Sim2Real,将仿真结果迁移到现实环境中。当然在被诸多不定性因素包裹的现实世界中,其调试过程也并非想象中那么容易,正如稚晖君在视频中细数的点滴,如:
在姿态控制中使用的是 LQR 控制器,方向控制使用了经典的 PID,传感器则是对加速度计和陀螺仪数据使用了二阶的巴特沃斯滤波器之后,再通过卡尔曼滤波进行数据融合,最终得到车身的姿态......
03
自动驾驶自行车——XUAN(轩)
几经“折腾”后,这个自行车不仅实现了基础的自动驾驶功能,而且能够自主探索环境。未来这个项目还有很大的提升空间,但当前的成果足以让人惊叹。
当稚晖君将这款项目命名为——XUAN(extremely Unnatural Auto-Navigation)的同时,其宣布将项目的结构设计全部开源。
04
稚晖君本君!
值此之际,我们也不仅好奇稚晖君究竟是何方神圣?
打开其个人网站,我们发现稚晖君虽然仅毕业三年,但是其在编程开发、硬件设计等层面早已身经百战。据悉,在学生时期,稚晖君从大二开始就参加了各种电子设计竞赛,并获得大量奖项。大三时,开始成立团队和工作室,专注于嵌入式软硬件和机器人项目的开发。研究生阶段,组建创业团队与公司,聚焦尖端机器人相关技术的研发,也获得过一些投资。
在 2018 年从电子科技大学毕业后,稚晖君加入 OPPO 研究院 AI 实验室,负责算法相关工作,后成为华为天才少年项目中的一员,目前担任华为 AI 算法工程师。
与此同时,他从 2017 年便开始在 B 站上开启了【自制】之路,除了此次自制自动驾驶自行车之外,还自制过便携显示器、FOC 矢量控制驱动器、火星车、门禁卡等等,其背后所运用的知识广度与宽度不容小觑,而稚晖君的技术能力也更令人佩服。
相关资料:
视频地址:https://www.bilibili.com/video/BV1fV411x72a
GitHub 项目开源地址:https://github.com/peng-zhihui/XUAN-Bike
个人网站:http://www.pengzhihui.xyz/
搏一搏,单车变摩托!华为天才少年耗时四月将自行车强势升级为自动驾驶相关推荐
- Contrast GAN--- 实现CycleGAN无法实现的“眼一瞎, 猫变狗”,“手一抖,单车变摩托”
可以看到,猫变狗,单车变摩托了.效果看上去有点尴尬,但毕竟是初步效果是有了. 但这篇论文的主要贡献是提出了一个"Contrast distance". 主要思想 我要从小猫变小狗, ...
- 牵手华为冲刺L2++市场,这家国产厂商的自动驾驶版图再扩张
当前,中国乘用车L2.L2+级辅助驾驶市场红利已经启动,并且成为国内外供应商争夺未来市场份额的关键.为此,MINIEYE推出进阶L2+/L2++市场的重要产品. 12月21日,MINIEYE首次对外公 ...
- 华为、腾讯、百度扎堆进入的自动驾驶仿真市场,到底藏着怎样的秘密?
文 | 魏启扬 来源 | 智能相对论(ID:aixdlun) 提到自动驾驶的商业竞争,车联网无疑是其中最为惨烈的一个领域,里面充斥着各种巨头博弈.屌丝逆袭的励志故事. 可是,自动驾驶赛道的复杂性远远不 ...
- 华为任旭东:通过产业合作加速自动驾驶网络
[美国,圣何塞]美国当地时间4月4日上午,2019年北美开放网络峰会(ONS NA 2019,Open Networking Summit North America 2019)上,华为首席开源联络官 ...
- 搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。
事因 因为家中有一台小米电视机,但是平时使用起来体验很差(1G内存,8G存储,CPU型号Cortex A53 4核心 1.5GHz),如今视频平台很多,Bilibili.爱奇艺.优酷.腾讯视频.芒果T ...
- solidity Dapp 抽奖——搏一搏,单车变摩托
最近准备做一个以太坊的抽奖游戏,今天先把合约完成. 智能合约只实现关键部分的功能,包括随机选取中奖者,存储每个人的中奖情况,以及开奖的时机: 现在我们一个一个模块来说一下: 第一个选择中奖者,这个函数 ...
- 我,【MySQL】高级篇,一个让你的数据管家单车变摩托的 “关系型数据库”
相关数据库sql文件 链接:https://pan.baidu.com/s/1RynVEnBL2nak5aJf0rXYmA 提取码:11gz 文章目录 一.视图 视图介绍 视图的创建 视图的修改 视图 ...
- 攒了一个月的Android面试题及详细解答,马上年底准备起来,冲刺大厂单车变摩托!(上篇)
一个月前呢,为了巩固下自己的基础以及为以后的面试做准备,每天去找一些大厂的面试真题,然后解答下,然后自己确实也在这个过程中能复习到不少以前没有重视的问题,今天就总结下之前一个多月总结的面试题,难度不大 ...
- 华为天才少年一人打造自动驾驶!
点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 B站 ...
- 华为天才少年打造无人驾驶自行车
本文转载自程序员极客实验室 自行车什么时候能实现「自己行走」呢? 自行车属于欠驱动系统,如果不进行控制就无法实现稳定站立 最近,B站野生技术协会野生钢铁侠.「华为天才少年计划」入选者.AI算法工程师稚 ...
最新文章
- 服务器系统日志4625,win2008 r2 成千上万的“审核失败”日志 事件ID 4625
- jQuery源码-jQuery.fn.each jQuery.each
- 异步调用方法时异常的捕获
- 第一次scrapy爬虫记录
- ext springmvc mysql_基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)...
- Linux下安装MongoDB
- JDK1.8下载 百度网盘
- ESP8266/ESP32 驱动ST7789屏幕
- 计算机病毒如何防范英语作文,英语作文_妙招大看台:如何避免电脑中病毒_沪江英语...
- 微信语音对方无法听到声音解决办法
- Unity—背包系统(思路总括)
- java开发用win7好还是win10_win10和win7哪个好用|两个系统的性能比较
- windows10配置jdk8和jdk11并存和切换
- cad渐变线怎么画_花花绿绿的股票线是怎么画出来的?想怎么画就怎么画!
- 2022新版海螺影视主题模板M3.1版本多功能苹果CMSv10后台自适应模板详解
- MATLAB-ezplot绘图函数
- python打字机效果_如何在电脑键盘打字的时候有打字机的声音效果?
- Hey.com:如果你没有观点,你就不值得关注
- 激光测距VL53L0软件开发中的那些坑
- Linux系统中文件系统管理
热门文章
- 最新简库软件库工具箱综合iApp安卓源码
- Android计算器简单实现
- W3CSchool CHM API 帮助文档(全)
- 云南机房建设整体解决方案、华为智能模块化数据中心机房
- JDBC原生连接与连接池介绍
- sci期刊投稿指南 计算机科学 人工智能方向 145本sci期刊目录 从一区到四区(2022年 最新影响因子更新了)
- 人脸识别考勤机软件驱动安装和设置
- C语言物流管理运输系统
- php+ctypt+api,RSA-OAEP SHA-512 Encrypt / Decrypt from Javascriptwebcrypt api to PHP openssl?
- matlab产生er随机图,ER随机图模型