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.
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 withpip 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:
.github/workflows/build.yml- CI testing on every push/PR.github/workflows/publish.yml- Publish releases to PyPI (triggered by version tags).github/workflows/test-publish.yml- Test publishing to TestPyPI (manual)
See each workflow file for detailed documentation on triggers, usage, and requirements.
Documentation
- Examples:
examples/README.md- Getting started tutorials - URDF files:
arx_x5_sdk/urdf/README.md- Gravity compensation fixes - Pre-built libraries:
lib/arx_x5_src/README.md- Binary details
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54716038287591092e41fdfc4143fa5230dd166aa7c12e5bf6bb8a24cef05793
|
|
| MD5 |
003bd6aa952d56a3627e6735b6f576ed
|
|
| BLAKE2b-256 |
ca07696ee7ea0f9d94b5ce5c567117ea317eadcd39782d637c8d46092cf66062
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2c5789615d25e2da8e372e1e1fe00012d88f976343f82217d48e1a41c748e8d
|
|
| MD5 |
8d2dbeaaf02fe674defe493c0137cb2a
|
|
| BLAKE2b-256 |
c2de1405fb7e4a4a0a4ef7a370cea54c32d1f69f2a9f5670d3cf985b76f2af88
|