Zenbo Junior Python SDK安裝與測試

Asus公司推出Zenbo這種陪伴型機器人已有一段時間了,以我手邊兩三年前拿到的設備,看起來大約就是一個具有移動能力、造型可愛的平板電腦,而事實上它的臉(也就是平板電腦)也真的是Android作業系統,因此為一般Android手機開發的APP,理論上是可以安裝到Zenbo上的。但使用Android Studio的Java開發APP對許多初學者來說還滿困難的,所以藉由安裝Python SDK讓Zenbo具有Python語言的可控能力,是初學者很好的選擇。

Zenbo機器人的介紹頁面如下:

https://zenbo.asus.com/tw/product/zenbojunior/overview/

它的SDK下載網頁如下:

https://zenbo.asus.com/developer/tools/zenbo_junior

在進入上面的網頁之後,可以看到有三種選擇,如下圖所示:

其中左邊的SDK就是給Android Studio用的,中間的就是我們今天的主角,Python SDK。選擇「Download」之後會下載一個壓縮檔到我們的資料夾中,解壓縮之後即可看到一個叫做pyzenbo的目錄。請以Anaconda Prompt進入該資料夾,先建立虛擬環境,然後執行python setup.py install為環境安裝所需要的開發模組。指令如下:

C:\>conda create --name zenbo python=3.10
C:\>conda activate zenbo
(zenbo)C:\>cd pyzenbo
(zenbo)C:\pyzenbo>python setup.py install 
(zenbo)C:\>cd ..
(zenbo)C:\>mkdir myzenbo
(zenbo)C:\>cd myzenbo
(zenbo)C:\myzenbo>

接著我們就可以在myzenbo的資料夾底下編寫控制Zenbo的Python控制程式了。不過在開始利用Python控制Zenbo之前有一個觀念必須先弄清楚,就是不同於Androio的SDK是把APP先寫好再安裝到系統中獨立執行。Python SDK使用的是透過TCP/IP的即時連線方式,一行一行執行Python指令,也就是在電腦中透過WiFi的連線,讓每一行Python指令獨立在Zenbo中執行,這表示,Zenbo不能離開電腦的控制,同時,Zenbo和控制的電腦要位於同一個WiFi之下。這個觀念在以下的官網中有詳細的圖例:

https://zenbo.asus.com/developer/documents/zenbo_junior/Python-SDK-Getting-Started/0.9.0/Setup-PyZenbo

因此,要開始我們的Python Zenbo控制前,要準備好一個共用的WiFi基地台,並讓Zenbo以及電腦都連線上去,確定他們之間是可以互通的。執行Zenbo上的Zenbo實驗室,Zenbo的畫面即會顯示出目前的IP,這個IP位址就是我們要控制的Host IP。在官網上簡易的說話及變換表情的程式如下:

import pyzenbo
from pyzenbo.modules.dialog_system import RobotFace

host = '192.168.1.104'
sdk = pyzenbo.connect(host)
sdk.robot.set_expression(RobotFace.DEFAULT, '你好,歡迎光臨外語學院!')
sdk.robot.set_expression(RobotFace.HIDEFACE) 
sdk.release()

上述程式先是設定成預設的表情,然後講話,講完話之後就把表情隱藏起來。在Visual Studio Code中執行的過程以及開發環境如下:

我們可以切換不同的表情以及文字的內容,其中的一些表情包如下(更多的內容在SDK的說明文件中),有興趣的讀者們可以自行試試:

INTERESTED = 'INTERESTED'
DOUBTING = 'DOUBTING'
PROUD = 'PROUD'
DEFAULT = 'DEFAULT'
HAPPY = 'HAPPY'
EXPECTING = 'EXPECTING'
SHOCKED = 'SHOCKED'
QUESTIONING = 'QUESTIONING'
IMPATIENT = 'IMPATIENT'
CONFIDENT = 'CONFIDENT'
ACTIVE = 'ACTIVE'
PLEASED = 'PLEASED'
HELPLESS = 'HELPLESS'
SERIOUS = 'SERIOUS'
WORRIED = 'WORRIED'
PRETENDING = 'PRETENDING'
LAZY = 'LAZY'
AWARE_RIGHT = 'AWARE_RIGHT'¶
TIRED = 'TIRED'
SHY = 'SHY'
INNOCENT = 'INNOCENT'
SINGING = 'SINGING'
AWARE_LEFT = 'AWARE_LEFT'

讓Zenbo唸一下唐詩的方法如下:

import pyzenbo
import time
from pyzenbo.modules.dialog_system import RobotFace
tang = "床前明月光,疑是地上霜,舉頭望明月,低頭思故鄉".split(',')

host = '192.168.1.104'
sdk = pyzenbo.connect(host)
for s in tang:
    sdk.robot.set_expression(RobotFace.PLEASED, s)
    time.sleep(1)

sdk.robot.set_expression(RobotFace.HIDEFACE) 
sdk.release()

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *