Linux中國

使用開源代碼構建機器人時需要考慮的事項

或許你正在考慮(或正在進行)將機器人使用開源軟體推向市場。這個機器人是基於 linux 構建的。也許你正在使用機器人操作系統ROS)或任務導向操作套件(MOOS),或者是另外一個可以幫助你簡化開發過程的開源中間件。當開發接近實用化,對回報的期望開始給你帶來一些壓力。你可能會被問到「我們的產品什麼時候可以開始銷售?」,這時你將面臨重要的抉擇。

你可以做下面兩件事之一:

  1. 對現有的產品開始出貨
  2. 回過頭去,把產品化當做一個全新的問題來解決,並處理新的問題

不需要看很遠,就可以找到採用方式(1)的例子。事實上,在物聯網設備市場上,到處都是這樣的設備。由於急於將設備推向市場,這些可以在設備中找到硬編碼證書、開發密鑰、各種安全漏洞和沒有更新方式的產品並不少見。

想想 Mirai 殭屍網路,通過該殭屍網路發起的流量超過 1Tbps 的分散式拒絕服務攻擊(DDos),導致一些互聯網上最大的網站停止服務。這個殭屍網路主要由物聯網設備組成。這種攻破設備的防禦機制進而控制設備所開發的殭屍程序,是採用了超級酷的黑魔法在一個沒有窗戶的實驗室(或地下基地)開發的嗎?不是,默認(通常是硬編碼)證書而已。這些設備的製造商是否快速反應並發布所有這些設備的更新,以確保設備的安全?不,很多製造商根本沒有更新方法。他們召回設備而不是發布更新

不要急於將產品推向市場,而是退後一步。只要多思考幾點,就可以使你自己和你所在公司避免痛苦。

例如,你的軟體如何更新?必須能回答這個問題。你的軟體不是完美的。只要幾個星期你就會發現,當你在加利福尼亞使用自主的高機動性多用途輪式車輛(HMMWV)時,它把小灌木識別為一棵橡樹。或者你不小心在軟體中包含了你的 SSH 密鑰。

基礎操作系統如何更新?也許這仍然是你的產品的一部分,也是你回答上一個問題的答案。但也許你使用的操作系統來自於另外一個供應商。你如何從供應商那裡得到更新並提供給客戶?這就是安全漏洞真正讓你頭痛的地方:從來不更新的內核,或者嚴重過時的 openssl。

當你解決了更新問題,在更新過程出現問題時,機器人怎麼恢復?我的示例是對前面問題的一個常見解決方案:自動安全更新。對於伺服器和台式機以及顯然是計算機的東西來說,這是一個很好的做法,因為大多數人意識到有一個可接受的方法來關閉它,而不是按住電源按鈕 5 秒鐘。機器人系統(以及大多數物聯網系統)有一個問題,有時它們根本不被認為是計算機。如果您的機器人表現奇怪,有可能會被強制關閉。如果你的機器人行為奇怪是因為它正在快速安裝一個內核更新,那麼,現在你就有一個安裝了半個內核的機器人鎮紙了。你需要能夠處理這種情況。

最後,你的工廠流程是什麼?你如何安裝 Linux,ROS(或者你使用的中間件),以及你要安裝在設備上的你自己的東西?小的工廠可能會手工操作,但這種方法不成規模,也容易出錯。其他廠商可能會製作一個定製化的初始發行版 ISO,但這是個不小的任務,在更新軟體時也不容易維護。還有一些廠商會使用 Chef 或者有陡峭學習曲線的自動化工具,不久你就會意識到,你把大量的工程精力投入到了本來應該很簡單的工作中。

所有這些問題都很重要。針對這些問題,如果你發現自己沒有任何明確的答案,你應該加入我們的網路研討會,在研討會上我們討論如何使用開放源代碼構建一個商業化機器人。我們會幫助你思考這些問題,並可以回答你更多問題。

作者簡介:

Kyle 是 Snapcraft 團隊的一員,也是 Canonical 公司的常駐機器人專家,他專註於 snaps 和 snap 開發實踐,以及 snaps 和 Ubuntu Core 的機器人技術實現。

via: https://insights.ubuntu.com/2017/07/18/things-to-consider-when-building-a-robot-with-open-source/

作者:Kyle Fazzari 譯者:SunWave 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國