kuavo-humanoid-sdk 1.2.1b3284__tar.gz → 1.2.1b3295__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 (191) hide show
  1. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/PKG-INFO +1 -1
  2. kuavo_humanoid_sdk-1.2.1b3295/kuavo_humanoid_sdk/kuavo/core/ros/camera.py +105 -0
  3. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_blockly.py +39 -47
  4. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk.egg-info/PKG-INFO +1 -1
  5. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +1 -0
  6. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/README.md +0 -0
  7. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/__init__.py +0 -0
  8. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/common/logger.py +0 -0
  9. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
  10. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/interfaces/data_types.py +0 -0
  11. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
  12. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
  13. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
  14. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/__init__.py +0 -0
  15. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/audio.py +0 -0
  16. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/core.py +0 -0
  17. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
  18. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
  19. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/llm_doubao.py +0 -0
  20. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/microphone.py +0 -0
  21. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/navigation.py +0 -0
  22. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +0 -0
  23. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/control.py +0 -0
  24. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/microphone.py +0 -0
  25. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/navigation.py +0 -0
  26. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/observation.py +0 -0
  27. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +0 -0
  28. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
  29. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/state.py +0 -0
  30. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +0 -0
  31. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +0 -0
  32. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +0 -0
  33. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/core/sdk_deprecated.py +0 -0
  34. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/demo_climbstair.py +0 -0
  35. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +0 -0
  36. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/leju_claw.py +0 -0
  37. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/logger_client.py +0 -0
  38. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot.py +0 -0
  39. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_arm.py +0 -0
  40. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -0
  41. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_climbstair.py +0 -0
  42. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_head.py +0 -0
  43. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_info.py +0 -0
  44. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_microphone.py +0 -0
  45. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_navigation.py +0 -0
  46. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_observation.py +0 -0
  47. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_speech.py +0 -0
  48. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_state.py +0 -0
  49. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_tool.py +0 -0
  50. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo/robot_vision.py +0 -0
  51. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -0
  52. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +0 -0
  53. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +0 -0
  54. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/common/data_type.py +0 -0
  55. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/common/events/base_event.py +0 -0
  56. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/common/robot_sdk.py +0 -0
  57. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/case.py +0 -0
  58. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/pick_place_box/strategy.py +0 -0
  59. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/utils/logger_setup.py +0 -0
  60. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/kuavo_strategy_v2/utils/utils.py +0 -0
  61. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
  62. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
  63. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +0 -0
  64. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +0 -0
  65. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AudioReceiverData.py +0 -0
  66. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_FTsensorData.py +0 -0
  67. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_JoySticks.py +0 -0
  68. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
  69. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_MmDetectionMsg.py +0 -0
  70. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_RobotActionState.py +0 -0
  71. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TFArray.py +0 -0
  72. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_TaskPoint.py +0 -0
  73. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +0 -0
  74. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armCollisionCheckInfo.py +0 -0
  75. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py +0 -0
  76. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPoseFree.py +0 -0
  77. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
  78. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +0 -0
  79. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_bezierCurveCubicPoint.py +0 -0
  80. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
  81. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
  82. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
  83. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +0 -0
  84. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6D.py +0 -0
  85. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose6DTargetTrajectories.py +0 -0
  86. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +0 -0
  87. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVision.py +0 -0
  88. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseWithVisionArray.py +0 -0
  89. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses.py +0 -0
  90. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoses6D.py +0 -0
  91. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_fullBodyTargetTrajectories.py +0 -0
  92. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
  93. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
  94. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
  95. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py +0 -0
  96. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
  97. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py +0 -0
  98. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py +0 -0
  99. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
  100. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointBezierTrajectory.py +0 -0
  101. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
  102. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
  103. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_kuavoModeSchedule.py +0 -0
  104. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
  105. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
  106. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_motorParam.py +0 -0
  107. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfo.py +0 -0
  108. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_picoPoseInfoList.py +0 -0
  109. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_planArmState.py +0 -0
  110. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_qv.py +0 -0
  111. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py +0 -0
  112. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotBodyMatrices.py +0 -0
  113. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
  114. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
  115. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
  116. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +0 -0
  117. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
  118. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_tagDataArray.py +0 -0
  119. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
  120. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py +0 -0
  121. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py +0 -0
  122. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmdFree.py +0 -0
  123. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseFree.py +0 -0
  124. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
  125. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
  126. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_CreatePath.py +0 -0
  127. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_ExecuteArmAction.py +0 -0
  128. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetAllMaps.py +0 -0
  129. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetCurrentMap.py +0 -0
  130. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_GetTargetPartPoseInCamera.py +0 -0
  131. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_InitialPoseWithTaskPoint.py +0 -0
  132. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_LoadMap.py +0 -0
  133. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_NavigateToTaskPoint.py +0 -0
  134. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_RepublishTFs.py +0 -0
  135. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetInitialPose.py +0 -0
  136. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetJoyTopic.py +0 -0
  137. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode.py +0 -0
  138. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SetLEDMode_free.py +0 -0
  139. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -0
  140. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_TaskPointOperation.py +0 -0
  141. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +0 -0
  142. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_adjustZeroPoint.py +0 -0
  143. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
  144. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py +0 -0
  145. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeMotorParam.py +0 -0
  146. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
  147. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
  148. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
  149. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py +0 -0
  150. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPose6DTargetTrajectoriesSrv.py +0 -0
  151. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +0 -0
  152. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
  153. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
  154. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
  155. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
  156. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorParam.py +0 -0
  157. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getMotorZeroPoints.py +0 -0
  158. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
  159. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
  160. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryBezierCurve.py +0 -0
  161. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_planArmTrajectoryCubicSpline.py +0 -0
  162. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +0 -0
  163. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
  164. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py +0 -0
  165. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
  166. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
  167. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +0 -0
  168. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdFreeSrv.py +0 -0
  169. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py +0 -0
  170. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
  171. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
  172. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
  173. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
  174. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
  175. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
  176. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
  177. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
  178. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
  179. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
  180. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
  181. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
  182. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
  183. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
  184. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
  185. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
  186. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
  187. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
  188. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk.egg-info/requires.txt +0 -0
  189. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
  190. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/setup.cfg +0 -0
  191. {kuavo_humanoid_sdk-1.2.1b3284 → kuavo_humanoid_sdk-1.2.1b3295}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kuavo_humanoid_sdk
3
- Version: 1.2.1b3284
3
+ Version: 1.2.1b3295
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']
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env python3
2
+ # coding: utf-8
3
+ import rospy
4
+ from std_msgs.msg import Bool, Int16MultiArray
5
+ from kuavo_humanoid_sdk.common.logger import SDKLogger
6
+ from kuavo_humanoid_sdk.kuavo.core.core import KuavoRobotCore
7
+ from sensor_msgs.msg import Image
8
+ from cv_bridge import CvBridge, CvBridgeError
9
+ from kuavo_msgs.msg import yoloOutputData, yoloDetection
10
+ import threading
11
+
12
+ class CameraROSInterface:
13
+ def __init__(self):
14
+ self.bridge = CvBridge()
15
+
16
+ self.cameras = {
17
+ 'head': {
18
+ 'topic': '/camera/color/image_raw',
19
+ 'pub_topic': '/model_output_data',
20
+ 'publisher': None
21
+ },
22
+ 'chest': {
23
+ 'topic': '/chest_cam',
24
+ 'pub_topic': '/chest_detection_data',
25
+ 'publisher': None
26
+ }
27
+ }
28
+
29
+ self.cv_image_shape = None
30
+
31
+
32
+ def init_ros_node(self):
33
+ if not rospy.get_node_uri():
34
+ rospy.init_node('YOLO_detection', anonymous=True)
35
+
36
+ for camera in self.cameras.values():
37
+ camera['publisher'] = rospy.Publisher(
38
+ camera['pub_topic'],
39
+ yoloDetection,
40
+ queue_size=1,
41
+ tcp_nodelay=True
42
+ )
43
+
44
+ def get_camera_image(self, camera):
45
+ if camera not in self.cameras:
46
+ rospy.logerr(f"Unknown camera: {camera}")
47
+ return None
48
+
49
+ try:
50
+ # 使用rospy.wait_for_message()获取一帧图像
51
+ msg = rospy.wait_for_message(self.cameras[camera]['topic'], Image, timeout=1.0)
52
+ cv_image = self.bridge.imgmsg_to_cv2(msg, "bgr8")
53
+ self.cv_image_shape = cv_image.shape
54
+ return cv_image
55
+ except rospy.ROSException as e:
56
+ print(f"Timeout waiting for {camera} camera image: {e}")
57
+ return None
58
+ except CvBridgeError as e:
59
+ rospy.logerr(f"{camera.capitalize()} Camera CvBridge Error: {e}")
60
+ return None
61
+
62
+ def node_spin(self):
63
+ rospy.spin()
64
+
65
+ def node_is_shutdown(self):
66
+ return rospy.is_shutdown()
67
+
68
+ def tensor_to_msg(self, results):
69
+ if not results:
70
+ return None
71
+ else:
72
+ yolo_detections = yoloDetection()
73
+ for result in results:
74
+ boxes = result.boxes.cpu().numpy()
75
+
76
+ xywh = boxes.xywh # center-x(i,0), center-y(i,1), width(i,2), height(i,3)
77
+ class_ids = result.boxes.cls.int().cpu().numpy()
78
+ class_names = [result.names[cls.item()] for cls in result.boxes.cls.int()]
79
+ confs = boxes.conf
80
+
81
+ for i in range(len(xywh)):
82
+ yolo_output_data = yoloOutputData(
83
+ class_name=class_names[i],
84
+ class_id=int(class_ids[i]),
85
+ confidence=confs[i],
86
+ x_pos=xywh[i][0],
87
+ y_pos=xywh[i][1],
88
+ height=xywh[i][2],
89
+ width=xywh[i][3]
90
+ )
91
+ yolo_detections.data.append(yolo_output_data)
92
+ return yolo_detections
93
+
94
+ def publish_results(self, results, camera):
95
+ if not results:
96
+ rospy.loginfo(f"No results to publish for {camera} camera.")
97
+ return
98
+
99
+ if camera not in self.cameras:
100
+ rospy.logerr(f"Unknown camera: {camera}")
101
+ return
102
+
103
+ yolo_detections = self.tensor_to_msg(results)
104
+ if yolo_detections:
105
+ self.cameras[camera]['publisher'].publish(yolo_detections)
@@ -28,9 +28,8 @@ from geometry_msgs.msg import Pose, Point, Quaternion
28
28
  from std_msgs.msg import Float64MultiArray
29
29
 
30
30
  import inspect
31
- from model_utils import *
32
- import model_utils as model_utils
33
-
31
+ from kuavo_humanoid_sdk.kuavo.core.model_utils.model_utils import *
32
+ from kuavo_humanoid_sdk.kuavo.core.model_utils import model_utils as model_utils
34
33
 
35
34
  from enum import IntEnum
36
35
  # Global flag for handling Ctrl+C
@@ -45,24 +44,6 @@ else:
45
44
  INIT_ARM_POS = [22.91831, 0, 0, -45.83662, 22.91831, 0, 0, -45.83662] # task.info: shoudler_center: 0.4rad, elbow_center: -0.8rad
46
45
 
47
46
 
48
-
49
- global ACTION_FILE_FOLDER, package_path, THRESHOLD_HEAD_CONTROL_COUNT, FLOAT_MAX
50
- THRESHOLD_HEAD_CONTROL_COUNT = 30
51
- FLOAT_MAX = float('inf')
52
-
53
- package_name = 'planarmwebsocketservice'
54
- package_path = rospkg.RosPack().get_path(package_name)
55
- sudo_user = os.environ.get("SUDO_USER")
56
- if sudo_user:
57
- user_info = pwd.getpwnam(sudo_user)
58
- home_path = user_info.pw_dir
59
- else:
60
- home_path = os.path.expanduser("~")
61
- ACTION_FILE_FOLDER = os.path.join(home_path, '.config', 'lejuconfig', 'action_files')
62
- plan_arm_state_progress = 0
63
- plan_arm_state_status = False
64
-
65
-
66
47
  def signal_handler(sig, frame):
67
48
  """Signal handler for catching Ctrl+C and safely stopping the robot.
68
49
 
@@ -287,16 +268,29 @@ class RobotControlBlockly:
287
268
  g_robot_type = "ocs2"
288
269
  self.loop = None
289
270
  self.init_ros_publishers()
271
+ self.THRESHOLD_HEAD_CONTROL_COUNT = 30
272
+ self.FLOAT_MAX = float('inf')
290
273
  self.to_stance()
291
274
 
275
+ package_name = 'planarmwebsocketservice'
276
+ self.package_path = rospkg.RosPack().get_path(package_name)
277
+ sudo_user = os.environ.get("SUDO_USER")
278
+ if sudo_user:
279
+ user_info = pwd.getpwnam(sudo_user)
280
+ home_path = user_info.pw_dir
281
+ else:
282
+ home_path = os.path.expanduser("~")
283
+ self.ACTION_FILE_FOLDER = os.path.join(home_path, '.config', 'lejuconfig', 'action_files')
284
+ self.plan_arm_state_progress = 0
285
+ self.plan_arm_state_status = False
286
+
292
287
  def set_action_file_path(self, proj_name: str):
293
288
  """Set the action file path for a specific project.
294
289
 
295
290
  Args:
296
291
  proj_name (str): Project name.
297
292
  """
298
- global ACTION_FILE_FOLDER
299
- ACTION_FILE_FOLDER = package_path + "/upload_files/" + proj_name + "/action_files"
293
+ self.ACTION_FILE_FOLDER = self.package_path + "/upload_files/" + proj_name + "/action_files"
300
294
 
301
295
  def init_ros_publishers(self):
302
296
  """Initialize ROS publishers and subscribers for arm, hand, head control topics, sensor data, and trajectory state."""
@@ -318,7 +312,7 @@ class RobotControlBlockly:
318
312
  Only publishes when robot type is 'ocs2' and trajectory is not finished.
319
313
  """
320
314
  global kuavo_arm_traj_pub, control_hand_pub, control_head_pub, g_robot_type
321
- if g_robot_type == "ocs2" and len(ocs2_joint_state.position) > 0 and plan_arm_state_status is False:
315
+ if g_robot_type == "ocs2" and len(ocs2_joint_state.position) > 0 and self.plan_arm_state_status is False:
322
316
  kuavo_arm_traj_pub.publish(ocs2_joint_state)
323
317
  control_hand_pub.publish(ocs2_hand_state)
324
318
  # control_head_pub.publish(ocs2_head_state)
@@ -349,9 +343,8 @@ class RobotControlBlockly:
349
343
  Args:
350
344
  msg (planArmState): Arm trajectory state message.
351
345
  """
352
- global plan_arm_state_progress, plan_arm_state_status
353
- plan_arm_state_progress = msg.progress
354
- plan_arm_state_status = msg.is_finished
346
+ self.plan_arm_state_progress = msg.progress
347
+ self.plan_arm_state_status = msg.is_finished
355
348
 
356
349
  def traj_callback(self, msg):
357
350
  """Callback for trajectory messages, parses trajectory points and updates global arm, hand, and head state variables.
@@ -597,14 +590,13 @@ class RobotControlBlockly:
597
590
  """
598
591
  global g_robot_type
599
592
  g_robot_type = "ocs2"
600
- global plan_arm_state_status
601
- plan_arm_state_status = False
593
+ self.plan_arm_state_status = False
602
594
 
603
595
  action_filename = action_file + ".tact"
604
596
  if proj_name is None:
605
- action_file_path = os.path.expanduser(f"{ACTION_FILE_FOLDER}/{action_filename}")
597
+ action_file_path = os.path.expanduser(f"{self.ACTION_FILE_FOLDER}/{action_filename}")
606
598
  else:
607
- action_file_path = package_path + "/upload_files/" + proj_name + "/action_files/" + action_filename
599
+ action_file_path = self.package_path + "/upload_files/" + proj_name + "/action_files/" + action_filename
608
600
  if not os.path.exists(action_file_path):
609
601
  print(f"Action file not found: {action_file_path}")
610
602
  return
@@ -623,7 +615,7 @@ class RobotControlBlockly:
623
615
  self.play_music(music_file)
624
616
  self.plan_arm_trajectory_bezier_curve_client(req)
625
617
  time.sleep(0.5)
626
- while plan_arm_state_status is False:
618
+ while self.plan_arm_state_status is False:
627
619
  time.sleep(0.01)
628
620
  print("action file executed")
629
621
 
@@ -635,13 +627,12 @@ class RobotControlBlockly:
635
627
  pitch (float): Pitch angle in degrees.
636
628
  """
637
629
  try:
638
- global THRESHOLD_HEAD_CONTROL_COUNT, FLOAT_MAX
639
630
  self.robot.stance()
640
631
  yaw = math.radians(yaw)
641
632
  pitch = math.radians(pitch)
642
633
  self.robot.control_head(yaw, pitch)
643
- diff_yaw_min = FLOAT_MAX
644
- diff_pitch_min = FLOAT_MAX
634
+ diff_yaw_min = self.FLOAT_MAX
635
+ diff_pitch_min = self.FLOAT_MAX
645
636
  times_count = 0
646
637
  while True:
647
638
  time.sleep(0.01)
@@ -657,7 +648,7 @@ class RobotControlBlockly:
657
648
  diff_pitch_min = diff_pitch
658
649
  continue
659
650
  times_count += 1
660
- if times_count > THRESHOLD_HEAD_CONTROL_COUNT:
651
+ if times_count > self.THRESHOLD_HEAD_CONTROL_COUNT:
661
652
  break
662
653
 
663
654
  except Exception as e:
@@ -670,12 +661,11 @@ class RobotControlBlockly:
670
661
  yaw (float): Yaw angle in degrees.
671
662
  """
672
663
  try:
673
- global THRESHOLD_HEAD_CONTROL_COUNT, FLOAT_MAX
674
664
  self.robot.stance()
675
665
  yaw = math.radians(yaw)
676
666
  self.robot.control_head(yaw, current_head_joint_state[1])
677
667
  times_count = 0
678
- diff_yaw_min = FLOAT_MAX
668
+ diff_yaw_min = self.FLOAT_MAX
679
669
  while True:
680
670
  time.sleep(0.01)
681
671
  diff_yaw = abs(current_head_joint_state[0] - yaw)
@@ -684,7 +674,7 @@ class RobotControlBlockly:
684
674
  diff_yaw_min = diff_yaw
685
675
  continue
686
676
  times_count += 1
687
- if times_count > THRESHOLD_HEAD_CONTROL_COUNT:
677
+ if times_count > self.THRESHOLD_HEAD_CONTROL_COUNT:
688
678
  break
689
679
  except Exception as e:
690
680
  print(f"Robot head control failed: {str(e)}")
@@ -696,12 +686,11 @@ class RobotControlBlockly:
696
686
  pitch (float): Pitch angle in degrees.
697
687
  """
698
688
  try:
699
- global THRESHOLD_HEAD_CONTROL_COUNT, FLOAT_MAX
700
689
  self.robot.stance()
701
690
  pitch = math.radians(pitch)
702
691
  self.robot.control_head(current_head_joint_state[0], pitch)
703
692
  times_count = 0
704
- diff_pitch_min = FLOAT_MAX
693
+ diff_pitch_min = self.FLOAT_MAX
705
694
  while True:
706
695
  time.sleep(0.01)
707
696
  diff_pitch = abs(current_head_joint_state[1] - pitch)
@@ -710,7 +699,7 @@ class RobotControlBlockly:
710
699
  diff_pitch_min = diff_pitch
711
700
  continue
712
701
  times_count += 1
713
- if times_count > THRESHOLD_HEAD_CONTROL_COUNT:
702
+ if times_count > self.THRESHOLD_HEAD_CONTROL_COUNT:
714
703
  break
715
704
  except Exception as e:
716
705
  print(f"Robot head control failed: {str(e)}")
@@ -1086,14 +1075,18 @@ class RobotControlBlockly:
1086
1075
  if not is_yolo_init:
1087
1076
  yolo_detection = YOLO_detection()
1088
1077
  yolo_detection.init_ros_node()
1089
- caller_file_path = inspect.stack()[1].filename
1078
+ caller_file_path = self.package_path + "/upload_files/"
1079
+ print(f"caller_file_path: {caller_file_path}")
1090
1080
  model_path = os.path.join(os.path.dirname(caller_file_path), 'best.pt')
1091
1081
  # print(f"函数被文件调用: {model_path}")
1092
1082
  model = yolo_detection.load_model(model_path)
1083
+ result = yolo_detection.camera_interface.get_camera_image("head")
1084
+ if result is None:
1085
+ print("No head camera image...")
1086
+ return
1093
1087
 
1094
-
1095
- IMAGE_CENTER_X = yolo_detection.cv_image_shape[1] / 2.0
1096
- IMAGE_CENTER_Y = yolo_detection.cv_image_shape[0] / 2.0
1088
+ IMAGE_CENTER_X = yolo_detection.camera_interface.cv_image_shape[1] / 2.0
1089
+ IMAGE_CENTER_Y = yolo_detection.camera_interface.cv_image_shape[0] / 2.0
1097
1090
  # rospy.loginfo(f"IMAGE_CENTER_X: {IMAGE_CENTER_X}")
1098
1091
  # rospy.loginfo(f"IMAGE_CENTER_Y: {IMAGE_CENTER_Y}")
1099
1092
  MOVE_SPEED_Y = 0.05 # Y方向移动速度
@@ -1102,7 +1095,6 @@ class RobotControlBlockly:
1102
1095
  while not rospy.is_shutdown():
1103
1096
 
1104
1097
  results = yolo_detection.get_detections("head", model)
1105
-
1106
1098
  if not results:
1107
1099
  continue
1108
1100
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kuavo-humanoid-sdk
3
- Version: 1.2.1b3284
3
+ Version: 1.2.1b3295
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']
@@ -41,6 +41,7 @@ kuavo_humanoid_sdk/kuavo/core/navigation.py
41
41
  kuavo_humanoid_sdk/kuavo/core/ros_env.py
42
42
  kuavo_humanoid_sdk/kuavo/core/sdk_deprecated.py
43
43
  kuavo_humanoid_sdk/kuavo/core/ros/audio.py
44
+ kuavo_humanoid_sdk/kuavo/core/ros/camera.py
44
45
  kuavo_humanoid_sdk/kuavo/core/ros/control.py
45
46
  kuavo_humanoid_sdk/kuavo/core/ros/microphone.py
46
47
  kuavo_humanoid_sdk/kuavo/core/ros/navigation.py