kuavo-humanoid-sdk 1.2.1b3302__tar.gz → 1.2.1b3321__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.
Potentially problematic release.
This version of kuavo-humanoid-sdk might be problematic. Click here for more details.
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/PKG-INFO +1 -1
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot.py +156 -71
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk.egg-info/PKG-INFO +1 -1
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/README.md +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/common/logger.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/interfaces/data_types.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/audio.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/core.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/llm_doubao.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/microphone.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/navigation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/camera.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/control.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/microphone.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/navigation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/observation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/state.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/core/sdk_deprecated.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/demo_climbstair.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/leju_claw.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/logger_client.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_arm.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_blockly.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_climbstair.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_head.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_info.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_microphone.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_navigation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_observation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_speech.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_state.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_tool.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot_vision.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/common/data_type.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/common/events/base_event.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/common/robot_sdk.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/case.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/strategy.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/utils/logger_setup.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo_strategy_v2/utils/utils.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AudioReceiverData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_FTsensorData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_JoySticks.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_MmDetectionMsg.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TaskPoint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armCollisionCheckInfo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPoseFree.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6D.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6DTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVision.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVisionArray.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses6D.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_kuavoModeSchedule.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfoList.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotBodyMatrices.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_tagDataArray.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmdFree.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseFree.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_CreatePath.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetAllMaps.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetCurrentMap.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetTargetPartPoseInCamera.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_InitialPoseWithTaskPoint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_LoadMap.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_NavigateToTaskPoint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetInitialPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode_free.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_TaskPointOperation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_adjustZeroPoint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPose6DTargetTrajectoriesSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorZeroPoints.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdFreeSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk.egg-info/requires.txt +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/setup.cfg +0 -0
- {kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/setup.py +0 -0
{kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/robot.py
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# coding: utf-8
|
|
3
|
+
import math
|
|
3
4
|
from kuavo_humanoid_sdk.kuavo.core.ros_env import KuavoROSEnv
|
|
4
5
|
from kuavo_humanoid_sdk.interfaces.robot import RobotBase
|
|
5
6
|
from kuavo_humanoid_sdk.common.logger import SDKLogger, disable_sdk_logging
|
|
6
|
-
from kuavo_humanoid_sdk.interfaces.data_types import KuavoPose, KuavoIKParams, KuavoManipulationMpcFrame, KuavoManipulationMpcCtrlMode, KuavoManipulationMpcControlFlow
|
|
7
|
+
from kuavo_humanoid_sdk.interfaces.data_types import KuavoPose, KuavoIKParams, KuavoManipulationMpcFrame, KuavoManipulationMpcCtrlMode, KuavoManipulationMpcControlFlow, KuavoArmCtrlMode
|
|
7
8
|
from kuavo_humanoid_sdk.kuavo.core.core import KuavoRobotCore
|
|
9
|
+
from kuavo_humanoid_sdk.kuavo.core.sdk_deprecated import sdk_deprecated
|
|
8
10
|
|
|
9
11
|
from typing import Tuple
|
|
10
12
|
from kuavo_humanoid_sdk.kuavo.robot_info import KuavoRobotInfo
|
|
11
|
-
from kuavo_humanoid_sdk.kuavo.robot_arm import KuavoRobotArm
|
|
12
|
-
from kuavo_humanoid_sdk.kuavo.robot_head import KuavoRobotHead
|
|
13
13
|
|
|
14
14
|
"""
|
|
15
15
|
Kuavo SDK - Kuavo机器人控制的Python接口
|
|
@@ -93,8 +93,6 @@ class KuavoRobot(RobotBase):
|
|
|
93
93
|
super().__init__(robot_type="kuavo")
|
|
94
94
|
|
|
95
95
|
self._robot_info = KuavoRobotInfo()
|
|
96
|
-
self._robot_arm = KuavoRobotArm()
|
|
97
|
-
self._robot_head = KuavoRobotHead()
|
|
98
96
|
self._kuavo_core = KuavoRobotCore()
|
|
99
97
|
def stance(self)->bool:
|
|
100
98
|
"""使机器人进入'stance'站立模式。
|
|
@@ -271,161 +269,228 @@ class KuavoRobot(RobotBase):
|
|
|
271
269
|
|
|
272
270
|
def control_head(self, yaw: float, pitch: float)->bool:
|
|
273
271
|
"""控制机器人的头部关节运动。
|
|
274
|
-
|
|
272
|
+
|
|
275
273
|
Args:
|
|
276
274
|
yaw (float): 头部的偏航角,单位弧度,范围[-1.396, 1.396](-80到80度)。
|
|
277
275
|
pitch (float): 头部的俯仰角,单位弧度,范围[-0.436, 0.436](-25到25度)。
|
|
278
|
-
|
|
276
|
+
|
|
279
277
|
Returns:
|
|
280
278
|
bool: 如果头部控制成功返回True,否则返回False。
|
|
281
279
|
"""
|
|
282
|
-
|
|
280
|
+
# 发送开始控制头部的日志
|
|
281
|
+
self._kuavo_core.logger.send_log(f"开始控制头部运动: yaw={yaw:.3f}, pitch={pitch:.3f}")
|
|
282
|
+
|
|
283
|
+
limited_yaw = yaw
|
|
284
|
+
limited_pitch = pitch
|
|
285
|
+
|
|
286
|
+
# 原有的代码逻辑保持不变
|
|
287
|
+
# Check yaw limits (-80 to 80 degrees)
|
|
288
|
+
if yaw < -math.pi*4/9 or yaw > math.pi*4/9: # -80 to 80 degrees in radians
|
|
289
|
+
SDKLogger.warn(f"[Robot] yaw {yaw} exceeds limit [-{math.pi*4/9:.3f}, {math.pi*4/9:.3f}] radians (-80 to 80 degrees), will be limited")
|
|
290
|
+
limited_yaw = min(math.pi*4/9, max(-math.pi*4/9, yaw))
|
|
291
|
+
self._kuavo_core.logger.send_log(f"yaw值超限,已限制为: {limited_yaw:.3f}")
|
|
292
|
+
|
|
293
|
+
# Check pitch limits (-25 to 25 degrees)
|
|
294
|
+
if pitch < -math.pi/7.2 - 0.001 or pitch > math.pi/7.2 + 0.001: # -25 to 25 degrees in radians
|
|
295
|
+
SDKLogger.warn(f"[Robot] pitch {pitch} exceeds limit [-{math.pi/7.2:.3f}, {math.pi/7.2:.3f}] radians (-25 to 25 degrees), will be limited")
|
|
296
|
+
limited_pitch = min(math.pi/7.2, max(-math.pi/7.2, pitch))
|
|
297
|
+
self._kuavo_core.logger.send_log(f"pitch值超限,已限制为: {limited_pitch:.3f}")
|
|
298
|
+
|
|
299
|
+
# 执行头部控制
|
|
300
|
+
result = self._kuavo_core.control_robot_head(yaw=limited_yaw, pitch=limited_pitch)
|
|
301
|
+
|
|
302
|
+
# 发送执行结果日志
|
|
303
|
+
self._kuavo_core.logger.send_log(f"头部控制完成: yaw={limited_yaw:.3f}, pitch={limited_pitch:.3f}, 结果={'成功' if result else '失败'}")
|
|
304
|
+
|
|
305
|
+
return result
|
|
283
306
|
|
|
284
307
|
def enable_head_tracking(self, target_id: int)->bool:
|
|
285
|
-
"""
|
|
286
|
-
|
|
308
|
+
"""启用头部跟踪功能,在机器人运动过程中,头部将始终追踪指定的 Apriltag ID
|
|
309
|
+
|
|
310
|
+
Args:
|
|
311
|
+
target_id (int): 目标ID。
|
|
312
|
+
|
|
313
|
+
Returns:
|
|
314
|
+
bool: 如果启用成功返回True,否则返回False。
|
|
315
|
+
"""
|
|
316
|
+
return self._kuavo_core.enable_head_tracking(target_id)
|
|
287
317
|
|
|
288
318
|
def disable_head_tracking(self)->bool:
|
|
289
|
-
"""
|
|
290
|
-
|
|
319
|
+
"""禁用头部跟踪功能。
|
|
320
|
+
|
|
321
|
+
Returns:
|
|
322
|
+
bool: 如果禁用成功返回True,否则返回False。
|
|
323
|
+
"""
|
|
324
|
+
return self._kuavo_core.disable_head_tracking()
|
|
291
325
|
|
|
292
326
|
""" Robot Arm Control """
|
|
293
327
|
def control_hand_wrench(self, left_wrench: list, right_wrench: list) -> bool:
|
|
294
328
|
"""控制机器人末端力/力矩
|
|
295
|
-
|
|
329
|
+
|
|
296
330
|
Args:
|
|
297
331
|
left_wrench (list): 左手臂6维力控指令 [Fx, Fy, Fz, Tx, Ty, Tz]
|
|
298
332
|
right_wrench (list): 右手臂6维力控指令 [Fx, Fy, Fz, Tx, Ty, Tz]
|
|
299
333
|
单位:
|
|
300
334
|
Fx,Fy,Fz: 牛顿(N)
|
|
301
335
|
Tx,Ty,Tz: 牛·米(N·m)
|
|
302
|
-
|
|
336
|
+
|
|
303
337
|
Returns:
|
|
304
338
|
bool: 控制成功返回True, 否则返回False
|
|
305
339
|
"""
|
|
306
|
-
return self.
|
|
340
|
+
return self._kuavo_core.control_hand_wrench(left_wrench, right_wrench)
|
|
307
341
|
|
|
308
342
|
def arm_reset(self)->bool:
|
|
309
343
|
"""手臂归位
|
|
310
|
-
|
|
344
|
+
|
|
311
345
|
Returns:
|
|
312
346
|
bool: 如果手臂归位成功返回True,否则返回False。
|
|
313
347
|
"""
|
|
314
|
-
return self.
|
|
348
|
+
return self._kuavo_core.robot_arm_reset()
|
|
315
349
|
|
|
316
350
|
def manipulation_mpc_reset(self)->bool:
|
|
317
351
|
"""重置机器人手臂。
|
|
318
|
-
|
|
352
|
+
|
|
319
353
|
Returns:
|
|
320
354
|
bool: 如果手臂重置成功返回True,否则返回False。
|
|
321
355
|
"""
|
|
322
|
-
return self.
|
|
356
|
+
return self._kuavo_core.robot_manipulation_mpc_reset()
|
|
323
357
|
|
|
324
358
|
def control_arm_joint_positions(self, joint_positions:list)->bool:
|
|
325
359
|
"""通过关节位置角度控制手臂
|
|
326
|
-
|
|
360
|
+
|
|
327
361
|
Args:
|
|
328
362
|
joint_positions (list): 手臂的目标关节位置,单位弧度。
|
|
329
|
-
|
|
363
|
+
|
|
330
364
|
Returns:
|
|
331
365
|
bool: 如果手臂控制成功返回True,否则返回False。
|
|
332
|
-
|
|
366
|
+
|
|
333
367
|
Raises:
|
|
334
368
|
ValueError: 如果关节位置列表长度不正确。
|
|
335
369
|
ValueError: 如果关节位置超出[-π, π]范围。
|
|
336
370
|
RuntimeError: 如果在尝试控制手臂时机器人不在stance状态。
|
|
337
371
|
"""
|
|
338
372
|
if len(joint_positions) != self._robot_info.arm_joint_dof:
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
373
|
+
raise ValueError("Invalid position length. Expected {}, got {}".format(self._robot_info.arm_joint_dof, len(joint_positions)))
|
|
374
|
+
|
|
375
|
+
# Check if joint positions are within ±180 degrees (±π radians)
|
|
376
|
+
for pos in joint_positions:
|
|
377
|
+
if abs(pos) > math.pi:
|
|
378
|
+
raise ValueError(f"Joint position {pos} rad exceeds ±π rad (±180 deg) limit")
|
|
379
|
+
|
|
380
|
+
return self._kuavo_core.control_robot_arm_joint_positions(joint_data=joint_positions)
|
|
343
381
|
|
|
344
382
|
def control_arm_joint_trajectory(self, times:list, q_frames:list)->bool:
|
|
345
383
|
"""控制机器人手臂的目标轨迹。
|
|
346
|
-
|
|
384
|
+
|
|
347
385
|
Args:
|
|
348
386
|
times (list): 时间间隔列表,单位秒。
|
|
349
387
|
q_frames (list): 关节位置列表,单位弧度。
|
|
350
|
-
|
|
388
|
+
|
|
351
389
|
Returns:
|
|
352
390
|
bool: 如果控制成功返回True,否则返回False。
|
|
353
|
-
|
|
391
|
+
|
|
354
392
|
Raises:
|
|
355
393
|
ValueError: 如果times列表长度不正确。
|
|
356
394
|
ValueError: 如果关节位置列表长度不正确。
|
|
357
395
|
ValueError: 如果关节位置超出[-π, π]范围。
|
|
358
396
|
RuntimeError: 如果在尝试控制手臂时机器人不在stance状态。
|
|
359
|
-
|
|
397
|
+
|
|
360
398
|
Warning:
|
|
361
399
|
异步接口,函数在发送命令后立即返回,用户需要自行等待运动完成。
|
|
362
400
|
"""
|
|
363
|
-
|
|
401
|
+
if len(times) != len(q_frames):
|
|
402
|
+
raise ValueError("Invalid input. times and joint_q must have thesame length.")
|
|
403
|
+
|
|
404
|
+
# Check if joint positions are within ±180 degrees (±π radians)
|
|
405
|
+
q_degs = []
|
|
406
|
+
for q in q_frames:
|
|
407
|
+
if any(abs(pos) > math.pi for pos in q):
|
|
408
|
+
raise ValueError("Joint positions must be within ±π rad (±180 deg)")
|
|
409
|
+
if len(q) != self._robot_info.arm_joint_dof:
|
|
410
|
+
raise ValueError("Invalid position length. Expected {}, got {}".format(self._robot_info.arm_joint_dof, len(q)))
|
|
411
|
+
# Convert joint positions from radians to degrees
|
|
412
|
+
q_degs.append([(p * 180.0 / math.pi) for p in q])
|
|
364
413
|
|
|
414
|
+
return self._kuavo_core.control_robot_arm_joint_trajectory(times=times, joint_q=q_degs)
|
|
415
|
+
|
|
416
|
+
@sdk_deprecated(reason="接口重复", version="1.2.2", replacement="KuavoRobot.control_arm_joint_trajectory", remove_date="2026-06-30")
|
|
365
417
|
def control_arm_target_poses(self, times: list, q_frames: list) -> bool:
|
|
366
418
|
"""控制机器人手臂目标姿态(已废弃)。
|
|
367
|
-
|
|
368
|
-
.. deprecated::
|
|
419
|
+
|
|
420
|
+
.. deprecated::
|
|
369
421
|
请使用 :meth:`control_arm_joint_trajectory` 替代此函数。
|
|
370
|
-
|
|
422
|
+
|
|
371
423
|
Args:
|
|
372
424
|
times (list): 时间间隔列表,单位秒
|
|
373
425
|
q_frames (list): 关节位置列表,单位弧度
|
|
374
|
-
|
|
426
|
+
|
|
375
427
|
Returns:
|
|
376
428
|
bool: 控制成功返回True,否则返回False
|
|
377
|
-
|
|
429
|
+
|
|
378
430
|
Note:
|
|
379
431
|
此函数已废弃,请使用 :meth:`control_arm_joint_trajectory` 函数。
|
|
380
432
|
"""
|
|
381
|
-
|
|
433
|
+
if len(times) != len(q_frames):
|
|
434
|
+
raise ValueError("Invalid input. times and joint_q must have thesame length.")
|
|
435
|
+
|
|
436
|
+
# Check if joint positions are within ±180 degrees (±π radians)
|
|
437
|
+
q_degs = []
|
|
438
|
+
for q in q_frames:
|
|
439
|
+
if any(abs(pos) > math.pi for pos in q):
|
|
440
|
+
raise ValueError("Joint positions must be within ±π rad (±180 deg)")
|
|
441
|
+
if len(q) != self._robot_info.arm_joint_dof:
|
|
442
|
+
raise ValueError("Invalid position length. Expected {}, got {}".format(self._robot_info.arm_joint_dof, len(q)))
|
|
443
|
+
# Convert joint positions from radians to degrees
|
|
444
|
+
q_degs.append([(p * 180.0 / math.pi) for p in q])
|
|
445
|
+
|
|
446
|
+
return self._kuavo_core.control_robot_arm_target_poses(times=times, joint_q=q_degs)
|
|
382
447
|
def set_fixed_arm_mode(self) -> bool:
|
|
383
448
|
"""固定/冻结机器人手臂。
|
|
384
|
-
|
|
449
|
+
|
|
385
450
|
Returns:
|
|
386
451
|
bool: 如果手臂固定/冻结成功返回True,否则返回False。
|
|
387
452
|
"""
|
|
388
|
-
return self.
|
|
453
|
+
return self._kuavo_core.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ArmFixed)
|
|
389
454
|
|
|
390
455
|
def set_auto_swing_arm_mode(self) -> bool:
|
|
391
456
|
"""机器人手臂自动摆动。
|
|
392
|
-
|
|
457
|
+
|
|
393
458
|
Returns:
|
|
394
459
|
bool: 如果切换手臂自动摆动模式成功返回True,否则返回False。
|
|
395
460
|
"""
|
|
396
|
-
return self.
|
|
461
|
+
return self._kuavo_core.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.AutoSwing)
|
|
397
462
|
|
|
398
463
|
def set_external_control_arm_mode(self) -> bool:
|
|
399
464
|
"""切换手臂控制模式到外部控制模式。
|
|
400
|
-
|
|
465
|
+
|
|
401
466
|
Returns:
|
|
402
467
|
bool: 如果切换手臂控制模式到外部控制模式成功返回True,否则返回False。
|
|
403
468
|
"""
|
|
404
|
-
return self.
|
|
469
|
+
return self._kuavo_core.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ExternalControl)
|
|
405
470
|
|
|
406
471
|
def set_manipulation_mpc_mode(self, ctrl_mode: KuavoManipulationMpcCtrlMode) -> bool:
|
|
407
|
-
"""
|
|
408
|
-
|
|
472
|
+
"""设置 Manipulation MPC 模式。
|
|
473
|
+
|
|
409
474
|
Returns:
|
|
410
475
|
bool: 如果 Manipulation MPC 模式设置成功返回True,否则返回False。
|
|
411
476
|
"""
|
|
412
|
-
return self.
|
|
477
|
+
return self._kuavo_core.change_manipulation_mpc_ctrl_mode(ctrl_mode)
|
|
413
478
|
|
|
414
479
|
def set_manipulation_mpc_control_flow(self, control_flow: KuavoManipulationMpcControlFlow) -> bool:
|
|
415
|
-
"""
|
|
416
|
-
|
|
480
|
+
"""设置 Manipulation MPC 控制流。
|
|
481
|
+
|
|
417
482
|
Returns:
|
|
418
483
|
bool: 如果 Manipulation MPC 控制流设置成功返回True,否则返回False。
|
|
419
|
-
"""
|
|
420
|
-
return self.
|
|
484
|
+
"""
|
|
485
|
+
return self._kuavo_core.change_manipulation_mpc_control_flow(control_flow)
|
|
421
486
|
|
|
422
487
|
def set_manipulation_mpc_frame(self, frame: KuavoManipulationMpcFrame) -> bool:
|
|
423
|
-
"""
|
|
424
|
-
|
|
488
|
+
"""设置 Manipulation MPC 坐标系。
|
|
489
|
+
|
|
425
490
|
Returns:
|
|
426
491
|
bool: 如果 Manipulation MPC 坐标系设置成功返回True,否则返回False。
|
|
427
492
|
"""
|
|
428
|
-
return self.
|
|
493
|
+
return self._kuavo_core.change_manipulation_mpc_frame(frame)
|
|
429
494
|
|
|
430
495
|
""" Arm Forward kinematics && Arm Inverse kinematics """
|
|
431
496
|
def arm_ik(self,
|
|
@@ -458,45 +523,65 @@ class KuavoRobot(RobotBase):
|
|
|
458
523
|
Warning:
|
|
459
524
|
此函数需要在初始化SDK时设置 :attr:`KuavoSDK.Options.WithIK` 选项。
|
|
460
525
|
"""
|
|
461
|
-
return self.
|
|
462
|
-
def arm_ik_free(self,
|
|
463
|
-
left_pose: KuavoPose,
|
|
464
|
-
right_pose: KuavoPose,
|
|
526
|
+
return self._kuavo_core.arm_ik(left_pose, right_pose, left_elbow_pos_xyz, right_elbow_pos_xyz, arm_q0, params)
|
|
527
|
+
def arm_ik_free(self,
|
|
528
|
+
left_pose: KuavoPose,
|
|
529
|
+
right_pose: KuavoPose,
|
|
465
530
|
left_elbow_pos_xyz: list = [0.0, 0.0, 0.0],
|
|
466
531
|
right_elbow_pos_xyz: list = [0.0, 0.0, 0.0],
|
|
467
532
|
arm_q0: list = None,
|
|
468
533
|
params: KuavoIKParams=None) -> list:
|
|
469
|
-
"""
|
|
534
|
+
"""机器人手臂自由空间逆向运动学求解
|
|
535
|
+
|
|
536
|
+
Args:
|
|
537
|
+
left_pose (KuavoPose): 左手臂目标姿态,包含xyz位置和四元数方向
|
|
538
|
+
right_pose (KuavoPose): 右手臂目标姿态,包含xyz位置和四元数方向
|
|
539
|
+
left_elbow_pos_xyz (list): 左肘部位置。如果为[0.0, 0.0, 0.0],则忽略
|
|
540
|
+
right_elbow_pos_xyz (list): 右肘部位置。如果为[0.0, 0.0, 0.0],则忽略
|
|
541
|
+
arm_q0 (list, optional): 初始关节位置,单位为弧度。如果为None,则忽略
|
|
542
|
+
params (KuavoIKParams, optional): 逆向运动学参数。如果为None,则忽略
|
|
543
|
+
|
|
544
|
+
Returns:
|
|
545
|
+
list: 关节位置列表,单位为弧度。如果计算失败返回None
|
|
546
|
+
|
|
547
|
+
Warning:
|
|
548
|
+
此函数需要在初始化SDK时设置 :attr:`KuavoSDK.Options.WithIK` 选项。
|
|
470
549
|
"""
|
|
471
|
-
return self.
|
|
550
|
+
return self._kuavo_core.arm_ik_free(left_pose, right_pose, left_elbow_pos_xyz, right_elbow_pos_xyz, arm_q0, params)
|
|
472
551
|
|
|
473
552
|
def arm_fk(self, q: list) -> Tuple[KuavoPose, KuavoPose]:
|
|
474
553
|
"""机器人手臂的正运动学求解
|
|
475
|
-
|
|
554
|
+
|
|
476
555
|
Args:
|
|
477
556
|
q (list): 关节位置列表,单位弧度。
|
|
478
|
-
|
|
557
|
+
|
|
479
558
|
Returns:
|
|
480
559
|
Tuple[KuavoPose, KuavoPose]: 左手臂和右手臂的位姿元组,
|
|
481
560
|
如果正运动学失败则返回(None, None)。
|
|
482
561
|
|
|
483
562
|
Warning:
|
|
484
|
-
此函数需要使用 :attr:`KuavoSDK.Options.WithIK` 选项初始化SDK。
|
|
563
|
+
此函数需要使用 :attr:`KuavoSDK.Options.WithIK` 选项初始化SDK。
|
|
485
564
|
"""
|
|
486
|
-
|
|
565
|
+
if len(q) != self._robot_info.arm_joint_dof:
|
|
566
|
+
raise ValueError("Invalid position length. Expected {}, got {}".format(self._robot_info.arm_joint_dof, len(q)))
|
|
567
|
+
|
|
568
|
+
result = self._kuavo_core.arm_fk(q)
|
|
569
|
+
if result is None:
|
|
570
|
+
return None, None
|
|
571
|
+
return result
|
|
487
572
|
|
|
488
573
|
def control_robot_end_effector_pose(self, left_pose: KuavoPose, right_pose: KuavoPose, frame: KuavoManipulationMpcFrame)->bool:
|
|
489
574
|
"""通过手臂末端执行器的位姿控制机器人手臂
|
|
490
|
-
|
|
575
|
+
|
|
491
576
|
Args:
|
|
492
577
|
left_pose (KuavoPose): 左手臂的位姿,包含xyz和四元数。
|
|
493
578
|
right_pose (KuavoPose): 右手臂的位姿,包含xyz和四元数。
|
|
494
579
|
frame (KuavoManipulationMpcFrame): 手臂的坐标系。
|
|
495
|
-
|
|
580
|
+
|
|
496
581
|
Returns:
|
|
497
582
|
bool: 如果控制成功返回True,否则返回False。
|
|
498
583
|
"""
|
|
499
|
-
return self.
|
|
584
|
+
return self._kuavo_core.control_robot_end_effector_pose(left_pose, right_pose, frame)
|
|
500
585
|
|
|
501
586
|
def change_motor_param(self, motor_param:list)->Tuple[bool, str]:
|
|
502
587
|
"""更改电机参数
|
|
@@ -532,26 +617,26 @@ class KuavoRobot(RobotBase):
|
|
|
532
617
|
|
|
533
618
|
def is_arm_collision(self)->bool:
|
|
534
619
|
"""判断当前是否发生碰撞
|
|
535
|
-
|
|
620
|
+
|
|
536
621
|
Returns:
|
|
537
622
|
bool: 发生碰撞返回True,否则返回False
|
|
538
623
|
"""
|
|
539
|
-
return self.
|
|
624
|
+
return self._kuavo_core.is_arm_collision()
|
|
540
625
|
|
|
541
626
|
def wait_arm_collision_complete(self):
|
|
542
627
|
"""等待碰撞完成
|
|
543
628
|
"""
|
|
544
|
-
self.
|
|
629
|
+
self._kuavo_core.wait_arm_collision_complete()
|
|
545
630
|
|
|
546
631
|
def release_arm_collision_mode(self):
|
|
547
632
|
"""释放碰撞模式
|
|
548
633
|
"""
|
|
549
|
-
self.
|
|
634
|
+
self._kuavo_core.release_arm_collision_mode()
|
|
550
635
|
|
|
551
636
|
def set_arm_collision_mode(self, enable: bool):
|
|
552
637
|
"""设置碰撞模式
|
|
553
638
|
"""
|
|
554
|
-
self.
|
|
639
|
+
self._kuavo_core.set_arm_collision_mode(enable)
|
|
555
640
|
|
|
556
641
|
if __name__ == "__main__":
|
|
557
642
|
robot = KuavoRobot()
|
|
File without changes
|
{kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/__init__.py
RENAMED
|
File without changes
|
{kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/common/logger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/kuavo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kuavo_humanoid_sdk-1.2.1b3302 → kuavo_humanoid_sdk-1.2.1b3321}/kuavo_humanoid_sdk/msg/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|