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 withpip 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:
.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
- URDF files: See
arx_x5_sdk/urdf/README.mdfor gravity compensation fixes - Library details: See
lib/arx_x5_src/README.mdfor pre-built libraries info - Bundled dependencies: See
lib/external/README.mdfor 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
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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
babd54369a074e36188022a722c52d12d0fc74f4371616fa460f18abb5d94cba
|
|
| MD5 |
0d1ab6cfddb21b75dbce52cf403e8b11
|
|
| BLAKE2b-256 |
103f37a69610f8f14b51748bb4553401693c80b850978a907af784e4be298d93
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b63365544acab53a3d677316c43e4a1e359e7b51d932a7128e67fe576cb5a238
|
|
| MD5 |
e6d8cba9a43152d067bdaa6ff800a53e
|
|
| BLAKE2b-256 |
e9b1d787683452a170b3d68a5b9c687fc3a2f0f9ada0a71efeabea411e9b37fd
|