真·自行車!華為天才少年剛剛「發(fā)布」了一款無人駕駛自行車,網(wǎng)友:這TM不比特斯拉燃?
編輯導(dǎo)語:
作者:代潤澤、陳大鑫、劉冰一;微信公眾號:AI科技評論
什么是自行車?B站一位UP主可能會給你一個與眾不同的回答,即不用人力就能自己行駛的車。如今,越來越多人在媒體平臺上發(fā)布他們的奇思妙想,展示了無限創(chuàng)意。文中的AI算法工程師稚暉君便是如此,讓我們一起來看一下。
不知道大家從小到大有沒有思考?過這樣一個問題:什么叫自行車?
——???這還用問嗎?
——對啊,這還用問嗎?
自行車那當(dāng)然是不靠人騎著它自己就能行駛的車啊。
考慮到2021年是自動駕駛爆發(fā)元年,造手機的、送外賣的、賣襪子的等等各種大廠紛紛入局造車。
這時一位B站UP主表示道,何不做一輛能自動駕駛的自行車?
這不是在開玩笑!
這是野生鋼鐵俠、華為天才少年、AI算法工程師稚暉君昨天剛剛“發(fā)布”的一個新項目。
稚暉解釋道,他前段時間不小心騎自行車摔傷了,休養(yǎng)后直言不能就這么算了!表示,正在著手設(shè)計自動駕駛自行車,這是說到做到了!
話不多說,直接來看看他是怎么完成的吧。
讓自行車變成自動駕駛,首先需要的是硬件改造,加入自動控制系統(tǒng)。
其次,為了將駕駛員的工具人存在性去掉,需要給車子搭載一整套傳感器組成的感知網(wǎng)絡(luò),以及一個算力足夠強大的計算芯片作為大腦。
最后就是在前面的硬件基礎(chǔ)上開發(fā)實現(xiàn)一套感知和控制算法,俗稱注入靈魂。
一、第一步,讓車子跑
對于結(jié)構(gòu)上的改造——先在CAD上面建模,得到一輛虛擬自行車,也可以稱之為自行車的數(shù)字孿生。
有了車體模型,所有的改造工作都可以在計算機上完成,只需加上“一點點”的細(xì)節(jié),那么最終的改造方案就出來了:
先給車子安裝兩個巨大的無刷電機,以及一個控制龍頭的舵機。
傳感器方面搭載了一個RGBD的深度相機,加速度計和陀螺儀,以及一個激光雷達(dá)。
電池使用的是6S的航模動力鋰電池,續(xù)航大約有2-3小時。
主控計算模塊被安置在了座椅的后方。
而驅(qū)動結(jié)構(gòu)方面,關(guān)于控制龍頭的旋轉(zhuǎn)舵機,前后方向的平衡靠兩個輪子的支撐和地面摩擦力,至于左右的平衡,當(dāng)在騎行狀態(tài)下,可以靠著左右調(diào)節(jié)龍頭來獲得轉(zhuǎn)向加速度以此來抵消重力的影響。
那么靜止?fàn)顟B(tài)下如何保持左右平衡呢?
要靠角動量守恒,上過小學(xué)二年級的都知道角動量守恒定律是自然界中最普遍的守恒定律之一。
當(dāng)系統(tǒng)一個動力角動量發(fā)生變化的時候,就會將力矩傳遞給其他物體。所以這輛自行車中間的無刷電機,其實就是驅(qū)動一個金屬的動量輪。
實際上這也是在太空中衛(wèi)星??在沒有摩擦力的情況下調(diào)整自身姿態(tài)的一樣的原理。
而后面的無刷電機就是靠摩擦力驅(qū)動后輪,讓車子整體前后運動。
關(guān)于零件的加工,其中一部分零件可以用3D打印來制作,不過考慮到功率問題,3D打印塑料的硬度和剛性都不太適合作為核心的結(jié)構(gòu)件,因此用于固定電機的零件,稚暉君還是選擇用金屬來加工。
所有的零件配齊組裝完成后,就需要安裝電力系統(tǒng)了 ,也就是主控模塊和 AI計算單元。
二、第二部分,讓車子有機器大腦
和人類一樣,將計算單元分為小腦和大腦,那么小腦部分就分為低算力、低時延、運行實時系統(tǒng),大腦部分就分為高算力、高時延、運行非實時操作系統(tǒng),用于感知、思考和決策。
在這個系統(tǒng)中使用的是在HoloCubic里面的MCU,ESP32作為小腦。
大腦則應(yīng)用了昇騰邊緣計算機芯片昇騰310 AI處理器。
然后設(shè)計一個載板,將這兩個計算單元整合到一起,板子的結(jié)構(gòu)為四層設(shè)計,比較簡單:
PCB打樣之后再手工焊接一下,這也是傳統(tǒng)藝能環(huán)節(jié):
之后通過總線把大腦和小腦相連,在軟件上實現(xiàn)一套RPC框架,讓它們可以方便地通信。其中小腦的框架基于FreeRtos,主要是實現(xiàn)傳感器的數(shù)據(jù)處理,以及電機的控制算法。簡單分為三個任務(wù):閉環(huán)控制線程、電機通信線程、以及屏幕刷新線程。
另外用下面這個小屏幕來實時顯示一些參數(shù)。
而大腦的軟件框架就要復(fù)雜很多。除了基于昇騰的整個AI棧之外,還在系統(tǒng)中使用了一個做機器人常用的框架—— ROS,本質(zhì)上是一個高性能的通信中間件。
到現(xiàn)在電路方面已經(jīng)有了腦子,還缺一個很重要的模塊,那就是心臟,也就是此前設(shè)計的Ctrl-FOC驅(qū)動器。
作為Ctrl的二代作品,它的表現(xiàn)還是非常的猛的,在很小的體積之下, 實現(xiàn)了兩路共100安 的無刷電機FOC控制,同時還順便 驅(qū)動了前面60Kg的舵機,以及一個散熱風(fēng)扇。
此時,把結(jié)構(gòu)零件和電路全部 整合起來,車輛的完全體就誕生啦!
到了這里,稚暉君表示以上組裝還算比較常規(guī),接下來的注入靈魂才是關(guān)鍵。
這就要涉及到機器人了,機器人是一個復(fù)雜的系統(tǒng),設(shè)計一臺機器人的時候,科學(xué)的方法是將機器人進行理論上的分析,也就是運用運動學(xué)和動力學(xué)的建模,通過數(shù)學(xué)模型知道哪些事情是相對 容易的哪些是復(fù)雜的。
例如,這輛車子的控制代碼中,有超過50個重要參數(shù):控制周期、反饋矩陣、PID增益、濾波器截止頻率等。這些魔法數(shù)字要全部得到合理的設(shè)置,才能使系統(tǒng)進入穩(wěn)定且快速收斂的狀態(tài)。(這里可以類比深度學(xué)習(xí)的調(diào)參大法)
而一些物理參數(shù)的設(shè)置,如電機功率應(yīng)該選多大的?飛輪質(zhì)量應(yīng)該選多少?
重心的分布應(yīng)該怎樣設(shè)置才比較合理?也都需要準(zhǔn)確的數(shù)學(xué)模型進行指導(dǎo)才行。
在得到模型之后, 為了進一步驗證理論的準(zhǔn)確性,一般要在計算機中進行仿真,這里稚暉君使用的是游戲引擎Unity——先在游戲引擎中構(gòu)建一個虛擬的物理環(huán)境,賦給小車真實的的質(zhì)量和重力, 接著將控制算法的計算結(jié)果可視化呈現(xiàn)出來。
這一步驗證完成之后 ,還有一個sim2real的過程,也就是把仿真結(jié)果遷移到現(xiàn)實環(huán)境中。其實這是一個很復(fù)雜的過程,因為現(xiàn)實中有更多的不確定性因素,很多情況下機器人往往在仿真中重拳出擊,而在現(xiàn)實中“唯唯諾諾”秒變智障?,有的甚至在仿真中也一言難盡。
同理,這輛車在調(diào)試的過程中也是非常艱辛的。
在這套系統(tǒng)中在姿態(tài)控制中,稚暉君使用的LQR控制器,方向控制使用了經(jīng)典的PID算法,傳感器則是對加速度計和陀螺儀數(shù)據(jù)使用了二階的巴特沃斯濾波器之后再通過卡爾曼濾波器進行數(shù)據(jù)融合,最終得到車身姿態(tài)。
終于,在經(jīng)過稚暉君漫長的參數(shù)整定之后,控制算法終于收斂到了完美的效果!
你現(xiàn)在已經(jīng)是一輛「成熟」的自行車了,是時候拉出去遛一遛了證明自己了。
哇!可以看出它做到了靜態(tài)保持靜止:
這主要得益于合理的算法和設(shè)計,且當(dāng)車子受到一定的沖擊和突然增加負(fù)載的情況下,也能穩(wěn)定地保持平衡。
甚至能在高危場景下保持平衡!就差在鐵柵欄上跳舞?了。
再結(jié)合下后輪電機的驅(qū)動能力,讓它「走兩步」也毫無壓力,而且剎車功能也是很正常的,有網(wǎng)友表示至少要比X撕辣強。
所以說如果大家某天晚上看到一輛會自己行駛的自行車也不要害怕,它只是「成精了」而已。
到現(xiàn)在,能動的基本目標(biāo)已經(jīng)達(dá)成,可是這就結(jié)束了嗎?
當(dāng)然沒有,接下來就是最令人期待的自動駕駛環(huán)節(jié)了!
這就要通過引入AI 來實現(xiàn)了,當(dāng)然了話先說到前面,這里實現(xiàn)的自動駕駛也只是一定程度上的。
另外由于這個車子搭載了深度相機,在電腦上就可以看到車子WIFI實時的RGB圖傳畫面,再結(jié)合一些AI算法即可實現(xiàn)一些有趣的功能,比如說自動避障、運動識別跟隨。
另外,自動駕駛怎么能少的了路徑規(guī)劃呢,此時車子搭載的激光雷達(dá)就排上了用場。激光雷達(dá)通過測量激光發(fā)射到反射所需時間,再乘以光速就可以獲得目標(biāo)的距離位置。
由此360°成像的結(jié)果可獲取攝像頭更加可靠的深度信息,將這些數(shù)據(jù)用于SLAM圖與路徑規(guī)劃,最后就可以實現(xiàn)讓自行車自主探索了。
不過稚暉君表示這只是“非?;A(chǔ)”的自動駕駛設(shè)計,還有很多地方需要改進。比如龍頭的傳統(tǒng)結(jié)構(gòu)設(shè)計不太合理,如果換成諧波減速伺服電機直驅(qū),那么行駛的穩(wěn)定性將大幅度提升。
另外受限于整車功率,這套系統(tǒng)目前還無法載人,就只能真.無人駕駛了,但是如果換成電動車可能就不一樣了(不過,這可能就是另外一個故事了)。
最后,稚暉君談起最初設(shè)計這樣一倆自行車的想法最早是因為看到清華大學(xué)曾研制了一款自動駕駛的自行車,還登上了Nature封面:
所以他就想著自己也復(fù)現(xiàn)一個類似的項目,并給車子起名為XUAN,這是因為軒是我國古代對車子的稱呼。
Tips:本次項目的結(jié)構(gòu)設(shè)計是全部開源的,有興趣想要復(fù)現(xiàn)的同學(xué)可以嘗試一下。
最后,說到稚暉君,大家估計都很熟悉了。目前稚暉君已經(jīng)加入了“華為天才少年計劃”。不管是做嵌入式的還是計算機的,稚暉君都是諸多電子愛好者欽佩的大佬。他本碩就讀于電子科技大學(xué),之后進入OPPO算法崗工作,目前已經(jīng)是華為AI架構(gòu)師。
其實稚暉君并非第一次這般“硬核”,AI 科技評論曾報道過他自制B站百大Up獎杯,這位斜杠青年有如此充沛的精力輸出高質(zhì)量工作,讓大家有種“平時上班的工作量還是太小了”的錯覺。
作者:代潤澤、陳大鑫、劉冰一;公眾號:AI科技評論
原文鏈接:https://mp.weixin.qq.com/s/W1-rFuJ5oLppHsLOMJxTxw
本文經(jīng)微信公眾號@AI科技評論 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議
不如直接買電動車?
這個能干啥
牛逼啊大佬
科技不是應(yīng)該以人為本嗎,搞這種東西也不實用純粹為了秀技術(shù)?
現(xiàn)在看來不實用,說不能以后在某個特定場景就可以應(yīng)用上。科技研究不就是這樣的嘛
有飛機之前你想過人能飛著通勤?
想法不錯,下雨防水嗎
挺屌的