HumansXドキュメントセンター 公式サイトへ ↗

API ドキュメント

概要

本システムは完全な RESTful API インターフェースを提供します。すべての API ルートは vision_arm_mcp/api/routes.py で定義され、Flask の Blueprint を通じて Web サービスに登録されます。

ベース URL:http://localhost:5002

検出関連 API

すべての計測データを取得する

インターフェース:GET /api/measurements

機能:現在検出されているすべての物体の計測データを取得します

レスポンス例:

{
  "measurements": [
    {
      "id": 1,
      "class": "red_shape",
      "confidence": 0.92,
      "position": {
        "x": 320,
        "y": 240
      },
      "distance_from_center": 150.2,
      "dimensions": {
        "width": 120,
        "height": 80
      },
      "quadrant": "第一象限",
      "timestamp": "2023-07-25T15:30:45"
    }
  ],
  "count": 1
}

特定の物体のデータを取得する

インターフェース:GET /api/measurements/ <object_id>

パラメータ:

  • object_id:物体 ID(整数)

レスポンス:単一物体の計測データ

ロボットアーム制御 API

物体をつかむ

インターフェース:POST /api/arm/catch_object

リクエストボディ:

{
  "image_x": 0.0,  // 物体相对于图像中心的X坐标
  "image_y": 0.0,  // 物体相对于图像中心的Y坐标
  "height_z": 50.0 // 抓取的目标Z高度
}

成功時のレスポンス(200):

{
  "status": "success",
  "message": "抓取动作已执行"
}

エラー時のレスポンス(400/500/503):

{
  "status": "error",
  "message": "错误描述"
}

物体を置く

インターフェース:POST /api/arm/put_object

リクエストボディ:

{
  "image_x": 0.0,  // 目标放置位置相对于图像中心的X坐标
  "image_y": 0.0,  // 目标放置位置相对于图像中心的Y坐标
  "height_z": 60.0 // 放置的目标Z高度
}

レスポンス形式:物体をつかむ API と同じです

動画ストリーミング API

ライブ動画ストリーミング

インターフェース:GET /video_feed

機能:MJPEG 形式のライブ動画ストリームを取得します

レスポンス:multipart/x-mixed-replace 形式の動画ストリーム

システム状態 API

システム状態

インターフェース:GET /api/status

機能:システムの稼働状態と設定情報を取得します

レスポンス例:

{
  "status": "running",
  "version": "2.0.0",
  "services": {
    "web": "active",
    "mcp": "active",
    "detection": "active"
  },
  "config": {
    "model_path": "models/yolo11n_shape_detect.bin",
    "camera_device": "/dev/divisioncamera",
    "arm_serial_port": "/dev/ttyS1"
  }
}

エラー処理

共通エラー形式

{
  "status": "error",
  "message": "错误描述",
  "code": "ERROR_CODE",
  "timestamp": "2023-07-25T15:30:45"
}

主なエラーコード

エラーコード HTTP ステータス 説明
INVALID_REQUEST 400 無効なリクエストパラメータ
ARM_LIMIT_ERROR 400 アームの可動範囲エラー
DEVICE_ERROR 503 デバイス通信エラー
MODEL_ERROR 500 モデル推論エラー
SYSTEM_ERROR 500 システム内部エラー

座標系の説明

画像座標系

  • 原点:画像の中心
  • X 軸:右が正、左が負
  • Y 軸:上が正、下が負
  • 単位:ピクセル

ロボットアーム座標系

  • X 軸:前方が正(50〜180mm)
  • Y 軸:右方向が正(-80〜80mm)
  • Z 軸:上方向が正(-50〜140mm)
  • 単位:mm

座標変換

システムは画像座標からロボットアーム座標への変換を自動的に処理します:

# 转换公式 (简化版)
arm_x = 0.821 * image_y + 114.2
arm_y = 0.3638 * image_x - 15.049

API クライアントの例

Python の例

import requests

# 获取测量数据
response = requests.get('http://localhost:5002/api/measurements')
data = response.json()

# 控制机械臂抓取
payload = {
    "image_x": 100.0,
    "image_y": 50.0,
    "height_z": -50.0
}
response = requests.post('http://localhost:5002/api/arm/catch_object', json=payload)

curl の例

# 获取系统状态
curl http://localhost:5002/api/status

# 抓取物体
curl -X POST http://localhost:5002/api/arm/catch_object \
  -H "Content-Type: application/json" \
  -d '{"image_x": 100.0, "image_y": 50.0, "height_z": -50.0}'

レート制限

  • アーム制御 API:最大 1 秒あたり 1 リクエスト
  • 計測データ API:最大 1 秒あたり 10 リクエスト
  • 動画ストリーミング:無制限

認証

現在のバージョンでは認証は不要ですが、本番環境では API キーまたは JWT による認証を追加することを推奨します。

お問い合わせ

資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。