ロボット@徳島

徳島からロボットのアプリ開発情報をメインに発信するブログ

ロボット Sota(ソータ) 顔判定(年齢・性別・笑顔)まとめ

・顔判定とは

検出した顔の画像から年齢推定・性別推定・笑顔度合の採点を行います。
詳しい手法は分からないのですが、目・口・輪郭・しわ等の特徴量を基に各推定や評価を行っているのですかね?

受付ロボットとしてソータを利用すれば、顧客の個人情報を聞かなくても、ある程度の年代や性別を集めることができ、マーケティング等にも活用できそうです。
また、会話中の相手の表情(笑っているか否か)により、会話内容を決めたりもできそうです。
実際使ってみて、どの程度の正確さなのか等を確認したいと思います。

・Sotaのできること

<性別の判定>
検出中の顔から推定される性別が、男性・女性・どちらでもない?のどれか判定します。 どちらでもない...確かに普段どちらかなぁと迷う場面もありますよね、ソフトも一緒なんだな~と思っていたら、検出していない状態も含まれるそうです。

<年齢の判定>
検出中の顔から推定される年齢が、設定した値と比べてどうか判定します。

<年齢の取得>
検出中の顔から推定した年齢を数値で取得します。

<笑顔の判定>
検出中の顔から得た笑顔のスコアが、設定した値と比べてどうか判定します。

<笑顔の点数取得>
検出中の顔から判定した笑顔のスコアを数値で取得します。

・使ってみた感想

性別の判定は、男女正確に判定できましたが、年齢は少し厳しいようです。
私はマイナス20才と判定されました、童顔ではないと思いますが、どこかの特徴量が幼かったのでしょうかね。。。マイナス8才と判定された女性は少し喜んでいました(笑)
また、判定毎に10才程度の増減があるので、その時の角度や表情に大きく左右されるようです。
笑顔は予想通り口角を上げると笑顔スコアがUPしました。人間が見ると明らかに気持ち悪い「作り笑い」でも良いスコア(60~80点)になりました。

全体的には、もう少し精度UPを期待したいと感じました。特に年齢判定は精度がでないと失礼になり、例えロボットが相手でも印象が悪くなる場合もありそうで、使い方を気を付けたいですね。

将来的には観光名所などで、ソータが観光ガイド役と同時にお客さんの性別・年齢・笑顔などの情報を収集できれば、より活躍の場が増えそうですね。

ちなみに徳島には、阿波踊り・鳴門の渦潮・かずら橋・ウミガメ・眉山・おへんろ(四国八十八箇所霊場めぐり)等があります。現状ソータはいないと思いますが、ぜひ来てみて下さいねー!

ロボット Sota(ソータ) 顔認識まとめ

・顔認識とは

検出した顔について、顔のパーツの相対位置、大きさ、形状といった情報(特徴量)を利用し、過去に登録されている顔と比較し、どのくらい一致するか等を判定する技術です。
いわゆる「顔パス」がこれに当り、「顔認識の結果、同一人物だと判定された」と言えます。

指紋認証や静脈認証と異なり、認証者が特別な動作(指をスキャナにおく等)を行わなくても認証でき、離れた場所からでも認証できるメリットがあります。
一方、顔は老化、整形、メガネ等で変わり、照明にも影響を受けますので、これらの影響をいかに少なくして認証精度をあげられるかが重要になってきます。

・Sotaのできること

<顔の特徴の取得>
顔を検出できた場合、その顔の特徴量を取得します。その特徴量が登録済みの顔であった場合、登録されている名前を紐づけします。

<識別した顔の確率>
取得した顔の特徴量が登録されている顔にどれくらい一致するかをスコアで返します。

<登録された顔か>
取得した顔の特徴量が登録された顔か判定します。
上の<識別した顔の確率>に一定のしきい値を設けただけかな?とも思います。

<顔の登録>
取得した顔の特徴量に名前を紐づけて登録します。

<登録した顔の削除>
指定した名前に紐づく顔の登録を削除します。

<登録した顔のクリア(全消去)>
全ての顔の登録を削除します。

 ・アプリ作成例

今回は前の記事(受付アプリ作成2)の動作を作成します。
イメージとしては、知っている人のだと名前をつけて挨拶する、知らない人だと名前を伺って覚える、という動作です。

(注意)
2016.03.20現在、VstoneMagicおよびSotaをアップデートしてから、<顔の登録>が上手く機能しないようで、顔の登録ができません。右下にある<顔の登録>がアップデートにより変わった気がします。
これまでは以下のアプリで正しく動作していたのですが・・・ヴイストンさんの素早い対応を期待したいです。

ソータに顔認識させるアプリ例(1つ目)
ソータに顔認識させるアプリ例(2つ目)

・使ってみた感想

上記の通り現在は顔を登録できない状況ですが、以前までは数人の顔を認識でき、紐づけた名前を呼んでくれ、比較的良好な顔認識でした。

お店にお得意様が来たら、「〇〇さん、いらっしゃいませー」と話しかけるロボットが実現できそうです。まだ徳島で見たことは無いですが、タブレット等の受付アプリとしては既にありそうな気がします。それがタブレットの画面上ではなく、ロボットが挨拶して受け答えもしてくれると楽しそうですね。

ロボット Sota(ソータ) 顔検出まとめ

・顔検出とは

ソータのカメラ画像の中で顔と思われる部分を見つけることです。デジカメ等で撮影中、顔が四角で囲われて表示されるやつです。
その方法としては、肌色・顔の輪郭・パーツ(目・鼻・口など)を見つけて顔と思われる部分を検出する方法、事前に多くの顔画像を読み込んで学習させた情報から顔と思われる部分を検出する方法などがあるようです。
見つけた顔は、その特徴量(各パーツの配置や大きさ等、その顔の情報)を名前等と紐づけて覚えておくことができます。

ちなみに、顔検出、顔認識、顔判定と似たようなワードが今後でてきますが、それぞれ自分なりに書くと、以下のような違いかな?と思います。 

(顔認識)
検出した顔の特徴量と、以前覚えておいた顔の特徴量とを比べて、それらが一致するか?(どのくらい似ているか?)を判定することです。
いわゆる「顔パス」がこれに当り、「顔認証の結果、同一人物だと判定された」と言えます。
詳しくは、(顔認識まとめ)をご覧ください。

(顔判定)
検出した顔画像から、年齢推定、性別推定、笑顔度合の判定をすることです。
童顔や美魔女と言われる方の年齢、女顔イケメンな方の性別、営業スマイルなど、どう判定されるのか気になります(笑)

また、これら顔関連の技術には、PUXさんのFaceUという画像認識ソフトウェアを利用されているようです。そう言えば、購入時の同意書にSotaには「顔認識ライブラリ」のライセンスが付属している旨の記述がありましたね。

・Sotaのできること

<顔検出>
このブロックで囲まれた間、ソータが顔検出を行います。poseブロック等で動作をつけなければ、ずっと同じ場所を見ています。

<顔追従>
顔検出を行う際に、ソータが辺りを見回すように顔を動かします。顔を検出すると、その顔を追従するようにソータも顔を動かします。

<顔が見つかったか?>
上記どちらかの顔検出ブロックの間におき、ソータが顔を検出中かどうか?を知ることができます。「連続で顔を検出できた回数」を条件として指定できるので、3回以上とする等で、安定した動作が可能です。

・アプリ作成例

今回は<顔追従>を使いソータが辺りを見回し、顔を3回以上連続で検出できたら「こんにちわ」と発話するだけの簡単な例です。

顔追従を開始した後は、無限ループでひたすら辺りを見回します。
顔を検出するたびに、内部変数(GlobalVariable.detectCount)が +1 されていく仕様のようですので、発話後にはその値を0に戻しています。そうしないと、3回連続の後も連続で発話してしまいます。

ソータの顔検出アプリをVstoneMagicで作成した画面

 ・使ってみた感想

精度良くスムーズに顔を検出して、動いてもこっちを見てきます。じぃーーーっと見られると、ロボットでも視線が気になり、恥ずかしいものです。
複数人を検出した場合には、どっちも見ようとキョロキョロする場合がありました。例えば、一番近い人のみを追従することは可能なのか等も調べていきたいと思います。

店先にいるソータが辺りを見回しながら、お客様が来たら声かけをする、といった使い方ができそうです。現状ロボットを見る機会が徳島では少ないので、店先で声をかけられると、みんな驚いて気になり、集客効果バツグンかな?とも思います!

ロボット Sota(ソータ) Bluetooth接続

Bluetoothとは

Bluetooth(以下、BT)とは、近距離無線通信の規格の1つで、機器間のデータや音声のやり取りをワイヤレス(無線)で行うことが出来ます。
スマホ-イヤホン間などでよく利用されます。機器間に障害物があっても比較的つながりやすい特徴を持っています。下図はBTのロゴです。
Bluetoothのロゴ画像 
Sotaは現在のところ2種類おり、「Edison搭載版」と「Raspberry Pi搭載版」があります。詳細はSotaの取説(仕様詳細 - Sota取扱説明書)をご覧ください。

そのうち、Edison版のみBT機能を搭載しており、色々な用途に利用可能です。(Raspberry Pi版では、BTのUSBアダプターを別途購入することで接続可能かな、と思います)

今回は外部スピーカーとBT接続して、ソータ君の声を大きく出したいと思います。

・接続方法

  1. Tera Term等を使い、SotaにSSHでログインする
  2. $ rfkill list:BT状態を確認する
  3. 初期状態はBTが無効(Soft blocked : on)なので、
    $ rfkill unblock bluetooth:BTを有効化する
  4. $ bluetoothctl:BT管理モードへ入る
    *スピーカー側も電源ONして、ペアリング状態にしておく
  5. # power on:コントローラの電源を入れる
  6. # devices:ペアリングするデバイスのMACアドレスを確認する
    *デバイスが表示された場合 ⇒ 8へ、されない場合 ⇒ 7へ
  7. # scan on:デバイスを検出する
  8. # pair MACアドレス:ペアリングを実行する
  9. # connect MACアドレス:スピーカーと接続する

・使ってみた感想

今回は「ロボット」「Sota」と言うよりも、「Edison」のBT接続でしたので、色々と情報もあり、比較的あっさりと接続できました。

その他(スマホ、マイク等)との接続もテストして、有益な使い方を考えていきたいと思います。

ロボット Sota(ソータ) TCP/IP通信

TCP/IP通信とは

TCP/IPは インターネットで標準的に使われている通信プロトコル(通信規約)であり、このプロトコルに従い通信することで、どんな機器でも(機種やOSに関係なく)ネットワークに接続できて相互に通信が可能です。

ソータがこの機能を使うことで、複数台のソータ同士が会話・協調するアプリが作成可能となります。通信相手をパソコン等にすると、さらに応用ができそうです。
徳島ならではの阿波弁でソータ同士が会話するアプリなんて面白いかもしれません。

・Sotaのできること

TCP/IPサーバ初期化>
初期設定として、通信ポートやクライアントからの接続待ち時間を設定します。

TCP/IPサーバ受信>
クライアントからの接続要求を待ち、接続があれば、改行コード<LF>まで任意の文字列を受信します。また、受信完了後、OK<LF>を返信します。受信した文字列に応じて分岐します。

TCP/IPクライアント>
接続待機中のTCP/IPサーバに対して、接続要求をかけて接続後、任意の文字列を送信します。

(注意)
2016年2月26日現在、このブロック<TCP/IPクライアント>にバグがあるようで、ビルド出来ません。
Javaに置き換えられる際に、このブロックの個所が

 if(if( GlobalVariable.booleanResult ) GlobalVariable.booleanResult)

となり、エラーになります。明らかに文法がおかしいような・・・
そのため、私は<自由記述処理>に正しく書き、使っております。

・アプリ作成例

ソータ君はTCP/IPサーバとして接続要求を待っています。TCP/IPクライアント(パソコン)から送信される文字列(red、green、end)に応じて、Sotaが動作(目を赤色へ, 目を緑色へ、アプリ終了)します。
この使い方が正しいかは不明ですが、TCP/IPサーバ初期化後、無限ループに入り、クライアントの送信待ちを繰り返します。

TCP/IP通信のアプリ作成例

・現状の疑問点

SotaがTCP/IPサーバとなった際に、受信した文字列に対して、任意の返信をしたいが、どのようにすれば良いのか分からない。送信はTCP/IPクライアントのボックスしかなので、サーバとクライアントとを交互に使う必要があるのか?

逆に、クライアントとなった際に、返信文字を取得できない。コンソール上では、
 Server: ABC (Sotaから文字列を受信後、パソコンからABCを返信した場合)
と表示されるので、取得できると思われる。

・使ってみた感想

このTCP/IP通信を使用してソフト開発することで、ロボット同士で会話させることが出来そうです。会話のタイミングを通信で確認しながら、音声合成でしゃべらせることで、あたかもSota同士が話をしているように見えると思います。

また、人とソータ君とのやり取りが音声だけでなく、テキスト(文字列)でも可能となりますので、雑音環境下ではチャットでの会話も選択できそうです。
タブレット等と連携させて、ペッパーのように、
 ・Sota ⇒ 人 :音声で伝える
 ・人 ⇒ Sota :タブレット入力で伝える
と言った、音声認識の補助としても使用できるのかな?と思いました。

現状のVstoneMagicで使用可能なブロックは全てテストしてみて、ソータが受付ロボットとして活躍できる道がだんだんと見えてきました!もう少し本格的なアプリ開発もしていきたいと思います。

ロボット Sota(ソータ) 音声合成まとめ

音声合成とは

前回の記事(Sota 音声認識まとめ)では、音声⇒テキスト変換する技術である音声認識について書きましたが、音声合成はその逆で、テキスト⇒音声に変換する技術です。
テキスト読み上げシステム(TTS:Text To Speech)とも言われます。
これにより、事前に個別で音声ファイルを用意する必要なく、ロボットがその時に応じた言葉を話すことが出来ます。

ただ、思い通りの話し方(抑揚、速度、区切りなど)にするのは難しいようで、いかに自然な話し方をできるかが重要となってきます。
徳島では阿波弁が使われますが、そういった方言のイントネーションの違いも再現できるようになってくると、より親しみを持ってロボットと話せそうですね。
個人的にはロボットの場合、少しくらいカタコトの方が良いのかなとも思ったりします。

・Sotaのできること

音声合成
指定したテキストを音声合成して、音声ファイルを作成し、それを再生します。
作成されたファイルは、/var/sota/tts/ にキャッシュされ、以降同じテキストがきた際に再利用されます。

音声合成して保存>
指定したテキストの音声ファイルを作成して、指定したファイル名で /var/sota/ に保存します。再生はしません。

<発話>
基本動作は<音声合成>と同じですが、話しながら顔や腕がランダムに動作します。
棒立ちのまま話をするのも寂しいので、動きをつけたい時に便利な機能ですね。

ソータのソフト開発環境VstoneMagicにて利用できる対話機能

・注意事項

音声認識音声合成ともにですが、Sotaがネットワークに接続されている必要があります。各変換する部分はネットワーク上のサーバで行い、その結果をもらっているようです。また、これら機能は、2016年5月末まではβ版として無償で利用可能ですが、それ以降は別途クラウド利用契約(有償と思われる)が必要となります。

2016/02/22時点で、Vstone Magic はVer.1.2.0ですが、SotaはVer.1.2.3にアップデートされ、実行時に差異があるとメッセージが表示されます。
ただ、SotaがVer.1.2.3になってからと思われるのですが、以前の記事(Sota 受付用アプリ作成1)で記載した音声合成の問題点が解消されているようです。

・使ってみた感想

かわいい声で話すので、少しくらい抑揚などが間違っていても気になりません。
ロボットが自分の顔と名前を教えておき、こっちを見た時に名前を呼んでくれるだけでも楽しいです!作成例は以前の記事(Sota 受付用アプリ作成2)をご覧ください。

今後のアップデートで、抑揚や速度なども設定になれば良いなーと期待しています。
徳島で活躍するロボットになるため、阿波弁も教えていこうと思います!

ロボット Sota(ソータ) 音声認識まとめ

音声認識とは

音声(人の声など)をテキストに変換してパソコンに認識させる技術です。
ただし、声の高さ、抑揚、言葉遣い等の様々な要因により、パソコンに正しく音声を認識させることは容易ではありません。

これまでに音声認識できるロボット(5種類くらい)とお話してみましたが、「はい・いいえ」等の簡単な言葉であれば正しく認識してくれますが、文章になると誤認識が多かったように思います。なかなか難しい技術なんだなー、と感じる技術です。

ペッパーは音声認識が難しい部分を上手く胸のタブレット入力で補っていますが、Sotaには無いため、音声認識が重要となってきます。
そんなソータの現状を書きます。

・Sotaのできること

<名前の取得>
聞こえた文字列から名前と思わる部分を抜き出して、変数に代入してくれる。例えば、「私は田中です」と話しかけると、「田中」が変数に代入されます。これは精度良く名前だけを抜き出してくれ大変便利です。

音声認識(ベストスコア)>
聞こえた文字列の中に指定したキーワードが含まれているかを認識できます。キーワードを「徳島」としておくと、「・・徳島・・」と話しかけると、キーワードがある側の分岐に入ります。しかし、これでは「徳島の名産は?」と「徳島ってどこ?」では、どちらもキーワードに該当すると認識してしまいます。その解決策として、次の正規表現が使えます。

音声認識正規表現)>
基本動作は上と同じですが、キーワードとして正規表現を使用できます。正規表現を使うと、2つ以上のキーワードを指定できます。「徳島」と「どこ」を指定したければ、「.*徳島.*どこ.*」とします。これにより「徳島の名産は?」ではキーワードに該当せず、「徳島ってどこ?」や「そう言えば徳島は四国のどこらへん?」では該当する、と認識できます。

音声認識して文字列を取得>
聞こえた文字列そのままが変数に代入されます。

 ・アプリ作成例

このアプリでは、<音声認識正規表現)>を使い、「.*徳島.*どこ.*」で分岐して、「四国の右上だよ」と答えます。<Poseブロック>では分かりやすいように目を〇の色に変えています。<ログ出力>では音声認識した文字列を画面に出力して、ロボットがどのように認識できたかを確認できます。

ソータでの音声認識をテストするために作成したアプリ例

音声認識の際に、ソータの目が水色に強制的に変更されるようですが、水色になってから話したのでは遅すぎるようです。上の図では、目が赤色になった時に話すとちょうど良いタイミングとなります。<音声認識>のtimeout値は5秒(5000ms)にしているのですが、水色の時間は3秒程度になります。赤色と水色を合わせると5秒程度になります。

音声認識>に入った瞬間にネットワークを通じて処理する時間に2秒ほどかかっている様子です。そのため、「目が水色の時に話しかけてね」と決めるには、timeout値を長めに10秒くらいにする必要があるようです。 

・使ってみた感想

音声認識の精度はそこそこで、一つの分岐だと問題なく使えそうだと感じました。ただし、雑音が全くない環境下での評価です。
また、実際の会話では、この分岐が多数になり認識が難しくなっていきます。そのあたりの精度については、これから試していきたいと考えています。

大勢の人がいる環境下でもスムーズに会話できるコミュニケーションロボットになるため、Sotaの音声認識のさらなる向上を期待したいです!

また、徳島で活躍できるロボットになるためにも、阿波弁を理解できるように教えていきたいところです!

ロボット Sota(ソータ) 受付アプリ作成2

・はじめに

前回のアプリ作成(Sota 受付アプリ作成1)に引き続き、受付ロボットとしてソータ君が活躍できるようにアプリ作成をしていきます。VstoneMagic を用いて、顔検出・認識と音声認識とを色々と試してみました。
ロボットを見て頂いた方の感想も含めて書きたいと思います。

・動作イメージ

  1. 誰か来るのを待つ
  2. 人の顔を見つけると
    ・知っている人の場合 → 3へ
    ・知らない人の場合  → 4へ
  3. その人の名前をつけて挨拶する → 1へ
  4. 自己紹介して、名前を尋ねる
  5. (聞いた名前)さん、よろしくね!と言う
  6. その人の名前と顔を紐付けて保存 → 1へ

受付ロボットとして応対するソータ君を仮想ロボットビューワで表示した画像

・顔検出と顔認識

数人の登録でしか試せていませんが、精度良く検出・認識され、実用的だなと感じました。詳しくは(Sota 顔検出まとめ)をご覧ください。

Sotaに直接ログインして色々と見たところ、顔認識関連にはPUXさんのFaceUというソフトウェアを利用されているようです。

音声認識

ここは少々つまずきました。
音声認識関連のボックスが実行される際には、Sotaの目が強制的の水色になる仕様のようですが、水色になってから話しかけたのでは少し遅いようです。ここのタイミングは現状試行錯誤中です。詳しくは(Sota 音声認識まとめ)に記載しています。
認識精度はハッキリ発音すると認識してくれるのですが、女性の声や子供の声は、少し認識精度が悪く感じました。声の音が高いと難しいのか?

・みんなの感想

アプリを数人の方に試して頂いたところ、ロボットが自分の顔と名前を覚えて話し掛けてくれる、という今回の動きだけでも楽しく盛り上がりました。
そもそも徳島では、まだロボットとふれあう機会が少なく、ロボットがいるだけで盛り上がります(笑)
徳島でもロボットが身近に感じられるよう情報発信をしていきたいです!

パソコン用や入退室用の顔認証システム等で、自分の名前が表示されても特に嬉しいと思ったことはありませんが、それがロボットだからこそ、嬉しい・楽しいといった感情を抱くのかな?と感じました。そうであれば、受付にSotaは最適かもしれませんね!

受付ロボットとしては、お客様の名前を正しくスムーズに聞き取りたい為、音声認識の精度のさらなる向上を期待したいところです!

ロボット Sota(ソータ) 受付アプリ作成1

・はじめに

現在のところ徳島でロボットを見るのは、Softbankショップ、あすたむらんど(子ども科学館)くらいで、一般的な店舗では見る機会はなさそうです。
ソータは小柄で比較的安価なため、お店の受付で簡単な対応をしたり、商品紹介をしたりすると、おもしろいかなと思っています。

そこでSotaを受付ロボットとして活躍させたく、いろいろと機能を試しながらソフト作製をしました。

・動作イメージ

  1. 見つけるまで人の顔を探す<顔追従>
  2. 人の顔を見つけると、挨拶する<発話>
  3. 相手の名前を聞き取る<名前の取得>
  4. (聞いた名前)さんと言う<音声合成

ソータの動きを仮想ロボットビューワで確認している画像

・アプリ作成

ロボットを動作させるソフト(アプリ)を作成するためには、VstoneMagic を使います。詳しくは(Sota アプリ開発環境 VstoneMagic)もご覧ください。
今回は以下の<ブロック>等を用いてソフト作成することで、イメージしていた動作が実現できました。

<顔追従>
ソータ君が顔を上下左右に動かし、顔を認識すると見つめます。

<発話>
音声合成して発話する際に、ランダムに各関節が動作するようです。

音声合成
<発話>ボックスの動きなしバージョンです。

<名前の取得>
名前と判断された部分のみを抜き取って変数に入れてくれます。例えば、「私は田中です」と言うと、変数には「田中」だけが入ります。便利!

・現状の問題点

 おぉ楽しい!と色々と試していたところ、(聞いた名前)を音声合成で発話する際に、アレ?違う・・それさっき言った言葉やんかー!と思うことが出てきました。
色々とテストしたところ、それまでに音声合成したファイルが保存されているようで、同じ文字数の場合には、保存ファイルを使用してしまうようです。
例えば、「田中さん」を音声合成して、その後「吉田さん」を音声合成で発話させても「田中さん」と言ってしまいます。

Vstone Magicから生成されたJavaのコードを確認してみると、

 String file = TextToSpeechSota.getTTSFile((String)speechRecogResult); 

の部分で、speechRecogResultは「吉田さん」となっていたので、getTTSFile()に問題ありなのかな?と思います。

どなたかよい解決方法をご存知であれば教えてくださいー。
次のアップデートで修正して頂けることを期待しております。

(追記)
2016年02月22日現在、Sotaが1.2.3にアップデートされ、問題解消したように感じています。

・やってみた感想

簡単にイメージした動作を実現でき、ロボットのアプリ開発ができて、楽しいの一言です!かわいい動きやデザインはさすがヴイストンさんだなと感じます。
ただ、まだSotaがデベロッパー版ということもあり、色々と問題点もあるようです。アップデート等を期待しながら、アプリ作成をやっていきたいと思います。

ソータ君が受付ロボットとして徳島でも活躍できる日が来ると良いなー。
次回記事(Sota 受付アプリ作成2)では、もう少し成長させていきます。

ロボット Sota(ソータ) アプリ開発環境 VstoneMagic

Sotaのアプリは、VstoneMagic や Java(Eclipse)で開発可能なのですが、ひとまずVstoneMagicで開発してみた感想を書きます。

1.簡単アプリ作成

フローチャートを書く感覚で色々な機能を持ったボックスを線でつないでいくだけでアプリが作成できます。こんな感じです。

VstoneMagicのアプリ作成画面(フローチャート式)

これがJava言語に変換され、ロボットが動く仕組みです。
私は大学時代にやっていたC言語でのロボットプログラミングはなんだったんだ!と思うくらいアプリ作成が簡単です。
ただし、これに無い機能はJavaで書く必要があり、私も一部Javaで書いたり、変換されたコードがどうなっているのか確認することがあります。

2.実機と連動

ポーズエリアといって、各関節(サーボモータ)の角度、目や背面ボタン(LED)の色を設定できる画面があるのですが、そこで設定した値がすぐに実機に反映されるので、視覚的に分かりやすい。(前面の仮想ロボットは次の項で紹介)

VstoneMagicの仮想ロボットビューワと各パラメータの設定画面

便利な時代だなぁ~思っていたら・・
なんと!ロボット実機側で関節を直接動かして、好きなポーズを作り、それをアプリ側に取り込むことも出来るようです。これは便利すぎる!

3.仮想ロボットビューワ

仮想ロボットビューワがあり、それでも視覚的に確認しながら動作が作成できるようです。実機がない状態でもある程度の開発が出来るな、と思っていたのですが、現状なぜか実機が接続されている状態でしか仮想ロボットが動きません。

実機がない時でもアプリ開発ができると良いと思うのですが・・

(修正) 
接続設定でlocalhostに接続すると、実機がない状態でも、LEDや関節の動きを仮想ロボットで確認することが出来ます。

 VstoneMagic は、プログラミング経験のない方でも、比較的簡単に遊び感覚でロボットアプリが作成できる大変良いソフトウェアだと思います。現在はデベロッパー向けのソータのみ販売中ですが、製品版に向けて VstoneMagic もどんどんアップデートして頂けることを期待したいです!