はじめに
この記事は次のスマートファニチャープラットフォーム「カチャカ」APIマニュアルの「Playground」を自分のPCで実行するために必要な作業を補足して、簡単な自作サンプルプログラムをsshでカチャカにログインして動かすまでを説明した記事です。
Playgroundとは?
Playgroundはコンテキストによって幾つかの意味があります。
1. 子供たちが遊ぶための遊具が設置されている「遊び場」
2. エンジニアが新しいプログラミング言語やフレームワーク、ライブラリ等を試すための「実験的な環境」
3. 創造的な活動やアイディアを「探求する場」
カチャカAPIマニュアルによるとPlaygroundは「カチャカ本体内で動くコンテナ環境。ユーザが自由にログインして自作のソフトウェアを実行できる。」と定義されています。カチャカAPI公開により外部開発者が自由で安全にカチャカをプログラミングできるようになったので、外部開発者の遊び場といったところでしょうか?遊び心があっていいですね。
Playgroundのリソース制限
次のようにリソースが限られているので、ロボカップにカチャカ本体だけで参加するのは難しいです。特にメモリが少ないですね。ノートPCやラズパイをサーバにして、カチャカをクライアントとして使うのが良さそうです。
- ストレージ:3GB
- メモリー:512MB
Playgroundへのログイン
- 公開鍵の作成
- Playgroundへsshでログインするために公開鍵と秘密鍵を生成する。
- PowerShellを起動して次のコマンドを実行する。
ssh-keygen -t ed25519
- キーを保存するパスを聞かれるがデフォルトで問題なければEnterキーを押す。
- パスフレーズの使用するよう聞かれるので必要に応じて入力する。この例では簡単のために何も入力せずにEnterキーを押している(入力推奨)。
- 実際にキーが作成されたか調べてみましょう!次のディレクトリを移動するcdコマンド、ファイルを表示するlsコマンドを実行する。
cd .ssh
ls
- 下図にあるようにid_ed255519が秘密鍵、id_ed25519.pubが公開鍵。
- 公開鍵の設定
- Playgroundへsshでログインするために上の作業で作成した公開鍵を設定する。この作業は一度だけで良い。
- ブラウザを起動して、アドレスバーに以下のURLを入力してJupyterLabに入る。
- http://<カチャカのIPアドレス>:26501/
- utils/set_authorized_keys.ipynbによる設定方法
- カチャカにsshでログイン
- Playgroundでサンプルプログラムtime_signal.pyの実行
- Kachaka APIで説明している「カチャカが時報を1分間隔で発話する」サンプルプログラム/home/kachaka/kachaka-api/python/demos/time_signal.pyは指定ディレクトリ(/home/kachaka/kachaka-api/python/demos)にないので、次のURLからダウンロードして、カチャカの指定ディレクトリの中にコピーする。
- カチャカにログインしているPowerShellで次のコマンドを実行すると、カチャカが1分毎に時報を読み上げます。
cd ~
python3 /home/kachaka/kachaka-api/python/demos/time_signal.py 100.94.1.1:26400
- 次にカチャカがダイニングに行って、充電ドックに戻るまでの簡単な自作プログラムを紹介します。
- ソースコード
#!/usr/bin/env python # coding: utf-8 import kachaka_api client = kachaka_api.KachakaApiClient() client.speak("ミッションを始めます。") loc = client.get_locations() print(loc) client.update_resolver() result1 = client.move_to_location("L03") # LO3がダイニングのID。IDは10行目の出力でわかる。 if result1.success == True: client.speak("成功しました。") else: client.speak("失敗しました。") result2 = client.return_home() if result2.success == True: client.speak("成功しました。") else: client.speak("失敗しました。") client.speak("ミッションを終わります")
-
- 実行
- 上のソースコードmove.pyを/home/kachaka/kachaka-api/python/demosの中にコピーして、次のコマンドを実行します。
python3 /home/kachaka/kachaka-api/python/demos/move.py
- 上のソースコードmove.pyを/home/kachaka/kachaka-api/python/demosの中にコピーして、次のコマンドを実行します。
- 実行
これで、sshでカチャカにログインして自作プログラムを下の動画のように動かすことができました。たった25行のコードでここまでできるとはカチャカはお利口さんですね。ナビゲーションはカチャカにやらせると幸せになれそうです。
コメント