[PiPER, NERO]pyAgxArmのインストール方法

1. はじめに

pyAgxArmは、AgileX社の提供するロボットアームおよびエンドエフェクタ向けのPython SDKです。Piper(無印/X/H/L)、NERO、AgxGripper、Revo2を対象に、CAN通信、ステータス読み取り、モーション制御、およびエンドエフェクタ制御をサポートしています。

本稿では、pyAgxArmを用いて、Windows PCからPiper Xに接続するための手順を説明いたします。Pythonで作成したプログラムから、ロボットに接続し動作させることを目標とします。


本稿は、公式のGitHubページ(https://github.com/agilexrobotics/pyAgxArm)に基づいて作成しております。
Linux環境の方については、公式GitHubのInstall項をご覧ください。

2. 環境

以下の環境にて、このセットアップ手順が有効であることを確認しています。

  • OS: Windows 11 (64bit)
  • ソフトウェア
    • Python 3.12.7
      • pyAgxArm 1.0.0
      • python-can 4.6.1
      • python-can-agx-cando 0.0.1
    • ArmRobotUA v2.0.0
  • 使用するロボット: Piper-X

3. 用意するもの

  • Windows (10, 11)を搭載したPC
    • Python(3.6-3.14対応)、Gitをインストールしてください。
  • VSCode等のエディタ
  • Piper, Nero等のロボット、エンドエフェクタ(あれば)
    • ロボットに付属のCAN-USBアダプタを用いてPCと接続し、プログラム実行時には電源ケーブルを接続してください。

4. 手順

まず、前提となるライブラリをインストールします。

python-can

pip3 install python-can

python-can は 3.3.4より新しいバージョンである必要があります。

python-can-agx-cando

WindowsでpyAgxArmを使用する場合、 python-can-agx-cando プラグインをインストールし、 agx_candoインターフェースを使う必要があります。

ライブラリは GitHub から git clone で取得し、そのディレクトリで pip install してインストールします。


git clone https://github.com/agilexrobotics/python-can-agx-cando.git
cd python-can-agx-cando
pip3 install .

pyAgxArm

同様に git clone で取得し、 pip install でインストールします。

git clone https://github.com/agilexrobotics/pyAgxArm.git
cd pyAgxArm
pip3 install .

これでインストール完了です。

5. 実行結果例

pyAgxArm/pyAgxArm/demos 以下のフォルダにサンプルプログラムが用意されています。

pyAgxArm/pyAgxArm/demos/detect_<ロボット名>_series.pyでは、CAN通信でロボットを認識できるか検証することができます。
実行後、タイムアウトしてエラーとなった場合、正常にロボット間の通信ができていません。
タイムアウトせず、ロボットのソフトウェアのバージョンや関節ごとのステータスが出力された場合、正常にロボットと通信できています。

pyAgxArm/pyAgxArm/demos/<ロボット名>/test1.py は、各ロボット用のプログラムとなっており、SDKで行える動作が網羅されています。
大部分はコメントアウトされているので、実行したい関数のコメントを解除してから実行してください。

5.トラブルシューティング

  • プログラムの実行後、ロボットが給電状態(Enable)のままである。
    • プログラムでDisableするか、ArmRobotUAから手動でDisableすることができます。
      ※Disableするとアームが重力で落ちるので手で支えてください。
  • CANモジュールをPC側で認識できない。
    • WSLにUSBを共有していた場合、usbipd bind -b <BUSID>で共有を解除する必要があります。
  • can.exceptions.CanInitializationError: Failed to open CAN bus. AgxCandoBus was not properly shut down
    • ArmRobotUAで接続している場合、そちらが通信を占有しているため、先に接続解除してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です