Cozmo SDKを使ったPythonプログラミング

開発者向けSDKを使ってCOZMOを動かしてみよう

Cozmo

SDKでなにができるの?

Cozmo SDKを使えばPythonプログラムでCOZMOを喋らせたり、コントロールしたり、内蔵カメラを使ったりといろいろできます。サンプルコードにはTwitterと接続するものもあります。今はまだ日本語のSDKについての記事がほとんどなく、公式サイトのSDKに関する情報は英語のページしかありません。ここでは英語のページを参照しながらCozmo SDKを使います。

Cozmo SDKインストール

SDKはmacOS、Windows、Linuxの3つのOS用に提供されています。ここでは、macOS用のSDKを使ってみようと思います。SDKを使うためには以下の環境が必要です。

  • Python3.5.1もしくは、それ以上のバージョン
  • WiFi接続環境
  • CozmoアプリをインストールしたiOSもしくはAndroidデバイスと、それを接続するUSBケーブル

ここではiPadを使って接続します。

Cozmo SDK資料ページにある「Installation – macOS/OS X」の項目を参照してSDKをインストールしたいと思います。資料ページには動画での説明も掲載されているので参考にします。

Python3は資料ページの説明でHomebrewを使っているのでそれに従います。まずはHomebrewをインストールします。Homebrewサイトの画面に表示されているコマンドをターミナルにコピペすればインストールできます。数分で完了します。

インストールが完了したら、以下のコマンドでHomebrewを最新にします。

$ brew update

次にHomebrewでPython3をインストールします。

$ brew install python3

インストールできたらPython3のバージョンを表示してインストールを確認します。

$ python3 --version

問題なければ次にpipを使ってCozmo SDKをインストールします。pipとはPythonライブラリを管理するツールで、Python3をインストールするとpipも含まれています。以下のコマンドでCozmo SDKをインストールします。

$ pip3 install --user 'cozmo[camera]'

※[camera]はCozmoのカメラを使うためのオプションです。

次に以下のコマンドでCozmo SDKを最新にします。

$ pip3 install --user --upgrade cozmo

以上でSDKのインストールは終了です。

サンプルプログラムを動かす

Cosmo SDK資料ページのダウンロードページ にサンプルコードがあるので、それをダウンロードして実行してみます。

画面の「macOS/Linux SDK Example」をダウンロードします。

ダウンロードしたファイルを解凍して、ターミナルでそのフォルダ内に移動します。現在(2017/10)のバージョンはSDK1.0.1なのでその時点のフォルダ名で記述します。以下のフォルダにサンプルコードが置かれています。

cozmo_sdk_examples_1.0.1/tutorials/

複数のサンプルが用意されていて、ここでは「01_basics」配下にあるサンプルを動かしてみます。

cozmo_sdk_examples_1.0.1/tutorials/01_basics/

このフォルダ配下にはいくつかの.pyファイルがあります。これらがPythonプログラムです。

SDKを有効にする

次にSDKを使ってCozmoと接続します。まずはデバイスのWiFi設定でCozmoのSSIDを選んで、Cozmoアプリを起動してCozmoと接続します。接続後に表示されるメインメニュー画面右上の一般設定アイコンをタップします。

一般設定画面のメニューから、「SDKを有効にする」ボタンを押します。画面を左にスワイプすると表示されると思います。

SDKが有効になると次の画面になってプログラム実行待ちの状態になります。

この状態でターミナルからCozmoに向けたPythonプログラムを実行することができます。

サンプルコードを実行

ターミナルで先程ダウンロードしたサンプルのフォルダへ移動します。

$ cd cozmo_sdk_examples_1.0.1/tutorials/01_basics/

まずは「01_hello_world.py」を実行してみましょう。

$ ./01_hello_world.py

するとCozmoが「”Hello World”」と発話します。

次に「03_count.py」を実行してみましょう。

$ ./03_count.py

するとCozmoは5つまで数字を数えます。しかも、日本語で!日本語のローカライズもちゃんとされているのですね。

次に「04_drive_square.py」を実行してみましょう。

$ ./04_drive_square.py

するとCozmoは四角く移動を始めます。

以下はこれら3つのサンプルを連続で実行した動画です。

それでは今度は日本語を喋らせてみましょう。「01_hello_world.py」を少し修正します。ソースコードの以下の部分を喋らせる日本語に変えます。

robot.say_text("Hello World").wait_for_completed()

この部分を以下に変更します。

robot.say_text("こんにちは、ぼくコズモ、一緒にあそんで").wait_for_completed()

変更したら任意のファイル名で保存します。ここでは「01_hello_world_jp.py」とします。保存したらこのファイルを実行します。

$ ./01_hello_world_jp.py

以下は実行したときの動画です。

かわいい!ちゃんと喋ってますね。句読点(、)で間を開けて、カタカナも漢字も認識しています。

あとは、イントネーションを指定できるのかなど今後に掲載したいと思います。

最後に

今ではおもちゃもこんな風に遊べるんですね。これはコストパフォーマンスも高いと思います。プログラミング学習の教材で使えそうですね。