9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CozmoSDKを使ってCozmoを操作する

Last updated at Posted at 2017-10-15

Cozmoをゲットした。

IMG_20171005_213130.jpg

Cozmoは「やんちゃでかしこいあいぼう」という成長型のペットみたいなロボット。
http://www.takaratomy.co.jp/products/cozmo/

AndroidやiPhoneなど(※)のスマートフォンと連携させて動かす。
専用アプリがあり、そのアプリが起動していないとCozmoは動かない。
※一応Fire OSにも対応しているみたい

専用アプリ上でブロックベースでプログラミングして、Cozmoを操作することができる。
また、CozmoSDKを使うと、Pythonでプログラミングして、Cozmoを操作することができる。
CozmoSDKならIFTTT連携もできるみたい。

今回は、CozmoSDKを使ってCozmoを操作する方法を説明する。
スマートフォンはAndroidを使っている。

環境

環境はいつも通り。
Win10を使っているが、Bash on Ubuntu on Windowsを使っている。

対象 OS、バージョン等
PC Ubuntu 16.04.3 LTS(Win10のBoW使用)
Android Nexus6P(Android8)

概要

基本的には以下の通り。
http://cozmosdk.anki.com/docs/index.html

CozmoSDKはスマートフォン経由で実行される。
こんなイメージ。
[PC] <-> [Android] <-> [Cozmo]

PCとAndroid端末はUSBケーブルで接続し、adb経由で通信する。
Android端末とCozmoはCozmoアプリのCozmoSDKを有効にして通信する。

環境構築

Android端末にはCozmoアプリ、PCにはAndroidSDKとPython 3.5.1以上が必要になる。

Android端末(Cozmoアプリ)

Android端末にCozmoアプリを入れておく。

Cozmoのセットアップが終わっていないならセットアップしておく。
ついでにCozmoと遊んでおくといいと思う。

AndroidSDK(adb)

AndroidSDKでコマンドラインツールのみの場合、sdkmanager(sdk-tools-linux/tools/bin以下)でplatform-toolsを取得しておく。
sdkmanagerのパスを通した状態で、下記コマンドを実行する。

sdkmanager "platform-tools" "platforms;android-26"

adb(sdk-tools-linux/platform-tools以下)のパスを通しておく。
Android端末をPCに接続し、下記コマンドを実行する。
※Android端末では予め開発者モードを有効にし、adbデバッグも有効にしておくこと。

adb devices

以下のように「device」が表示されていればOK。

List of devices attached
XXXXXXXXXX        device

Python3

下記コマンドでPython3をインストールする。

sudo apt-get update
sudo apt-get install python3

pip3をインストールする。

sudo apt install python3-pip

Tkinter(PythonのGUIツールキット)もいるらしいのでインストールする。

sudo apt-get install python3-pil.imagetk

CozmoSDK

下記コマンドでPCにCozmoSDKをインストールする。
[camera]はオプションみたい。

pip3 install --user 'cozmo[camera]'

CozmoSDKをアップグレードする必要がある場合は、下記コマンドを実行すればいいみたい。

pip3 install --user --upgrade cozmo

チュートリアルの実行

CozmoSDK Examplesを取得する。
下記からLinux版を取得できる。
http://cozmosdk.anki.com/1.0.1/cozmo_sdk_examples_1.0.1.tar.gz

格納したディレクトリに移動し、解凍する。

tar -zxvf cozmo_sdk_examples_1.0.1.tar.gz

Cozmoアプリを起動し、Cozmoに接続する。
アプリの設定(上部右側のアイコン)の中にある「SDKを有効にする」ボタンを押下する。

PC側で下記コマンドを実行する。

cd cozmo_sdk_examples_1.0.1/tutorials/01_basics
./01_hello_world.py

Cozmoが「hello world」と言ってくれる。

Cozmoの発話処理

01_hello_world.pyの中身はこんな感じになっている。

import cozmo

def cozmo_program(robot: cozmo.robot.Robot):
    robot.say_text("Hello World").wait_for_completed()

cozmo.run_program(cozmo_program)

cozmo.robot.Robotクラスのsay_textメソッドで発話処理をする。
wait_for_completedメソッドでは発話処理の完了待ちをしている。
デフォルトで最大5秒待つようになっている。それ以上かかる場合は引数に秒単位で指定する。
cozmo.run_programメソッドで実行する。

発話内容は日本語でも大丈夫だった。
以下のようにsay_textメソッドに「オヤスミ」を渡すと発話してくれた。

def cozmo_program(robot: cozmo.robot.Robot):
    robot.say_text("オヤスミ").wait_for_completed()

カタカナでなくても「おやすみ」「お休み」でも発話していた。
Twitterとかメールとか、日本語の文章を読み上げさせることができるみたい。
IFTTT連携のサンプル(if_this_then_thatディレクトリ以下)もあるので、色々連携させるのも面白そう。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?