Cozmo(コズモ)でできるプログラミングの例!Pythonの学習に役立つ?

AI・先端技術

Googleアシスタントやアレクサなど、続々とAI(人工知能)が生活に入ってくる中、使い勝手ばかりでなく愛嬌のあるロボットも手放せないもの。

可愛いだけでなく遊びながらプログラミングを学べると言われるAIロボット「Cosmo(コズモ)」は話題のプログラミング言語Python(パイソン)を使っていると言われますが、一体どんなプログラミングが出来るの?と気になっている方もいるはず。

そこで、Cosmoを使ってどんなプログラミングができるのかという実例と、Pythonを学ぶのにどのくらい役立つのかということについて国内外の情報を調べてみました。プログラマーを目指す人に耳よりな情報も含めましたのでぜひご覧ください。

それでは、Cozmoの基本情報から確認していきましょう!

Cozmoとは?

Cozmoの基本情報

Cozmo(コズモ)は子供のプログラミング学習ができるAIロボットで、アメリカのAnkiという会社によって開発されました。なんとピクサーやドリームワークス出身のアニメーターも開発に関わっていて、表情、仕草や声など、1000以上とも言われ感情表現の豊かさがたまらなくかわいい手のひらサイズのロボットです。

日本ではタカラトミー社から販売されていて、「おもちゃ」という分類ではあるのですが、実はかなりのハイスペックで、オープンソースのソフトウェア開発ツール(SDK,Python使用)を使うと高度なプログラミングをすることもできます。

基本のプログラミング

「コードラボ」というアプリでできるCozmoのプログラミングは、スマホやiPadなどのスマート端末とつないで、アプリ画面上に表示されるカラフルなブロックをドラッグ&ドロップの画面操作でつなげてコーディングをするというお手軽なもの。こちらは子供やプログラミング未経験者向けです。

サンドボックスモード

「サンドボックスモード」 には4つの「ブロック」があって、これらのブロックをつなげる(コーディングする)ことによってCozmoの動きをプログラミングします。

サンドボックスモード
ドライブ 移動速度などを指示
アクション 頭・腕・ライト点灯・
フレーズ発話の指示
アニメーション 感情表現
イベント人の顔などを認識して
アクションを開始させる

4つのブロックには、方向と速度を指定して走らせる「ドライブ」、頭や腕を動かしたりや「Hi」などの短いフレーズを喋らせる「アクション」、くしゃみやいびきなど様々な感情表現をさせる「アニメーション」、付属のキューブや人の顔を検知して「アクション」を始めるきっかけにするように指示する「イベント」があります。

Cozmoの公式サイトでサンドボックスモードの例として、ハイテンションで喋っているうちに突然眠くなって、いびきをかいて寝落ちしてしまう(笑)などのCozmoの動き(アニメーション)を見ることができます。たった4つのブロックで子供でもロボットを動かすことができてしまいます。

コンストラクターモード

「コンストラクターモード」では、「サンドボックスモード」のブロックに加えて、コントロールブロックなどさらに5つのブロックを使うことができます。

これらを使うと、変数や関数、演算子を使ったより長く複雑なプロジェクトを作ったり、位置・カメラなどCozmoのセンサーから情報を得たり、Cozmoの顔の表示を変えたり、動きを制御をすることができます。複雑とはいえ同じ様にスマホ画面のアプリで操作するので、特にPythonやプログラミングの知識は必要ありません。

コンストラクターモード
コントロールブロックループ関数をや作る
センサーブロック位置センサー・カメラなどからの情報を得る
ディスプレイブロックCozmoの顔に絵を描く
オペレーターブロック演算子を使った関数処理
データブロック 変数の作成・情報の保存・アクセス

こちらは、コードラボでプログラミングしたCozmoの動きの動画です。 (同じ動きが4回も繰り返されて長いので見るのは2回めまでで十分です(笑)。)

Cozmo Code Lab – Driving and Sneezing
コードラボでプログラミングしたCozmoの動き。くしゃみの4連発。

「ドライブ」と「アニメーション」と「コントロール」ブロックを使って動きとくしゃみを繰り返すようにプログラミングされています。 移動とくしゃみのコンビネーションが可愛らしい。

「コンストラクターモード」を使うとこんな風により複雑な動きをさせたり、Cozmoと色んなレベルのゲームをして遊ぶこともできるんだそう。「こういう動きをさせるには、どうプログラミングしたら良いでしょう?」というようなクイズ形式での学習機能もあって、自分で考えて学ぶ機会も与えてくれるみたいです。

こうしたコードラボでのプログラミングの例はCozmoの公式のホームページに動画が出ています。

スマホなどの端末から「コードラボ」を使ってCozmoをプログラミングすることは、プログラミングのしくみの基本的な部分を楽しみながら体感として知ることができるので、子供やプログラミング未経験の人に役立つでしょう。

Pythonを使ったプログラミング例

さて、ここまではスマホなどの端末を使ってプログラミングする初心者向けの使い方の説明でした。Cozmoは子供や初心者のための導入ツールであるだけでなく、プログラマーやプログラマーを目指す人も楽しませる高度な可能性を持っているんです。

Cozmo SDKを使って進化させる

Cozmoは「Cozmo SDK」というソフトウェア開発ツールを使ってより自由で高度なプログラミングをすることができます。

SDKというのは”Software Development Kit”の略で、「コードラボ」のアプリを開発するツールです。「Cozmo SDK」はオープンソースので誰もが利用できる無料のツール。プログラミングの言語にPython(パイソン)が使われています。

Pythonは、データ・サイエンスやAIの分野での需要が高まっていて大注目されているプログラミング言語!You Tube、Instagram、Drop Boxなどのウェブアプリケーションや、AIではソフトバンクのペッパーくんに使われていることで有名なんだそう。へえ、そうなんだ!

Cosmo SDKのプログラミング例

それでは、Cozmo SDKを使うと具体的に何が出来るのでしょうか?

Cozmo SDKについての情報が記載されているAnki社の開発者サイトによると、Cozmo SDKの用途の例として以下のようなのなものがあります。

  • Cozmoをに演技をさせる
  • ゲームに無限の可能性を加える
    (Cozmoゲームの創作)
  • プロトタイピング(実験)に使う
  • IoT(モノのインターネット)に使う


この他に、CozmoはIFTTT(イフト)と呼ばれるウェブアプリケーションの連携ツールを使っているので、ツイッターと連携してツイートを読ませることなどもできるようです。コズモのロボット的な発音で読まれたツイートがちゃんと聞き取れるのか?少し気になりますが、かわいいので許しましょう。

IoTへの利用の仕方は、ヒューライト(スマート電球)の点灯の引き金に使ったり、フィットビットのデータにフィードバックを送る、セキュリティカメラ(ネストカメラ)が動きを捉えた時に知らせる、など。小さいけど家のことも手伝ってくれるCozmo。

Pythonが使える人にとってはまさに無限の可能性を秘めたお役立ちロボットになるんですね!(うらやましい…。)

Cozmoを俳優に仕立てる

お手軽な「コードラボ」でコズモにできる感情表現は1000以上ある中のごく一部で、たったの15程度と言われています。SDKを使うとそれ以上の表現にアクセスできるそう。顔認識だけでなく、表情の認識ができ、笑顔だったらこういう反応をする、などどいうプログラミングもできてしまうんだそうです。落ち込んだ顔をしていたらなぐさめてくれるプログラムなんて作れたらいいですね。

こちらはAnki社の開発者サイトにも紹介されているCozmoを主人公にした動画シリーズ”The Karate Cozmo”(「ミヤギ先生」でおなじみのハリウッド映画、’The Karate Kid”(ベスト・キッド)、そしてそのYou Tube続編シリーズ”Cobra Kai”(コブラカイ)のパロディですね(笑)。)

The Karate Cozmo: Episode 1
コズモを使ったユーチューブ映画
(チャンネル名:Life with cozmo)

CozmoとCozmoの進化版のVector(ベクター)の飼い主(?)がテレビCMに触発されてルンバ的なお掃除ロボット「コブラ・クリーン」を注文。仕事を盗られてしまった二人は新参者にリベンジを加える。倒したと思ったら新たなロボットが現れ…!?(エピソード2に続く!)という内容。

あまりに面白カワイイのでうっかりチャンネル登録してしまいました!

CozmoSDKを使うと、こんな風にもとのブロックにないようなオリジナルの動きをPython言語プログラミングして、好きなようにCozmoを演技させることができるのです。

簡単な開発例

動画で演技させるのはかなり高度ですが、今度は「Cozmo SDKを使ってみたよ~」という、誰でも真似できそうな開発例をご紹介します。

開発例1:発話の指定

こちらはPCとAndroidを使った日本語での発話処理の例です。Cozmoインストールの手順も日本語で記載されています。

Cozmoに「オヤスミ」と言わせるコーディングが説明されています。

Pythonってカタカナをそのまま入力して大丈夫なんですね!色もついていてカラフルで見やすい。プログラミング初心者にもわかりやすい言語というのがここから何となく感じられます。

開発例2:ディスプレイと発話

そしてこちらは、Mac+AndroidでCozmoのディスプレイ画面(顔)へのオリジナルロゴの表示、短い発話などをプログラミングした例です。

Cozmo SDKに挑戦してみた!


【Cozmo開発】Ankiの小型AIロボット「COZMO(コズモ)」
をSDKを使ってMacから動かしてみた!
「ロボスタ」の記事より)

Cozmoの顔に「ロボットスタート」と表示して、さらに「ローボットスタートォ…」しゃべらせています。人の顔を検知してそれに反応して動くようにプログラムされているのかな?

誰か来たら玄関まで行って「いらっしゃいませ。ご用件は?」とか言わせることができたら未来っぽくて面白そう!

Cozmo SDKのインストール

さて、こんな風にCozmoを自由にプログラミングできるCozmo SDKのインストール方法を簡単にお伝えしたいと思います。

Cozmo SDKは Cozmo SDKの公式サイト(英語)で無料配布されているので、ここからダウンロード・インストールして使います。 インストール方法についての説明ビデオが載っていますが、英語なので日本語での説明が必要な場合は、グーグルクロームのブラウザで右クリックをして「日本語に翻訳」を選択すると日本語で見ることができます(グーグル凄いな…)。

必要なデバイスは以下の3つ。

  • パソコン (Mac・PC/Linux対応)
  • スマート端末(スマホ・iPad等)
  • Cozmo

パソコンとスマホがあれば OK。

上述のCozmoSDK以外にインストールが必要なものは以下の通り。

  • パソコン
    • Python3.5.1.以上
    • iTunes(※iOSを使う場合)
    • AndroidSDK
      (ADB= Android Debug Bridge )
      ( ※ アンドロイド端末を使う場合)
  • スマート端末(スマホ、iPadなど)
    • Cozmo アプリ

PythonのインストールはCozmo SDKの公式サイトでのダウンロード手順に入っているので別途インストールしなくてもOK。iTunes, ADBとCozmoのアプリが入っていれば大丈夫です。

接続方法は、パソコンとスマホなどの端末をUSBで繋ぎ、端末とCozmoをWiFiで通信させます。

上記の公式サイトでCozmo SDKのインストール方法の動画が公開されているので、それを見ながら手順を追っていけば難しいことはなさそうです。

Python学習に役立つ?

Cozmo SDKのインストール方法がわかったところで、実際にCozmoを手に入れてSDKを使う価値はあるのかどうか、と思う方もいるかもしれません。Pythonを使っているCozmoが、Pythonを学習したい人にとってどのくらい役に立つのか、私なりに調べてみた結果をご紹介します。

初心者のコード学習用

易しくわかりやすいように作られたと言われるPythonですが、専門的なプログラミング言語であることは変わりありません。外国語を学ぶのと同じで、ステップを踏んで徐々に慣れて行く必要があると思います。

こちらはロボット玩具のアクセサリーを作っている会社のブログで、Cozmoの進化版であるVector(ベクター)をSDKでプログラミングする方法について書かれている“HEXNUB”の 記事 (「SDKを使用したAnki Vectorのプログラミング」)。

この記事を書いたライターによると、チュートリアルに入っているサンプルに少しづつ手を加えて自前のプログラムを作っていくことでPythonのコードの意味や働きを理解・学習することができるとのこと。

ゼロからプログラミングをするのではなく、もともとあるプログラムサンプルをいじることでPythonの勉強ができるんですね。

例えていうならば、こんな感じ。

まだ英語の名詞と動詞しか習っていないときに 「太郎さんがお昼ごはんを食べました」という英語の例文を出されたとします。

そこで文の構造は変えずに、その中の主語を「ドラえもん」にしてみたり、目的語を「どら焼き」にしてみたりすることで「ドラえもんがどら焼きを食べました」に変えて遊びながら、「英語では目的語はこういう風に使うのか~」などと品詞の意味や働きを覚えていく。

サンプルを改変してプログラミングするのを英語に置き換えて解釈してみました。(笑)

サンプルには発話・ドライブ・頭やアームの動きなどがあって、Pythonを勉強し始めた人などがコーディングの感覚をつかんだり、実際の動作などを体感したい場合に役立ちそうです。

プログラマー志望者向け

サンプルの改変はPython初心者の入門補助によさそうですが、Pythonをさらに学ぶともっと複雑なプログラミングがができるようになります。

Pythonはこの言語が使えるプログラマーの年収ランキングでなんと第三位に入るほど将来性と人気のあるプログラミング言語です。

プログラマーを目指す人はオンラインスクールなどでプログラミング言語などを学ぶ必要があると思いますが、 ITの学習やキャリアについて発信しているサイト(※)によると、プログラマーの就職に関して以下ような現状があるそうです。(※「DAINOTE」の記事「Pythonエンジニアに未経験からなる方法【求人から逆算してスキルセットと学習項目を解説】」)

  • Pythonの言語を理解できるだけではプログラマーとしての就職は難しい
  • 「成果物」つまりアプリケーションなどを作ってアウトプットするスキルが必要

なので、スクールや教材などを選ぶ時にも、「どのくらいアウトプット力をつけてくれるのか」ということが大切なポイントなのだそう。

さらに、未経験からいきなりPythonエンジニアになるのは求人が少なく難しいので、未経験からプログラマーを目指す人は、他のプログラミング言語(Ruby)を学んで就職してからPythonを学ぶのがおすすめなのだそうですので、未経験の方は上記の記事を参考にしてみてください。

そうだとすると、Cozmo SDKをフルに使ったプログラミングは、現プログラマーで、新たにPythonを学びたいという人のプロトタイピングや学習補助に適していると言えそうです。Pythonをちょっと覗いてみたいという場合は先ほどのチュートリアルをいじる程度で良さそう。

プロトタイピング(実験)が利用用途の一つであるCozmo SDKは、既にPythonを学んでいてアウトプット力もつけたい人の実験材料として役立つのではないかと思えます。

プログラマー志望でなく、単純に自分のためにPythonのプログラミングを学んで生かしたい、という人にとってはもちろん、プロトタイプや学習ツールとして役に立つと言えるでしょう。

生産終了してるけど大丈夫?

Cozmoは発売当初はとても話題になって、将来性を期待されていましたが、大変残念なことに、 2019年5月、米国Anki社からCozmoを含むロボット製品の開発・製造を終了すると発表がありました。

CozmoやVectorに関して今後アップデートや機能の追加はありませんが、サポートは継続されるそう!ロボット自体の動作とクラウドサービスへの接続はこれまで通りで問題はないとのことです。

こんなに素晴らしい可能性をもったロボットなのに勿体ないですね。生産は終了していますが、この世に生み出されたCozmoは変わらず無限のプログラミングの可能性を持っていて、私たちが目を向ければ「やんちゃなあいぼう」として生き続けることができます。

これから購入するとしても、機能として十分に価値があるAIロボットだと思います (値段もお手頃に下がっている様子) 。みんなが使い続けることで、ソフトのオープンソース化が実現したり、将来生産が復活する可能性もあるのではないかと思います。リバイバルする頃にはオリジナルのCozmoはすごい価値がついてるかもしれません!

まとめ

さて、愛嬌たっぷりのCozmoのプログラミング例とPython学習に役立つ可能性についてのまとめです。

  • Cozmoは子供や初心者でもスマホでプログラミングの基礎が学べるロボット
  • 開発ツール(SDK)を使うとより高度なプログラミングが可能
    • 演技、IoT、ゲーム創作、WebアプリのIFTT(イフト)連携など
  • Python学習に役立ちそうな部分
    • Pyhon入門者のコーディング学習補助
    • Pythonプログラマー志望者向けのプロトタイプ
      (就職のためのアウトプット力強化や実験ツール)
    • 生産は終了しているサポートは継続されるので購入価値あり

AI犬のAIBOが出て驚いていた頃に比べると、こうして誰もがパソコンやスマホを持っていれば簡単にアプリの開発が経験できるようになったのも大きな飛躍に感じられます。一見難しそうなプログラミングをやる気にさせられてしまうのは、ロボティクスと情緒あふれるアニメーションの融合など、新しい時代のコラボレーションのおかげでしょう。

今後さらに人手が求められるAIやプログラミングの分野で、Pythonなどの言語を学んだりそれを補助するツールは重要な役割を果たしていくはずです。これからプログラミングを学ぶ人がより簡単に楽しく、知識と経験ができるCozmoのようなロボットが沢山世に出てくるのが楽しみです!

コメント

タイトルとURLをコピーしました