kuavo-humanoid-sdk 1.1.6b1134__tar.gz → 1.1.6b1142__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.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/PKG-INFO +1 -1
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +0 -223
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk.egg-info/PKG-INFO +1 -1
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/README.md +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/common/logger.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/interfaces/data_types.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/audio.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/core.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/control.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/observation.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/state.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/leju_claw.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_arm.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_head.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_info.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_observation.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_state.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_tool.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot_vision.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_questJoySticks.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk.egg-info/requires.txt +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/setup.cfg +0 -0
- {kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/setup.py +0 -0
|
@@ -235,226 +235,3 @@ class KuavoROSEnv:
|
|
|
235
235
|
except Exception as e:
|
|
236
236
|
SDKLogger.error(f"Error checking if node {node_name} exists: {e}")
|
|
237
237
|
return False
|
|
238
|
-
|
|
239
|
-
class KuavoROSEnvWebsocket:
|
|
240
|
-
_instance = None
|
|
241
|
-
_processes = [] # Store all subprocess instances
|
|
242
|
-
|
|
243
|
-
def __new__(cls):
|
|
244
|
-
if cls._instance is None:
|
|
245
|
-
cls._instance = super(KuavoROSEnvWebsocket, cls).__new__(cls)
|
|
246
|
-
cls._instance._initialized = False
|
|
247
|
-
cls._instance._init_success = False # Add flag to track successful Init() call
|
|
248
|
-
# Register cleanup handler
|
|
249
|
-
atexit.register(cls._cleanup_processes)
|
|
250
|
-
return cls._instance
|
|
251
|
-
|
|
252
|
-
def __init__(self):
|
|
253
|
-
if not self._initialized:
|
|
254
|
-
self._initialized = True
|
|
255
|
-
self.websocket = None
|
|
256
|
-
|
|
257
|
-
@classmethod
|
|
258
|
-
def _cleanup_processes(cls):
|
|
259
|
-
"""Cleanup all registered processes on exit"""
|
|
260
|
-
for process in cls._processes:
|
|
261
|
-
if process.poll() is None: # Process is still running
|
|
262
|
-
process.terminate()
|
|
263
|
-
try:
|
|
264
|
-
process.wait(timeout=3) # Wait for process to terminate
|
|
265
|
-
except subprocess.TimeoutExpired:
|
|
266
|
-
process.kill() # Force kill if not terminated
|
|
267
|
-
cls._processes.clear()
|
|
268
|
-
|
|
269
|
-
def _get_kuavo_ws_root(self) -> str:
|
|
270
|
-
# For WebSocket version, we'll use environment variable instead of ROS param
|
|
271
|
-
model_path = os.environ.get('KUAVO_MODEL_PATH')
|
|
272
|
-
if not model_path:
|
|
273
|
-
raise Exception("KUAVO_MODEL_PATH environment variable not found")
|
|
274
|
-
|
|
275
|
-
if not os.path.exists(model_path):
|
|
276
|
-
raise Exception(f"Model path {model_path} not found")
|
|
277
|
-
|
|
278
|
-
# ws
|
|
279
|
-
return model_path.replace('/src/kuavo_assets/models', '')
|
|
280
|
-
|
|
281
|
-
def Init(self) -> bool:
|
|
282
|
-
"""
|
|
283
|
-
Initialize the WebSocket environment.
|
|
284
|
-
Raises:
|
|
285
|
-
Exception: If the KUAVO_MODEL_PATH environment variable is not found or the path is not valid.
|
|
286
|
-
"""
|
|
287
|
-
# if generate docs, skip init.
|
|
288
|
-
if 'GEN_KUAVO_HUMANOID_SDK_DOCS' in os.environ:
|
|
289
|
-
return True
|
|
290
|
-
|
|
291
|
-
# Return directly if already initialized successfully
|
|
292
|
-
if self._init_success:
|
|
293
|
-
return True
|
|
294
|
-
|
|
295
|
-
# Check if WebSocket server is running
|
|
296
|
-
try:
|
|
297
|
-
|
|
298
|
-
self.websocket = WebSocketKuavoSDK()
|
|
299
|
-
if not self.websocket.client.is_connected:
|
|
300
|
-
print(f"\033[31m\nError: Can't connect to WebSocket server. Please ensure the server is running.\033[0m"
|
|
301
|
-
"\nMaybe manually launch the app first?"
|
|
302
|
-
"\n - for example(sim): roslaunch humanoid_controller load_kuavo_mujoco_sim.launch, "
|
|
303
|
-
"\n - for example(real): roslaunch humanoid_controller load_kuavo_real.launch\n")
|
|
304
|
-
exit(1)
|
|
305
|
-
except Exception as e:
|
|
306
|
-
print(f"\033[31m\nError: Failed to connect to WebSocket server: {e}\033[0m")
|
|
307
|
-
exit(1)
|
|
308
|
-
|
|
309
|
-
# Only check nodes exist when Init SDK, if not, tips user manually launch nodes.
|
|
310
|
-
deps_nodes = ['/humanoid_gait_switch_by_name']
|
|
311
|
-
for node in deps_nodes:
|
|
312
|
-
if not self.check_rosnode_exists(node):
|
|
313
|
-
print(f"\033[31m\nError: Node {node} not found. Please launch it manually.\033[0m")
|
|
314
|
-
exit(1)
|
|
315
|
-
|
|
316
|
-
self._init_success = True # Set flag after successful initialization
|
|
317
|
-
|
|
318
|
-
return True
|
|
319
|
-
|
|
320
|
-
def _launch_ros_node(self, node_name, launch_cmd, log_name):
|
|
321
|
-
"""Launch a ROS node with the given command and log the output.
|
|
322
|
-
|
|
323
|
-
Args:
|
|
324
|
-
node_name (str): Name of the node to launch
|
|
325
|
-
launch_cmd (str): Full launch command including source and roslaunch
|
|
326
|
-
log_name (str): Name for the log file
|
|
327
|
-
|
|
328
|
-
Raises:
|
|
329
|
-
Exception: If node launch fails
|
|
330
|
-
"""
|
|
331
|
-
# Launch in background and check if successful
|
|
332
|
-
try:
|
|
333
|
-
os.makedirs('/var/log/kuavo_humanoid_sdk', exist_ok=True)
|
|
334
|
-
log_path = f'/var/log/kuavo_humanoid_sdk/{log_name}.log'
|
|
335
|
-
except PermissionError:
|
|
336
|
-
os.makedirs('log/kuavo_humanoid_sdk', exist_ok=True)
|
|
337
|
-
log_path = f'log/kuavo_humanoid_sdk/{log_name}.log'
|
|
338
|
-
|
|
339
|
-
with open(log_path, 'w') as log_file:
|
|
340
|
-
process = subprocess.Popen(launch_cmd, shell=True, executable='/bin/bash', stdout=log_file, stderr=log_file)
|
|
341
|
-
self._processes.append(process) # Add process to tracking list
|
|
342
|
-
|
|
343
|
-
if process.returncode is not None and process.returncode != 0:
|
|
344
|
-
raise Exception(f"Failed to launch {node_name}, return code: {process.returncode}")
|
|
345
|
-
|
|
346
|
-
SDKLogger.info(f"{node_name} launched successfully")
|
|
347
|
-
|
|
348
|
-
def _get_setup_file(self, ws_root=None):
|
|
349
|
-
"""Get the appropriate ROS setup file path based on shell type.
|
|
350
|
-
|
|
351
|
-
Args:
|
|
352
|
-
ws_root (str, optional): ROS workspace root path. If None, uses ROS_WORKSPACE.
|
|
353
|
-
|
|
354
|
-
Returns:
|
|
355
|
-
str: Path to the setup file
|
|
356
|
-
|
|
357
|
-
Raises:
|
|
358
|
-
Exception: If setup file not found
|
|
359
|
-
"""
|
|
360
|
-
is_zsh = 'zsh' in os.environ.get('SHELL', '')
|
|
361
|
-
|
|
362
|
-
if ws_root is None:
|
|
363
|
-
ws_root = os.environ['ROS_WORKSPACE']
|
|
364
|
-
|
|
365
|
-
setup_files = {
|
|
366
|
-
'zsh': os.path.join(ws_root, 'devel/setup.zsh'),
|
|
367
|
-
'bash': os.path.join(ws_root, 'devel/setup.bash')
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
setup_file = setup_files['zsh'] if is_zsh else setup_files['bash']
|
|
371
|
-
if not os.path.exists(setup_file):
|
|
372
|
-
setup_file = setup_file.replace('devel', 'install')
|
|
373
|
-
if not os.path.exists(setup_file):
|
|
374
|
-
raise Exception(f"Setup file not found in either devel or install: {setup_file}")
|
|
375
|
-
|
|
376
|
-
return setup_file
|
|
377
|
-
|
|
378
|
-
def launch_ik_node(self):
|
|
379
|
-
# nodes: /arms_ik_node
|
|
380
|
-
# services: /ik/two_arm_hand_pose_cmd_srv, /ik/fk_srv
|
|
381
|
-
try:
|
|
382
|
-
if not self.websocket or not self.websocket.client.is_connected:
|
|
383
|
-
raise Exception("WebSocket server is not running")
|
|
384
|
-
except Exception as e:
|
|
385
|
-
raise Exception(f"WebSocket server is not running: {e}")
|
|
386
|
-
|
|
387
|
-
# Check if IK node and services exist
|
|
388
|
-
try:
|
|
389
|
-
# Check if arms_ik_node is running using roslibpy
|
|
390
|
-
service = roslibpy.Service(self.websocket.client, '/rosnode/list', 'rosapi/Nodes')
|
|
391
|
-
response = service.call({})
|
|
392
|
-
nodes = response.get('nodes', [])
|
|
393
|
-
|
|
394
|
-
if '/arms_ik_node' not in nodes:
|
|
395
|
-
# Launch IK node if not running
|
|
396
|
-
kuavo_ws_root = self._get_kuavo_ws_root()
|
|
397
|
-
setup_file = self._get_setup_file(kuavo_ws_root)
|
|
398
|
-
source_cmd = f"source {setup_file}"
|
|
399
|
-
|
|
400
|
-
# Get robot version from environment variable
|
|
401
|
-
robot_version = os.environ.get('ROBOT_VERSION')
|
|
402
|
-
if robot_version is None:
|
|
403
|
-
raise Exception("Failed to get ROBOT_VERSION from environment variables")
|
|
404
|
-
|
|
405
|
-
# Launch IK node
|
|
406
|
-
launch_cmd = f"roslaunch motion_capture_ik ik_node.launch robot_version:={robot_version}"
|
|
407
|
-
full_cmd = f"{source_cmd} && {launch_cmd}"
|
|
408
|
-
|
|
409
|
-
self._launch_ros_node('IK node', full_cmd, 'launch_ik')
|
|
410
|
-
|
|
411
|
-
return True
|
|
412
|
-
|
|
413
|
-
except Exception as e:
|
|
414
|
-
raise Exception(f"Failed to verify IK node and services: {e}")
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
def launch_gait_switch_node(self)-> bool:
|
|
418
|
-
"""Verify that the gait switch node is running, launch if not."""
|
|
419
|
-
try:
|
|
420
|
-
# Check if node exists using roslibpy
|
|
421
|
-
service = roslibpy.Service(self.websocket.client, '/rosnode/list', 'rosapi/Nodes')
|
|
422
|
-
response = service.call({})
|
|
423
|
-
nodes = response.get('nodes', [])
|
|
424
|
-
|
|
425
|
-
if '/humanoid_gait_switch_by_name' not in nodes:
|
|
426
|
-
kuavo_ws_root = self._get_kuavo_ws_root()
|
|
427
|
-
setup_file = self._get_setup_file(kuavo_ws_root)
|
|
428
|
-
source_cmd = f"source {setup_file}"
|
|
429
|
-
|
|
430
|
-
# Launch gait switch node
|
|
431
|
-
launch_cmd = "roslaunch humanoid_interface_ros humanoid_switch_gait.launch"
|
|
432
|
-
full_cmd = f"{source_cmd} && {launch_cmd}"
|
|
433
|
-
|
|
434
|
-
self._launch_ros_node('Gait switch node', full_cmd, 'launch_gait_switch')
|
|
435
|
-
|
|
436
|
-
except Exception as e:
|
|
437
|
-
raise Exception(f"Failed to launch gait_switch node: {e}")
|
|
438
|
-
|
|
439
|
-
@staticmethod
|
|
440
|
-
def check_rosnode_exists(node_name):
|
|
441
|
-
"""Check if a ROS node is running using roslibpy.
|
|
442
|
-
|
|
443
|
-
Args:
|
|
444
|
-
node_name (str): Name of the node to check
|
|
445
|
-
|
|
446
|
-
Returns:
|
|
447
|
-
bool: True if node is running, False otherwise
|
|
448
|
-
"""
|
|
449
|
-
websocket = WebSocketKuavoSDK()
|
|
450
|
-
try:
|
|
451
|
-
if not websocket or not websocket.client.is_connected:
|
|
452
|
-
return False
|
|
453
|
-
|
|
454
|
-
service = roslibpy.Service(websocket.client, '/rosapi/nodes', 'rosapi/Nodes')
|
|
455
|
-
response = service.call({})
|
|
456
|
-
nodes = response.get('nodes', [])
|
|
457
|
-
return node_name in nodes
|
|
458
|
-
except Exception as e:
|
|
459
|
-
SDKLogger.error(f"Error checking if node {node_name} exists: {e}")
|
|
460
|
-
return False
|
|
File without changes
|
{kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/__init__.py
RENAMED
|
File without changes
|
{kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/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.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/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
|
{kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/kuavo_humanoid_sdk/kuavo/robot.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
|
{kuavo_humanoid_sdk-1.1.6b1134 → kuavo_humanoid_sdk-1.1.6b1142}/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
|
|
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
|
|
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
|