各部位(センサモジュール、ゲートウエイ、エッジサーバ)の説明

センサモジュールには、マイコンとオンボードセンサとして(9軸、環境、照度、RGB等)を搭載しています。一般の方も気軽に入手できる部品だけで構成しています。オンボードセンサに加えて、アナログ出力のセンサやデジタル通信仕様のセンサを追加することも可能です。
計測したデータは、大別して、リアルタイムフィードバック系とIoT系の2系統に同じフォーマットで出力します。リアルタイムフィードバック系では、USB等のシリアルポートを介して制御機器に直接取り込みます。IoT系では、中継器を介して、エッジサーバ、クラウドとデータを送ります。もちろん、どちらか一方だけに出力する使い方も可能です。
センサモジュール内では、メディアンフィルタ等簡単なデータ処理を行いますが、リアルタイムフィードバックを高速に行うことに主眼に置き、転送データ量を少なくするために注釈などは極力排し、値だけをそのまま出力する仕様です。

ゲートウエイ(中継器)は作業単位(複数のロボット単位)毎に1つ置くこと目安としています。作業単位とは、工場内での一区切りの工程を指しています。例えば、“食洗機工程”と考えた場合、ロボット2台とそれぞれにハンド、ベルトコンベア1台、水洗槽が2槽、それぞれに取り付けた複数のセンサモジュールの集合体と考えます。
ゲートウエイに複数のセンサモジュール(下図ではマイコン以下の部分)を接続した場合を図2に示します。作業単位ごとに1つのゲートウエイを配することで、作業単位毎に複数のデータを1つにまとめ、物理量化学量に即した単位を付加するなど、IoT側(エッジサーバ)へ送るデータの前処理を行います。データの前処理や転送などはNode-REDを使っています。

 

図2.2 ゲートウエイ(中継器)

 

ゲートウエイでの主な処理は、物理量・化学量としての単位を付与することと、それに伴うスケール変換を行います。Node-REDの標準機能を使っています。

例えば、重さを計測する場合、1.0[キログラム]と1.0[ポンド]では同じ1.0と言う数値であっても全く違う量であり、単位が不明確や間違っていると、その後のデータ解析を間違うだけでなく、大きな事故につながる可能性をもっています。なので、これらの単位付与や変換は、データの取得場所に近いところで行うことが望ましいと考えており、作業単位であるゲートウエイで行う仕様にしています。ネット上でキーワードを「単位間違いにおける事故」として検索してください。単位の重要性を理解していただけると思います。

また、決められた範囲外のデータは、有効でないデータとして欠損値(NULL)に変換します。ここで言う“有効でないデータ”とは何でしょうか?

例えば、電気抵抗を測定している場合を想像してください。普段は1,000(1k)Ω前後の値が計測されていたとします。ここに、0.001(1m)Ωや1,000,000(1M)Ωと言った極端に異なるデータが来た場合、対象物の抵抗値を測定しているというより、前者(1mΩ)のケースでは測定回路のショートが疑われ、後者(1MΩ)では断線が疑われます。もはや対象物を正しく計測できていない状態(故障?)と考えた方が妥当です。

このような場合、後段のIoT側のデータ処理では欠損値(測れていない)として扱います。

ゲートウエイ以降で認められる欠損値は、測定対象物の変化を捉えているというより測定系全体の調子を表していると考えられますので、その発生頻度を利用することで、計測系全体の状態を監視するロジックをエッジサーバやIoT側に組み込むことが可能になります。測定系の保守点検の指標として利用できます。

 

エッジサーバでは、センサデータを集積する機能とクラウドとの出入口の機能を持たせます。複数のセンサモジュールからのデータを一元的に集めることによって、データ解析を行い易くします。センサデータを農産物に例えると、ゲートウエイは各地の農協、エッジサーバは中央卸売市場に相当します。クラウドは一般消費者と言ったところでしょうか。
エッジサーバを介して、クラウドとのデータ送受を行いますので、エッジサーバはインターネットに接続できる環境におき、24時間連続稼働させることが望ましいです。同時にセキュリティー対策は万全にしてください。

エッジサーバ用に準備するハードウエアは、最初は一世代前のデスクトップPCで十分です。