華為天才少年耗時四個月,將自行車強(qiáng)勢升級為自動駕駛

近日,一位來自 B 站的硬核 up 主稚暉君帶著一輛改裝之后的自動駕駛自行車震撼亮相,他還發(fā)布了一個名為《我把自行車做成了自動駕駛??!》的視頻,短短幾天內(nèi),獲得 180w+ 的播放量,且曾達(dá)到全站排行榜第 1 名。
與此同時,這條視頻還吸引了 B 站 CEO 陳睿的強(qiáng)勢圍觀,并贊其「重新定義“自行車”」。

而要問是什么讓這位博主耗時四個月非要與一輛自行車“過不去”?
是因?yàn)闊o聊?對自行車的熱愛?還是因?yàn)閷夹g(shù)的執(zhí)著?
其實(shí)都不是!
自行車自行車,不會自行怎么配叫自行車?
這個項(xiàng)目得以誕生的很大一部分原因或要?dú)w功于天氣。
某一天,天空不作美,飄著雨,騎著車的稚暉君在轉(zhuǎn)彎的時候因?yàn)橐粋€“漂移”,一不小心摔了一跤。
在養(yǎng)傷的過程中,稚暉君自我調(diào)侃道,“作為一個掌握了技術(shù)密碼,并且永遠(yuǎn)頭鐵的野生鋼鐵俠,我表示這事就不能這么過去了?!?/span>

同時,受 2019 年清華大學(xué)依托精密儀器系的類腦計(jì)算研究中心施路平教授團(tuán)隊(duì)發(fā)布的類腦計(jì)算芯片“天機(jī)芯”讓無人自行車落地的啟發(fā),在天空放晴之后,素有“科技教徒”、“野生鋼鐵俠”之稱的稚暉君決定要拯救一下這個糟糕的天氣,哦,不,是糟糕的自行車。

于是,他開始著手了自動駕駛之自行車的設(shè)計(jì)與落地之路,畢竟“如果自己不能跑,憑什么叫它自行車!”
自動駕駛自行車三步走
所謂自動駕駛自行車,首先要實(shí)現(xiàn)自動,眾所周知,兩個輪子的自行車在沒有外力的支撐下,幾乎不能站穩(wěn),因此相較四輪的汽車,自動駕駛自行車首先需要解決車子“立”起來的問題,這就需要一套自動控制系統(tǒng);其次,需要將駕駛?cè)说拇嬖谛韵@需要靠傳感器網(wǎng)絡(luò)、AI 芯片來實(shí)現(xiàn);最后,要實(shí)現(xiàn)“駕駛”,即車子需要跑起來,其背后離不開軟件與算法的存在。
為了實(shí)現(xiàn)以上,稚暉君主要從三個維度出發(fā),逐個擊破,開始改裝傳統(tǒng)的自行車。

第一步:硬件改造
設(shè)備
視頻中,稚暉君采用的是一款騎行愛好者頗為喜歡的自行車——死飛(Fixed Gear)自行車。這款車和普通的自行車有一定的區(qū)別,是一款單速車,其車輪和腳踏板一直是處于聯(lián)動狀態(tài)下,沒有剎車,如果想減速可以通過反向蹬車來實(shí)現(xiàn)。
建模
重構(gòu),首先要先搞清楚自己想法的可行性與理想狀態(tài),這就需要通過設(shè)計(jì)與模擬、驗(yàn)證來實(shí)現(xiàn)。
在此,稚暉君使用的是計(jì)算機(jī)輔助工具 CAD 實(shí)現(xiàn)建模工作,構(gòu)建了自行車的數(shù)字孿生,基于此,所有的改造工作都可以在計(jì)算機(jī)上完成。
設(shè)計(jì)圖紙
經(jīng)過多番斟酌之后,稚暉君將構(gòu)想落地到了圖紙上:
1. 車頭處安裝一個控制龍頭的舵機(jī),顧名思義,它是用來控制龍頭的,包括轉(zhuǎn)向等;傳感器方面搭載一個 RGBD 深度相機(jī),可以用于識別前方物體,進(jìn)行避障或跟隨;

2. 自行車車桿處安裝一個加速度計(jì)、陀螺儀,另外還有一個激光雷達(dá),主要用于自動駕駛的路徑規(guī)劃;

3. 下方搭載一個 6S 航模動力鋰電池,續(xù)航可達(dá) 2-3 個小時;

4. 座椅處前后安裝了 2 個無刷電機(jī),它們的主要作用是讓兩輪的自行車在靜止且無外力支撐狀態(tài)下可以屹立不倒,其中運(yùn)用到的原理是物理學(xué)、自然界普遍存在的基本定律之一——角動量守恒定律
,即當(dāng)系統(tǒng)中的一個物體角動量發(fā)生變化時,其會將力矩傳遞給其他物體。因此,在自行車中間的這個無刷電機(jī)就是用于驅(qū)動一個金屬的動量輪,而后面的無刷電機(jī)是用于靠摩擦力驅(qū)動后輪,讓車子整體前后運(yùn)動;

5.主控計(jì)算模塊安置在了座椅的后方,其中包含了 AI 計(jì)算單元等。

基于以上,完整的設(shè)計(jì)圖紙如下所示:

零件加工
針對零件部分,部分可以用 3D 打印制作而成,不過,有的零件對硬度和剛性要求較強(qiáng),因此只能利用金屬加工而成。在加工好所有的零件之后,組裝好即可。
第二步:智能化
接下來,進(jìn)入了第二個大環(huán)節(jié)——電路系統(tǒng)設(shè)計(jì)與安裝,這其中包含了主控模塊,旨在讓車子跑起來。
作為 AI 算法工程師的稚暉君,將電路系統(tǒng)的機(jī)器大腦分為兩大板塊:

一個是用于控制身體的低算力、低時延、運(yùn)行實(shí)時系統(tǒng)的小腦,這一項(xiàng)目中,稚暉君使用的是 MCU ESP32;
另一個是用于感知、思考和決策的高算力、高時延、運(yùn)行非實(shí)時操作系統(tǒng)的大腦,這里稚暉君選擇的是華為面向邊緣場景的高能效高集成度 AI 處理器——昇騰310,其搭載的達(dá)芬奇 Core 可以提供最高 22TOPS 的AI 算力。
通過一個載板將上述的兩個計(jì)算單元整合到一起。在 PCB 打樣之后,基于通過手工焊接方式,將大腦和小腦通過總線相連。

第三步:軟件&算法
在軟件層面,稚暉君表示:
小腦的框架主要是基于 FreeRTOS 來實(shí)現(xiàn)傳感器的數(shù)據(jù)處理,以及電機(jī)的控制算法。其中簡單地劃分了三個任務(wù),一是閉環(huán)控制線程、二是電機(jī)通信線程、三是屏幕刷新線程。

大腦的軟件框架相對而言,復(fù)雜得多,除了基于昇騰的整個 AI 棧之外,在系統(tǒng)中還使用了機(jī)器人界常用的框架 ROS,其本質(zhì)上是一個高性能的通信中間件,后續(xù)的消息分發(fā)、業(yè)務(wù)串流、SLAM 等實(shí)現(xiàn)都是基于 ROS 開發(fā)的。

基于此,小腦和大腦均已準(zhǔn)備就緒。除了以上,稚暉君選用了其此前自制的 FOC 控制驅(qū)動器(https://www.bilibili.com/video/BV11V41127pq)作為電路的心臟,實(shí)現(xiàn)了兩路共 100A 的無刷電機(jī) FOC 控制,同時還順便驅(qū)動了前面的 60 KG 舵機(jī),以及一個散熱風(fēng)扇。
在視頻中,稚暉君透露,這個車子的控制代碼中,包含了控制周期、反饋矩陣、PID 增益、濾波器截止頻率、電機(jī)功率、飛輪質(zhì)量、重心分布設(shè)置等 50 個重要參數(shù),而這些參數(shù)都必須在合理的設(shè)置下,才能使得系統(tǒng)進(jìn)入穩(wěn)定狀態(tài)。
因此,在運(yùn)行調(diào)試之前,稚暉君借助 Unity 引擎工具實(shí)現(xiàn)了一個虛擬的物理環(huán)境,在賦給自行車正式的質(zhì)量、重力后,將控制算法的計(jì)算結(jié)果可視化顯示出來。
其次,通過 Sim2Real,將仿真結(jié)果遷移到現(xiàn)實(shí)環(huán)境中。當(dāng)然在被諸多不定性因素包裹的現(xiàn)實(shí)世界中,其調(diào)試過程也并非想象中那么容易,正如稚暉君在視頻中細(xì)數(shù)的點(diǎn)滴,如:
在姿態(tài)控制中使用的是 LQR 控制器,方向控制使用了經(jīng)典的 PID,傳感器則是對加速度計(jì)和陀螺儀數(shù)據(jù)使用了二階的巴特沃斯濾波器之后,再通過卡爾曼濾波進(jìn)行數(shù)據(jù)融合,最終得到車身的姿態(tài)......

自動駕駛自行車——XUAN(軒)
幾經(jīng)“折騰”后,這個自行車不僅實(shí)現(xiàn)了基礎(chǔ)的自動駕駛功能,而且能夠自主探索環(huán)境。未來這個項(xiàng)目還有很大的提升空間,但當(dāng)前的成果足以讓人驚嘆。
當(dāng)稚暉君將這款項(xiàng)目命名為——XUAN(extremely Unnatural Auto-Navigation)的同時,其宣布將項(xiàng)目的結(jié)構(gòu)設(shè)計(jì)全部開源。

稚暉君本君!
值此之際,我們也不僅好奇稚暉君究竟是何方神圣?
打開其個人網(wǎng)站,我們發(fā)現(xiàn)稚暉君雖然僅畢業(yè)三年,但是其在編程開發(fā)、硬件設(shè)計(jì)等層面早已身經(jīng)百戰(zhàn)。據(jù)悉,在學(xué)生時期,稚暉君從大二開始就參加了各種電子設(shè)計(jì)競賽,并獲得大量獎項(xiàng)。大三時,開始成立團(tuán)隊(duì)和工作室,專注于嵌入式軟硬件和機(jī)器人項(xiàng)目的開發(fā)。研究生階段,組建創(chuàng)業(yè)團(tuán)隊(duì)與公司,聚焦尖端機(jī)器人相關(guān)技術(shù)的研發(fā),也獲得過一些投資。
在 2018 年從電子科技大學(xué)畢業(yè)后,稚暉君加入 OPPO 研究院 AI 實(shí)驗(yàn)室,負(fù)責(zé)算法相關(guān)工作,后成為華為天才少年項(xiàng)目中的一員,目前擔(dān)任華為 AI 算法工程師。

與此同時,他從 2017 年便開始在 B 站上開啟了【自制】之路,除了此次自制自動駕駛自行車之外,還自制過便攜顯示器、FOC 矢量控制驅(qū)動器、火星車、門禁卡等等,其背后所運(yùn)用的知識廣度與寬度不容小覷,而稚暉君的技術(shù)能力也更令人佩服。


相關(guān)資料:
視頻地址:
https://www.bilibili.com/video/BV1fV411x72a
GitHub 項(xiàng)目開源地址:
https://github.com/peng-zhihui/XUAN-Bike
個人網(wǎng)站:
http://www.pengzhihui.xyz/
出品 | CSDN(ID:CSDNnews)
