Skip to main content

ARX X5 Robot Arm Python SDK

Project description

ARX X5 SDK

Python bindings for the ARX X5 robot arm. Control ARX X5 arms via CAN interface.

This package is based on the official ARX X5 Python SDK and provides an easy-to-install, well-documented Python package published to PyPI.

Special thanks to the ARX Robotics team for developing the original SDK and making it available to the community!

Why This Package?

  • Easy Installation: pip install arx-x5-sdk (no complex build steps for users)
  • Bundled Dependencies: Includes necessary libraries - no ROS installation required
  • Clean API: Modular, better-documented Python interface
  • Production Ready: Proper package structure with comprehensive documentation

Installation

Prerequisites

# Build and runtime dependencies
sudo apt install build-essential cmake python3-dev patchelf liborocos-kdl-dev liburdfdom-dev

Note: KDL URDF parser is bundled - no ROS installation needed!

Install from Source

git clone https://github.com/uma-robots/arx-x5-sdk.git
cd arx-x5-sdk
pip install .

Note: Due to CMake build requirements, editable mode (pip install -e .) is not recommended. Reinstall after changes with pip install --force-reinstall .

Quick Start

from arx_x5_sdk import ArxInterface, ArmType

# Connect to arm on CAN interface
arm = ArxInterface("can0", ArmType.X5_2025)

Note: For leader-follower teleoperation, you can use the same arm type (e.g. ArmType.X5_2025)

Available Arm Types

ArmType.FOLLOWER                  # Follower arm
ArmType.LEADER                    # Leader/master arm  
ArmType.X5_2025                   # X5 2025 model (default)
ArmType.X5_2025_LOWER_MASS_LINK6  # X5 2025 with corrected gravity compensation

Advanced Usage

Custom URDF

from arx_x5_sdk import C_ArxInterface, get_urdf_path

urdf_path = get_urdf_path("x5_2025_lower_mass_link6.urdf")
arm = C_ArxInterface(urdf_path, "can0", 2)

Get URDF Path

from arx_x5_sdk import get_urdf_path, get_urdf_path_by_type, ArmType

# By filename
path = get_urdf_path("x5_2025.urdf")

# By arm type
path = get_urdf_path_by_type(ArmType.LEADER)

Architecture Support

  • x86_64: Fully supported
  • ARM64: Supported (may have verbose output)

Development & Publishing

This project uses GitHub Actions for CI/CD:

See each workflow file for detailed documentation on triggers, usage, and requirements.

Documentation

  • URDF files: See arx_x5_sdk/urdf/README.md for gravity compensation fixes
  • Library details: See lib/arx_x5_src/README.md for pre-built libraries info
  • Bundled dependencies: See lib/external/README.md for third-party libraries

Troubleshooting

Build fails: Check prerequisites are installed

sudo apt install build-essential cmake python3-dev patchelf liborocos-kdl-dev liburdfdom-dev

Import fails: Reinstall the package

pip install --force-reinstall .

Gravity compensation issues: Use x5_2025_lower_mass_link6.urdf (see urdf/README.md)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arx_x5_sdk-0.1.3.tar.gz (7.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arx_x5_sdk-0.1.3-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file arx_x5_sdk-0.1.3.tar.gz.

File metadata

  • Download URL: arx_x5_sdk-0.1.3.tar.gz
  • Upload date:
  • Size: 7.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for arx_x5_sdk-0.1.3.tar.gz
Algorithm Hash digest
SHA256 babd54369a074e36188022a722c52d12d0fc74f4371616fa460f18abb5d94cba
MD5 0d1ab6cfddb21b75dbce52cf403e8b11
BLAKE2b-256 103f37a69610f8f14b51748bb4553401693c80b850978a907af784e4be298d93

See more details on using hashes here.

File details

Details for the file arx_x5_sdk-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: arx_x5_sdk-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for arx_x5_sdk-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b63365544acab53a3d677316c43e4a1e359e7b51d932a7128e67fe576cb5a238
MD5 e6d8cba9a43152d067bdaa6ff800a53e
BLAKE2b-256 e9b1d787683452a170b3d68a5b9c687fc3a2f0f9ada0a71efeabea411e9b37fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page