メインコンテンツへスキップ

カスタムサービス開発

JAKA約2分

カスタムサービス開発

このページは、開発者がカスタムサービス機能を持つ AddOn パッケージを開発する方法を案内することを目的としています。

注意:

本章は入門チュートリアルであり、主な目的は開発者がカスタムサービスの基礎知識と基本的な開発プロセスを理解することです。

具体的なアプリケーション機能を持ち、特定の作業シーンで使用されるカスタムサービス AddOn パッケージの開発方法については、後の完全なケース章を参照してください。

カスタムサービスについて

カスタムサービスとは

カスタムサービスとは、バックグラウンドでタスクを実行するサービスであり、ユーザーはその存在を直接感じることはありません。

カスタムサービスの役割

カスタムサービスは、ユーザーとのやり取りに関係のないバックグラウンドのデータ処理やビジネスロジック処理を担当します。Http ノードと連携することで、フロントエンドインターフェースとデータをやり取りし、カスタムコマンド、カスタムWebページ、または他のクライアントに対してデータの受信、処理、保存、計算、分析などのサービスを提供します。

AddOn カスタムサービスパッケージの作成

この例では、カスタムサービス型の AddOn を作成します。この AddOn の機能は、ロボットの電源状態を照会する外部サービスを提供することです。

注:

以下に出てくる JAKA_Service は、これから作成する AddOn カスタムコマンドパッケージのパッケージ名です。

ステップ1:AddOn フォルダーを作成

まず、基本となる AddOn フォルダーを作成する必要があります。このフォルダーには .ini 形式の設定ファイルと、データを保存する Json ファイルを含める必要があります。

最初から手動で作成してもよいですし、AddOn 開発パッケージリポジ*トリの「*Template」open in new windowディレクトリにある AddOn テンプレートを使用しても構いません。

ディレクトリ構造

|——JAKA_Service    |——AddOn.json    |——JAKA_Service_config.ini

  • **AddOn.json ** Json ファイルの内容は空でもかまいません。後続の手順で自動的にデータが生成されて書き込まれます。
  • **JAKA_Service_config.ini ** 設定ファイルの具体的な内容は次のとおりです:
    [AddOnInfo]
    convention = 3.0
    name = JAKA_Service
    description = "JAKA AddOn サービスデモ"
    version = 1.0
    type = 1
    portal = 10006
    url = http://localhost/myAddOnUi
    languagetype = node-red
    service = AddOn.json
    serviceenabled = 1
    

ヒント

詳細な設定項目の説明については、「設定ファイルの説明**」を参照してください。クリックして[ジャンプ]** 👈 :::

ステップ2:パッケージ化&アップロード

次に、ステップ1で作成したフォルダーをパッケージ化し、コントローラーにアップロードして命令ブロックの開発を行います。パッケージ形式は .tar.gz である必要があります。

Windows では、7z などの圧縮ツールを使用して再圧縮することができます。

App の付加管理プログラム画面で AddOn をアップロードします。

まとめ

ここまでで、AddOn パッケージの初期化作業を完了し、AddOn の標準形式としてパッケージ化し、コントローラーにアップロードしました。 次に、AddOn の具体的な機能をさらに作成していきます。

ステップ3:カスタムサービスの開発

  1. AddOn を実行し、AddOn が使用するポート番号を確認します。
  1. ブラウザーを開き、アドレスバーにロボットの IP + ポート番号(IP:Portal)を入力して開発者画面にアクセスします。

まとめ

AddOn が実行されると、コントローラーはその AddOn パッケージ内の AddOn.json ファイルに基づいて node-red インスタンスを起動します。 ロボットの IP と AddOn が現在使用しているポート番号を介して、この node-red インスタンスにアクセスできます。

ご注意:

AddOn の実行ポートは固定ではなく、システムが実際の状況に応じて動的に割り当てます。したがって、AddOn のポート番号を使用するたびに、 現在のポート番号を確認する必要があります。コード内でこのポート番号を使用する場合、最適な方法は AddOn の設定ファイル「xxx_config.ini」から取得することです。

  1. 左側のノードバーの JAKA AddOn ディレクトリで「ロボット情報の取得」ノードを見つけ、 ダブルクリックして編集ページを開き、名前を「電源状態」と設定し、「ロボット状態」→「電源状態」を順に選択します。

ヒント

「ロボット情報の取得」ノードの使用方法は node-red のノードヘルプドキュメントで確認できます。

  1. http in ノードを追加し、GET リクエストをリッスンします。

まとめ

http in ノードを使用して接続し、URL を定義した後、Robot_IP:AddOn_Port/Your_URL を通じてサービスにリクエストを送信できます。 しかし応答を受け取ることはできません。したがって、次に応答メッセージオブジェクトを作成し、リクエストに返す必要があります。

  1. 応答メッセージを生成し、http response ノードを使用してリクエストに応答します。

ヒント

  • 最初はクエリ結果の型やデータ構造がわからないため、inject ノードを使って手動でクエリをトリガーし、debug ノードで戻り値を確認できます。
  • 応答は文字列(String)またはオブジェクト(Object)型のみのため、ブール値(Boolean)はオブジェクト内に入れて返す必要があります。

テスト

ここでは API インターフェーステストツールを使用して、先ほど作成したサービスをテストします。

おめでとうございます

🎉 これでカスタムサービスを通じてロボットの電源状態を照会できるようになりました!

最終更新日: