A Python library for controlling AlphaDog robotic dogs
Project description
3robotics SDK
A comprehensive Python SDK for AlphaDog robotic dog control, providing intuitive programming interfaces for robot motion control, parameter adjustment, and real-time interaction.
System Requirements
⚠️ Important: This SDK requires Python 3.9 specifically
- Python Version: Python 3.9 (Required - other versions are not supported)
- Operating System: Windows, macOS, Linux
- Network: Robot and computer must be on the same network
Installation
Prerequisites
First, ensure you have Python 3.9 installed:
# Check Python version
python --version # Should show Python 3.9.x
# If you don't have Python 3.9, install it from python.org
# Quick version check using our tool
python check_python_version.py
Install 3robotics SDK
# Install from PyPI
pip install 3robotics
# Or install from source
git clone https://github.com/3robotics/3robotics.git
cd 3robotics
pip install -e .
Quick Start
- Network Setup: Ensure your computer is on the same network as the robotic dog
- IP Configuration: Note the IP address of the robotic dog (default: 10.10.10.10)
- Python Environment: Verify Python 3.9 is active in your environment
Basic Example
from 3robotics import Dog
import time
# Connect to the robot dog
with Dog() as dog:
print("Connected to 3robotics!")
# Adjust standing height
dog.body_height = 0.25
time.sleep(2)
# Move forward slowly
dog.vx = 0.2
time.sleep(3)
# Stop movement
dog.vx = 0.0
# Restore default height
dog.set_parameters({'body_height': 0.23})
Advanced Connection Options
from 3robotics import Dog
# Connect with custom IP
dog = Dog(host="192.168.1.100")
# Connect with custom port
dog = Dog(host="10.10.10.10", port=9090)
# Use context manager for automatic cleanup
with Dog(host="10.10.10.10") as dog:
# Your robot control code here
pass
Parameter Control Features
The SDK provides comprehensive parameter control capabilities:
1. Basic Motion Parameters
dog.vx = 0.2 # Forward velocity (-1.0 to 1.0)
dog.vy = 0.1 # Lateral velocity (-1.0 to 1.0)
dog.wz = 0.1 # Rotational velocity (-1.0 to 1.0)
2. Posture Control
dog.roll = 0.1 # Roll angle (-0.5 to 0.5)
dog.pitch = 0.1 # Pitch angle (-0.5 to 0.5)
dog.yaw = 0.1 # Yaw angle (-0.5 to 0.5)
dog.body_height = 0.25 # Body height (0.1 to 0.35)
3. Gait Parameters
dog.foot_height = 0.08 # Foot lift height (0.0 to 0.15)
dog.swing_duration = 0.3 # Swing period (0.1 to 1.0)
dog.friction = 0.6 # Friction coefficient (0.1 to 1.0)
4. Advanced Control Features
Combined parameter settings:
# Set gait parameters
dog.set_gait_params(
friction=0.6, # Friction coefficient
scale_x=1.2, # Support surface X scaling
scale_y=1.0 # Support surface Y scaling
)
# Set motion parameters
dog.set_motion_params(
swaying_duration=2.0, # Swaying period
jump_distance=0.3, # Jump distance
jump_angle=0.1 # Jump rotation angle
)
# Set control parameters
dog.set_control_params(
velocity_decay=0.8, # Velocity decay
collision_protect=1, # Collision protection
decelerate_time=2.0, # Deceleration delay
decelerate_duration=1.0 # Deceleration duration
)
Example Programs
The examples directory contains comprehensive demonstrations:
Available Examples
demo_basic_movement.py- Basic motion control and posture adjustmentdemo_advanced_movement.py- Advanced motion parameters and gait controldemo_modes.py- User mode switching and state managementkeyboard_control.py- Real-time keyboard control interfacetest.py- System testing and validation
Running Examples
# Navigate to the examples directory
cd examples
# Run basic movement demo
python demo_basic_movement.py
# Run keyboard control (requires pynput)
pip install pynput
python keyboard_control.py
# Run advanced movement demo
python demo_advanced_movement.py
Keyboard Control
The keyboard control example provides real-time control:
- W/S: Forward/Backward movement
- A/D: Left/Right movement
- Q/E: Rotate left/right
- R/F: Increase/Decrease body height
- SPACE: Emergency stop
- ESC: Exit program
API Reference
Core Classes
Dog: Main robot control interfaceUserMode: Robot operation modes (IDLE, TROT, etc.)DogController: Low-level parameter controlROSClient: ROS communication handler
Key Methods
# Robot connection
dog = Dog(host="10.10.10.10", port=9090)
dog.connect()
dog.disconnect()
# Parameter control
dog.set_parameters(params_dict)
dog.set_gait_params(friction=0.6, scale_x=1.2)
dog.set_motion_params(jump_distance=0.3)
dog.set_control_params(velocity_decay=0.8)
# State queries
current_state = dog.get_state()
position = (dog.x, dog.y, dog.z)
Troubleshooting
Common Issues
-
Connection Failed
- Check network connectivity
- Verify robot IP address
- Ensure robot is powered on and ready
-
Python Version Error
- This SDK requires Python 3.9 specifically
- Install Python 3.9 from python.org
-
Import Errors
- Install required dependencies:
pip install -r requirements.txt - For keyboard control:
pip install pynput
- Install required dependencies:
-
Performance Issues
- Reduce control frequency if network is slow
- Check robot battery level
- Minimize network interference
Debug Mode
Enable debug logging for troubleshooting:
import logging
logging.basicConfig(level=logging.DEBUG)
from 3robotics import Dog
# Debug information will be printed
Contributing
Issues and pull requests are welcome. For major changes, please open an issue first to discuss proposed changes.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
For questions or suggestions:
- Submit GitHub Issues
- Email: towardsrwby@gmail.com
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 3robotics-0.0.1.tar.gz.
File metadata
- Download URL: 3robotics-0.0.1.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7134e2f210ca2803b3573f2e8703e84dce9f13fb80247158f71b35bc27c7bc58
|
|
| MD5 |
1b4184839f4329bc1d4a4a8d49bbb7fc
|
|
| BLAKE2b-256 |
e15e1cff13169ee2791962f9ce20498728986d7cdd8ce4318585acc2b730fa6c
|
File details
Details for the file 3robotics-0.0.1-py3-none-any.whl.
File metadata
- Download URL: 3robotics-0.0.1-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38361e89679c9edcdfe6f3e5cf23b4c28fe2bef0eca94735951dd1b119cb6010
|
|
| MD5 |
5982fcb8fbd4f24bd78821aa63c7e1b0
|
|
| BLAKE2b-256 |
f42bb3b1bb3766cb69aa7efb2c7da18c66063c05514a0d18e7fa65bdffaf0088
|