kuavo-humanoid-sdk 1.1.2a924__tar.gz → 1.1.3a1239__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/PKG-INFO +1 -1
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/README.md +1 -1
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/common/global_config.py +15 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/common/websocket_kuavo_sdk.py +23 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/interfaces/data_types.py +46 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/__init__.py +3 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/core/audio.py +32 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/core.py +17 -6
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +93 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/ros/control.py +645 -19
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +142 -4
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/core/ros/state.py +694 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +158 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +276 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +229 -1
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +6 -2
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/leju_claw.py +6 -2
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/robot.py +43 -22
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/robot_audio.py +39 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/robot_info.py +7 -2
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/robot_state.py +6 -2
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/robot_tool.py +62 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/kuavo/robot_vision.py +90 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +306 -0
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +437 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +9 -0
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_armHandPose.py +2 -2
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_handPose.py +2 -2
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_ikSolveError.py +13 -13
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_ikSolveParam.py +2 -2
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_robotArmQVVD.py +2 -2
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_twoArmHandPose.py +13 -13
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/msg/_twoArmHandPoseCmd.py +15 -15
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +270 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +5 -0
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/srv/_changeArmCtrlModeKuavo.py +5 -5
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/srv/_fkSrv.py +13 -13
- kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +274 -0
- {kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik → kuavo_humanoid_sdk-1.1.3a1239/kuavo_humanoid_sdk/msg/kuavo_msgs}/srv/_twoArmHandPoseCmdSrv.py +23 -23
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk.egg-info/PKG-INFO +1 -1
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +23 -15
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk.egg-info/requires.txt +1 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/setup.py +1 -0
- kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/kuavo/core/ros/state.py +0 -380
- kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik/msg/__init__.py +0 -9
- kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_headBodyPose.py +0 -145
- kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_robotHandPosition.py +0 -225
- kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik/srv/__init__.py +0 -4
- kuavo_humanoid_sdk-1.1.2a924/kuavo_humanoid_sdk/msg/motion_capture_ik/srv/_changeArmCtrlMode.py +0 -275
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/common/logger.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/robot_arm.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/robot_head.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_questJoySticks.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
- {kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/setup.cfg +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
class GlobalConfig:
|
|
3
|
+
|
|
4
|
+
_instance = None
|
|
5
|
+
|
|
6
|
+
use_websocket = False
|
|
7
|
+
websocket_host = '127.0.0.1'
|
|
8
|
+
websocket_port = 9090
|
|
9
|
+
|
|
10
|
+
def __new__(cls, *args, **kwargs):
|
|
11
|
+
if cls._instance is None:
|
|
12
|
+
cls._instance = super().__new__(cls)
|
|
13
|
+
return cls._instance
|
|
14
|
+
|
|
15
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import roslibpy
|
|
2
|
+
from kuavo_humanoid_sdk.common.global_config import GlobalConfig
|
|
3
|
+
|
|
4
|
+
class WebSocketKuavoSDK:
|
|
5
|
+
|
|
6
|
+
_instance = None
|
|
7
|
+
_initialized = False
|
|
8
|
+
|
|
9
|
+
def __new__(cls, *args, **kwargs):
|
|
10
|
+
if cls._instance is None:
|
|
11
|
+
cls._instance = super().__new__(cls)
|
|
12
|
+
return cls._instance
|
|
13
|
+
|
|
14
|
+
def __init__(self):
|
|
15
|
+
if not self._initialized:
|
|
16
|
+
self._initialized = True
|
|
17
|
+
self.client = roslibpy.Ros(host=GlobalConfig.websocket_host, port=GlobalConfig.websocket_port)
|
|
18
|
+
self.client.run(timeout=GlobalConfig.websocket_timeout)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def __del__(self):
|
|
22
|
+
self.client.terminate()
|
|
23
|
+
self.instance = None
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from typing import Tuple
|
|
2
2
|
from enum import Enum
|
|
3
3
|
from dataclasses import dataclass
|
|
4
|
+
import numpy as np
|
|
4
5
|
|
|
5
6
|
@dataclass
|
|
6
7
|
class KuavoJointData:
|
|
@@ -143,3 +144,48 @@ class KuavoDexHandTouchState:
|
|
|
143
144
|
status: int # 传感器状态
|
|
144
145
|
# 5 fingers
|
|
145
146
|
data: Tuple[KuavoTouchState, KuavoTouchState, KuavoTouchState, KuavoTouchState, KuavoTouchState]
|
|
147
|
+
|
|
148
|
+
@dataclass
|
|
149
|
+
class AprilTagData:
|
|
150
|
+
"""Represents detected AprilTag information with pose estimation.
|
|
151
|
+
|
|
152
|
+
Attributes:
|
|
153
|
+
id (list): List of detected AprilTag IDs (integers)
|
|
154
|
+
size (list): List of tag physical sizes in meters (floats)
|
|
155
|
+
pose (list): List of PoseQuaternion objects representing tag poses
|
|
156
|
+
"""
|
|
157
|
+
id: list
|
|
158
|
+
size: list
|
|
159
|
+
pose: list
|
|
160
|
+
|
|
161
|
+
@dataclass
|
|
162
|
+
class HomogeneousMatrix:
|
|
163
|
+
"""4x4 homogeneous transformation matrix for 3D transformations.
|
|
164
|
+
|
|
165
|
+
Represents both rotation and translation in 3D space. Can be used for
|
|
166
|
+
coordinate frame transformations and pose composition.
|
|
167
|
+
|
|
168
|
+
Attributes:
|
|
169
|
+
matrix (np.ndarray): 4x4 numpy array of shape (4, 4) containing::
|
|
170
|
+
|
|
171
|
+
[[R, t],
|
|
172
|
+
[0, 1]]
|
|
173
|
+
|
|
174
|
+
where R is 3x3 rotation matrix and t is 3x1 translation
|
|
175
|
+
"""
|
|
176
|
+
matrix: np.ndarray # Shape (4,4) homogeneous transformation matrix
|
|
177
|
+
|
|
178
|
+
@dataclass
|
|
179
|
+
class PoseQuaternion:
|
|
180
|
+
"""3D pose representation using position and quaternion orientation.
|
|
181
|
+
|
|
182
|
+
Provides a singularity-free orientation representation. Commonly used
|
|
183
|
+
in robotics for smooth interpolation between orientations.
|
|
184
|
+
|
|
185
|
+
Attributes:
|
|
186
|
+
position (Tuple[float, float, float]): XYZ coordinates in meters
|
|
187
|
+
orientation (Tuple[float, float, float, float]): Unit quaternion in
|
|
188
|
+
(x, y, z, w) format following ROS convention
|
|
189
|
+
"""
|
|
190
|
+
position: Tuple[float, float, float]
|
|
191
|
+
orientation: Tuple[float, float, float, float]
|
{kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/__init__.py
RENAMED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
from .robot import KuavoSDK, KuavoRobot
|
|
2
2
|
from .robot_info import KuavoRobotInfo
|
|
3
3
|
from .robot_state import KuavoRobotState
|
|
4
|
+
from .robot_vision import KuavoRobotVision
|
|
5
|
+
from .robot_tool import KuavoRobotTools
|
|
4
6
|
from .robot_arm import KuavoRobotArm
|
|
5
7
|
from .robot_head import KuavoRobotHead
|
|
8
|
+
from .robot_audio import KuavoRobotAudio
|
|
6
9
|
from .dexterous_hand import DexterousHand, TouchDexterousHand
|
|
7
10
|
from .leju_claw import LejuClaw
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import time
|
|
2
|
+
import math
|
|
3
|
+
import threading
|
|
4
|
+
import numpy as np
|
|
5
|
+
from typing import Tuple
|
|
6
|
+
from transitions import Machine, State
|
|
7
|
+
|
|
8
|
+
from kuavo_humanoid_sdk.common.logger import SDKLogger
|
|
9
|
+
from kuavo_humanoid_sdk.kuavo.core.ros.audio import Audio
|
|
10
|
+
|
|
11
|
+
class KuavoRobotAudioCore:
|
|
12
|
+
def __init__(self):
|
|
13
|
+
self.robot_audio = Audio()
|
|
14
|
+
|
|
15
|
+
def play_audio(self, music_number: str, volume: float = 0.5, speed: float = 1.0) -> bool:
|
|
16
|
+
"""
|
|
17
|
+
play music
|
|
18
|
+
"""
|
|
19
|
+
return self.robot_audio.play_audio(music_number, volume, speed)
|
|
20
|
+
|
|
21
|
+
def stop_music(self) -> bool:
|
|
22
|
+
"""
|
|
23
|
+
stop music
|
|
24
|
+
"""
|
|
25
|
+
return self.robot_audio.stop_audio()
|
|
26
|
+
|
|
27
|
+
def text_to_speech(self, text: str, volume: float = 0.5) -> bool:
|
|
28
|
+
"""
|
|
29
|
+
text to speech
|
|
30
|
+
"""
|
|
31
|
+
return self.robot_audio.text_to_speech(text, volume)
|
|
32
|
+
|
{kuavo_humanoid_sdk-1.1.2a924 → kuavo_humanoid_sdk-1.1.3a1239}/kuavo_humanoid_sdk/kuavo/core/core.py
RENAMED
|
@@ -19,18 +19,19 @@ Each state has an entry callback that handles initialization when entering that
|
|
|
19
19
|
|
|
20
20
|
import time
|
|
21
21
|
import math
|
|
22
|
-
import rospy
|
|
23
22
|
import threading
|
|
24
23
|
import numpy as np
|
|
25
24
|
from typing import Tuple
|
|
26
25
|
from transitions import Machine, State
|
|
27
26
|
|
|
28
27
|
from kuavo_humanoid_sdk.interfaces.data_types import KuavoArmCtrlMode, KuavoIKParams, KuavoPose
|
|
29
|
-
from kuavo_humanoid_sdk.kuavo.core.ros.control import KuavoRobotControl
|
|
30
|
-
from kuavo_humanoid_sdk.kuavo.core.ros.
|
|
28
|
+
from kuavo_humanoid_sdk.kuavo.core.ros.control import KuavoRobotControl, KuavoRobotControlWebsocket
|
|
29
|
+
from kuavo_humanoid_sdk.kuavo.core.ros.vision import KuavoRobotVisionCore
|
|
30
|
+
from kuavo_humanoid_sdk.kuavo.core.ros.tools import KuavoRobotToolsCore
|
|
31
|
+
from kuavo_humanoid_sdk.kuavo.core.ros.state import KuavoRobotStateCore, KuavoRobotStateCoreWebsocket
|
|
31
32
|
from kuavo_humanoid_sdk.kuavo.core.ros.param import make_robot_param
|
|
32
33
|
from kuavo_humanoid_sdk.common.logger import SDKLogger
|
|
33
|
-
|
|
34
|
+
from kuavo_humanoid_sdk.common.global_config import GlobalConfig
|
|
34
35
|
# Define robot states
|
|
35
36
|
ROBOT_STATES = [
|
|
36
37
|
State(name='stance', on_enter=['_on_enter_stance']),
|
|
@@ -65,9 +66,19 @@ class KuavoRobotCore:
|
|
|
65
66
|
send_event=True
|
|
66
67
|
)
|
|
67
68
|
# robot control
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
if GlobalConfig.use_websocket:
|
|
70
|
+
self._control = KuavoRobotControlWebsocket()
|
|
71
|
+
self._rb_state = KuavoRobotStateCoreWebsocket()
|
|
72
|
+
else:
|
|
73
|
+
self._control = KuavoRobotControl()
|
|
74
|
+
self._rb_state = KuavoRobotStateCore()
|
|
75
|
+
# robot vision
|
|
76
|
+
self._robot_vision = KuavoRobotVisionCore()
|
|
77
|
+
# robot ros tf
|
|
78
|
+
self._robot_tf_tool = KuavoRobotToolsCore()
|
|
79
|
+
|
|
70
80
|
self._arm_ctrl_mode = KuavoArmCtrlMode.AutoSwing
|
|
81
|
+
|
|
71
82
|
# register gait changed callback
|
|
72
83
|
self._rb_state.register_gait_changed_callback(self._humanoid_gait_changed)
|
|
73
84
|
# initialized
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
|
|
4
|
+
from kuavo_humanoid_sdk.common.logger import SDKLogger
|
|
5
|
+
from kuavo_humanoid_sdk.kuavo.core.core import KuavoRobotCore
|
|
6
|
+
|
|
7
|
+
try:
|
|
8
|
+
import rospy
|
|
9
|
+
from std_msgs.msg import Bool
|
|
10
|
+
from kuavo_humanoid_sdk.msg.kuavo_msgs.srv import playmusic, playmusicRequest
|
|
11
|
+
from kuavo_humanoid_sdk.msg.kuavo_msgs.srv import SpeechSynthesis, SpeechSynthesisRequest
|
|
12
|
+
except ImportError:
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
class Audio:
|
|
16
|
+
"""Audio system interface for controlling audio playback functionality of Kuavo humanoid robot.
|
|
17
|
+
|
|
18
|
+
Provides functionality to play music files.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self):
|
|
22
|
+
"""Initialize the audio system."""
|
|
23
|
+
self._audio_stop_publisher = rospy.Publisher('stop_music', Bool, queue_size=10)
|
|
24
|
+
rospy.sleep(0.5) # Wait for publisher initialization
|
|
25
|
+
def play_audio(self, file_name: str,volume: float = 0.5,speed: float = 1.0) -> bool:
|
|
26
|
+
"""Play the specified audio file.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
file_name (str): Name of the audio file to play
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
bool: True if the play request was successfully sent, False otherwise
|
|
33
|
+
"""
|
|
34
|
+
try:
|
|
35
|
+
# Wait for service availability
|
|
36
|
+
rospy.wait_for_service('play_music', timeout=2.0)
|
|
37
|
+
# Create service client
|
|
38
|
+
play_music_service = rospy.ServiceProxy('play_music', playmusic)
|
|
39
|
+
# Call service
|
|
40
|
+
request = playmusicRequest()
|
|
41
|
+
request.music_number = file_name
|
|
42
|
+
volume = min(max(volume , 0), 1.0)
|
|
43
|
+
request.volume = volume
|
|
44
|
+
request.speed = speed
|
|
45
|
+
response = play_music_service(request)
|
|
46
|
+
SDKLogger.info(f"[Robot Audio] Requested to play audio file: {file_name}")
|
|
47
|
+
return True
|
|
48
|
+
except rospy.ROSException as e:
|
|
49
|
+
SDKLogger.error(f"[Robot Audio] Audio playback service unavailable: {str(e)}")
|
|
50
|
+
return False
|
|
51
|
+
except Exception as e:
|
|
52
|
+
SDKLogger.error(f"[Robot Audio] Failed to play audio file: {str(e)}")
|
|
53
|
+
return False
|
|
54
|
+
|
|
55
|
+
def stop_audio(self):
|
|
56
|
+
"""Stop the currently playing audio."""
|
|
57
|
+
try:
|
|
58
|
+
msg = Bool()
|
|
59
|
+
msg.data = True
|
|
60
|
+
self._audio_stop_publisher.publish(msg)
|
|
61
|
+
SDKLogger.info("[Robot Audio] Requested to stop audio playback")
|
|
62
|
+
return True
|
|
63
|
+
except Exception as e:
|
|
64
|
+
SDKLogger.error(f"[Robot Audio] Failed to stop audio playback: {str(e)}")
|
|
65
|
+
return False
|
|
66
|
+
|
|
67
|
+
def text_to_speech(self, text: str,volume: float = 0.5) -> bool:
|
|
68
|
+
"""Synthesize and play the specified text.
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
text (str): Text to be played
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
bool: True if the play request was successfully sent, False otherwise
|
|
75
|
+
"""
|
|
76
|
+
try:
|
|
77
|
+
# Wait for service availability
|
|
78
|
+
rospy.wait_for_service('play_music', timeout=2.0)
|
|
79
|
+
# Create service client
|
|
80
|
+
play_music_service = rospy.ServiceProxy('speech_synthesis', SpeechSynthesis)
|
|
81
|
+
# Call service
|
|
82
|
+
request = SpeechSynthesisRequest()
|
|
83
|
+
request.data = text
|
|
84
|
+
request.volume = volume
|
|
85
|
+
response = play_music_service(request)
|
|
86
|
+
SDKLogger.info(f"[Robot Audio] Requested to play audio text: {text}")
|
|
87
|
+
return True
|
|
88
|
+
except rospy.ROSException as e:
|
|
89
|
+
SDKLogger.error(f"[Robot Audio] Audio playback service unavailable: {str(e)}")
|
|
90
|
+
return False
|
|
91
|
+
except Exception as e:
|
|
92
|
+
SDKLogger.error(f"[Robot Audio] Failed to play audio text: {str(e)}")
|
|
93
|
+
return False
|