SALTYSTER SpeeDBee Hive連携

 

本ページは i-PRO株式会社 の有志メンバーにより記載されたものです。
本ページの情報は ライセンス に記載の条件で提供されます。

 

 

 

本ページでは、i-PRO の AI アプリ 「MS-EXFANS01A (AI検査アプリケーション) 」 と株式会社ソルティスターのIOTミドルウェア 「SpeeDBee Hive 」とを連携させる方法についてご紹介します。

* SpeeDBeeは株式会社ソルティスターの登録商標です。

 

 

関連商品 紹介:

レンズトライアルキット

 

 

1. 確認した環境

 

[品番、バージョン]

レンズトライアルキット : MK-DVLTRNP01, 2.00
AI検査アプリケーション : MS-EXFANS01A, 1.00
AI検査マネジメントソフトウェア : -, 1.00
SpeeDBeeHive : -, v3.16.2試用版(Windows)

 

 

2. システムのセットアップ

AI検査アプリケーション/AI検査マネジメントソフトウェア、SpeeDBee Hiveのインストール・セットアップを、それぞれのマニュアルを参照の上実施してください。
それぞれのシステムが単独で動作するようになっている前提で、以降の説明は記載されています。

 

 

3. 検査結果データの取得

検査結果は、AI検査マネジメントソフトが出力するjsonファイルから取得します。

データ構造については、「 AI検査ソフト|検査結果を取得する (i-pro.com) 」を参照してください。

 

 

4. 検査結果データの共有

AI検査マネジメントソフトの動作環境はRaspberry Pi OSの64bitのみですが、SpeeDB HiveではサポートされていないOSとなりますので、検査結果を別PCから参照できるようにする必要があります。
ここでは、sambaでフォルダ共有をおこないます。

 

(1) Sambaのインストール

Sambaがインストールされていない場合は、以下コマンドでインストールをおこないます。

      $ sudo apt install samba samba-common-bin

 

(2) Sambaの設定ファイルの編集

Sambaの設定ファイルを編集して、共有フォルダの設定を追加します。設定ファイルは通常/etc/samba/smb.confにあります。

      $ sudo vi /etc/samba/smb.conf

以下の内容をファイルの最後に追加します。共有フォルダの名前、パス、アクセス権限を自分の環境に合わせて変更してください。

      [Shared]
      path = /media/pi/DATA_DRIVE
      read only = yes
      browsable = yes
      public = yes
      guest ok = yes
      create mask = 0555
      directory mask = 0555

* この例では、/media/pi/DATA_DRIVE/data がAI検査マネジメントソフトのデータ出力先になっています。

 

(3) Sambaの再起動

設定を反映するためにSambaを再起動します。

      $ sudo systemctl restart smbd

 

(4) ファイアウォールの設定(必要に応じて)

OSのファイアウォールを使用している場合は、Sambaのポートを許可する必要があります。

        $ sudo ufw allow samba

 

(5) 共有フォルダの割り当て

SpeeDB Hiveはサービスとして実行される為に、ドライブの割り当てをしてもそのドライブを参照できません。

そのため、共有フォルダはWindowsのシンボリックリンクの機能を使用して参照します。

以下は、AI検査マネジメントソフトが動作するRaspberry PiのIPアドレスが 192.168.0.20 の場合のコマンドです。

シンボリックリンク先は、環境に合わせて適宜変更してください。

      C:\Users\XXXX> mklink /D C:\aiinspect_shared \\192.168.0.20\Shared

 

 

5. SpeeDB Hiveへのデータ取り込み

SpeeDBee Hiveには、データの収集を行うモジュールをユーザーが独自作成・システムに追加できる「カスタムコレクタ」という仕組みがあります。

カスタムコレクタはC言語/Pythonで作成可能ですが、今回はjsonファイルの読み込み等ライブラリがそろっていて手軽にプログラミングが出来るPythonを使用します。

 

(1) プログラムの引数

検査結果の参照先フォルダ、DB登録状況保存先フォルダ(後述)の場所をプログラムの引数で渡すようにします。

ただしカスタムコレクタへの引数は1つだけ指定可能なので、半角のスペース区切りで連結したものを指定します。

      # 引数
      dirs = param.split(" ")
      self.rootPath = dirs[0]
      self.infoPath = dirs[1]

 

(2) データベースの定義

検査結果として登録するデータを、カメラ名・検査日時・機種名・総合結果・検査ポイントごとの検査結果、の5つとします。

項目は、全て文字列で定義します。

      # DB定義
      # カメラ名
      self.clm0 = self.makeOutputColumn("cam",  HiveColumn.TypeString)
      # 検査日付
      self.clm1 = self.makeOutputColumn("date",  HiveColumn.TypeString)
      # ロット番号
      self.clm2 = self.makeOutputColumn("lot",  HiveColumn.TypeString)
      # 総合判定
      self.clm3 = self.makeOutputColumn("overallresult",  HiveColumn.TypeString)
      # エリア毎の判定結果
      self.clm4 = self.makeOutputColumn("result",  HiveColumn.TypeString)

 

(3) 連携のタイミング

カスタムコレクタをタイマーで定期的に起動し、検査結果が格納されるフォルダをチェックするようにします。

タイマーの起動間隔は変数で定義し、デフォルトは10秒としています。

      # データチェック間隔(秒)
      _intervalSec = 10

      ~

      ##########
      #   メイン処理
      #
      #   Note:
      #       定期タイマー起動
      ##########
      def mainloop(self):
          # 設定した秒数毎にタイマーを起動する
          self.intervalCall(int(_intervalSec * 1000 * 1000), self.proc)

 

(3) DB登録状況の保存

同じ検査結果を2重でDBに登録しないように、登録状況をファイルに保存しておきます。

ファイルの構造イメージは、以下になります。

ファイル構造

 

(4) DBへのデータ登録方法

複数の項目を同じデータグループとして登録するには、insert()の引数に同じタイムスタンプを指定する必要があります。

      # DBに生成したデータを登録
      nowTime = self.getTimestamp()
      self.clm0.insert(camDir, nowTime)
      self.clm1.insert(jsonH["camDate"]["DATE"], nowTime)
      self.clm2.insert(modelDir, nowTime)
      self.clm3.insert(overallresult, nowTime)
      self.clm4.insert(result, nowTime)

詳細は、SpeeDB Hiveのユーザーガイド、Pythonカスタムコレクタの章を参照してください。

 

 

6. SpeeDB Hiveの設定

カスタムコレクタをSpeeDB Hiveに登録し、連携用の設定をおこないます。

サンプルプログラムを ipro_aiinspect/saltyster/ipro_aiinspect.py として公開しています。

 

(1) サービスの再起動

SpeeDB Hiveの評価版は連続稼働が1時間という制限事項がありますので、動作確認前に再起動を実施しておきます。

Windowsの場合は、Windowsメニューの「Windows管理ツール - サービス」でspeedbhiveを再起動します。

SpeeDB Hive 設定 05

 

(2) カスタムコレクタの登録

SpeeDB Hiveの管理画面「システム - コレクタ関連設定 - カスタム(Python)」からサンプルプログラムを登録します。

SpeeDB Hive 設定 01

追加ボタンでファイルを指定して登録すると、カスタムコレクタの一覧に表示されます。

SpeeDB Hive 設定 02

 

(3) カスタムコレクタの設定

SpeeDB Hiveの管理画面「コレクタ - カスタム」からサンプルプログラムの設定を登録します。+ボタンを押下すると、設定画面が表示されます。

設定が完了したら、保存ボタンを押下します。

SpeeDB Hive 設定 03

保存完了後、初期化ボタンを押下してDBのカラム一覧が表示されたら設定は完了です。

SpeeDB Hive 設定 04

 

 

7. 動作確認

実際にカスタムコレクタを動作せて、検査結果がDBに登録できるかを確認します。

 

(1) サービスの再起動

SpeeDB Hiveの評価版は連続稼働が1時間という制限事項がありますので、動作確認前に再起動を実施しておきます。

Windowsの場合は、Windowsメニューの「Windows管理ツール - サービス」でspeedbhiveを再起動します。

SpeeDB Hive 設定 05

 

(2) データ分布モニターの表示

SpeeDB Hiveの管理画面「システム - データ分布モニタ」を選択します。

コレクタのリストで登録したサンプルプログラムを選択し、適用ボタンを押下します。

SpeeDB Hive 設定 06

(3) 検査の実施

AI検査マネジメントソフトウェアで、検査を実行します。

AI検査マネジメントソフト

検査が完了してしばらくして、データ分布モニター上に登録されたデータが●で表示されたら動作確認完了です。

SpeeDB Hive 設定 07

 

 

ソースコード所在

サンプルプログラムのソースコードは、下記 github より取得できます。

下記 github のソースコードと本ページの内容は差異がある場合があります。

i-pro-corp/ipro_aiinspect (github.com)

 

 

ライセンス

本ページの情報は、特記無い限り下記ライセンスで提供されます。


Copyright 2023 i-PRO Co., Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

 


 

変更履歴

2023/4/18 - 新規作成, 小澤和哉

 

i-PRO - Programming Items トップページ

プライバシーポリシー