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)
  • 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

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

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
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

  • 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

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.5.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.5-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: arx_x5_sdk-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 54716038287591092e41fdfc4143fa5230dd166aa7c12e5bf6bb8a24cef05793
MD5 003bd6aa952d56a3627e6735b6f576ed
BLAKE2b-256 ca07696ee7ea0f9d94b5ce5c567117ea317eadcd39782d637c8d46092cf66062

See more details on using hashes here.

File details

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

File metadata

  • Download URL: arx_x5_sdk-0.1.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e2c5789615d25e2da8e372e1e1fe00012d88f976343f82217d48e1a41c748e8d
MD5 8d2dbeaaf02fe674defe493c0137cb2a
BLAKE2b-256 c2de1405fb7e4a4a0a4ef7a370cea54c32d1f69f2a9f5670d3cf985b76f2af88

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