cozmo 入坑日記及開發環境搭建

do康解U發表於2019-07-20

Cozmo 入坑日記及開發環境搭建

1. 入坑始末

  • 前幾日,朋友在群裡發了一個機器人的小視訊,視訊裡機器人可以對話,可以推箱子,開心以後會哈哈大笑,非常有趣。

  • 詳細瞭解裡一下,這是個叫 Cozmo 的智慧機器人,可以配合 SDK 用 Python 程式設計,興趣一下子就來了,詢問了一下價格,閒魚 500 左右。順便跟同事看了一下,同事也感興趣,立馬去閒魚淘了 2個 藍色限量款。

  • 第一天下單,沒想到第二天下午就到了,哈哈哈。滿心激動的開啟箱子,裡面有:

    • 說明書
    • 充電器
    • 3 個魔方
    • 還有一個就是 Cozmo 本體了
  • 先上張圖

cozmo 入坑日記及開發環境搭建

2. 啟動 Cozmo

  • 開啟箱子以後,接下來就是要啟動 Cozmo 了,拿起 Cozmo 找了好幾圈都沒找到開關,emmm~~什麼鬼?

  • 通過閱讀說明書才知道,Cozmo 開機其實很簡單,把充電座接上電,把 Cozmo 放上去就可以了。Cozmo 的底部有 2 個金屬觸電,通電後螢幕就亮了。

cozmo 入坑日記及開發環境搭建

  • 螢幕上有 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

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 安裝

4.2.1.1. Python Installation

# 首先,根據說明安裝最新的 Homebrew
# 如果已經安裝了BREW,請開啟終端視窗並鍵入以下內容來更新它:
brew update

# 安裝並更新homebrew後,在終端視窗中鍵入以下內容以安裝最新版本的python 3:
brew install python3

img

4.2.1.2. SDK Installation

# 在終端中輸入以下命令安裝 SDK
pip3 install --user 'cozmo[camera]'
# [camera] 選項增加了對 Cozmo 相機處理影象。

Install SDK

  • 提示安裝成功:Pillow-6.1.0cozmo-1.4.10cozmoclad-3.4.0numpy-1.16.4

4.2.1.3. SDK Upgrade

# 輸入如下命令升級 SDK
pip3 install --user --upgrade cozmo

Upgrade SDK

  • 提示當前 SDK 已經滿足需求,忽略更新。

4.2.1.4. 手機驅動安裝(補充步驟)

  1. 在 macOS 系統上執行 Cozmo SDK,iOS 裝置不需要安裝其他驅動。
  2. 而使用 Android 裝置需要安裝 Android Debug Bridge (adb) 才能執行 Cozmo SDK ,並且需要用 USB 線連線手機。

4.2.2. 安裝 Pillow 模組

  • 一般說來裝Cozmo SDK的時候已經自帶了
pip3 install --user Pillow

4.2.3. 安裝 Flask 模組

  • FlaskPython 的 Web 應用框架,因為 Cozmo Explorer Tool 是瀏覽器應用,故必須安裝
pip3 install --user flask

img

4.2.4. 安裝 Flask Socket-IO 模組

pip3 install --user flask-socketio

img

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

img

  • 提示安裝完成

5.2. 再次啟動,彈出一個網頁顯示 500

  • 頁面500,emmmm~~~,什麼情況?

img

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

img

5.4. 啟動 explorer_tool.py

  • 重新執行,哈哈,頁面正常開啟 ^_^

img

  • Terminal 詳細日誌輸出

img

  • 因為這種啟動類似 run server 方式,所以後續操作日誌還會持續不斷的輸出到 Terminal 中。

6. 真·開發—— Python 開發

  • 以上是 UI 工具安裝過程,類似與一個除錯介面,下面進入真正的 Python 開發部分

6.1. 下載 SDK Examples

  • 點選手冊中下載標籤:SDK Examples
  • 第一部分是 SDK 案例,有 Mac OSX / Linux 和 Windows 版本。

img

6.2. 下載 Anki Cozmo - Python SDK

  • 第二部分是 GitHub 專案地址:Anki Cozmo - Python SDK

  • 下載完 SDK 案例,就可以準備進行 python 開發了

img

6.3. 使用 Python SDK 開發程式

image-20190720124423775

———未完待續------------

相關文章