A comprehensive Python SDK for AlphaDog robotic dog control, providing intuitive programming interfaces for robot motion control, parameter adjustment, and real-time interaction.
- 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
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 from PyPI
pip install robotsdk
# Or install from source
git clone https://github.com/robotsdk/robotsdk.git
cd robotsdk
pip install -e .
- 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
from robotsdk import Dog
import time
# Connect to the robot dog
with Dog() as dog:
print("Connected to robotsdk!")
# 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})
from robotsdk 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
The SDK provides comprehensive parameter control capabilities:
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)
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)
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)
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
)
The examples
directory contains comprehensive demonstrations:
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
# 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
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
Dog
: Main robot control interfaceUserMode
: Robot operation modes (IDLE, TROT, etc.)DogController
: Low-level parameter controlROSClient
: ROS communication handler
# 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)
-
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
Enable debug logging for troubleshooting:
import logging
logging.basicConfig(level=logging.DEBUG)
from robotsdk import Dog
# Debug information will be printed
Issues and pull requests are welcome. For major changes, please open an issue first to discuss proposed changes.
This project is licensed under the MIT License - see the LICENSE
file for details.
For questions or suggestions:
- Submit GitHub Issues
- Email: towardsrwby@gmail.com