にゃーんになりたい。

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

を参考にしました。

Windows10 + Atom + LaTeX

 

TeX Live のインストール

http://www.tug.org/texlive/acquire-iso.html

 

download from a nearby CTAN mirror -> texlive-20XX-20XXXXXX.iso

現状 2019 で 3 GB ちょいくらい。

 

ダウンロードしたら右クリックでマウント。

install-tl-windows.bat をダブルクリック。

 

TeXworks フロントエンドを導入のチェックを外す以外は流れに任せる。

Perl のインストール

strawberryperl.com

 

64 bit, 32 bit で合ってるほうのをインストール。

 

Atom のインストール

atom.io

 

ダウンロードしてインストール。

 

Install a Package でパッケージを入れていく。

SyncTeX を使うつもり。

 

latex

Settings から

TeX Path に C:\texlive\20XX\bin\win32

Engine は platex

Enable SyncTeX, Enable Extended Build Mode にチェック。

Output Format は pdf

PDF Producer は dvipdfmx

Move Result to Source Directory, Build on Save, Open Result after Successful Build, Open Result in Background にチェック。

Pdf View Split Direction は right

それ以外は Default 

 

ホームディレクトリに空白のファイルを作成。

名前を .latexmkrc. に変更すると .latexmkrc のファイルができる。

適当にエディタで開いてコード貼り付け。

 

#!/usr/bin/env perl

$latex            = 'platex -synctex=1 -halt-on-error';
$latex_silent     = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex           = 'pbibtex %O %B';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'mendex %O -o %D %S';
$max_repeat       = 5;
$pdf_mode   = 3;
$pvc_view_file_via_temporary = 0;

解説はこちらを読んで。

 

language-latex

しんたっくすはいらいとのやつ。

 

latexer

おーとこんぷりーとのやつ。

 

pdf-view

Settings から 

Pane to use when opening new TeX files を left 

SyncTeX Reverse sync behaviour を Click に

Path to synctex binary を C:\texlive\20XX\bin\win32\synctex.exe に。

 

Ctrl + S でコンパイルまでやってくれる。はぴはぴ。

 

分割ファイルでmainをコンパイル

main.tex に input で分割ファイルを入れたいときは

% !TEX root = main.tex

 を分割ファイルの一番最初に書く。

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 だけ同じところにあれば。