Metadata-Version: 2.4
Name: openarmx-arm-driver
Version: 1.1.2
Summary: Python SDK for OpenArmX robotic arm control via CAN bus
Author-email: Wei Lindong <weilindong02@gmail.com>
License: OpenArmX Research and Education License
        Version 1.0
        
        Copyright (c) 2025 Wei Lindong
        
        Permission is hereby granted, free of charge, to any individual person or
        non-profit academic or research institution, to use, copy, modify, and
        distribute this software and its associated documentation (the "Software"),
        solely for non-commercial research, academic, and educational purposes.
        
        Commercial use of the Software is strictly prohibited without prior written
        permission from the copyright holder. Commercial use includes, but is not
        limited to:
          - Use in commercial products or services;
          - Use within for-profit organizations or institutions;
          - Use for internal business operations, manufacturing, or production;
          - Use in research or development activities intended for commercial gain;
          - Redistribution of the Software as part of a paid product or service.
        
        Any individual or organization wishing to use the Software for commercial
        purposes must obtain a separate commercial license from the copyright holder.
        
        Redistributions of the Software for permitted non-commercial purposes must
        retain this license text and the above copyright notice.
        
        If the Software is used in academic publications, presentations, theses, or
        other publicly available research outputs, appropriate citation of the
        Software and its author is requested.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL
        THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.
        
Project-URL: Homepage, https://www.openarmx.com
Project-URL: Documentation, https://docs.openarmx.com
Project-URL: Repository, https://www.openarmx.com
Project-URL: Issues, https://www.openarmx.com
Keywords: robotics,can-bus,motor-control,robstride,openarmx
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-can>=4.0.0
Requires-Dist: PyYAML>=5.4.0
Dynamic: license-file

# OpenArmX Driver

> **Developed by Chengdu Changshu Robotics Co., Ltd.**

Python SDK for OpenArmX robotic arm control via CAN bus. 

## Installation

```bash
pip install openarmx-driver
```

## Quick Start

### Single Arm Control

```python
from openarmx_driver import Arm

# Create right arm instance
arm = Arm('can0', side='right')

# Enable motors
arm.enable_all()

# Set to MIT mode
arm.set_mode('mit')

# Move joint
arm.move_joint_mit(motor_id=1, position=0.5, kp=10.0, kd=1.0)

# Check status
arm.show_motor_status()

# Stop
arm.disable_all()
```

### Dual Arm Control

```python
from openarmx_driver import Robot

# Create dual-arm robot
robot = Robot(left_can_channel='can0', right_can_channel='can1')

# Enable all motors
robot.enable_all()

# Set mode
robot.set_mode_all('mit')

# Symmetrical motion of left and right arms
robot.move_joints_mit(
    left_positions=[0.1, 0.2, 0.3, 0, 0, 0, 0],
    right_positions=[0.1, 0.2, 0.3, 0, 0, 0, 0],
    kp=10.0, kd=1.0
)

# Check status
robot.show_all_status()

# Stop
robot.disable_all()
```

## Supported Control Modes

- **MIT Mode**: Hybrid position/velocity/torque control (with PD gains)


## License

This project is licensed under the OpenArmX Research and Education License.
Commercial use requires a separate license.

---

## 📞 Contact Us

### Chengdu Changshu Robotics Co., Ltd.

| Contact | Information |
|---------|-------------|
| 📧 Email | openarmrobot@gmail.com |
| 📱 Phone/WeChat | +86-17746530375 |
| 🌐 Website | https://openarmx.com/ |
| 📍 Address | No.11 Xinye 8th Street, West Zone, Tianjin Economic-Technological Development Area, Huacheng Machinery Factory |
| 👤 Contact Person | Mr. Wang |

---

**Copyright © 2025 Chengdu Changshu Robotics Co., Ltd. All Rights Reserved.**
