読者です 読者をやめる 読者になる 読者になる

ロボットと共に

Life with Robot

C#WPF「Dynamic Data Display」

Dynamic Data Display

DynamicDataDisplayは、動的なデータをインタラクティブに可視化するコントロールのです。線グラフ、バブルチャート、ヒートマップやその他の複雑な2Dプロットを作成することができます。Bing Mapsの緯度/経度の座標で、地理マップ上のデータを表示することもできます。


Dynamic Data Display - Home

 

私が気になるサンプルコード

1.AnimationSample

固定した軸に対して、新しいデータが追加され、古いデータがクリアされる。そのため、固定された軸の範囲内で、時系列データが動的にプロットされます。

f:id:Mikan6:20141213151338j:plain

 

2.SimulationSample

追加されたデータが、どんどん増えていく動的なプロットです。追加されたデータに合わせて軸の範囲も自動で調整してくれる私的にオススメな機能です。

f:id:Mikan6:20141213151341j:plain

3.CoastlineSampleApp

簡単に位置情報の緯度経度に対してプロット可能な機能もあります。

f:id:Mikan6:20141213151339j:plain

4.IsolineSampleApp

標高なども表すことができます。マウス位置の標高を取得し、その標高の高さの箇所を色で知らせます。

f:id:Mikan6:20141213151340j:plain

 

最近の地図上への付加情報(ヒートマップやハザードマップなど)が流行っている現代では重宝されるかもしれませんね!!

合わせて、動的なプロットが可能でなめらかなグラフが簡単に実現できます。

ライセンスもMS-RLということで、開発者にやさしいですね♪

一般的にC#といえばWindowsフォームで作成する形が一般的かもしれませんが、私の最近はWPFにハマっていますね♪

WPFXML形式でコントロールを配置やデザインができるので、デザイナーさんにも優しくプロトタイプが作りやすいと伺っています。

codeplex.comには、色々な機能が提供されていますので、面白そうな機能があれば、情報提供して頂けるとありがたいです。

みなさん、ぜひ使ってみてはいかがでしょうか!!

ROSの気になる話題

RoboEarth プロジェクト

RoboEarth は,クラウド技術の分散データベース共有により,迅速な学習を可能とし,ロボットをより複雑なタスクに適用すること,あらかじめ計画されていないタスク実行をも可能とすることを目指すプロジェクトです。推論エンジン“KowRob”,クラウドエンジンとしての“ラピュタ”,“RoboEarth データベース”等がある。

ロボット要素技術のオープンソース団体

  1. ロボットの環境やオブジェクトの知覚/視覚認識:OpenNI、OpenCV PCL
  2. ロボット移動のための空間地図作成:OctoMap
  3. アームとハンドの軌道計算エンジン:OpenRAVE
  4. 運動計画フレームワーク:MoveIt! 
  5. 推論エンジン:KnowRob
  6. RoboEarth クラウドエンジン:ラピュタ
  7. ROSを利用したリモートロボットのパッケージ:rosbridge
  8. AndroidでROSを稼働(クラウドロボティクスへ):Android/ROS-java 
  9. クラウドロボティクスの実現を目指したフレームワーク:DAvinCi 

はじめの方が3つ基礎技術になりつつある現代、5以降は最近のトピックスのクラウドロボティクスを目指したものになりますね♪

情報ソース

  1. http://pari.u-tokyo.ac.jp/unit/iam/outcomes/pdf/papers_120806.pdf

  2. http://pari.u-tokyo.ac.jp/unit/iam/outcomes/pdf/papers_130617.pdf

C#とGoogleAPIで音声認識を簡単に

前回はUbuntuにROSを導入し、rospeexを試してみました。

今回は、C#とGoogleAPIを使って音声認識音声合成を試してみたいと思います。

 

GoogleApiKitとは

GoogleApiKitは、以下の4つの機能が使えるDLL集です。

  1. 検索 GoogleSearch.dll
  2. 音声認識 SpeechDialog.dll
  3. 予測変換 GoogleSuggest.dll
  4. 音声合成 GoogleTTS.dll

導入

導入は至って簡単です。DLLなので実行ファイルと同じディレクトリにそのまま置きます。今回は音声認識音声合成をするので、音声認識[SpeechDialog.dll][flac.exe]と音声合成[GoogleTTS.dll][cmdmp3.exe]の4つを置きます。サンプルコードで、C# FormがありますのでC#コンソールやWPFにも導入し易いです。コンソールとWPFで試して見ましたが、導入は簡単でした。コンソールのサンプルを

 

サンプルソースコード

 

using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        //dllのImport
        //SpeechAPI
        [DllImport("SpeechDialog.dll")]
        public extern static bool SpeechDlg(IntPtr Handle, [MarshalAs(UnmanagedType.LPArray)] byte[] res);
        //音声合成API
        [DllImport("GoogleTTS.dll")]
        public extern static void TTS(string in_str);

        static void Main(string[] args)
        {
            for (int i = 0; i < 2; i++)
            {
                string test = string.Empty;
                byte[] res_byte = new byte[4096];
                bool res;
                res = SpeechDlg(IntPtr.Zero, res_byte);
                //変換(SJISだと"shift_jis")
                string str = System.Text.Encoding.GetEncoding("shift_jis").GetString(res_byte);
                if (res)
                {
                    test = str;
                }

                if (test != "")
                {
                    // 音声認識
                    if (test.Contains("今何時"))
                    {
                        string text = "今、" + DateTime.Now.Hour.ToString() + "時" + DateTime.Now.Minute.ToString() + "分です。";
                        TTS(text);
                    }
                    else
                    {

                        TTS(test);
                    }

                }
            }
        }
    }
}

 

実行手順

  1. 実行ファイル下に、[SpeechDialog.dll][flac.exe][GoogleTTS.dll][cmdmp3.exe]の4つを置く。
  2. ソースコードを実行する。
  3. For文で2回まわるようにしているので、マイクに「今何時」と話すと「今、○時□分です。」と答えてくれます。違う言葉の場合、その言葉を『言霊』します。所謂、オウム返しです♪

f:id:Mikan6:20141208212050j:plain

                  実行画面

最後に

 サンプルソースコードは、あくまでも参考としてご利用下さい。また、GoogleApiKitのライセンスにも目を通して、ご利用下さい。

 

Ubuntu14.04でrospeexを試してみる

 

 

Ubuntu14.04環境下にROSの準備

ROSとは

ROSは、Robot OSでいろいろな技術がパッケージとして提供されている。

参考:ja - ROS Wiki

 

Ubuntu14.04へROSインストール

大抵、このようなものは何らかのバージョンの変更に伴い、いろいろ問題がある勝手に思い込んでいたが、こちらを参考に案外簡単に導入出来ました。

参考:ROS 使い方メモ --1.ROSのインストール

 

rospeexを試してみる

rospeexとは

rospeexは、ROS環境に導入する音声認識・合成・対話処理のパッケージです。気を付けなければいけないのがライセンスです。(こちら

 

音声合成お試し編

まずは、音声合成がスゴいと思いました。

こちらで試すことができます→TTS demo

 

導入編

導入も簡単でした。インストール ― rospeex

ただ、rospeexを使って開発しようと考えた時、ドキュメント関係がどこにあるんだろうと思いました。探していますがないのかなぁ?しかし、サンプルコード見る限りは、なんとなく使い方が分かりそうな感じがします。サンプルを実行してしゃべらなかったっが、interface.sayがコードに入っていないバージョンだったのかなぁ?

 

流れ?(自分が読み取ったものです。)
  1. 初期化(ROS初期化)
  2. 初期化(音声認識のレスポンス登録)
  3. 初期化(日本語と音声認識エンジンの指定)
  4. レスポンス1(音声認識するキーワードの登録)
  5. レスポンス2(登録したキーワードのマッチング認識)
  6. レスポンス3(マッチングしたらロボットが回答する内容を記述)
  7. レスポンス4(しゃべる内容、音声合成の日本語とエンジンの指定)

ということでしょうか?

 

どこまで音声認識できて、どこまで音声合成ロボットぽさをなくさざすしゃべれるかに注目して、調査続行ですね♪

 

追加

論文:http://komeisugiura.jp/publications/sugiura13cnr.pdf

最近のロボットの話題(1)

CYBERDYNE

ロボットスーツHAL®を介護・福祉、重作業などへ展開をする筑波大教授の山海先生によって設立された株式会社である。今年、東京証券取引所マザーズ上場したことで注目度が増している分野です。

 

ロボ・ガレージ: ROBO GARAGE

鉄腕アトムみたいなロボットで有名なクロイノをはじめとするロボットたち!!

有名なのがCMでおなじみなのが『EVOLTA』、そしてロビ(下の写真は今度発売されるもの)!!その他にも鉄人28号やタチコマ等を手がけロボットクリエータ高橋智隆さんです。

 

テムザック

私が知る限り、日本の純正ロボット集団であると考えています。ロボット大国の代名詞はFAの稼働率から来ていると思われますが、一般人的な認識ですとテムザックが作っているのが、みんながイメージする『Theロボット』な感じで、今後も大大大期待中です!!http://www.tmsuk.co.jp/lineup/banryu/img.jpg

 

Suidobashi Heavy Industry: 水道橋重工

人が操縦してロボットを動かす、大型ロボットで話題の『グラタス』。パトレーバでも実践投入され、数多くのメディアで取り上げられ話題があるロボットです。



自律制御システム研究所

今、話題の渦中のドローンを専門に取り扱う千葉大学の野波先生によって設立された株式会社である。原発内部の調査や農業分野への利用用途など幅広いジャンルで使われようとしている。最近ですと、Amazonの配達するドローンが有名で、市場規模が23年には11兆円を超すという予測まであるほど!!そして何よりも、米大企業で年俸1千万雇用も大きな話題の1つである。

http://www.acsl.co.jp/img/la2.jpg

ブログ開始

自己紹介

  • 昭和と平成の狭間世代
  • バスケットマン時代(色々と妄想お年ごろ...いや、夢・計画するお年ごろ)
  • 電気工事屋さん時代
  • ロボット屋さんの大学時代
  • 大企業にて航空宇宙エンジニア時代
  • そして、ロボットベンチャーの一員へ!!

振り返ると相当好き勝手、夢見がちな人生を送ってきたと思います。

大企業時代は、コンプライアンスで形見の狭い思いをしていたこともありますが...

新しいモノ好きなので、どんどん情報配信したいです♪

まずは、何を書き込んで行こうか悩んだが、自分自身が興味がある分野を中心に、情報収集と実際にやってみたこと、体験してきた事を書き込んで行く方針で行きましょう!!

テーマ

  1. ロボット(ROS,SLAM,MRPT)
  2. OS(Windows,Ubuntu,Mac
  3. プログラミング(C++,C#,R)
  4. システム(ALMinium,Redmine,samba,Thetis)
  5. データサイエンティスト(Jubatus勉強中)
  6. 時事ネタ

と今までやってきたこと、興味があるものを上げてみました。

今は、もっぱらデータサイエンスに興味津々です。