目錄
Cozmo 入坑日記及開發環境搭建
1. 入坑始末
前幾日,朋友在群裡發了一個機器人的小視訊,視訊裡機器人可以對話,可以推箱子,開心以後會哈哈大笑,非常有趣。
詳細瞭解裡一下,這是個叫 Cozmo 的智慧機器人,可以配合 SDK 用 Python 程式設計,興趣一下子就來了,詢問了一下價格,閒魚 500 左右。順便跟同事看了一下,同事也感興趣,立馬去閒魚淘了 2個 藍色限量款。
第一天下單,沒想到第二天下午就到了,哈哈哈。滿心激動的開啟箱子,裡面有:
- 說明書
- 充電器
- 3 個魔方
- 還有一個就是 Cozmo 本體了
先上張圖
2. 啟動 Cozmo
開啟箱子以後,接下來就是要啟動 Cozmo 了,拿起 Cozmo 找了好幾圈都沒找到開關,emmm~~什麼鬼?
通過閱讀說明書才知道,Cozmo 開機其實很簡單,把充電座接上電,把 Cozmo 放上去就可以了。Cozmo 的底部有 2 個金屬觸電,通電後螢幕就亮了。
螢幕上有 2 行字,這 2 行字的用途稍後說明。
接下來我們需要掏出手機,下載 App。
App 有 iOS 和 Android 兩種,值得注意的是:iOS 版本即使在國內,也可以直接從 App Store 下載安裝;而 Android 版需要連線 Google Store 才能下載,不禁吐槽一下,國內的 Go 開發者還真是艱難。
為了方便起見,祭出了我的神器——老古董 5s。下載、安裝完成 App 後,更換 Wi-Fi 。Wi-Fi 名就是 Cozmo 螢幕右上方的一串字,名為
Cozmo_700xxx
的 Wi-Fi,密碼則是第2行的一長串字串。連線成功後,切換 App 連線 Cozmo,此時就可以互動了。
3. 開始鼓搗
- App 上可以互動的功能比較多,但是 App 程式設計只有一個類似 Scratch 的模組,對於具有探索精神的程式猿來說,肯定不能滿足於此,so,立馬開啟官方手冊,準備搭建開發環境。
- 官方的 SDK 放在了 GitHub ,連結地址: Cozmo Explorer Tool
- UI 介面,通過該 SDK,你可以看到 cozmo 看到的世界,以及在它觀察到這個世界時,在思考什麼。
- 閒話少敘,下面進入正題。
4. 開發環境搭建——Cozmo Explorer Tool 安裝
4.1. 下載
git clone https://github.com/GrinningHermit/Cozmo-Explorer-Tool.git
4.2. 安裝依賴
4.2.1. Cozmo SDK 安裝
- 快速瀏覽 README 後,找到了 docs 連結:Welcome to the Cozmo SDK!。
因為我使用的是 MacBook,直接瀏覽 Mac OSX 部分: Installation - macOS / OS X
安裝步驟很簡單,總共需要 3 步:
4.2.1.1. Python Installation
# 首先,根據說明安裝最新的 Homebrew
# 如果已經安裝了BREW,請開啟終端視窗並鍵入以下內容來更新它:
brew update
# 安裝並更新homebrew後,在終端視窗中鍵入以下內容以安裝最新版本的python 3:
brew install python3
4.2.1.2. SDK Installation
# 在終端中輸入以下命令安裝 SDK
pip3 install --user 'cozmo[camera]'
# [camera] 選項增加了對 Cozmo 相機處理影象。
- 提示安裝成功:
Pillow-6.1.0
、cozmo-1.4.10
、cozmoclad-3.4.0
、numpy-1.16.4
4.2.1.3. SDK Upgrade
# 輸入如下命令升級 SDK
pip3 install --user --upgrade cozmo
- 提示當前 SDK 已經滿足需求,忽略更新。
4.2.1.4. 手機驅動安裝(補充步驟)
- 在 macOS 系統上執行 Cozmo SDK,iOS 裝置不需要安裝其他驅動。
- 而使用 Android 裝置需要安裝 Android Debug Bridge (adb) 才能執行 Cozmo SDK ,並且需要用 USB 線連線手機。
4.2.2. 安裝 Pillow
模組
- 一般說來裝
Cozmo SDK
的時候已經自帶了
pip3 install --user Pillow
4.2.3. 安裝 Flask
模組
Flask
是Python
的 Web 應用框架,因為Cozmo Explorer Tool
是瀏覽器應用,故必須安裝
pip3 install --user flask
4.2.4. 安裝 Flask Socket-IO
模組
pip3 install --user flask-socketio
5. 啟動 Cozmo Explorer Tool
- 因為沒有使用 venv 環境,所以直接執行即可
- 進入 Cozmo Explorer Tool 目錄
cd Cozmo-Explorer-Tool
python3 explorer_tool.py
5.1. 報錯 1
╭─david@MyAir ~/Cozmo-Explorer-Tool ‹master›
╰─➤ python3 explorer_tool.py 1 ↵
WARNING:root:Cannot import from eventlet: Do `pip3 install --user eventlet` to install
Event monitoring works, but performance is decreased
2019-07-20 09:21:42,886 cozmo.general WARNING No iOS device found running Cozmo: No connected iOS devices running Cozmo in SDK mode
WARNING:cozmo.general:No iOS device found running Cozmo: No connected iOS devices running Cozmo in SDK mode
2019-07-20 09:21:42,887 cozmo.general WARNING No Android device found running Cozmo: Failed to execute adb command adb: [Errno 2] No such file or directory: 'adb': 'adb'
WARNING:cozmo.general:No Android device found running Cozmo: Failed to execute adb command adb: [Errno 2] No such file or directory: 'adb': 'adb'
* Serving Flask app "explorer_tool" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
ERROR:flask.app:Exception on / [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "explorer_tool.py", line 89, in index
return render_template('index.html', randomID=rndID, animations=lists[0], triggers=lists[1], behaviors=lists[2], hasSocketIO=flask_socketio_installed, hasPillow=active_viewer)
IndexError: list index out of range
- 提示中有
pip3 install --user eventlet
,說明安裝依賴中還有一個包要安裝,docs 中沒有提及
pip3 install --user eventlet
- 提示安裝完成
5.2. 再次啟動,彈出一個網頁顯示 500
- 頁面500,emmmm~~~,什麼情況?
5.3. 檢視目錄中 README
System requirements
-
- PC with Windows OS, mac OSX or Linux
- Python 3.5.1 or later
- WiFi connection
- An iOS or Android mobile device with the Cozmo app installed, connected to the PC via USB cable
- 最後一條提示要用 USB 線連線手機和電腦
- 之後呢?拜託一口氣說完好不好~~~
- 再次檢視 docs,Starting Up the SDK
- 終於找到了
- 手機連線 Cozmo Wi-Fi後,用 App 連線 Cozmo
- 點選右上角的⚙️設定選單
- 開啟 SDK 功能
- 最後執行
explorer_tool.py
5.4. 啟動 explorer_tool.py
- 重新執行,哈哈,頁面正常開啟 ^_^
- Terminal 詳細日誌輸出
- 因為這種啟動類似 run server 方式,所以後續操作日誌還會持續不斷的輸出到 Terminal 中。
6. 真·開發—— Python 開發
- 以上是 UI 工具安裝過程,類似與一個除錯介面,下面進入真正的 Python 開發部分
6.1. 下載 SDK Examples
- 點選手冊中下載標籤:SDK Examples
- 第一部分是 SDK 案例,有 Mac OSX / Linux 和 Windows 版本。
6.2. 下載 Anki Cozmo - Python SDK
第二部分是 GitHub 專案地址:Anki Cozmo - Python SDK
下載完 SDK 案例,就可以準備進行 python 開發了
6.3. 使用 Python SDK 開發程式
———未完待續------------