歡迎來到AI的世界:從樹莓派,Arduino 到 HEXA | 了解機器人開發必看

2021-01-11 CSDN技術社區

嗨,大家好!我是Neo

最近幾年人工智慧(AI)可以說如火如荼。但不同於大疆的無人機或者各種VR設備,AI設備本身由於兼具了軟硬體的要求,門檻其實還是挺高的。

比如之前刷屏的波士頓動力的後空翻機器人Atlas,無論是機械結構,還是運動平衡算法,都是普通玩家沒法企及的。別的不說,數百甚至數千萬美元的研發投入,就讓大家只能看看而已了。

同時對於極客和硬體玩家來說,面對茫茫多的新概念,比如Raspberry Pi啦,Arduino啦,似乎都是非常火的產品二次開發社區。那麼到底該如何選擇呢,Neo我最近剛好在做一些個人項目,把周邊朋友手頭的這類設備都搜刮過來做了個全面解讀,才有了此文。希望感興趣的值友看完這篇文章,能對自己該選擇怎樣的產品能有一個比較明晰的概念。

一. 樹莓派 Raspberry Pi

啥是樹莓派?樹莓派是將電腦集成到了一塊電路板上的微型電腦。

可接顯示器、滑鼠、鍵盤等外設;基於linux的系統;是一臺功能完整的迷你電腦;存儲通過micro-SD卡來提供;內置乙太網接口可直接聯網 (Arduino也可以訪問網絡,但那需要一些額外的部件)。

對於偏編程開發的技術人員來說,樹莓派是一個非常低成本的開發平臺。同時,它的編程環境是標準的Linux編程環境,對於有經驗的程式設計師來說上手非常容易。

但這也就導致對於沒有相關經驗的人來說,樹莓派的軟體編程門檻有點高。並且如果想做運動實例的話,配置過程比較複雜,還需要外接驅動板,成本也就上去了。

二. Arduino

啥是Arduino?Arduino是一個完全開源,可以二次開發用於商業運營的開發平臺。

核心:AVR單片機

本質:單片機應用開發板

Arduino有簡單的函數,還有許多應用庫,這樣就不用直接去操作寄存器了,使得沒有很好的單片機基礎的人員也可以使用Arduino做出自己想要的東西。另外還有簡潔的集成開發環境(IDE)。

作為核心的Arduino開發板有多個版本,比如最常見的Arduino UNO板。此外,Arduino擁有自帶的軟體開發系統。目前非常的火的智能機械臂就是利用Arduino開發出的非常熱門的品類。

然而Arduino的開發成本其實不低,要求玩家必須有豐富的軟硬體知識和不錯的動手能力。而對於這樣的高階玩家來說,Arduino晶片本身的性能又顯得有些孱弱。

所以目前Arduino更多的還是作為一些高校學生的畢業設計,或者個人/小團隊練手的選擇。如果要做嚴肅的機器人/AI項目開發,Arduino的算力/複雜度比,還是稍微低了點。也就是說,玩家實力達到創客級別之後,Arduino平臺本身的硬體性能瓶頸,會明顯限制創客的想像力了。

三. 全地形可編程機器人HEXA

看到這裡可能有值友會說:聊了半天啥情況?

波士頓動力那種牛逼的我們買不起;

樹莓派那種偏軟體的不僅上手門檻很高,即便開發出應用,也仍屬於是一個PC設備,還稱不上是機器人;

而Arduino這種偏硬體的對於開發者來說,如果不太明白機械結構設計不會自己搭控制系統,那麼可玩性也非常低。

所以啥也幹不了?

好在,有需求就會有廠商來努力填補這個空缺。

Vincross最近新出的一款可編程全地形機器人HEXA,似乎就是一個不錯的嘗試。

我最早注意到這個產品,其實也是看什麼值得買的一篇眾測報告。

前不久還在《Wired》雜誌的年度產品「Gear of the Year」裡看到HEXA佔據了非常大的篇幅:

雖然沒有細看,但留下了印象。就是覺得這個產品蠻酷的,好像以前沒見過。

沒想到身邊的Geek小夥伴居然已經直接在KS上眾籌了一臺,趕快第一時間拿過來玩玩。首先HEXA本身的造型比較讓人印象深刻,把它放在辦公桌上可以達到超過100%的回頭率,不少同事甚至回頭了不下三次。紛紛表示,這個是什麼東西?能不能演示一下?

(直接導致我啥也沒幹就玩沒電了)

首先從外形來看,六足(Hexapod Robot)的結構會比傳統的輪式、或者履帶式結構更適合各種越野環境。美國NASA目前正在研製的登月機器人ATHLETE其實就是源於六足機器人的造型,從而可以更好的適應月球複雜的地表環境:

在一些地面比較不平整的環境中,足型機器人先天就會比輪式機器人擁有更強的通過能力。

對於一些溝壑,足型機器人也可以有更強的環境適應能力。而對於六足機器人來說,只要保證三足不離地,就可以非常穩定,而如果增加到八足或者更多又會造成對軟硬體資源要求增加,效果卻不明顯。所以其實六足是最具性價比的一個選擇。

而HEXA則將六足機器人的優勢進一步優化,從步態上來說,有跨步、正常、探洞三種步態,再加上它可以360°無限旋轉的頭部(後面有實例演示),使得HEXA在行動能力上更加靈活便捷。

我想HEXA的團隊在設計這款產品的時候,主要也是考量了如何兼具性能和成本的平衡,從而最大化的實現產品力。

聊完了六足結構,回到產品本身。HEXA在傳感器配置上也比較豐富,頭部除了高清攝像頭(有夜視功能)之外,還有測距傳感器和紅外發射器,可以比較充分的感知周圍世界。這也給後續我們編程實現各種複雜功能提供了底層支撐。

如果覺得官方自帶的傳感器不夠滿足創客們的開發腦洞,HEXA也提供了豐富的硬體開發接口(I²C,ADC,GPIO,USB,音頻接口等),可以擴展更多外設來DIY一些更複雜的功能。

這種科技感+神秘風的六足機器人,對於小朋友的吸引力實在是太大了。同事的兒子小C不過是來叫爸爸一起吃飯,直接就表示吃飯不急,得先玩玩這個高科技傢伙。

所以我乾脆說,那就由小C你作為我們的測試員,來評測一下這個機器人吧!

小C的毫不示弱,在我幫忙連接好之後,就用「Explore」這個機器人應用(官方稱為Skill)給小C用於「探險」。

作為一個沒有任何相關經驗的5歲孩子,小C直接上手,就可以通過觸控螢幕控制,玩出各種豐富的步伐和身體姿態:

而長時間不操作的話,HEXA也會自動「臥倒」進入休息模式。

所以從易用性的角度來說,HEXA確實做得不錯,沒有任何基礎的小朋友,也可以輕鬆上手。

不過,HEXA可不僅僅只是一個讓小朋友玩的機器人玩具產品。定位於可編程的它,更重要的給想研究機器人科學的創客們,提供一個機器人學習和開發的平臺。

對於初級的開發者,首先可以使用HEXA Simulater來進行入門學習。

在Simulator中,可以通過可視化的3D模擬器,讓開發者不用編寫代碼就可以直觀地進行動作設計。設計好的動作可以直接寫入HEXA的硬體中,輕鬆實現想要的功能。

而且除了預設的動作,我們也可以簡單地通過設置創造更多動作。

當然,對於有編程基礎的創客來說,HEXA也能夠滿足他們的機器人開發需求。HEXA搭載的是基於Linux內核定製優化的MIND OS作業系統。這個機器人作業系統其實類似智慧型手機裡的iOS或者Android。創客可以通過這個系統,使用GO語言,進行更為深度的開發(後面我會介紹一個實例)。

另外,在開發的便捷性上,Vincross不僅在官網提供了完整的開發文檔和教程,也同時在Github這樣的開源平臺上也進行了分享,方便了創客們的開發使用。

在完成相應的開發之後,創客可以將動作封裝成機器人應用,也就是我上面提到的Skill。值得一提的是,HEXA提供了專門的Skill Store,類似於App Store,開發者不僅可以將自己創建的Skill上傳到Skill Store上進行分享和售賣,其他的HEXA玩家也可以自行前往下載裡面的應用,增加HEXA的功能。

也就是說,HEXA並不是提供單純的一個機器人硬體,而是所謂的一個完整的Package:硬體(HEXA)和軟體(MINDOS)一同構建成一個完整的機器人開發生態,甚至一種機器人文化。作為一款新產品,這個完成度的確讓我有些意外。

不過可能光這樣羅列有些過於抽象,我們還是來看個實例吧~

實例機器人應用:鬥牛(Bullfight)

比如這裡我們以鬥牛「Bullfight」,來說明一下編寫過程。

這個Skill是由一位海外的Reddit用戶編寫的。具體來說主要就是分三步:頭部運動,捕捉紅色信號,Go Go Go!!!

而這位用戶也把完整的設計思路和原始碼開源了出來,方便大家取用。具體來說,這個skill需要教會機器人的主要是2點:

1. 啟動視頻捕捉系統

2. 找到紅色,然後啟動運動系統走向紅色目標

最終實現分為三步:

第一步:頭部轉動

具體的代碼,其實就是修改「hexabody」這個package裡面的頭部轉動參數:角度和時間。角度指的是接下來這個動作需要頭部轉動多少角度,而時間則代表了轉動速度。具體代碼如下:

func (skill *ScanRed) searchRed() {

for skill.status {

if skill.rotate {

direction :=hexabody.Direction()

direction +=30

hexabody.MoveHead(direction, 200)

skill.checkRedLightDistrict()

time.Sleep(time.Millisecond * 100)

}

time.Sleep(time.Millisecond * 200)

}

}

比如這裡我想讓HEXA轉頭的速度快一點或者慢一點,只有調整對應的參數就可以了。

第二步:偵測紅色

這一步,首先是使用SnapshotRGBA() 來抓取HEXA捕捉到的視頻圖像信息。然後,通過所以中心點範圍內的RGB值,來判斷是否超過了閾值(即紅色或者非紅色)。這裡的RGB算法其實也是多種多樣,不過要平衡準確性和速度,其實有時候不得不把備選的各個算法都嘗試一遍。這部分的代碼如下:

func isRed() bool {

thresHold := 200

subRed := 0

srcImg := media.SnapshotRGBA()

srcBounds := srcImg.Bounds()

m := image.NewRGBA(srcBounds)

ptX := (srcBounds.Size().X * 1) / 10

ptY := (srcBounds.Size().Y * 1) / 10

draw.Draw(m, srcImg.Bounds(), srcImg,image.Pt(ptX, ptY), draw.Src)

subBounds :=image.Rect(srcBounds.Min.X/2, srcBounds.Min.Y/2, srcBounds.Max.X/2,srcBounds.Max.Y/2)

newImg := m.SubImage(subBounds)

width := newImg.Bounds().Size().X

height := newImg.Bounds().Size().Y

for w := 0; w < width; w++ {

for h := 0; h < height;h++ {

r, g, b, _:= newImg.At(w, h).RGBA()

r = r>> 8

g = g>> 8

b = b>> 8

c := (int(r)- int(g)) + (int(r) - int(b))

if c >thresHold {

subRed++

}

}

}

log.Info.Printf("%d %d",subRed, width*height)

if subRed > (width*height)/200 {

return true

}

return false

}

當然了,掌握算法以後,也可以隨意更換顏色對象。

而第三步就是衝向紅色目標了

這一步其實就是直接調用WalkContinuously()命令。具體代碼如下:

func (skill *ScanRed) goToRed() {

for skill.status {

if skill.run{

log.Info.Printf("RUN...")

hexabody.Walk(hexabody.Direction(), 100)

}

else {

time.Sleep(time.Millisecond * 200)

}

}

}

最終的實現效果,還是不錯的:

所以,HEXA可以說是提供了一個完整的開發環境和比較嚴謹的進階之路:

1、酷炫的外形和自帶skill,比如Explore,可以吸引極客玩家對機器人的興趣,也讓任何零基礎的玩家操控HEXA來一段越野探險。

2、簡單易用的HEXA Simulator,可以讓不太懂編程的用戶,通過所見即所得的方式編寫和組合各種HEXA的新動作,實現相關的功能。對於培養青少年的編程、機械製造興趣,也是非常好的。

3、完整的HEXA Mind SDK,可以讓對機器人和AI感興趣的高校學生、從業人員或者Geek、創客們輕鬆發揮自己的想像力。創客們不需要精通機械設計,也不需要精通軟體編程和開發,就可以直接拿HEXA進行高級語言的動作程序開發,非常方便和高效。

HEXA不僅僅是降低了機器人學習和開發的門檻,也提供了一條學習曲線並不算陡峭的機器人入門之路。

當然,其實也不難看到HEXA的目標不止於此。HEXA結合MIND OS構建的機器人開發生態,讓用戶完全有能力超越目前的功能演示範疇,開發出一些有強大應用價值的功能(比如:極端狹窄環境的探險、搶險救援中提供一些協助、作為機器人寵物承擔家庭陪伴的功能等等)。

可以想像,當這些功能真正應用到實際生活中,機器人就不在只是一個生活在科幻電影中摸不著的,或者只是玩具一般的產物,而是像如今的智慧型手機一樣普及生活助手。

從機器人行業的角度來看,HEXA的價值更在於讓創客們對於機器人的想像有途徑可以實現,從而推動整個機器人產業的發展。當然了,光靠這一款產品顯然是不夠的,但顯然我們看到了好的跡象和趨勢。

四. 尾巴

回到最初的話題,現在國際化背景之下,我們接觸最新最高科技技術的方式的確是越來越多了。並且各種開源文化的影響之下,和世界一起開發新產品早就不是一句空話而已經成為了現實。

如果想要做一些個人創客項目,或者只是單純的做一些好玩的作品,樹莓派、Arduino或者HEXA這樣的成品,其實都提供的相當不錯的基礎。至於如何選擇,更多的可能還是看實際的需求來決定。

如果是做一些數據監控和處理任務,比如下載機、空氣監控、PM 2.5監控,樹莓派應該是最佳選擇,價格不貴幾百元搞定,實例也多;

如果是做一些運動控制的小作品,比如機械臂、微型3D印表機、智能小車,Arduino是更合適的選擇,並且拖各種改版的開源產品庫的福,在某寶上可以直接買到原始圖紙。一般一個項目的成本大約在1000-3000元;

如果想不只是學習DIY產品的過程,而是直接學習機器人從初級到高級的編程,對複雜環境、豐富視頻信號的捕捉、處理和進一步動作,從而實現真正的機器人應用,並且通過類Skill的形式在全球創客的智慧型手機上傳播,目前HEXA也可以說是這個品類下最佳的選擇。甚至,是唯一的選擇。感興趣的朋友可以去Vincross的官網,以及京東和淘寶看看。

總而言之,我們可能正處於創客最好的時代。

If you wanna DIY something, the best time is NOW!

隨著京東眾籌的HEXA的量產進入正軌,距離人類導師收到HEXA的時間也越來越臨近。在此給大家預告一下,在京東眾籌的HEXA發貨後,我們將舉辦#ChallengeHEXA#的活動。

屆時,只要你開發的Skill能夠通過審核上線到我們Skill Store,即有機會獲得現金獎勵。在此之前,大家可以開始熟悉我們的開發文檔,期待未來的Skill有大家的腦洞和智慧。

HEXA正在預售中,點擊連結(https://www.vincross.com/cn/hexa),即刻下單。

相關焦點

  • Arduino與樹莓派 哪款開發板更適合你
    Arduino和樹莓派(Raspberry Pi)都是電子創意設計的常用開發工具,那麼它們之間到底有什麼區別和特點呢?今天Z博士就跟大家分享一下Arduino和樹莓派的比較。Arduino是一款基於微控制器(單片機)的電子開發板,它可以運行一些相對比較簡單的應用程式。
  • 3D 列印的樹莓派蜘蛛機器人
    這個四足蜘蛛機器人以樹莓派作為「大腦」,身軀和四肢由 3D 列印。無需定製電路板,初學者即可完成組裝。不僅如此,教程還包含一段將近一個小時的組裝視頻。這對於想了解樹莓派、Python 編程的朋友來說是非常不錯的上手項目。
  • 什麼是樹莓派(Raspberry Pi)
    你知道樹莓派(Raspberry Pi)嗎?它可不是一款餐後甜點,而是一個只有信用卡大小的計算機,更準確的說它是一款單板計算機。樹莓派由註冊於英國的慈善組織「Raspberry Pi 基金會」開發和維護,其設計初衷是用來教孩子們學習程序設計的低成本計算機。而現在它已經可以用來做很多有趣的事情。
  • 用樹莓派做蜘蛛機器人,還是3D列印的!
    這個四足蜘蛛機器人以樹莓派作為「大腦」,身軀和四肢由 3D 列印。無需定製電路板,初學者即可完成組裝。 不僅如此,教程還包含一段將近一個小時的組裝視頻。這對於想了解樹莓派、Python 編程的朋友來說是非常不錯的上手項目。
  • 腦洞大開的「樹莓派」創意都在這裡,簡直就是藝術
    ijMesmc電子遊戲桌ijMesmc首先是一個很少見的電子遊戲桌,是由樹莓派經銷商E-14的客戶SpannerSpencer所分享,他利用RPi 3開發他的PIK3A電子遊戲桌;每個版本的樹莓派都被拿來開發過遊戲平臺,但是類似這種在老酒吧出現的復古電玩桌則是第一次見到。
  • 「樹莓派」的故事:一款35美元的計算機是如何改變世界的?
    它已經植入到筆記本、平板電腦和機器人裡面;它已經跑到國際空間站上做實驗;它甚至進入到主流媒體,在《機器人先生》這樣的電視節目以及《超能陸戰隊》這樣的電影裡面亮相。我們還沒有提到它在商業當中扮演的角色,從瘦客戶端到工控系統,樹莓派幾乎無所不能。但是這種成功絕不是打了包票的。
  • [圖+視頻]用Raspberry Pi(樹莓派)打造的R2-D2星戰機器人
    計算機科學博士生項凌翔(音譯),最近又挖掘出了樹莓派
  • Pi-Top:世界上第一款 3D 列印的樹莓派筆記本
    Pi-Top:世界上第一款 3D 列印的樹莓派筆記本 當樹莓派遇上 3D 列印會發生怎樣的火花?
  • 終於有人講清楚了樹莓派是什麼
    樹莓派能替代日常桌面計算機的多種用途,包括文字處理、電子表格、媒體中心甚至是遊戲。並且樹莓派還可以播放高至1080p的高清視頻。 我們希望將樹莓派推廣給全世界的青少年電腦愛好者,用於培養電腦程式設計的興趣和能力。
  • 用樹莓派DIY波士頓機器狗省50萬:教程開源,人人可上手
    不如利用開源項目,拿樹莓派DIY一個,成本不到4000元。這麼一站,是不是就有波士頓動力狗那種feel了?先來個熱身運動,展示一下靈活的關節:通過三軸身體姿態控制,這樣一隻樹莓派版波士頓動力狗,可以實現兩種運動模式。一種是小跑姿態。
  • 意識機器人即將來到,AI即將喚醒
    到目前國際上還沒有人這樣明確第宣稱AI的覺醒和復活。他強調在目前的深度機器學習中要著重引入人的注意力機制。該機制在神經學上揭示了大腦神經系統在專注研究某一問題的情況下產生的學習、思維、意識等高級活動規律,形成對認識事物核心信息的提煉。
  • 二代龍芯派 VS 樹莓派 3B+:性能孰勝一籌?
    ▲二代龍芯派和樹莓派3B+參數對比和樹莓派相比,龍芯派自帶16GB的SSD硬碟、散熱片、亞克力支架,並且帶有高速的PCIE接口,有更豐富的接口,從設計上更接近開發板。從價格上,二代龍芯派仍然是樹莓派的6倍多。龍芯派這麼貴,值得嗎?除了高額的情懷稅,它在性能上和樹莓派相比有優勢嗎?
  • 樹莓派 4 的設計是怎麼翻車的?
    樹莓派4 是Raspberry Pi 第一款支持 USB-C 的設備。我們從樹莓派官方發布的電路板原理圖可以看到,樹莓派4的電源設計出了問題。4 CC電阻位置 對於大多數線纜/充電器而言,也就是不帶Emark晶片的USB-C,這不是問題,因為這類USB-C線僅用通過電纜連接的一條CC引腳,因此將正確地檢測到樹莓派並接收電力。
  • 樹莓派4來襲,來看看Pi 4B的幾個亮點!
    在物聯網遍地開花、智能製造/人工智慧炙手可熱的大環境下,行業玩家翹首期盼已久的樹莓派4終於閃亮登場。 除了處理器性能的提升之外(據說3倍的提升),最大的亮點我認為是RAM的性能提升,速度從原來的DDR2提升到DDR4(雖然是LP版本的),更重要的是提供了2GB(45美元)、4GB(55美元)的版本。這兩個版本使得切入到Android的生態成了可能,積累了十多年的海量的Android應用程式從此可以運行在樹莓派上了。
  • 好用的鍵盤一體機,樹莓派400上手體驗
    最近我就發現了一款神器,它就是 Raspberry Pi 400,也就是樹莓派400,它既是鍵盤,也是電腦,只需要簡單的連接,一臺個人電腦應運而生。 看到樹莓派400讓我想到了小時候的學習機,外形雖然只是一個鍵盤,但功能模塊全部內嵌在了機器裡。
  • 樹莓派|NextCloud搭建專屬私有同步雲盤
    百度網盤限速大家都懂沒有會員的痛,手機拍的照片太多,又想隨時方便歸檔瀏覽,今天小壹教大家樹莓派搭建私有雲盤,讓你方便管理文件照片。效果:環境準備樹莓派 4B+4G系統:Raspberry Pi OS (32-bit) with desktop網盤軟體:NextCloud18.0.4LAMP環境搭建1.環境搭建APACHE: Apache/2.4.25 (Raspbian)MYSQL: Ver 15.1 Distrib 10.3.22
  • 用樹莓派製作一朵預報天氣的雲
    雲朵使用樹莓派Zero W製作,連接到 Yahoo Weather API 獲取天氣信息,通過變化的顏色告訴你天氣情況。將焊條的末端與電線的末端焊接在一起,效果會更好。下載樹莓派系統,我是用的是:https://www.raspberrypi.org/downloads/raspbian/使用諸如etcher.io的程序將系統鏡像刻錄到SD卡。完成後在啟動目錄中添加兩個文件,以便樹莓派啟用ssh並提供正確的wifi信息。
  • 樹莓派4B如何自動運行Python程序
    打開APP 樹莓派4B如何自動運行Python程序 電路城 發表於 2019-09-29 11:13:36   到目前為止,我們所有的樹莓派4BPython程序都是通過使用IDLE或通過控制臺窗口執行的。
  • 怎樣在樹莓派上輕鬆實現深度學習目標檢測?
    翻譯 | 小哥哥  狒狒      校對 | 老趙     整理 | 凡江這個現實世界造成了很多挑戰,比如數據有限、只有微型的計算機硬體(像手機、樹莓派)所造成的無法運行複雜深度學習模型等。這篇文章演示了如何使用樹莓派來進行目標檢測。就像路上行駛的汽車,冰箱裡的橘子,文件上的籤名和太空中的特斯拉。
  • 自製「低配版」開源波士頓動力機器狗:53萬買不起,有樹莓派就夠了
    自從波士頓動力宣布開啟 Spot 四足機器狗零售以來,很多機器人愛好者都經歷了一些內心的波動。看到開售新聞時:「我想買。」換算出人民幣價格之後:「告退了。」面對這款售價 7.5 萬美元(折合人民幣 53 萬元)起的 「機器狗」,只有為數不多的買家敢於下單,並曬出了開箱視頻。像我們這樣的普通市民,也只有點讚、收藏、分享的份兒了。