kuavo-humanoid-sdk 1.1.5__tar.gz → 1.1.6a1495__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.

Files changed (149) hide show
  1. kuavo_humanoid_sdk-1.1.6a1495/PKG-INFO +289 -0
  2. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/README.md +32 -9
  3. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/common/logger.py +3 -0
  4. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/interfaces/data_types.py +288 -0
  5. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/__init__.py +2 -1
  6. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/audio.py +3 -7
  7. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/core.py +31 -25
  8. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +2 -86
  9. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/control.py +128 -642
  10. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo/core/ros/observation.py +94 -0
  11. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +6 -138
  12. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/state.py +51 -334
  13. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +96 -34
  14. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +42 -91
  15. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +0 -225
  16. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +53 -54
  17. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/leju_claw.py +56 -57
  18. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo/robot.py +491 -0
  19. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/robot_arm.py +104 -71
  20. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo/robot_audio.py +39 -0
  21. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/robot_head.py +21 -10
  22. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/robot_info.py +26 -31
  23. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo/robot_observation.py +64 -0
  24. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo/robot_state.py +307 -0
  25. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo/robot_tool.py +82 -0
  26. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/robot_vision.py +20 -29
  27. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +1324 -0
  28. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +47 -4
  29. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +112 -0
  30. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +323 -0
  31. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +10 -0
  32. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +178 -0
  33. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +2 -1
  34. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +103 -5
  35. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +149 -0
  36. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +258 -0
  37. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +201 -0
  38. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +122 -0
  39. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +120 -0
  40. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +121 -0
  41. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_tagDataArray.py +216 -0
  42. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +281 -0
  43. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetTargetPartPoseInCamera.py +298 -0
  44. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +373 -0
  45. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +282 -0
  46. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +8 -0
  47. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +299 -0
  48. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +91 -3
  49. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +299 -0
  50. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +421 -0
  51. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +490 -0
  52. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +20 -26
  53. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +91 -3
  54. kuavo_humanoid_sdk-1.1.6a1495/kuavo_humanoid_sdk.egg-info/PKG-INFO +289 -0
  55. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +20 -2
  56. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk.egg-info/requires.txt +0 -1
  57. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/setup.py +1 -2
  58. kuavo_humanoid_sdk-1.1.5/PKG-INFO +0 -271
  59. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/common/global_config.py +0 -16
  60. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/common/websocket_kuavo_sdk.py +0 -23
  61. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/interfaces/data_types.py +0 -235
  62. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot.py +0 -459
  63. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -39
  64. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot_state.py +0 -306
  65. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot_tool.py +0 -62
  66. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +0 -418
  67. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk.egg-info/PKG-INFO +0 -271
  68. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/__init__.py +0 -0
  69. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
  70. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
  71. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
  72. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
  73. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
  74. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
  75. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
  76. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -0
  77. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
  78. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
  79. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +0 -0
  80. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +0 -0
  81. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
  82. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +0 -0
  83. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
  84. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +0 -0
  85. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
  86. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
  87. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
  88. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
  89. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
  90. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
  91. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +0 -0
  92. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
  93. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +0 -0
  94. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +0 -0
  95. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
  96. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
  97. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
  98. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
  99. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
  100. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_questJoySticks.py +0 -0
  101. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +0 -0
  102. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
  103. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
  104. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
  105. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +0 -0
  106. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
  107. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
  108. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +0 -0
  109. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +0 -0
  110. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
  111. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
  112. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -0
  113. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
  114. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +0 -0
  115. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
  116. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
  117. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
  118. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +0 -0
  119. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
  120. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
  121. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
  122. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
  123. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
  124. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
  125. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
  126. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +0 -0
  127. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
  128. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
  129. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +0 -0
  130. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
  131. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
  132. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
  133. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
  134. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
  135. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
  136. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
  137. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
  138. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
  139. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
  140. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
  141. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
  142. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
  143. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
  144. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
  145. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
  146. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
  147. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
  148. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
  149. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6a1495}/setup.cfg +0 -0
@@ -0,0 +1,289 @@
1
+ Metadata-Version: 2.1
2
+ Name: kuavo_humanoid_sdk
3
+ Version: 1.1.6a1495
4
+ Summary: A Python SDK for kuavo humanoid robot.
5
+ Home-page: https://gitee.com/leju-robot/kuavo-ros-opensource/
6
+ Author: ['lejurobot']
7
+ Author-email: edu@lejurobot.com
8
+ License: MIT
9
+ Project-URL: Documentation, https://gitee.com/leju-robot/kuavo-ros-opensource/
10
+ Project-URL: Source Code, https://gitee.com/leju-robot/kuavo-ros-opensource/
11
+ Keywords: kuavo,humanoid,robot,robotics,lejurobot,ros
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Requires-Python: >=3.8
22
+ Description-Content-Type: text/markdown
23
+
24
+ # Kuavo Humanoid SDK
25
+
26
+ 一个用于控制 Kuavo 人形机器人的 Python SDK,提供了机器人状态管理、机械臂和头部控制以及末端执行器操作的接口, 它设计用于在 ROS 环境中工作。
27
+
28
+ **警告**: 该SDK目前仅支持**ROS1**。暂不支持ROS2。
29
+
30
+ ![Kuavo 4Pro Robot](https://kuavo.lejurobot.com/manual/assets/images/kuavo_4pro-cf84d43f1c370666c6e810d2807ae3e4.png)
31
+
32
+ ## 特性
33
+
34
+ - 机器人状态管理
35
+ - IMU数据(加速度、角速度、欧拉角)
36
+ - 关节/电机状态(位置、速度、力矩)
37
+ - 躯干状态(位置、姿态、速度)
38
+ - 里程计信息
39
+ - 末端执行器状态:
40
+ - 夹持器(lejuclaw): 位置、速度、力矩、抓取状态
41
+ - 灵巧手(qiangnao): 位置、速度、力矩
42
+ - 触觉灵巧手(qiangnao_touch): 位置、速度、力矩、触觉状态
43
+ - 末端执行器位置和姿态
44
+ - 运动状态: 站立、行走、自定义单步控制
45
+
46
+ - 运动控制
47
+ - 手臂控制
48
+ - 关节位置控制
49
+ - 通过逆运动学(IK)的末端执行器6D控制
50
+ - 用于计算末端执行器位姿的正运动学(FK)
51
+ - 复杂动作的关键帧序列控制
52
+ - 末端执行器控制
53
+ - 夹持器控制(可配置速度和力矩的位置控制)
54
+ - 灵巧手控制
55
+ - 位置控制
56
+ - 预定义手势(OK、666、握拳等)控制
57
+ - 头部控制
58
+ - 位置控制
59
+ - 躯干控制
60
+ - 高度控制(下蹲)
61
+ - 前/后倾控制
62
+ - 动态运动控制
63
+ - 站立
64
+ - 踏步
65
+ - 行走(xy 和 yaw 偏航速度控制)
66
+ - 自定义单步控制
67
+ - 机器人基本信息
68
+ - 机器人类型(kuavo)
69
+ - 机器人版本
70
+ - 末端执行器类型
71
+ - 关节名称
72
+ - 总自由度(28)
73
+ - 手臂自由度(每臂7个)
74
+ - 头部自由度(2个)
75
+ - 腿部自由度(12个)
76
+ - 音频接口
77
+ - 播放指定的音频文件
78
+ - 停止播放音频
79
+ - TTS 文本合成音频
80
+ - 视觉接口
81
+ - 获取指定坐标系下的 AprilTag 检测数据
82
+ - 观测接口
83
+ - 获取机器人控制指令
84
+ - 搬箱子策略模块
85
+ - 查找 Apriltag
86
+ - 到达世界坐标系下的目标点位姿
87
+ - 搬箱子
88
+ - 放置箱子
89
+ ## 安装
90
+
91
+ **注意:目前SDK有两个版本,稳定版和测试版。它们的区别如下:**
92
+
93
+ - 稳定版:对应 [kuavo-ros-opensource](https://gitee.com/leju-robot/kuavo-ros-opensource/) 仓库 `master` 分支提供的功能。
94
+ - 测试版:比官方版本更激进,也提供更丰富的功能,对应 [kuavo-ros-opensource](https://gitee.com/leju-robot/kuavo-ros-opensource/) 仓库 `beta` 分支提供的功能。
95
+
96
+ **友情提醒:请明确您需要安装的版本。如果您的SDK版本与 `kuavo-ros-opensource` 不匹配,某些功能可能无法使用。**
97
+
98
+ 使用 pip 安装最新的 **稳定版** Kuavo Humanoid SDK:
99
+ ```bash
100
+ pip install kuavo-humanoid-sdk
101
+ ```
102
+
103
+ 使用 pip 安装最新的 **测试版** Kuavo Humanoid SDK:
104
+ ```bash
105
+ pip install --pre kuavo-humanoid-sdk
106
+ ```
107
+
108
+ 对于本地开发安装(可编辑模式),请使用:
109
+ ```bash
110
+ cd src/kuavo_humanoid_sdk
111
+ chmod +x install.sh
112
+ ./install.sh
113
+ ```
114
+
115
+ ## 版本升级
116
+ 在升级版本之前,您可以使用以下命令查看当前安装的版本:
117
+ ```bash
118
+ pip show kuavo-humanoid-sdk
119
+ # Output:
120
+ Name: kuavo-humanoid-sdk
121
+ Version: 1.1.6
122
+ ...
123
+ ```
124
+
125
+ **提示:如果版本号包含字母 b,则表示是测试版,例如,Version: 0.1.2b113**
126
+
127
+ 从稳定版本更新到最新的稳定版本:
128
+ ```bash
129
+ pip install --upgrade kuavo_humanoid_sdk
130
+ ```
131
+
132
+ 从测试版更新到最新的稳定版本:
133
+ ```bash
134
+ pip install --upgrade --force-reinstall kuavo_humanoid_sdk
135
+ # or
136
+ pip uninstall kuavo_humanoid_sdk && pip install kuavo_humanoid_sdk
137
+ ```
138
+
139
+ 从测试版/稳定版更新到最新的测试版:
140
+ ```bash
141
+ pip install --upgrade --pre kuavo_humanoid_sdk
142
+ ```
143
+
144
+ ## 安装包信息
145
+
146
+ 您可以使用 pip 来查看包信息:
147
+ ```bash
148
+ pip show kuavo-humanoid-sdk
149
+ ```
150
+
151
+ ## 快速开始
152
+
153
+ 以下是一个简单的示例,用于快速使用 Kuavo Humanoid SDK:
154
+
155
+ > **警告**:
156
+ > 在运行任何代码示例之前,请确保已经启动机器人, 否则 SDK 无法正常工作:
157
+ >
158
+ > - 如果是命令行启动,则请确保类似下面的命令已经执行:
159
+ > - 仿真模式: ``roslaunch humanoid_controllers load_kuavo_mujoco_sim.launch`` (示例命令)
160
+ > - 真实机器人: ``roslaunch humanoid_controllers load_kuavo_real.launch`` (示例命令)
161
+ > - 如果是 h12 遥控器等启动方式,也请确保已经让机器人启动(站立)
162
+
163
+ ```python3
164
+ # Copyright (c) 2025 Leju Robotics. Licensed under the MIT License.
165
+ import time
166
+ from kuavo_humanoid_sdk import KuavoSDK, KuavoRobot
167
+
168
+ def main():
169
+ if not KuavoSDK().Init(): # Init! !!! IMPORTANT !!!
170
+ print("Init KuavoSDK failed, exit!")
171
+ exit(1)
172
+ robot = KuavoRobot()
173
+
174
+ """ arm reset """
175
+ print("Switching to arm reset mode...")
176
+ robot.arm_reset()
177
+
178
+ """ stance """
179
+ print("Switching to stance mode...")
180
+ robot.stance()
181
+
182
+ """ trot """
183
+ print("Switching to trot mode...")
184
+ robot.trot()
185
+
186
+ """ walk forward """
187
+ print("Starting forward walk...")
188
+ duration = 4.0 # seconds
189
+ speed = 0.3 # m/s
190
+ start_time = time.time()
191
+ while (time.time() - start_time < duration):
192
+ robot.walk(linear_x=speed, linear_y=0.0, angular_z=0.0)
193
+ time.sleep(0.1) # Small sleep to prevent busy loop
194
+
195
+ if __name__ == "__main__":
196
+ main()
197
+ ```
198
+
199
+ ## 文档
200
+ 我们提供两种文档格式:
201
+ - HTML 格式: [docs/html](docs/html), **但是需要您自己在SDK目录下执行`gen_docs.sh`脚本生成**
202
+ - Markdown 格式: [docs/markdown](docs/markdown)
203
+
204
+ 您可以在 SDK 的源码目录下执行以下命令生成文档, 文档会输出到 `docs/html` 和 `docs/markdown` 文件夹中:
205
+ ```bash
206
+ cd <kuavo-ros-opensource>/src/kuavo_humanoid_sdk
207
+ chmod +x gen_docs.sh
208
+ ./gen_docs.sh
209
+ ```
210
+
211
+ **我们强烈推荐您阅读 `html` 文档, 因为它更适合阅读。**
212
+
213
+ 对于Markdown 文档, 请访问:
214
+
215
+ https://gitee.com/leju-robot/kuavo-ros-opensource/tree/master/src/kuavo_humanoid_sdk/docs/markdown/index.md
216
+
217
+ ## 使用示例
218
+
219
+ > **警告**:
220
+ > 在运行任何代码示例之前,请确保已经启动机器人, 否则 SDK 无法正常工作:
221
+ >
222
+ > - 如果是命令行启动,则请确保类似下面的命令已经执行:
223
+ > - 仿真模式: ``roslaunch humanoid_controllers load_kuavo_mujoco_sim.launch`` (示例命令)
224
+ > - 真实机器人: ``roslaunch humanoid_controllers load_kuavo_real.launch`` (示例命令)
225
+ > - 如果是 h12 遥控器等启动方式,也请确保已经让机器人启动(站立)
226
+
227
+ ### 基本信息示例
228
+
229
+ 一个获取机器人基本信息的示例。
230
+
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
+
233
+ ### 运动控制示例
234
+
235
+ 一个基本示例,用于初始化 SDK 并控制机器人运动。
236
+
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
+
239
+ ### 末端执行器控制示例
240
+
241
+ #### LejuClaw 夹爪
242
+
243
+ 展示如何控制 LejuClaw 夹爪末端执行器的示例,包括位置、速度和力矩控制。
244
+
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
+
247
+ #### QiangNao 灵巧手
248
+
249
+ 展示如何控制 QiangNao 灵巧手的示例,这是一个具有多个自由度的灵巧机器人手,可用于复杂的操作任务。
250
+
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
+
253
+ ### 手臂控制示例
254
+
255
+ 展示手臂轨迹控制和目标姿态控制的示例。
256
+
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
+
259
+ ### 手臂正向运动学和逆向运动学示例
260
+
261
+ 展示如何使用正向运动学(FK)从关节角度计算末端执行器位置,以及如何使用逆向运动学(IK)计算实现期望末端执行器姿态所需的关节角度的示例。
262
+
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
+
265
+ ### 头部控制示例
266
+
267
+ 展示如何控制机器人头部运动的示例,包括点头(俯仰)和摇头(偏航)动作。
268
+
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
+
271
+ ### 单步控制示例
272
+
273
+ 展示如何控制机器人按照自定义落足点轨迹运动的示例。
274
+
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
+
277
+
278
+ ## 许可证
279
+
280
+ 本项目使用 MIT 许可证授权,详情信息请查看 LICENSE 文件。
281
+
282
+ ## 联系与支持
283
+
284
+ 如有任何问题、支持需求或错误报告,请通过以下方式联系我们:
285
+
286
+ - 邮箱: edu@lejurobot.com
287
+ - 网站: https://gitee.com/leju-robot/kuavo-ros-opensource/
288
+ - 源代码: https://gitee.com/leju-robot/kuavo-ros-opensource/
289
+ - 问题追踪: https://gitee.com/leju-robot/kuavo-ros-opensource/issues
@@ -9,17 +9,17 @@ PyPI 项目地址: https://pypi.org/project/kuavo-humanoid-sdk/
9
9
 
10
10
  ## 安装
11
11
  **提示:对于本 SDK 目前存在两个版本,正式发布版与beta内测版, 他们的区别是:**
12
- - 正式发布版:稳定版,对应[kuavo-ros-opensource](https://gitee.com/leju-robot/kuavo-ros-opensource/)的`master` 分支提供的功能,
13
- - beta内测版:该版本较正式版会激进一些,同时也会提供更丰富的功能,对应[kuavo-ros-opensource](https://gitee.com/leju-robot/kuavo-ros-opensource/)的`beta` 分支提供的功能。
12
+ - 正式发布版:稳定版,对应 [kuavo-ros-opensource](https://gitee.com/leju-robot/kuavo-ros-opensource/) 的 `master` 分支提供的功能,
13
+ - beta内测版:该版本较正式版会激进一些,同时也会提供更丰富的功能,对应 [kuavo-ros-opensource](https://gitee.com/leju-robot/kuavo-ros-opensource/) 的 `beta` 分支提供的功能。
14
14
 
15
- **温馨提示:请务必明确您需要安装的版本,如果您的SDK版本与`kuavo-ros-opensource`未匹配,可能会出现某些功能不可用的错误。**
15
+ **温馨提示:请务必明确您需要安装的版本,如果您的SDK版本与 `kuavo-ros-opensource` 未匹配,可能会出现某些功能不可用的错误。**
16
16
 
17
- 安装最新的**正式版** Kuavo Humanoid SDK,可以使用 pip:
17
+ 安装最新的 **正式版** Kuavo Humanoid SDK,可以使用 pip:
18
18
  ```bash
19
- pip install kuavo-humanoid-sdk
19
+ pip install kuavo-humanoid-sdk
20
20
  ```
21
21
 
22
- 安装最新的**beta版** Kuavo Humanoid SDK,可以使用 pip:
22
+ 安装最新的 **beta版** Kuavo Humanoid SDK,可以使用 pip:
23
23
  ```bash
24
24
  pip install --pre kuavo-humanoid-sdk
25
25
 
@@ -58,17 +58,17 @@ pip uninstall kuavo_humanoid_sdk && pip install kuavo_humanoid_sdk
58
58
  pip install --upgrade --pre kuavo_humanoid_sdk
59
59
  ```
60
60
 
61
- ## 描述
61
+ ## 文档
62
62
 
63
63
  有关详细的 SDK 文档和使用示例,请参阅 [sdk_description.md](sdk_description.md)。
64
64
 
65
- ## 文档
66
- 文档提供两种格式:
65
+ 此外我们还提供了两种格式的文档:
67
66
  - HTML 格式:[docs/html](docs/html), **需要自己执行脚本生成**
68
67
  - Markdown 格式:[docs/markdown](docs/markdown)
69
68
 
70
69
  我们推荐您自己执行文档脚本生成文档到本地, 文档会输出到`docs/html`和`docs/markdown`文件夹:
71
70
  ```bash
71
+ catkin build kuavo_msgs ocs2_msgs motion_capture_ik
72
72
  chmod +x ./gen_docs.sh
73
73
  ./gen_docs.sh
74
74
  ```
@@ -76,3 +76,26 @@ chmod +x ./gen_docs.sh
76
76
  我们推荐您使用`html`查看文档更加方便,比如:
77
77
  ![](docs/images/image.png)
78
78
 
79
+ ## 搬箱子案例
80
+
81
+ 请参阅 html 或 markdown 文档中,**策略模块/搬箱子示例**章节内容,获取更多信息。
82
+
83
+ **测试**
84
+ ```
85
+ python3 -m pytest test_grasp_box_strategy.py -v
86
+ ```
87
+ 测试用例主要验证抓取盒子案例的各个策略模块:
88
+ - `test_head_find_target_success_rotate_head`: 测试仅通过头部旋转成功找到目标
89
+ - `test_head_find_target_success_rotate_body`: 测试需要旋转身体后成功找到目标
90
+ - `test_head_find_target_timeout`: 测试搜索超时未找到目标的情况
91
+ - `test_head_find_target_invalid_id`: 测试目标ID无效的情况
92
+ - `test_walk_approach_target_success`: 测试成功接近目标
93
+ - `test_walk_approach_target_no_data`: 测试目标数据不存在的情况
94
+ - `test_walk_to_pose_success`: 测试成功移动到指定位姿
95
+ - `test_walk_to_pose_failure`: 测试移动到指定位姿失败的情况
96
+ - `test_arm_move_to_target_success`: 测试手臂成功移动到目标位置
97
+ - `test_arm_move_to_target_failure`: 测试手臂移动失败的情况
98
+ - `test_arm_transport_target_up_success`: 测试成功抬起箱子
99
+ - `test_arm_transport_target_up_failure`: 测试抬起箱子失败的情况
100
+ - `test_arm_transport_target_down_success`: 测试成功放下箱子
101
+ - `test_arm_transport_target_down_failure`: 测试放下箱子失败的情况
@@ -8,6 +8,9 @@ def setup_logger():
8
8
  log_suffix = f'log/kuavo_humanoid_sdk'
9
9
  log_dir = f'/var/{log_suffix}'
10
10
  try:
11
+ # Check if we have write permission for /var directory
12
+ if not os.access('/var/log/', os.W_OK):
13
+ log_dir = f'./{log_suffix}'
11
14
  Path(log_dir).mkdir(parents=True, exist_ok=True)
12
15
  except Exception as e:
13
16
  # If creation in /var fails, create in current directory
@@ -0,0 +1,288 @@
1
+ from typing import Tuple
2
+ from enum import Enum
3
+ from dataclasses import dataclass
4
+ import numpy as np
5
+
6
+ @dataclass
7
+ class KuavoJointData:
8
+ """表示机器人关节状态的数据类"""
9
+ position: list
10
+ """关节位置(角度)列表,单位为弧度"""
11
+ velocity: list
12
+ """关节速度列表,单位为弧度/秒"""
13
+ torque: list
14
+ """关节扭矩/力矩列表,单位为牛顿·米或安培"""
15
+ acceleration:list
16
+ """关节加速度列表,单位为弧度/秒²"""
17
+
18
+ @dataclass
19
+ class KuavoImuData:
20
+ """表示机器人IMU(惯性测量单元)数据的数据类"""
21
+ gyro : Tuple[float, float, float]
22
+ """绕x、y、z轴的角速度,单位为弧度/秒"""
23
+ acc : Tuple[float, float, float]
24
+ """x、y、z轴的线性加速度,单位为米/秒²"""
25
+ free_acc: Tuple[float, float, float]
26
+ """自由加速度(重力补偿),x、y、z轴,单位为米/秒²"""
27
+ quat: Tuple[float, float, float, float]
28
+ """方向四元数 (x, y, z, w)"""
29
+
30
+ @dataclass
31
+ class KuavoOdometry:
32
+ """表示机器人里程计数据的数据类"""
33
+ position: Tuple[float, float, float]
34
+ """机器人在世界坐标系中的位置 (x, y, z),单位为米"""
35
+ orientation: Tuple[float, float, float, float]
36
+ """机器人方向四元数 (x, y, z, w)"""
37
+ linear: Tuple[float, float, float]
38
+ """世界坐标系中的线性速度 (x, y, z),单位为米/秒"""
39
+ angular: Tuple[float, float, float]
40
+ """世界坐标系中的角速度 (x, y, z),单位为弧度/秒"""
41
+
42
+ class KuavoArmCtrlMode(Enum):
43
+ """表示Kuavo机器人手臂控制模式的枚举类。"""
44
+ ArmFixed = 0
45
+ """手臂固定(冻结)模式"""
46
+ AutoSwing = 1
47
+ """自动摆臂模式"""
48
+ ExternalControl = 2
49
+ """手臂由外部命令控制"""
50
+
51
+ class KuavoManipulationMpcFrame(Enum):
52
+ """表示Kuavo机器人末端执行器 Manipulation MPC 坐标系的枚举类"""
53
+ KeepCurrentFrame = 0
54
+ """保持当前坐标系"""
55
+ WorldFrame = 1
56
+ """世界坐标系"""
57
+ LocalFrame = 2
58
+ """本地坐标系"""
59
+ VRFrame = 3
60
+ """VR坐标系"""
61
+ ManipulationWorldFrame = 4
62
+ """操作世界坐标系"""
63
+ ERROR = -1
64
+ """错误状态"""
65
+
66
+ class KuavoManipulationMpcCtrlMode(Enum):
67
+ """表示Kuavo机器人 Manipulation MPC 控制模式的枚举类"""
68
+ NoControl = 0
69
+ """无控制"""
70
+ ArmOnly = 1
71
+ """仅控制手臂"""
72
+ BaseOnly = 2
73
+ """仅控制底座"""
74
+ BaseArm = 3
75
+ """同时控制底座和手臂"""
76
+ ERROR = -1
77
+ """错误状态"""
78
+
79
+ class KuavoManipulationMpcControlFlow(Enum):
80
+ """表示Kuavo机器人 Manipulation MPC 控制数据流的枚举类"""
81
+ ThroughFullBodyMpc = 0
82
+ """控制数据通过全身MPC后进入WBC"""
83
+ DirectToWbc = 1
84
+ """控制数据直接流向WBC,不经过全身MPC"""
85
+ Error = -1
86
+ """无效的控制路径"""
87
+
88
+ @dataclass
89
+ class EndEffectorState:
90
+ """表示末端执行器状态的数据类。
91
+
92
+ 参数:
93
+ position (list): 浮点数,末端执行器位置,范围: [0, 100] \n
94
+ velocity (list): 浮点数,速度 \n
95
+ effort (list): 浮点数,力矩 \n
96
+ state (GraspingState): 夹爪抓取状态 \n
97
+ """
98
+ position: list
99
+ velocity: list
100
+ effort: list
101
+ class GraspingState(Enum):
102
+ """表示末端执行器抓取状态的枚举类。"""
103
+
104
+ ERROR = -1
105
+ """错误状态"""
106
+ UNKNOWN = 0
107
+ """未知状态"""
108
+ MOVING = 1
109
+ """正在移动到目标位置"""
110
+ REACHED = 2
111
+ """到达目标位置"""
112
+ GRABBED = 3
113
+ """成功抓取物体"""
114
+
115
+ state: GraspingState
116
+
117
+ class EndEffectorSide(Enum):
118
+ """表示末端执行器类型的枚举类。"""
119
+ LEFT = 'left'
120
+ """左末端执行器"""
121
+ RIGHT = 'right'
122
+ """右末端执行器"""
123
+ BOTH = 'both'
124
+ """左右末端执行器"""
125
+
126
+ @dataclass
127
+ class KuavoPose:
128
+ """表示机器人姿态的数据类。"""
129
+ position: Tuple[float, float, float] # x, y, z
130
+ orientation: Tuple[float, float, float, float] # x, y, z, w
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
+ @dataclass
145
+ class KuavoIKParams:
146
+ """表示IK节点参数的数据类。"""
147
+ # snopt参数
148
+ major_optimality_tol: float = 1e-3
149
+ major_feasibility_tol: float = 1e-3
150
+ minor_feasibility_tol: float = 1e-3
151
+ major_iterations_limit: float = 100
152
+ # 约束和成本参数
153
+ oritation_constraint_tol: float = 1e-3
154
+ pos_constraint_tol: float = 1e-3 # 0.001m,当pos_cost_weight==0.0时生效
155
+ pos_cost_weight: float = 0.0 # 如果需要高精度,请将此值设为0.0!!!
156
+
157
+ @dataclass
158
+ class KuavoDexHandTouchState:
159
+ """表示灵巧手触觉状态的数据类。"""
160
+
161
+ @dataclass
162
+ class KuavoTouchState:
163
+ """表示灵巧手触觉状态的数据类"""
164
+ normal_force1: int # 法向力1
165
+ """法向力1"""
166
+ normal_force2: int # 法向力2
167
+ """法向力2"""
168
+ normal_force3: int # 法向力3
169
+ """法向力3"""
170
+ tangential_force1: int # 切向力1
171
+ """切向力1"""
172
+ tangential_force2: int # 切向力2
173
+ """切向力2"""
174
+ tangential_force3: int # 切向力3
175
+ """切向力3"""
176
+ tangential_direction1: int # 切向力方向1
177
+ """切向力方向1"""
178
+ tangential_direction2: int # 切向力方向2
179
+ """切向力方向2"""
180
+ tangential_direction3: int # 切向力方向3
181
+ """切向力方向3"""
182
+ self_proximity1: int # 自电容接近传感器1
183
+ """自电容接近传感器1"""
184
+ self_proximity2: int # 自电容接近传感器2
185
+ """自电容接近传感器2"""
186
+ mutual_proximity: int # 互电容接近传感器
187
+ """互电容接近传感器"""
188
+ status: int # 传感器状态
189
+ """传感器状态"""
190
+ # 5个手指
191
+ data: Tuple[KuavoTouchState, KuavoTouchState, KuavoTouchState, KuavoTouchState, KuavoTouchState]
192
+
193
+ @dataclass
194
+ class AprilTagData:
195
+ """表示检测到的AprilTag信息及姿态估计"""
196
+ id: list
197
+ """检测到的AprilTag ID列表(整数)"""
198
+ size: list
199
+ """标签物理尺寸列表,单位为米(浮点数)"""
200
+ pose: list
201
+ """表示标签姿态的PoseQuaternion对象列表"""
202
+
203
+ @dataclass
204
+ class HomogeneousMatrix:
205
+ """用于3D变换的4x4齐次变换矩阵。
206
+
207
+ 表示3D空间中的旋转和平移。可用于坐标系变换和姿态合成。 \n
208
+
209
+ 属性:
210
+ matrix (np.ndarray): 形状为(4, 4)的4x4 numpy数组,包含::
211
+
212
+ [[R, t],
213
+ [0, 1]]
214
+
215
+ 其中R是3x3旋转矩阵,t是3x1平移向量
216
+ """
217
+ matrix: np.ndarray # 形状(4,4)的齐次变换矩阵
218
+
219
+ @dataclass
220
+ class PoseQuaternion:
221
+ """使用位置和四元数方向的3D姿态表示"""
222
+ position: Tuple[float, float, float]
223
+ """XYZ坐标,单位为米"""
224
+ orientation: Tuple[float, float, float, float]
225
+ """单位四元数,采用(x, y, z, w)格式,遵循ROS约定"""
226
+
227
+
228
+ @dataclass
229
+ class KuavoJointCommand:
230
+ """表示机器人关节命令的数据类\n
231
+ """
232
+ joint_q: list
233
+ """关节位置命令列表,单位为弧度"""
234
+ joint_v: list
235
+ """关节速度命令列表,单位为弧度/秒"""
236
+ """关节扭矩/力矩命令列表,单位为牛顿·米或安培"""
237
+ tau: list
238
+ """关节扭矩/力矩命令列表,单位为牛顿·米或安培"""
239
+ tau_max: list
240
+ """每个关节的最大允许扭矩列表"""
241
+ tau_ratio: list
242
+ """每个关节的扭矩比率(实际/最大)列表"""
243
+ joint_kp: list
244
+ """位置控制比例增益列表"""
245
+ joint_kd: list
246
+ """速度控制微分增益列表"""
247
+ control_modes: list
248
+ """每个关节的控制模式整数列表"""
249
+
250
+
251
+ @dataclass
252
+ class KuavoTwist:
253
+ """表示机器人扭转(速度)数据的数据类"""
254
+ linear: Tuple[float, float, float]
255
+ """线性速度 (x, y, z),单位为米/秒"""
256
+ angular: Tuple[float, float, float]
257
+ """角速度 (x, y, z),单位为弧度/秒"""
258
+
259
+
260
+ @dataclass
261
+ class KuavoMotorParam:
262
+ """表示机器人电机参数的数据类"""
263
+ Kp: float
264
+ """位置控制比例增益"""
265
+ Kd: float
266
+ """速度控制微分增益"""
267
+ id: int
268
+ """电机ID"""
269
+
270
+
271
+ @dataclass
272
+ class AprilTagDetection:
273
+ """表示AprilTag检测结果的数据类"""
274
+ @dataclass
275
+ class Point:
276
+ x: float
277
+ y: float
278
+ z: float
279
+
280
+ @dataclass
281
+ class Quaternion:
282
+ x: float
283
+ y: float
284
+ z: float
285
+ w: float
286
+
287
+ position: Point
288
+ orientation: Quaternion
@@ -7,4 +7,5 @@ from .robot_arm import KuavoRobotArm
7
7
  from .robot_head import KuavoRobotHead
8
8
  from .robot_audio import KuavoRobotAudio
9
9
  from .dexterous_hand import DexterousHand, TouchDexterousHand
10
- from .leju_claw import LejuClaw
10
+ from .leju_claw import LejuClaw
11
+ from .robot_observation import KuavoRobotObservation
@@ -6,17 +6,13 @@ from typing import Tuple
6
6
  from transitions import Machine, State
7
7
 
8
8
  from kuavo_humanoid_sdk.common.logger import SDKLogger
9
- from kuavo_humanoid_sdk.common.global_config import GlobalConfig
10
- from kuavo_humanoid_sdk.kuavo.core.ros.audio import Audio, AudioWebsocket
9
+ from kuavo_humanoid_sdk.kuavo.core.ros.audio import Audio
11
10
 
12
11
  class KuavoRobotAudioCore:
13
12
  def __init__(self):
14
- if GlobalConfig.use_websocket:
15
- self.robot_audio = AudioWebsocket()
16
- else:
17
- self.robot_audio = Audio()
13
+ self.robot_audio = Audio()
18
14
 
19
- def play_audio(self, music_number: str, volume: float = 0.5, speed: float = 1.0) -> bool:
15
+ def play_audio(self, music_number: str, volume: int = 100, speed: float = 1.0) -> bool:
20
16
  """
21
17
  play music
22
18
  """