資訊內(nèi)容
Geek專欄:在 Scratch 中玩轉(zhuǎn)機(jī)器人:Python、Deep Learning、Posenet and Robot!
樂聚Geek專欄已正式開通,本專欄將不定期發(fā)布專業(yè)的技術(shù)貼,為熱愛機(jī)器人技術(shù)的發(fā)燒友們提供干貨哦!歡迎大家踴躍投稿。
今天Geek專欄為大家?guī)?
樂聚機(jī)器人王松博士的
“在 Scratch 中玩轉(zhuǎn)機(jī)器人:
Python、Deep Learning、Posenet and Robot!?”
在 Scratch 中玩轉(zhuǎn)機(jī)器人:Python、Deep Learning、Posenet and Robot!
所有的邊界都被打破了?--《Mindstorms》
開場視頻:先打個(gè)響指
打響指控制機(jī)器人
Codelab-Scratch3 與 Python
Scratch 是一門編程語言,上榜過編程語言 Top 20,實(shí)際它是一門少兒編程語言(如果你成年了請先不要急著走)。Scratch 基于圖形化的編程,通過拖拉搭積木的方式進(jìn)行編程,整個(gè)過程就像是在玩樂高積木,其實(shí) Scratch 項(xiàng)目受到樂高的贊助,樂高與 Scratch 之間可以說是互相影響。
一個(gè)正經(jīng)的程序員,在看到 Scratch 的卡通界面和圖形化編程風(fēng)格時(shí),可能會(huì)嗤之以鼻,認(rèn)為它看上去不像是嚴(yán)肅的編程語言,低齡化或者太簡單了。剛開始我對 Scratch 的認(rèn)知亦是如此。
@wwj718 在 Scratch3 上做了大量出色的工作,Scratch3 原本不支持運(yùn)行 Python,利用 Scratch3 原生的插件拓展機(jī)制,采用 Websocket 來傳遞消息,這就像一個(gè)間諜,負(fù)責(zé) Scratch 內(nèi)部與外部的通信。消息源源不斷地以話題/訂閱的方式在網(wǎng)絡(luò)中傳播,這就讓 Scratch 不再受限于瀏覽器網(wǎng)頁中。我終于意識(shí)到,Scratch 可以做任何事!
從上圖看出,整個(gè)系統(tǒng)可以看做是三個(gè)部分:
·?Scratch3:負(fù)責(zé) Block 代碼生成與運(yùn)行,通過 websocket 傳輸消息;
·?Codelab-Adapter:響應(yīng) Scratch 消息,Python 插件管理;
·?Python 插件集合:負(fù)責(zé)連接萬物!
按照這樣的設(shè)計(jì),Scratch 獲得了 Python 的能力,可以將 Python 豐富的生態(tài)和庫統(tǒng)統(tǒng)接入 Scratch,比如 TensorFlow、ML、DL,甚至可以是樹莓派、燈泡、門鎖、空調(diào)、機(jī)器人、游戲 ...
Bret Victor 在《Kill Math》中說道
理解并預(yù)測量化世界的能力不應(yīng)該只屬于那些能夠熟練運(yùn)用抽象數(shù)學(xué)符號的人。
而現(xiàn)在編程的能力也不應(yīng)該只掌握在程序員的手上,不是所有人都要去學(xué)編程,在 Codelab-Scratch 中,用戶可以快速和輕松地使用這些能力。
為了向你證明這一切,下面是我在 Scratch3 中做的一個(gè)演示。
人體姿態(tài)估計(jì):Posenet
Javascript 版 PoseNet 是 TensorFlow 與谷歌創(chuàng)意實(shí)驗(yàn)室合作一款機(jī)器學(xué)習(xí)模型,可以在瀏覽器中實(shí)時(shí)估計(jì)人體姿態(tài)。只要電腦或手機(jī)有攝像頭,就可以直接在網(wǎng)頁瀏覽器中體驗(yàn)這一有趣的技術(shù)。Scratch3 也是純網(wǎng)頁端的,所以將 PoseNet 做成插件的話,Scratch 積木塊就具有視覺的能力!
對PoseNet,@wwj718 已經(jīng)在 Codelab-Scratch3 中接入了,智能硬件接口開放的話,接入 Scratch 中,就可以讓原本功能單一的產(chǎn)品很容易地獲得視覺能力。我相信這就是為我今天的演示所準(zhǔn)備的,做一個(gè) Scratch 版本的機(jī)甲獵人!
接入機(jī)器人到 Scratch3
首先硬件設(shè)備需要有開放的接口,比如開放的藍(lán)牙協(xié)議、串口協(xié)議或者 Wi-Fi 協(xié)議等,Python 有非常成熟的庫可以對這些接口進(jìn)行調(diào)用(不開放也沒關(guān)系,可以 Hack)。
我已提交 Aelos 機(jī)器人 Adapter 插件,感興趣的可以參考我的 PR
·codelab_adapter_extensions/pull/13
·codelab_adapter_extensions/pull/14
手勢控制演示
手勢控制機(jī)器人前后左右翻滾
翻跟斗演示視頻
姿態(tài)模仿演示
下面是姿態(tài)模仿演示,請大家忽略我羞恥又沙雕的動(dòng)作,和不協(xié)調(diào)的肢體
姿態(tài)模仿演示視頻
最后
如果你也對這一塊感興趣,歡迎加入社區(qū)一起折騰。
https://www.codelab.club
相關(guān)鏈接
Kill-Math
Aelos Edu Robot
scratch3.codelab.club
codelab-adapter-docs.codelab.club
Pose Detection in the Browser
codelab_adapter_extensions/pull/13
codelab_adapter_extensions/pull/14
?
鳴謝
@jinbo 的 OSMO;
@yucong 的手抖式拍攝;
@jianhong 的專業(yè)動(dòng)作調(diào)試;
@dongming 的無線 Dongle;
@carlos 的響指(我打不響,囧);
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
五年級Scratch校本課堂紀(jì)實(shí)
? 在城鄉(xiāng)中小學(xué)校一體化發(fā)展項(xiàng)目的支持下,我校五年級本學(xué)期開設(shè)Scratch校本課。學(xué)生使用Scratch 編程軟件,通過拖動(dòng)積木的方法,實(shí)現(xiàn)屏幕畫布 上動(dòng)畫和游戲程序的制作,并通過智能硬件將現(xiàn)實(shí)物理世界與屏幕畫面相結(jié)合,創(chuàng)造出自己獨(dú)一無二的程序作品。課程將藝術(shù)和編程融合在技術(shù)、
- 下一篇
少兒創(chuàng)意編程(特20)scratch之玩轉(zhuǎn)貪吃蛇