kuavo-humanoid-sdk 1.2.1b3323__tar.gz → 1.2.2__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.1b3323 → kuavo_humanoid_sdk-1.2.2}/PKG-INFO +11 -11
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/README.md +42 -1
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/interfaces/data_types.py +0 -12
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/__init__.py +1 -6
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/core.py +22 -76
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +9 -27
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/control.py +30 -245
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +15 -33
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/state.py +3 -50
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +2 -3
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +0 -1
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +1 -38
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot.py +57 -238
- kuavo_humanoid_sdk-1.2.2/kuavo_humanoid_sdk/kuavo/robot_arm.py +210 -0
- kuavo_humanoid_sdk-1.2.2/kuavo_humanoid_sdk/kuavo/robot_head.py +50 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot_info.py +1 -22
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot_state.py +1 -12
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot_tool.py +2 -29
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot_vision.py +2 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +134 -333
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +3 -5
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +1 -15
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +1 -2
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +4 -24
- kuavo_humanoid_sdk-1.2.2/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_questJoySticks.py +191 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +5 -165
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +1 -2
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +1 -2
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +0 -14
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +1 -2
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +0 -1
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +2 -4
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk.egg-info/PKG-INFO +11 -11
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +1 -50
- kuavo_humanoid_sdk-1.2.2/kuavo_humanoid_sdk.egg-info/requires.txt +2 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/setup.py +2 -13
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/llm_doubao.py +0 -608
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/microphone.py +0 -192
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/navigation.py +0 -70
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/ros/camera.py +0 -105
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/ros/microphone.py +0 -38
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/ros/navigation.py +0 -217
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/core/sdk_deprecated.py +0 -41
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/demo_climbstair.py +0 -249
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/logger_client.py +0 -80
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_arm.py +0 -411
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_blockly.py +0 -1154
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_climbstair.py +0 -1607
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_head.py +0 -95
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_microphone.py +0 -19
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_navigation.py +0 -135
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo/robot_speech.py +0 -24
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/common/data_type.py +0 -340
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/common/events/base_event.py +0 -215
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/common/robot_sdk.py +0 -25
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/case.py +0 -331
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/strategy.py +0 -504
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/utils/logger_setup.py +0 -40
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/kuavo_strategy_v2/utils/utils.py +0 -88
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AudioReceiverData.py +0 -122
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_FTsensorData.py +0 -260
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_MmDetectionMsg.py +0 -264
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TaskPoint.py +0 -175
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armCollisionCheckInfo.py +0 -160
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6D.py +0 -123
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6DTargetTrajectories.py +0 -320
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVision.py +0 -136
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVisionArray.py +0 -231
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses6D.py +0 -149
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_kuavoModeSchedule.py +0 -224
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfo.py +0 -143
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfoList.py +0 -220
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotBodyMatrices.py +0 -332
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_tagDataArray.py +0 -216
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_CreatePath.py +0 -581
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetAllMaps.py +0 -241
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetCurrentMap.py +0 -225
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetTargetPartPoseInCamera.py +0 -298
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_InitialPoseWithTaskPoint.py +0 -281
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_LoadMap.py +0 -281
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_NavigateToTaskPoint.py +0 -281
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetInitialPose.py +0 -394
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode.py +0 -468
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode_free.py +0 -289
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_TaskPointOperation.py +0 -536
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_adjustZeroPoint.py +0 -277
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPose6DTargetTrajectoriesSrv.py +0 -426
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorZeroPoints.py +0 -286
- kuavo_humanoid_sdk-1.2.1b3323/kuavo_humanoid_sdk.egg-info/requires.txt +0 -8
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/common/logger.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/audio.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/observation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/leju_claw.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/robot_observation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_JoySticks.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPoseFree.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmdFree.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseFree.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdFreeSrv.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
- {kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kuavo_humanoid_sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
4
4
|
Summary: A Python SDK for kuavo humanoid robot.
|
|
5
5
|
Home-page: https://gitee.com/leju-robot/kuavo-ros-opensource/
|
|
6
6
|
Author: ['lejurobot']
|
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
- 躯干状态(位置、姿态、速度)
|
|
38
38
|
- 里程计信息
|
|
39
39
|
- 末端执行器状态:
|
|
40
|
-
-
|
|
40
|
+
- 夹持器(lejuclaw): 位置、速度、力矩、抓取状态
|
|
41
41
|
- 灵巧手(qiangnao): 位置、速度、力矩
|
|
42
42
|
- 触觉灵巧手(qiangnao_touch): 位置、速度、力矩、触觉状态
|
|
43
43
|
- 末端执行器位置和姿态
|
|
@@ -50,7 +50,7 @@ Description-Content-Type: text/markdown
|
|
|
50
50
|
- 用于计算末端执行器位姿的正运动学(FK)
|
|
51
51
|
- 复杂动作的关键帧序列控制
|
|
52
52
|
- 末端执行器控制
|
|
53
|
-
-
|
|
53
|
+
- 夹持器控制(可配置速度和力矩的位置控制)
|
|
54
54
|
- 灵巧手控制
|
|
55
55
|
- 位置控制
|
|
56
56
|
- 预定义手势(OK、666、握拳等)控制
|
|
@@ -228,13 +228,13 @@ https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid
|
|
|
228
228
|
|
|
229
229
|
一个获取机器人基本信息的示例。
|
|
230
230
|
|
|
231
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
231
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/robot_info_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/robot_info_example.py)
|
|
232
232
|
|
|
233
233
|
### 运动控制示例
|
|
234
234
|
|
|
235
235
|
一个基本示例,用于初始化 SDK 并控制机器人运动。
|
|
236
236
|
|
|
237
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
237
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/motion_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/motion_example.py)
|
|
238
238
|
|
|
239
239
|
### 末端执行器控制示例
|
|
240
240
|
|
|
@@ -242,37 +242,37 @@ https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid
|
|
|
242
242
|
|
|
243
243
|
展示如何控制 LejuClaw 夹爪末端执行器的示例,包括位置、速度和力矩控制。
|
|
244
244
|
|
|
245
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
245
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/lejuclaw_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/lejuclaw_example.py)
|
|
246
246
|
|
|
247
247
|
#### QiangNao 灵巧手
|
|
248
248
|
|
|
249
249
|
展示如何控制 QiangNao 灵巧手的示例,这是一个具有多个自由度的灵巧机器人手,可用于复杂的操作任务。
|
|
250
250
|
|
|
251
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
251
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/dexhand_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/dexhand_example.py)
|
|
252
252
|
|
|
253
253
|
### 手臂控制示例
|
|
254
254
|
|
|
255
255
|
展示手臂轨迹控制和目标姿态控制的示例。
|
|
256
256
|
|
|
257
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
257
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/ctrl_arm_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/ctrl_arm_example.py)
|
|
258
258
|
|
|
259
259
|
### 手臂正向运动学和逆向运动学示例
|
|
260
260
|
|
|
261
261
|
展示如何使用正向运动学(FK)从关节角度计算末端执行器位置,以及如何使用逆向运动学(IK)计算实现期望末端执行器姿态所需的关节角度的示例。
|
|
262
262
|
|
|
263
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
263
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/arm_ik_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/arm_ik_example.py)
|
|
264
264
|
|
|
265
265
|
### 头部控制示例
|
|
266
266
|
|
|
267
267
|
展示如何控制机器人头部运动的示例,包括点头(俯仰)和摇头(偏航)动作。
|
|
268
268
|
|
|
269
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
269
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/ctrl_head_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/ctrl_head_example.py)
|
|
270
270
|
|
|
271
271
|
### 单步控制示例
|
|
272
272
|
|
|
273
273
|
展示如何控制机器人按照自定义落足点轨迹运动的示例。
|
|
274
274
|
|
|
275
|
-
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/
|
|
275
|
+
[https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/step_control_example.py](https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/examples/step_control_example.py)
|
|
276
276
|
|
|
277
277
|
|
|
278
278
|
## 许可证
|
|
@@ -77,8 +77,49 @@ chmod +x ./gen_docs.sh
|
|
|
77
77
|

|
|
78
78
|
|
|
79
79
|
## 搬箱子案例
|
|
80
|
+
**编译**:
|
|
81
|
+
```
|
|
82
|
+
catkin build humanoid_controllers kuavo_msgs gazebo_sim ar_control
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**运行**:
|
|
86
|
+
|
|
87
|
+
⚠️ 在运行之前, 需要确认机器人版本`ROBOT_VERSION=45`,否则会机器人末端控制会有问题
|
|
88
|
+
```
|
|
89
|
+
# 启动gazebo场景
|
|
90
|
+
roslaunch humanoid_controllers load_kuavo_gazebo_manipulate.launch joystick_type:=bt2pro
|
|
91
|
+
|
|
92
|
+
# 启动ar_tag转换码操作和virtual操作
|
|
93
|
+
roslaunch ar_control robot_strategies.launch
|
|
94
|
+
|
|
95
|
+
# 运行搬箱子案例
|
|
96
|
+
python3 grasp_box_example.py
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
🚨 第一次启动gazebo场景前需要修改tag尺寸:
|
|
100
|
+
|
|
101
|
+
在`/opt/ros/noetic/share/apriltag_ros/config/tags.yaml`文件中将tag的size尺寸修改为和立方体tag码的尺寸一致(只需做一次)
|
|
102
|
+
```
|
|
103
|
+
standalone_tags:
|
|
104
|
+
[
|
|
105
|
+
{id: 0, size: 0.088, name: 'tag_0'},
|
|
106
|
+
{id: 1, size: 0.088, name: 'tag_1'},
|
|
107
|
+
{id: 2, size: 0.088, name: 'tag_2'},
|
|
108
|
+
{id: 3, size: 0.088, name: 'tag_3'},
|
|
109
|
+
{id: 4, size: 0.088, name: 'tag_4'},
|
|
110
|
+
{id: 5, size: 0.088, name: 'tag_5'},
|
|
111
|
+
{id: 6, size: 0.088, name: 'tag_6'},
|
|
112
|
+
{id: 7, size: 0.088, name: 'tag_7'},
|
|
113
|
+
{id: 8, size: 0.088, name: 'tag_8'},
|
|
114
|
+
{id: 9, size: 0.088, name: 'tag_9'},
|
|
115
|
+
]
|
|
116
|
+
```
|
|
117
|
+
🚨 每次启动gazebo场景后需要手动打光:
|
|
118
|
+
|
|
119
|
+
需要在机器人腰部位置附近给个点光源,否则会找不到tag
|
|
120
|
+
|
|
121
|
+

|
|
80
122
|
|
|
81
|
-
请参阅 html 或 markdown 文档中,**策略模块/搬箱子示例**章节内容,获取更多信息。
|
|
82
123
|
|
|
83
124
|
**测试**
|
|
84
125
|
```
|
|
@@ -129,18 +129,6 @@ class KuavoPose:
|
|
|
129
129
|
position: Tuple[float, float, float] # x, y, z
|
|
130
130
|
orientation: Tuple[float, float, float, float] # x, y, z, w
|
|
131
131
|
|
|
132
|
-
def __str__(self) -> str:
|
|
133
|
-
"""Returns a formatted string representation of the pose.
|
|
134
|
-
|
|
135
|
-
Returns:
|
|
136
|
-
str: Formatted pose string with position and orientation
|
|
137
|
-
"""
|
|
138
|
-
return (
|
|
139
|
-
f"Position (x,y,z): ({self.position[0]:.3f}, {self.position[1]:.3f}, {self.position[2]:.3f})\n"
|
|
140
|
-
f"Orientation (x,y,z,w): ({self.orientation[0]:.3f}, {self.orientation[1]:.3f}, "
|
|
141
|
-
f"{self.orientation[2]:.3f}, {self.orientation[3]:.3f})"
|
|
142
|
-
)
|
|
143
|
-
|
|
144
132
|
@dataclass
|
|
145
133
|
class KuavoIKParams:
|
|
146
134
|
"""表示IK节点参数的数据类。"""
|
{kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/__init__.py
RENAMED
|
@@ -8,9 +8,4 @@ from .robot_head import KuavoRobotHead
|
|
|
8
8
|
from .robot_audio import KuavoRobotAudio
|
|
9
9
|
from .dexterous_hand import DexterousHand, TouchDexterousHand
|
|
10
10
|
from .leju_claw import LejuClaw
|
|
11
|
-
from .robot_observation import KuavoRobotObservation
|
|
12
|
-
from .robot_blockly import RobotControlBlockly
|
|
13
|
-
from .robot_microphone import RobotMicrophone
|
|
14
|
-
from .robot_navigation import RobotNavigation
|
|
15
|
-
from .robot_speech import RobotSpeech
|
|
16
|
-
from .dexterous_hand import DexterousHand
|
|
11
|
+
from .robot_observation import KuavoRobotObservation
|
{kuavo_humanoid_sdk-1.2.1b3323 → kuavo_humanoid_sdk-1.2.2}/kuavo_humanoid_sdk/kuavo/core/core.py
RENAMED
|
@@ -29,7 +29,6 @@ from kuavo_humanoid_sdk.kuavo.core.ros.control import KuavoRobotControl
|
|
|
29
29
|
from kuavo_humanoid_sdk.kuavo.core.ros.state import KuavoRobotStateCore
|
|
30
30
|
from kuavo_humanoid_sdk.kuavo.core.ros.param import make_robot_param
|
|
31
31
|
from kuavo_humanoid_sdk.common.logger import SDKLogger
|
|
32
|
-
from kuavo_humanoid_sdk.kuavo.logger_client import get_logger
|
|
33
32
|
# Define robot states
|
|
34
33
|
ROBOT_STATES = [
|
|
35
34
|
State(name='stance', on_enter=['_on_enter_stance']),
|
|
@@ -60,7 +59,6 @@ class KuavoRobotCore:
|
|
|
60
59
|
|
|
61
60
|
def __init__(self):
|
|
62
61
|
if not hasattr(self, '_initialized'):
|
|
63
|
-
self.logger = get_logger() # ✅ 初始化日志客户端(全局唯一)
|
|
64
62
|
self.machine = Machine(
|
|
65
63
|
model=self,
|
|
66
64
|
states=ROBOT_STATES,
|
|
@@ -123,8 +121,8 @@ class KuavoRobotCore:
|
|
|
123
121
|
raise RuntimeError(f"[Core] initialize failed: \n"
|
|
124
122
|
f"{e}, please check the robot is launched, "
|
|
125
123
|
f"e.g. `roslaunch humanoid_controllers load_kuavo_real.launch`")
|
|
126
|
-
|
|
127
|
-
success, err_msg = self._control.initialize(eef_type=
|
|
124
|
+
rb_info = make_robot_param()
|
|
125
|
+
success, err_msg = self._control.initialize(eef_type=rb_info["end_effector_type"], debug=debug)
|
|
128
126
|
if not success:
|
|
129
127
|
raise RuntimeError(f"[Core] initialize failed: \n{err_msg}, please check the robot is launched, "
|
|
130
128
|
f"e.g. `roslaunch humanoid_controllers load_kuavo_real.launch`")
|
|
@@ -228,14 +226,6 @@ class KuavoRobotCore:
|
|
|
228
226
|
if abs(pitch) > MAX_PITCH:
|
|
229
227
|
SDKLogger.warn(f"[Core] pitch {pitch} exceeds limit [{MIN_PITCH}, {MAX_PITCH}], will be limited")
|
|
230
228
|
|
|
231
|
-
# 结合当前高度做过滤
|
|
232
|
-
target_height = self._rb_info['init_stand_height'] + limited_height
|
|
233
|
-
# 躯干上升运动变化不宜过大, 目标高度减去实时躯干高度大于阈值
|
|
234
|
-
HEIGHT_CHANGE_THRESHOLD = 0.25
|
|
235
|
-
if (self._rb_state.com_height < target_height) and (target_height - self._rb_state.com_height) >= HEIGHT_CHANGE_THRESHOLD:
|
|
236
|
-
limited_height = (self._rb_state.com_height + HEIGHT_CHANGE_THRESHOLD) - self._rb_info['init_stand_height']
|
|
237
|
-
print(f"\033[33mWarning! Height change too large, limiting to safe range,reset height to {limited_height}\033[0m")
|
|
238
|
-
|
|
239
229
|
return self._control.control_torso_height(limited_height, limited_pitch)
|
|
240
230
|
|
|
241
231
|
def step_control(self, target_pose:list, dt:float=0.4, is_left_first_default:bool=True, collision_check:bool=True)->bool:
|
|
@@ -263,21 +253,17 @@ class KuavoRobotCore:
|
|
|
263
253
|
com_height = self._rb_state.com_height
|
|
264
254
|
# print(f"[Core] Current COM height: {com_height:.2f}m")
|
|
265
255
|
# Check height limits based on current COM height
|
|
266
|
-
MIN_COM_HEIGHT =
|
|
267
|
-
MAX_COM_HEIGHT =
|
|
256
|
+
MIN_COM_HEIGHT = 0.66 # Minimum allowed COM height in meters
|
|
257
|
+
MAX_COM_HEIGHT = 0.86 # Maximum allowed COM height in meters
|
|
268
258
|
|
|
269
|
-
if com_height < MIN_COM_HEIGHT:
|
|
270
|
-
print(f"\033[31m[Core] Torso height too low, control failed: current COM height {com_height:.2f}m is below the minimum allowed height {MIN_COM_HEIGHT}m\033[0m")
|
|
271
|
-
return False
|
|
272
|
-
|
|
273
259
|
# Validate COM height constraints
|
|
274
260
|
if target_pose[2] < 0 and com_height < MIN_COM_HEIGHT:
|
|
275
|
-
|
|
276
|
-
return
|
|
261
|
+
SDKLogger.warn(f"[Core] Cannot squat lower: COM height {com_height:.2f}m below minimum {MIN_COM_HEIGHT}m")
|
|
262
|
+
return None
|
|
277
263
|
|
|
278
264
|
if target_pose[2] > 0 and com_height > MAX_COM_HEIGHT:
|
|
279
|
-
|
|
280
|
-
return
|
|
265
|
+
SDKLogger.warn(f"[Core] Cannot stand higher: COM height {com_height:.2f}m above maximum {MAX_COM_HEIGHT}m")
|
|
266
|
+
return None
|
|
281
267
|
|
|
282
268
|
# Ensure target height is within allowed range if height change requested
|
|
283
269
|
if target_pose[2] != 0:
|
|
@@ -289,7 +275,8 @@ class KuavoRobotCore:
|
|
|
289
275
|
SDKLogger.warn(f"[Core] Target height {target_height:.2f}m above maximum {MAX_COM_HEIGHT}m, limiting")
|
|
290
276
|
target_pose[2] = MAX_COM_HEIGHT - com_height
|
|
291
277
|
|
|
292
|
-
|
|
278
|
+
# TODO(kuavo): 根据实物测试来调整....
|
|
279
|
+
if com_height > 0.82:
|
|
293
280
|
max_x_step = 0.20
|
|
294
281
|
max_y_step = 0.20
|
|
295
282
|
max_yaw_step = 90
|
|
@@ -390,18 +377,7 @@ class KuavoRobotCore:
|
|
|
390
377
|
# e.g., limit ranges for safety
|
|
391
378
|
self.to_command_pose_world()
|
|
392
379
|
return self._control.control_command_pose_world(target_pose_x, target_pose_y, target_pose_z, target_pose_yaw)
|
|
393
|
-
|
|
394
|
-
def control_robot_arm_target_poses(self, times: list, joint_q: list) -> bool:
|
|
395
|
-
if self.state != 'stance':
|
|
396
|
-
raise RuntimeError("[Core] control_robot_arm_target_poses failed: robot must be in stance state")
|
|
397
|
-
|
|
398
|
-
if self._arm_ctrl_mode != KuavoArmCtrlMode.ExternalControl:
|
|
399
|
-
SDKLogger.debug("[Core] control_robot_arm_target_poses, current arm mode != ExternalControl, change it.")
|
|
400
|
-
if not self.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ExternalControl):
|
|
401
|
-
SDKLogger.warn("[Core] control_robot_arm_target_poses failed, change robot arm ctrl mode failed!")
|
|
402
|
-
return False
|
|
403
|
-
|
|
404
|
-
return self._control.control_robot_arm_target_poses(times, joint_q)
|
|
380
|
+
|
|
405
381
|
def execute_gesture(self, gestures:list)->bool:
|
|
406
382
|
return self._control.execute_gesture(gestures)
|
|
407
383
|
|
|
@@ -434,8 +410,6 @@ class KuavoRobotCore:
|
|
|
434
410
|
if self.state != 'stance':
|
|
435
411
|
raise RuntimeError(f"[Core] control_robot_arm_joint_positions failed: robot must be in stance state, current state: {self.state}")
|
|
436
412
|
|
|
437
|
-
if self._control.is_arm_collision_mode() and self._control.is_arm_collision():
|
|
438
|
-
raise RuntimeError(f"Arm collision detected, cannot publish arm trajectory")
|
|
439
413
|
# change to external control mode
|
|
440
414
|
if self._arm_ctrl_mode != KuavoArmCtrlMode.ExternalControl:
|
|
441
415
|
SDKLogger.debug("[Core] control_robot_arm_joint_positions, current arm mode != ExternalControl, change it.")
|
|
@@ -447,9 +421,6 @@ class KuavoRobotCore:
|
|
|
447
421
|
def control_robot_arm_joint_trajectory(self, times:list, joint_q:list)->bool:
|
|
448
422
|
if self.state != 'stance':
|
|
449
423
|
raise RuntimeError("[Core] control_robot_arm_joint_trajectory failed: robot must be in stance state")
|
|
450
|
-
|
|
451
|
-
if self._control.is_arm_collision_mode() and self._control.is_arm_collision():
|
|
452
|
-
raise RuntimeError(f"Arm collision detected, cannot publish arm trajectory")
|
|
453
424
|
|
|
454
425
|
if self._arm_ctrl_mode != KuavoArmCtrlMode.ExternalControl:
|
|
455
426
|
SDKLogger.debug("[Core] control_robot_arm_joint_trajectory, current arm mode != ExternalControl, change it.")
|
|
@@ -474,9 +445,6 @@ class KuavoRobotCore:
|
|
|
474
445
|
|
|
475
446
|
return self._control.control_robot_end_effector_pose(left_pose, right_pose, frame)
|
|
476
447
|
|
|
477
|
-
def control_hand_wrench(self, left_wrench: list, right_wrench: list) -> bool:
|
|
478
|
-
return self._control.control_hand_wrench(left_wrench, right_wrench)
|
|
479
|
-
|
|
480
448
|
def change_manipulation_mpc_frame(self, frame: KuavoManipulationMpcFrame)->bool:
|
|
481
449
|
timeout = 1.0
|
|
482
450
|
count = 0
|
|
@@ -538,15 +506,19 @@ class KuavoRobotCore:
|
|
|
538
506
|
return True
|
|
539
507
|
|
|
540
508
|
def change_robot_arm_ctrl_mode(self, mode:KuavoArmCtrlMode)->bool:
|
|
541
|
-
|
|
542
|
-
if self._control.is_arm_collision_mode() and self.is_arm_collision():
|
|
543
|
-
SDKLogger.warn("[Core] change_robot_arm_ctrl_mode failed, arm collision detected!")
|
|
544
|
-
return False
|
|
545
|
-
|
|
509
|
+
timeout = 1.0
|
|
546
510
|
count = 0
|
|
547
|
-
|
|
511
|
+
while self._rb_state.arm_control_mode != mode:
|
|
548
512
|
SDKLogger.debug(f"[Core] Change robot arm control from {self._rb_state.arm_control_mode} to {mode}, retry: {count}")
|
|
549
513
|
self._control.change_robot_arm_ctrl_mode(mode)
|
|
514
|
+
if self._rb_state.arm_control_mode == mode:
|
|
515
|
+
break
|
|
516
|
+
if timeout <= 0:
|
|
517
|
+
SDKLogger.warn("[Core] Change robot arm control mode timeout!")
|
|
518
|
+
return False
|
|
519
|
+
timeout -= 0.1
|
|
520
|
+
time.sleep(0.1)
|
|
521
|
+
count += 1
|
|
550
522
|
|
|
551
523
|
if not hasattr(self, '_arm_ctrl_mode_lock'):
|
|
552
524
|
self._arm_ctrl_mode_lock = threading.Lock()
|
|
@@ -600,23 +572,10 @@ class KuavoRobotCore:
|
|
|
600
572
|
params: KuavoIKParams=None) -> list:
|
|
601
573
|
return self._control.arm_ik(l_eef_pose, r_eef_pose, l_elbow_pos_xyz, r_elbow_pos_xyz, arm_q0, params)
|
|
602
574
|
|
|
603
|
-
def arm_ik_free(self,
|
|
604
|
-
l_eef_pose: KuavoPose,
|
|
605
|
-
r_eef_pose: KuavoPose,
|
|
606
|
-
l_elbow_pos_xyz: list = [0.0, 0.0, 0.0],
|
|
607
|
-
r_elbow_pos_xyz: list = [0.0, 0.0, 0.0],
|
|
608
|
-
arm_q0: list = None,
|
|
609
|
-
params: KuavoIKParams=None) -> list:
|
|
610
|
-
return self._control.arm_ik_free(l_eef_pose, r_eef_pose, l_elbow_pos_xyz, r_elbow_pos_xyz, arm_q0, params)
|
|
611
575
|
|
|
612
576
|
def arm_fk(self, q: list) -> Tuple[KuavoPose, KuavoPose]:
|
|
613
577
|
return self._control.arm_fk(q)
|
|
614
578
|
|
|
615
|
-
""" ------------------------------------------------------------------------"""
|
|
616
|
-
""" Base Pitch Limit Control """
|
|
617
|
-
def enable_base_pitch_limit(self, enable: bool) -> Tuple[bool, str]:
|
|
618
|
-
return self._control.enable_base_pitch_limit(enable)
|
|
619
|
-
""" ------------------------------------------------------------------------"""
|
|
620
579
|
""" Callbacks """
|
|
621
580
|
def _humanoid_gait_changed(self, current_time: float, gait_name: str):
|
|
622
581
|
if self.state != gait_name:
|
|
@@ -627,19 +586,6 @@ class KuavoRobotCore:
|
|
|
627
586
|
# Call the transition method if it exists
|
|
628
587
|
getattr(self, to_method)()
|
|
629
588
|
|
|
630
|
-
def is_arm_collision(self)->bool:
|
|
631
|
-
return self._control.is_arm_collision()
|
|
632
|
-
|
|
633
|
-
def release_arm_collision_mode(self):
|
|
634
|
-
|
|
635
|
-
self._control.release_arm_collision_mode()
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
def wait_arm_collision_complete(self):
|
|
639
|
-
self._control.wait_arm_collision_complete()
|
|
640
|
-
|
|
641
|
-
def set_arm_collision_mode(self, enable: bool):
|
|
642
|
-
self._control.set_arm_collision_mode(enable)
|
|
643
589
|
|
|
644
590
|
if __name__ == "__main__":
|
|
645
591
|
DEBUG_MODE = 0
|
|
@@ -663,4 +609,4 @@ if __name__ == "__main__":
|
|
|
663
609
|
print("state now is to_trot:", core.state)
|
|
664
610
|
time.sleep(3.0)
|
|
665
611
|
core.to_stance()
|
|
666
|
-
print("state now is to_stance:", core.state)
|
|
612
|
+
print("state now is to_stance:", core.state)
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# coding: utf-8
|
|
3
|
-
import rospy
|
|
4
|
-
from std_msgs.msg import Bool, Int16MultiArray
|
|
5
3
|
from kuavo_humanoid_sdk.common.logger import SDKLogger
|
|
6
4
|
from kuavo_humanoid_sdk.kuavo.core.core import KuavoRobotCore
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
|
|
6
|
+
try:
|
|
7
|
+
import rospy
|
|
8
|
+
from std_msgs.msg import Bool
|
|
9
|
+
from kuavo_humanoid_sdk.msg.kuavo_msgs.srv import playmusic, playmusicRequest
|
|
10
|
+
from kuavo_humanoid_sdk.msg.kuavo_msgs.srv import SpeechSynthesis, SpeechSynthesisRequest
|
|
11
|
+
except:
|
|
12
|
+
pass
|
|
13
|
+
|
|
9
14
|
class Audio:
|
|
10
15
|
"""Audio system interface for controlling audio playback functionality of Kuavo humanoid robot.
|
|
11
16
|
|
|
@@ -15,7 +20,6 @@ class Audio:
|
|
|
15
20
|
def __init__(self):
|
|
16
21
|
"""Initialize the audio system."""
|
|
17
22
|
self._audio_stop_publisher = rospy.Publisher('stop_music', Bool, queue_size=10)
|
|
18
|
-
self.audio_data_publisher = rospy.Publisher('audio_data', Int16MultiArray, queue_size=10)
|
|
19
23
|
rospy.sleep(0.5) # Wait for publisher initialization
|
|
20
24
|
def play_audio(self, file_name: str, volume: int = 100, speed: float = 1.0) -> bool:
|
|
21
25
|
"""Play the specified audio file.
|
|
@@ -86,25 +90,3 @@ class Audio:
|
|
|
86
90
|
SDKLogger.error(f"[Robot Audio] Failed to play audio text: {str(e)}")
|
|
87
91
|
return False
|
|
88
92
|
|
|
89
|
-
def publish_audio_chunk(self, audio_chunk, gain: int = 1):
|
|
90
|
-
"""Publish a single audio chunk to the topic, for real-time audio streaming"""
|
|
91
|
-
try:
|
|
92
|
-
if not audio_chunk:
|
|
93
|
-
return False
|
|
94
|
-
|
|
95
|
-
# 应用增益
|
|
96
|
-
amplified_chunk = [int(sample * gain) for sample in audio_chunk]
|
|
97
|
-
|
|
98
|
-
# 创建并发布消息
|
|
99
|
-
msg = Int16MultiArray()
|
|
100
|
-
msg.data = amplified_chunk
|
|
101
|
-
|
|
102
|
-
self.audio_data_publisher.publish(msg)
|
|
103
|
-
# SDKLogger.debug(f"[Robot Audio] 发布音频块,大小: {len(amplified_chunk)}")
|
|
104
|
-
|
|
105
|
-
return True
|
|
106
|
-
|
|
107
|
-
except Exception as e:
|
|
108
|
-
SDKLogger.error(f"[Robot Audio] 发布音频块时出错: {e}")
|
|
109
|
-
return False
|
|
110
|
-
|