にゃーんになりたい。

Pepperと仲良くなりたい。

はじめに。

Choregrapheってなに?とか言ってた初心者がPepperのタブレットとセンサーを利用したアンケートアプリをつくるまでのブログ。

基本boxの縛りプレイ。と思ってたけど便利なものは使いたい。

 

タブレットからの情報をパソコンで見られるようにするまでの紆余曲折とかアプリにするときの七転八倒とか書きたい、前轍を踏まないでほしい。

 

すべて実機でテストタブレット使うし。バーチャルロボットと実機の挙動違ってて意味不明だったし。

Choregrapheのインストール手順を書く予定はない。

ChoregrapheはWindows10で動かすと挙動がおかしい気がしたからWindows7にした。

Choregraphe 2.5.5

NAOqi 2.5.5

 

ALAutonomousLife::SwitchFocus に失敗しました。

Behavior .lastUploadedChoregrapheBehavior/behavior_1 を起動できません。

の解決方法はこれ (暫定)

wanttobenya-n.hatenadiary.jp

 

現在のプロジェクトを送信できません。

インストール中にエラーが発生しました:パッケージのインストールに失敗しました:boost::filesystem::path codecvt to wstring: error 

の解決方法 (多分)

wanttobenya-n.hatenadiary.jp

 

 

Motion は好みのものを作ったり持ってきたり。

データ蓄積には

developer.cybozu.io

を利用。

基本的には

qiita.com

からの一連のページを読んだり。

作成したアプリを Pepper にインストールするときには

www.n-sysdes.co.jp

を参考にしました。

gnuplot + latex + データ

すぐ忘れそう。

適当なデータを hoge.dat に

hoge.sh に

#!/bin/sh
gnuplot << EOF
set term epslatex color size 4,3 10
set output 'hoge.eps'
set xlabel '\$\\alpha\$'
set ylabel '\$b\$'
unset key
plot 'hoge.dat' u (\$1):(\$2) w l
EOF

ターミナルで

sh hoge.sh 

をすれば hoge.eps と hoge.tex ができる。

LaTeX に .eps と .tex を持っていく。

\usepackage[dvipdfmx]{graphicx}

\begin{figure}
\begin{center}
\input{hoge}
\caption{hoge}
\end{center}
\end{figure}

f:id:wanttobenya-n:20190701190126p:plain

Unity のマテリアルをスクリプトで切り替える

Unity のマテリアルをキーボードで切り替えたいなーってスクリプトを書く。

OS: Windows10  Unity: 2017.1.0f3

C#ではじめるUnityプログラミング入門 - libro

とかで基礎。

qiita.com

スクリプトをオブジェクトに張り付ける方法をお勉強。

teratail.com

に書いてあるベストアンサーのを基本的には利用してスクリプトを書く。


変更点

  • スクリプトのファイル名を Test にしたので、5行目を public class Test : MonoBehaviour{  に書き換え
    (ファイル名の1文字目は大文字じゃないとだめ)

  • 1行目の using UnityEngine; は3行目と被ってるので削除。

  • 5種類のマテリアルを使いたかったので20行目を if (i == 5) { に書き換え

  • 日本語のコメントアウト部分は削除


Test.cs

using System.Collections; 
using UnityEngine; 
public class Test : MonoBehaviour{ 
    public Material[] _material;
    private int i; 
    // Use this for initialization 
    void Start () { 
        i = 0; 
    } 
    // Update is called once per frame 
    void Update () { 
        if (Input.GetKeyUp(KeyCode.Space)) { 
            i++; 
            if (i == 5) { 
                i = 0; 
            } 
            this.GetComponent<Renderer>().sharedMaterial=_material[i]; 
        }  
    } 
}

注意

  • エディタは Visual Studio ではなく Monodevelop を使用(日本語環境はまずそう)
    (Edit → Preferences → External Tools あたりでプルダウンして変更。VSC オプション警告は無視。)

  • ときどき
    No MonoBehaviour scripts in the file ,or their names do not match the file name.
    とか言ってくるけどスクリプト削除してもっかいイチからやりなおせば直る……かも?

 

現在のプロジェクトを送信できません。

ファイル名に日本語が入っていたときにハマったエラー。

 

現在のプロジェクトを送信できません。

インストール中にエラーが発生しました:パッケージのインストールに失敗しました:boost::filesystem::path codecvt to wstring: error 

f:id:wanttobenya-n:20170726110422p:plain

一度ハマると今まで動いてた別のプロジェクトでも動かなくなる。。。

 

環境は変わらず

Windows7

NAOqi 2.5.5 

Choregraphe 2.5.5

 

とりあえず見なかったことにしたいので

ロボアプリ一覧からインストールしたプロジェクトは削除

Choregraphe 現在のプロジェクトを送信できません | SoftBank Robotics Community

を読んで一時ファイルを削除

faq.mb.softbank.jp

を眺めて長押し再起動

 

これで今まで動いてたプロジェクトはたぶん動くようになります。

 

プロジェクト内に日本語の含まれたファイルがないか確認 (画像ファイルとか)。

.pml のあるディレクトリのパスに日本語がないか確認,ディレクトリ内に日本語ファイルがあれば削除。

 

で,再生するとうまくいくんじゃないかな……。

 

ASCII コード以外はだめらしいので。

developer.softbankrobotics.com

 

qiita.com

をみると .m4a もだめらしいです。

Pepperの音量を変えたい。Pepperを黙らせたい。

Pepper の音量を変えるときは Set Speaker Vol. でスライダを 0 に。

 

音量変更が実行されると Box が Stop した後も音量はそのまま (それはそう)。

 

トリガー条件:頭を1秒以上触る。

 (('FrontTactilTouched' > 0) ~ 1) 

 

音量を戻したいときはもう一度 Set Speaker Vol. を置いてスライダを元の音量 (筆者の環境では 34) にしておけば喋りだした。

 

余談。

Pepper の動きを止めたいときはこれを Python Script にコピペするだけでうまくいきました。

 

devlog.arksystems.co.jp

雑記。

 

qiita.com

 

エンゲージゾーンを用いたトリガー条件でアプリを起動して、質問の内容をタブレットに表示して回答は右手と左手のタッチイベントにするほうがバグは起こらないかなあ、と。

 

qiita.com

これを読みながら思った。

 

Choregraphe での Pepper のアプリ開発はこれにておしまい。

 

Pepperにアプリをインストール。

www.n-sysdes.co.jp

 

qiita.com

こちらを参考したらできた。

 

トリガー条件:左手の甲を 1 秒以上と繰り返し禁止。

(('HandLeftBackTouched' > 0) ~ 1) && ('Launchpad/PreviousActivity' != "アプリケーションID/ロボアプリ名")

 

とか

 

トリガー条件:頭を1秒以上と繰り返し禁止。

(('FrontTactilTouched' > 0) ~ 1) && ('Launchpad/PreviousActivity' != "アプリケーションID/ロボアプリ名")

 

とか。 

 

HandLeftBackTouched など、起動トリガーの条件に使えるものは ALMemory からのイベントの追加から見るのが簡便そう。

f:id:wanttobenya-n:20170804155803p:plain

 

パッケージファイルは .pml と同じディレクトリでなくてもいいらしいですね。icon.png だけ同じところにあれば。

Pepperにモーションをつける。

qiita.com

pepper-atelier-akihabara.jp

 

ここらへん参考にしながらモーションをつけたりつくったり。

 

モーションの名称だいぶ変わってるのでプレビューひたすら見てた。