WebサービスAPIによる複数ロボット会話システム

LINEで送る
Pocket

WebサービスAPI利用時の注意点

インターネットは、「ベストエフォート型のサービス」がほとんどである。

一方、常に一定の通信速度や品質を保証している「ギャランティ型サービス」もあるが高価である。

WebサービスAPIなどを利用したシステム開発には、基本的には、「ベストエフォート型のサービス」を前提とした設計が不可欠である。

「ベストエフォート型のサービス」は、通信速度やサービスの質が保証されないので、通信速度の低下などで、リトライエラーが頻繁に発生して、タイムアウトに陥ることがある。

これにより、プログラムで例外が発生して、予期しないプログラム停止となる。

このような事態を防ぐには、「ベストエフォート型のサービス」という前提でシステム開発することが必須である。

プログラミング初心者が陥る落とし穴でもある。

インターネット通信は、エラーがでることを想定したプログラミングを行うことが必要になる。

例外処理で、救済するためのプログラミングが必須となる。

try:

except Exception as e:

のexcept:欄に、インターネットでのエラーを救済するためのプログラミングを施す。

この欄で、最初からやり直すための処置などを施す。

具体的には、例外が発生した日時や例外内容をログとして保存して、インターネットが復旧した段階で、メール通知するなどの処置などを行う。そして、プログラムを継続させて、矛盾がないようにする。

これにより、インターネット品質などを知ることができ、通信品質の改善を行うことができると同時にトランザクション処理も実現できる。

群馬プログラミングカレッジで開発した「複数ロボット会話システム」でもこのような救済処理が運用上必須となった。

インターネット回線を複数で共有する環境では、通信品質が低下して、しばしば、RetryMaxErrorにより、例外が生じる。

pythonのrequestsモジュールを利用して、Webサービスに接続している場合に、度々、例外が生じた。

基本は、「トランザクション処理」の実践である。

群馬プログラミングカレッジでは、pythonプログラム言語を学び、「実務経験」を行うことができます。

子ども達は、子どもプログラミング教室で、Scratchプログラム言語を学び、高学年生は、徐々に高級プログラム言語を学びます。

群馬プログラミングカレッジでは、毎月、プログラミング体験会を実施しておりますので、お気軽にご参加ください。

子どもから成人の方が、継続的にプログラミングを学ぶ場を提供いたします。

複数ロボット会話システム
案内ロボットとして、活躍しています。pythonプログラム言語、PHPプログラム言語で開発しました。
WebサービスAPIを利用して、お互いの会話の同期を制御している。

LINEで送る
Pocket

四万温泉案内ロボット開発

LINEで送る
Pocket

四万温泉案内ロボット開発

四万温泉のキャラクター「摩耶姫ちゃん」とお供のカモシカの「くらっぽ」、キジバトの「しまっぽ」による案内ロボットを開発しました。

2018年2月14日に上毛新聞に掲載されました。

四万温泉案内ロボット

 

複数ロボット自然会話システムの技術を適用しています。

3体のロボットは、インターネット経由で繋がっており、「くらっぽ」と「しまっぽ」のお供が四万温泉の案内を会話形式で行います。

案内は、テンキーの特定の番号を入力することで開始します。
会話が終わるとテンキーの番号入力待ちとなり、番号を入力すると会話を開始します。

会話は、同期をとりながら行い、同時に発話をすることもできます。
また、会話をしている時は、頭部や手などを動かします。

案内文は、サーバーにアップロードすることで、案内の内容を即座に変更することができます。

今後は、四万温泉の旅館、ホテルなどの宿泊施設やお店、観光スポット、四万温泉のイベント、温泉の由来、歴史などのコンテンツを増やすことで四万温泉の総合ガイドをロボットが行ってくれます。

テンキーに代わって、マイクで指示することも可能です。

温泉街の散策やサイクリング時に案内ロボットを携帯することで、温泉街のガイドを行うことが可能です。

四万温泉案内ロボット20180213-1(設置時の動画)

四万温泉案内ロボット20180213-2(設置時の動画)

四万温泉案内ロボットは、python3プログラミング言語で開発しております。
サーボモーター制御は、pigpioライブラリを使用しています。
サーボモーターの動きで、ロボットの喜怒哀楽を表現しています。

適用技術:
pythonプログラミング(音声認識、自然会話などのAIクラウドサービス利用技術、音声入力、音声合成、thread技術)
WebサービスAPI(会話の同期制御)
pigpioライブラリによるサーボモーター、LED制御(サーボの動きとLEDの光制御でロボットの喜怒哀楽を表現)
Webサーバー(PHPによるWebサービスAPIプログラミング)
MySQLデータベース(案内会話情報などのコンテンツ、ログ情報、制御情報管理)

群馬プログラミングカレッジでは、複数ロボット自然会話システム、案内ロボット、IOTシステムなどの開発教育、クラウド利用技術教育などを実施しています。

プログラミングを習得したい方を募集しております。
お気軽にお問合せください。

 

LINEで送る
Pocket