如何成為一個飛控演算法工程師?
本科讀的是電子專業,大學做過四軸飛行器,畢業後在一家公司做飛控演算法(其實就是開源飛控上做二次開發),覺得根本就不像真正的搞演算法,所以請教有經驗前輩搞飛控演算法應該掌握哪些知識,該看哪些書,怎麼入門
我總結的飛控四大演算法:卡爾曼濾波,PID,捷聯貫導,融合導航。目前這是最核心的演算法了,也許你會覺得他們很古董,但是在工業領域一向是夠用即可,寧願發展老技術也不輕易使用新創意的,這跟現在瀰漫整個中國無人機行業的浮誇的創新風氣完全不同。
不要看不起開源飛控,寫程序的都是大牛,二次開發會讓你擁有對架構的了解,下一步就是深入了解這些具體演算法。
相關書籍不多,大學課本就行,市面書籍大多蒙人眼球為主。工程演算法永遠是平淡出神奇,原理越簡單越好,但是應用的經驗非常重要,這就也牽扯試飛,了解飛機才能搞好演算法。卡爾曼就那五條,但是做好估計很難,PID每一級就三個係數,但是幾十年了也沒有什麼最優化理論。
當然作為開發演算法的工具,熟練掌握c語言,控制律,狀態矩陣,MATLAB等等是非常必要的,能夠事半功倍。
首先你老闆得給你足夠的時間讓你從頭研究這個,而且還得有其它部門配合;之後才是自己的問題,數學物理基礎、悟性、耐性缺一不可,如果沒有人替你實現,你還得懂寫程序。
會用KF、會用PID就是懂了?我不這麼認為。面試的時候見了許多調了十幾年KF、調了十幾年PID的人,也只是會調參、背公式而已。理論是基礎,但理論不能幫你把飛控做得比開源項目好。從某一方面開始、到全面超越開源項目,這裡面需要的時間、財力、人力支持和信任不是一般老闆會給的,要首先想清楚這個。
你可以了解一下市面上哪些公司用了全自主開發的飛控演算法,開發的過程是怎樣的。而且這些都比開源飛控的性能好,功能更個性化,等你真的做好了,裡面的原因你都會懂。
如果決定要做,那就把需要的模塊實現,一個互補/卡爾曼濾波+一個PID。之後哪裡需要優化就優化,哪裡需要加功能就加功能,不知道怎麼做就查資料、問人、學習、琢磨,邏輯混亂就上狀態機、重構代碼。
中間你會覺得性能不好瓶頸在控制,就改控制;不安全在邏輯,就改邏輯。
當你融會貫通,把各種不同的控制理論的思想都糅合在PID里,不需要模擬給個參數就能飛穩,控制就掌握了。
當你深信有些場合飛不好的時候是因為信息量(感測器)太少,掙扎已經沒有意義,應該去加感測器,狀態估計就做好了。
最後你會發現控制其實挺好做的,難點都在於狀態估計。對於一個產品來說,以目前廉價感測器的數據,想在任何場景下都做好定位,簡直是不可能。實驗室里發paper那些出了實驗室都是扯淡的。所以你又花了大量的時間在感測器演算法、SLAM演算法、軟體重構上,然後變成了感測器演算法工程師、圖像演算法工程師、程序架構師,甚至投身於感測器設計、電機設計blabla,變成一個全能工程師。飛控演算法工程師可能就是曾經的title了。
秦永元的卡爾曼濾波捷聯慣導十一本很好的入門教材。
推薦閱讀:
※如何看待大疆的伺服器 key 在 Github 上泄露事件?
※大疆無人機的相機是自有技術嗎?還是國外的?鏡頭是自己研究的還是國外的?感光元件同樣的問題?
※如何評價大疆御和精靈4的關係?
※無人機駕駛員前景怎麼樣?打算辭職去考AOPA
※如何评价大疆创新(DJI)发布的新产品 Phantom 3(精灵3)?