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.

PyPI Build Python License UMA

Why This Package?

  • Easy Installation: pip install arx-x5-sdk (no complex build steps for users)
  • Minimal System Dependencies: Only needs liborocos-kdl and liburdfdom - no full ROS installation required
  • Clean API: Modular, better-documented Python interface
  • Production Ready: Proper package structure with comprehensive documentation

Installation

Prerequisites

# Runtime dependencies (required even when installing from PyPI)
sudo apt install liborocos-kdl-dev liburdfdom-dev

# CAN interface tools (for USB-CAN adapters)
sudo apt install can-utils

Note: The KDL URDF parser (libkdl_parser.so) is bundled in the wheel, but its dependencies (liborocos-kdl, liburdfdom) must be installed system-wide. No full ROS installation is needed.

Install from PyPI

pip install arx-x5-sdk

Install from Source

# Additional build dependencies
sudo apt install build-essential cmake python3-dev patchelf

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
arm = ArxInterface("can0", ArmType.X5_2025)

See examples/ for complete tutorials (joint control, Cartesian control, gripper, teleoperation)

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

  • Linux x86_64: Fully supported
  • macOS (Apple Silicon): Works via Rosetta 2 translation
  • ARM64 (Linux) / Windows: Not currently supported

Development & Publishing

This project uses GitHub Actions for CI/CD:

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

Documentation

Development

Pre-commit Hooks

This project uses pre-commit hooks to maintain code quality:

# Install with dev dependencies (use uv if available for faster installs)
pip install ".[dev]"

# Run on all files
pre-commit run --all-files

The hooks automatically:

  • Whitespace: Remove trailing whitespace, fix line endings (LF), ensure newlines at EOF
  • File validation: Check YAML/TOML/JSON syntax, prevent large files (>1MB), detect merge conflicts
  • Python code quality: Lint and format with Ruff (fast, modern alternative to black/flake8/isort)
  • Security: Detect accidentally committed private keys

Troubleshooting

CAN interface setup:

sudo bash scripts/setup_can.sh /dev/ttyACM0 can0

Gravity compensation issues: Use ArmType.X5_2025_LOWER_MASS_LINK6

Author

Remi Cadene - remi@uma.bot - UMA

Acknowledgments

Based on the official ARX X5 Python SDK. Special thanks to the ARX Robotics team!

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.7.tar.gz (7.8 MB view details)

Uploaded Source

Built Distributions

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

arx_x5_sdk-0.1.7-cp312-cp312-manylinux_2_39_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

arx_x5_sdk-0.1.7-cp311-cp311-manylinux_2_39_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

arx_x5_sdk-0.1.7-cp310-cp310-manylinux_2_39_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

File details

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

File metadata

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

File hashes

Hashes for arx_x5_sdk-0.1.7.tar.gz
Algorithm Hash digest
SHA256 6e3bafb0ba3523bf44e374c980d3e182729a2617270c624c2be128a49e1a2069
MD5 ac26c8a567a49cc29ca1a10d27529915
BLAKE2b-256 783c72ba5662be7d46b36ae291973062e30bf5b9ea4afb157b471b2080238fcf

See more details on using hashes here.

File details

Details for the file arx_x5_sdk-0.1.7-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for arx_x5_sdk-0.1.7-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 143be6acebe8ed45b58167eb477631efdd781d081692527f863899631097a0fd
MD5 49c7f2f6c33626f26abb5299b820b3e6
BLAKE2b-256 d980ab8d91d0885a11ada13b04468d82a2d6cb37ff221dff464064685c9b2308

See more details on using hashes here.

File details

Details for the file arx_x5_sdk-0.1.7-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for arx_x5_sdk-0.1.7-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5ae02ce9a563838671e8cb0ca757a5f48ef5cdb3d6872392ad82688243c07aa8
MD5 b8ecc2f294dd81eb7fd2a7c8baeb0dbd
BLAKE2b-256 36ef0e64dd832dc23a51c9ccd07c77c321f24b9807ee6b4b087048a264322b57

See more details on using hashes here.

File details

Details for the file arx_x5_sdk-0.1.7-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for arx_x5_sdk-0.1.7-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2294eb99155eabb8088db87ab7585c5830729b2766661540e8d525cf59a4df55
MD5 8801fd4cf163109bcf540032711fe268
BLAKE2b-256 2e53a3e2c59c950157f236fd3aeebbfc11a0d9925cf25139f8aacb738f9aaf89

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