A Python SDK for kuavo humanoid robot.
Project description
Kuavo Humanoid SDK
A comprehensive Python SDK for controlling Kuavo humanoid robots. This SDK provides interfaces for robot state management, arm and head control, and end-effector operations. It is designed to work with ROS (Robot Operating System) environments.
Warning: This SDK currently only supports ROS1. ROS2 support is not available.
Features
-
Robot State Management
- IMU data (acceleration, angular velocity, euler angles)
- Joint/motor states (position, velocity, torque)
- Torso state (position, orientation, velocity)
- Odometry information
- End-effector states:
- Gripper: position, velocity, torque, grasp status
- Dexterous hand: position, velocity, torque
- End-effector position and orientation
- Motion states: stand, walk, step_control, trot
-
Motion Control
- Arm Control
- Joint position control
- End-effector 6D control via inverse kinematics
- Forward kinematics (FK) for computing end-effector pose
- Keyframe sequence control for complex motions
- End-effector Control
- Gripper control (position control with configurable velocity and torque)
- Dexterous hand control
- Position control
- Pre-defined hand gestures (OK, 666, fist, etc.)
- Head Control
- Position control
- Torso Control
- Height control (squatting)
- Forward/backward tilt control
- Dynamic Motion Control
- Stance
- Trot
- Walking (xy and yaw velocity control)
- Stepping (gait switching)
- Arm Control
-
Robot Basic Information
- Robot type (kuavo)
- Robot version
- End-effector type
- Joint names
- Total degrees of freedom (28)
- Arm degrees of freedom (7 per arm)
- Head degrees of freedom (2)
- Leg degrees of freedom (12)
Installation
To install Kuavo Humanoid SDK, you can use pip:
pip install kuavo-humanoid-sdk
For development installation (editable mode), use:
pip install -e .
Package Information
You can check the package information using pip:
pip show kuavo-humanoid-sdk
Quick Start
Here's a simple example to get started with Kuavo Humanoid SDK:
Warning: Before running any code, make sure to start the robot first by executing either:
- For simulation:
roslaunch humanoid_controllers load_kuavo_mujoco_sim.launch(Example command)- For real robot:
roslaunch humanoid_controllers load_kuavo_real.launch(Example command)
# Copyright (c) 2025 Leju Robotics. Licensed under the MIT License.
import time
from kuavo_humanoid_sdk import KuavoSDK, KuavoRobot
def main():
if not KuavoSDK().Init(): # Init! !!! IMPORTANT !!!
print("Init KuavoSDK failed, exit!")
exit(1)
robot = KuavoRobot()
""" arm reset """
print("Switching to arm reset mode...")
robot.arm_reset()
""" stance """
print("Switching to stance mode...")
robot.stance()
""" trot """
print("Switching to trot mode...")
robot.trot()
""" walk forward """
print("Starting forward walk...")
duration = 4.0 # seconds
speed = 0.3 # m/s
start_time = time.time()
while (time.time() - start_time < duration):
robot.walk(linear_x=speed, linear_y=0.0, angular_z=0.0)
time.sleep(0.1) # Small sleep to prevent busy loop
if __name__ == "__main__":
main()
Examples
WARNING
Before running any code examples, make sure to start the robot first by executing either:
- For simulation:
roslaunch humanoid_controllers load_kuavo_mujoco_sim.launch(Example command) - For real robot:
roslaunch humanoid_controllers load_kuavo_real.launch(Example command)
Robot Info
Examples showing how to get basic robot information.
Basic Robot Control
A basic example showing how to initialize the SDK and control the robot’s movement.
End Effector Control
LejuClaw Gripper
Examples demonstrating how to control the LejuClaw gripper end effector, including position, velocity and torque control.
QiangNao DexHand
Examples showing how to control the QiangNao DexHand, a dexterous robotic hand with multiple degrees of freedom for complex manipulation tasks.
Arm Control
Examples showing arm trajectory control and target pose control.
Forward and Inverse Kinematics
Examples demonstrating how to use forward kinematics (FK) to compute end-effector positions from joint angles, and inverse kinematics (IK) to calculate joint angles needed to achieve desired end-effector poses.
Head Control
Examples showing how to control the robot’s head movements, including nodding (pitch) and shaking (yaw) motions.
Step-by-Step Control
Examples showing how to control the robot’s movements step by step, including individual foot placement and trajectory control.
Docs
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact & Support
For any questions, support, or bug reports, please contact:
- Email: edu@lejurobot.com
- Website: https://gitee.com/leju-robot/kuavo-ros-opensource/
- Source Code: https://gitee.com/leju-robot/kuavo-ros-opensource/
- Issue Tracker: https://gitee.com/leju-robot/kuavo-ros-opensource/issues
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 kuavo_humanoid_sdk-0.1.0.tar.gz.
File metadata
- Download URL: kuavo_humanoid_sdk-0.1.0.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/24.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/1.26.16 tqdm/4.67.0 importlib-metadata/8.5.0 keyring/18.0.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd3db12a2aaa92b47f298a75c50d5bef62bf8fcebf79cc6dd2f9db5e55f9b3c7
|
|
| MD5 |
1fef501f992b2ef1e70d4af2401eeb67
|
|
| BLAKE2b-256 |
6a35cb832c58cfebda4f5ab516fe9c88823920acd2c606734613a6677b3187e1
|
File details
Details for the file kuavo_humanoid_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kuavo_humanoid_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 44.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/24.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/1.26.16 tqdm/4.67.0 importlib-metadata/8.5.0 keyring/18.0.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c7bceb2db265bc8386e1c0717a0b22c34d865aad51f204f1dc4cd2de34e8930
|
|
| MD5 |
c216307285424d9d415e56c955ba44ba
|
|
| BLAKE2b-256 |
5b1f34bab9609dcb54c821f31eb66adff85ac786b846c4873a84f46a39e05dd4
|