kuavo-humanoid-sdk 1.1.5__tar.gz → 1.1.6__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 (127) hide show
  1. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/PKG-INFO +1 -1
  2. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/__init__.py +0 -2
  3. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/interfaces/data_types.py +0 -90
  4. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/__init__.py +0 -3
  5. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/core/core.py +20 -238
  6. kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/kuavo/core/ros/control.py +814 -0
  7. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/core/ros/param.py +4 -142
  8. kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/kuavo/core/ros/state.py +380 -0
  9. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/core/ros_env.py +1 -229
  10. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/dexterous_hand.py +2 -6
  11. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/leju_claw.py +2 -6
  12. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/robot.py +27 -150
  13. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/robot_arm.py +7 -53
  14. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/robot_head.py +0 -10
  15. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/robot_info.py +2 -7
  16. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/robot_state.py +4 -41
  17. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +0 -7
  18. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +0 -5
  19. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +20 -26
  20. kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik/msg/__init__.py +9 -0
  21. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_armHandPose.py +2 -2
  22. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_handPose.py +2 -2
  23. kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_headBodyPose.py +145 -0
  24. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_ikSolveError.py +13 -13
  25. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_ikSolveParam.py +2 -2
  26. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_robotArmQVVD.py +2 -2
  27. kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_robotHandPosition.py +225 -0
  28. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_twoArmHandPose.py +13 -13
  29. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/msg/_twoArmHandPoseCmd.py +30 -34
  30. kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik/srv/__init__.py +4 -0
  31. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik/srv/_changeArmCtrlMode.py +37 -35
  32. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/srv/_changeArmCtrlModeKuavo.py +5 -5
  33. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/srv/_fkSrv.py +13 -13
  34. {kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs → kuavo_humanoid_sdk-1.1.6/kuavo_humanoid_sdk/msg/motion_capture_ik}/srv/_twoArmHandPoseCmdSrv.py +37 -38
  35. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk.egg-info/PKG-INFO +1 -1
  36. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk.egg-info/SOURCES.txt +15 -24
  37. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk.egg-info/requires.txt +0 -1
  38. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/setup.py +0 -3
  39. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/common/global_config.py +0 -16
  40. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/common/websocket_kuavo_sdk.py +0 -23
  41. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/core/audio.py +0 -36
  42. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/core/ros/audio.py +0 -176
  43. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/core/ros/control.py +0 -1874
  44. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/core/ros/state.py +0 -917
  45. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/core/ros/tools.py +0 -158
  46. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/core/ros/vision.py +0 -283
  47. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -39
  48. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot_tool.py +0 -62
  49. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo/robot_vision.py +0 -90
  50. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -2
  51. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +0 -418
  52. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +0 -63
  53. kuavo_humanoid_sdk-1.1.5/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -270
  54. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/README.md +0 -0
  55. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/common/logger.py +0 -0
  56. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/interfaces/__init__.py +0 -0
  57. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/interfaces/end_effector.py +0 -0
  58. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/interfaces/robot.py +0 -0
  59. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/interfaces/robot_info.py +0 -0
  60. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py +0 -0
  61. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py +0 -0
  62. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py +0 -0
  63. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/__init__.py +0 -0
  64. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py +0 -0
  65. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py +0 -0
  66. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py +0 -0
  67. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py +0 -0
  68. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py +0 -0
  69. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py +0 -0
  70. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py +0 -0
  71. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandTouchState.py +0 -0
  72. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_endEffectorData.py +0 -0
  73. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPose.py +0 -0
  74. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py +0 -0
  75. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py +0 -0
  76. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py +0 -0
  77. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py +0 -0
  78. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py +0 -0
  79. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py +0 -0
  80. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py +0 -0
  81. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py +0 -0
  82. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py +0 -0
  83. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py +0 -0
  84. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_questJoySticks.py +0 -0
  85. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py +0 -0
  86. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py +0 -0
  87. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py +0 -0
  88. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py +0 -0
  89. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py +0 -0
  90. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py +0 -0
  91. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py +0 -0
  92. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py +0 -0
  93. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py +0 -0
  94. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py +0 -0
  95. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py +0 -0
  96. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py +0 -0
  97. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py +0 -0
  98. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py +0 -0
  99. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py +0 -0
  100. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py +0 -0
  101. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py +0 -0
  102. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py +0 -0
  103. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py +0 -0
  104. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py +0 -0
  105. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py +0 -0
  106. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py +0 -0
  107. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py +0 -0
  108. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py +0 -0
  109. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py +0 -0
  110. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py +0 -0
  111. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py +0 -0
  112. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_controller_data.py +0 -0
  113. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_lagrangian_metrics.py +0 -0
  114. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mode_schedule.py +0 -0
  115. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_flattened_controller.py +0 -0
  116. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_input.py +0 -0
  117. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_observation.py +0 -0
  118. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_performance_indices.py +0 -0
  119. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_solver_data.py +0 -0
  120. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_state.py +0 -0
  121. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py +0 -0
  122. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py +0 -0
  123. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py +0 -0
  124. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py +0 -0
  125. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk.egg-info/dependency_links.txt +0 -0
  126. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/kuavo_humanoid_sdk.egg-info/top_level.txt +0 -0
  127. {kuavo_humanoid_sdk-1.1.5 → kuavo_humanoid_sdk-1.1.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kuavo_humanoid_sdk
3
- Version: 1.1.5
3
+ Version: 1.1.6
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']
@@ -1,6 +1,4 @@
1
1
  from .msg import *
2
2
  from .interfaces import *
3
3
  from .kuavo import *
4
- from .kuavo_strategy import *
5
- from .kuavo_strategy.grasp_box import *
6
4
  from kuavo_humanoid_sdk.common.logger import SDKLogger, disable_sdk_logging
@@ -1,7 +1,6 @@
1
1
  from typing import Tuple
2
2
  from enum import Enum
3
3
  from dataclasses import dataclass
4
- import numpy as np
5
4
 
6
5
  @dataclass
7
6
  class KuavoJointData:
@@ -60,50 +59,6 @@ class KuavoArmCtrlMode(Enum):
60
59
  AutoSwing = 1
61
60
  ExternalControl = 2
62
61
 
63
- class KuavoManipulationMpcFrame(Enum):
64
- """Enum class representing the manipulation mpc frame for the Kuavo robot end effector.
65
-
66
- Attributes:
67
- KeepCurrentFrame: Keep the current frame (value: 0)
68
- WorldFrame: World frame (value: 1)
69
- LocalFrame: Local frame (value: 2)
70
- VRFrame: VR frame (value: 3)
71
- ManipulationWorldFrame: Manipulation world frame (value: 4)
72
- """
73
- KeepCurrentFrame = 0
74
- WorldFrame = 1
75
- LocalFrame = 2
76
- VRFrame = 3
77
- ManipulationWorldFrame = 4
78
- ERROR = -1
79
-
80
- class KuavoManipulationMpcCtrlMode(Enum):
81
- """Enum class representing the control mode for the Kuavo robot manipulation MPC.
82
-
83
- Attributes:
84
- NoControl: No control (value: 0)
85
- ArmOnly: Only control the arm (value: 1)
86
- BaseOnly: Only control the base (value: 2)
87
- BaseArm: Control both the base and the arm (value: 3)
88
- ERROR: Error state (value: -1)
89
- """
90
- NoControl = 0
91
- ArmOnly = 1
92
- BaseOnly = 2
93
- BaseArm = 3
94
- ERROR = -1
95
-
96
- class KuavoManipulationMpcControlFlow(Enum):
97
- """Enum class representing the control data flow for the Kuavo robot manipulation.
98
-
99
- Attributes:
100
- ThroughFullBodyMpc: Control data flows through full-body MPC before entering WBC (value: 0)
101
- DirectToWbc: Control data flows directly to WBC without full-body MPC (value: 1)
102
- Error: Invalid control path (value: -1)
103
- """
104
- ThroughFullBodyMpc = 0
105
- DirectToWbc = 1
106
- Error = -1
107
62
 
108
63
  @dataclass
109
64
  class EndEffectorState:
@@ -188,48 +143,3 @@ class KuavoDexHandTouchState:
188
143
  status: int # 传感器状态
189
144
  # 5 fingers
190
145
  data: Tuple[KuavoTouchState, KuavoTouchState, KuavoTouchState, KuavoTouchState, KuavoTouchState]
191
-
192
- @dataclass
193
- class AprilTagData:
194
- """Represents detected AprilTag information with pose estimation.
195
-
196
- Attributes:
197
- id (list): List of detected AprilTag IDs (integers)
198
- size (list): List of tag physical sizes in meters (floats)
199
- pose (list): List of PoseQuaternion objects representing tag poses
200
- """
201
- id: list
202
- size: list
203
- pose: list
204
-
205
- @dataclass
206
- class HomogeneousMatrix:
207
- """4x4 homogeneous transformation matrix for 3D transformations.
208
-
209
- Represents both rotation and translation in 3D space. Can be used for
210
- coordinate frame transformations and pose composition.
211
-
212
- Attributes:
213
- matrix (np.ndarray): 4x4 numpy array of shape (4, 4) containing::
214
-
215
- [[R, t],
216
- [0, 1]]
217
-
218
- where R is 3x3 rotation matrix and t is 3x1 translation
219
- """
220
- matrix: np.ndarray # Shape (4,4) homogeneous transformation matrix
221
-
222
- @dataclass
223
- class PoseQuaternion:
224
- """3D pose representation using position and quaternion orientation.
225
-
226
- Provides a singularity-free orientation representation. Commonly used
227
- in robotics for smooth interpolation between orientations.
228
-
229
- Attributes:
230
- position (Tuple[float, float, float]): XYZ coordinates in meters
231
- orientation (Tuple[float, float, float, float]): Unit quaternion in
232
- (x, y, z, w) format following ROS convention
233
- """
234
- position: Tuple[float, float, float]
235
- orientation: Tuple[float, float, float, float]
@@ -1,10 +1,7 @@
1
1
  from .robot import KuavoSDK, KuavoRobot
2
2
  from .robot_info import KuavoRobotInfo
3
3
  from .robot_state import KuavoRobotState
4
- from .robot_vision import KuavoRobotVision
5
- from .robot_tool import KuavoRobotTools
6
4
  from .robot_arm import KuavoRobotArm
7
5
  from .robot_head import KuavoRobotHead
8
- from .robot_audio import KuavoRobotAudio
9
6
  from .dexterous_hand import DexterousHand, TouchDexterousHand
10
7
  from .leju_claw import LejuClaw
@@ -19,37 +19,32 @@ Each state has an entry callback that handles initialization when entering that
19
19
 
20
20
  import time
21
21
  import math
22
+ import rospy
22
23
  import threading
23
24
  import numpy as np
24
25
  from typing import Tuple
25
26
  from transitions import Machine, State
26
27
 
27
- from kuavo_humanoid_sdk.interfaces.data_types import KuavoArmCtrlMode, KuavoIKParams, KuavoPose, KuavoManipulationMpcFrame, KuavoManipulationMpcCtrlMode, KuavoManipulationMpcControlFlow
28
- from kuavo_humanoid_sdk.kuavo.core.ros.control import KuavoRobotControl, KuavoRobotControlWebsocket
29
- from kuavo_humanoid_sdk.kuavo.core.ros.vision import KuavoRobotVisionCore
30
- from kuavo_humanoid_sdk.kuavo.core.ros.tools import KuavoRobotToolsCore
31
- from kuavo_humanoid_sdk.kuavo.core.ros.state import KuavoRobotStateCore, KuavoRobotStateCoreWebsocket
28
+ from kuavo_humanoid_sdk.interfaces.data_types import KuavoArmCtrlMode, KuavoIKParams, KuavoPose
29
+ from kuavo_humanoid_sdk.kuavo.core.ros.control import KuavoRobotControl
30
+ from kuavo_humanoid_sdk.kuavo.core.ros.state import KuavoRobotStateCore
32
31
  from kuavo_humanoid_sdk.kuavo.core.ros.param import make_robot_param
33
32
  from kuavo_humanoid_sdk.common.logger import SDKLogger
34
- from kuavo_humanoid_sdk.common.global_config import GlobalConfig
33
+
35
34
  # Define robot states
36
35
  ROBOT_STATES = [
37
36
  State(name='stance', on_enter=['_on_enter_stance']),
38
37
  State(name='walk', on_enter=['_on_enter_walk']),
39
38
  State(name='trot', on_enter=['_on_enter_trot']),
40
- State(name='custom_gait', on_enter=['_on_enter_custom_gait']),
41
- State(name='command_pose_world', on_enter=['_on_enter_command_pose_world']),
42
- State(name='command_pose', on_enter=['_on_enter_command_pose']),
39
+ State(name='custom_gait', on_enter=['_on_enter_custom_gait'])
43
40
  ]
44
41
 
45
42
  # Define state transitions
46
43
  ROBOT_TRANSITIONS = [
47
- {'trigger': 'to_stance', 'source': ['walk', 'trot', 'custom_gait', 'command_pose_world', 'command_pose'], 'dest': 'stance'},
44
+ {'trigger': 'to_stance', 'source': ['walk', 'trot', 'custom_gait'], 'dest': 'stance'},
48
45
  {'trigger': 'to_walk', 'source': ['stance', 'trot', 'custom_gait'], 'dest': 'walk'},
49
46
  {'trigger': 'to_trot', 'source': ['stance', 'walk', 'custom_gait'], 'dest': 'trot'},
50
47
  {'trigger': 'to_custom_gait', 'source': ['stance', 'custom_gait'], 'dest': 'custom_gait'},
51
- {'trigger': 'to_command_pose_world', 'source': ['stance', 'command_pose_world'], 'dest': 'command_pose_world'},
52
- {'trigger': 'to_command_pose', 'source': ['stance', 'command_pose'], 'dest': 'command_pose'},
53
48
  ]
54
49
 
55
50
  class KuavoRobotCore:
@@ -70,25 +65,9 @@ class KuavoRobotCore:
70
65
  send_event=True
71
66
  )
72
67
  # robot control
73
- if GlobalConfig.use_websocket:
74
- self._control = KuavoRobotControlWebsocket()
75
- self._rb_state = KuavoRobotStateCoreWebsocket()
76
- else:
77
- self._control = KuavoRobotControl()
78
- self._rb_state = KuavoRobotStateCore()
79
-
80
- # manipulation mpc
81
- self._manipulation_mpc_frame = KuavoManipulationMpcFrame.KeepCurrentFrame
82
- self._manipulation_mpc_ctrl_mode = KuavoManipulationMpcCtrlMode.NoControl
83
- self._manipulation_mpc_control_flow = KuavoManipulationMpcControlFlow.ThroughFullBodyMpc
84
-
85
- # robot vision
86
- self._robot_vision = KuavoRobotVisionCore()
87
- # robot ros tf
88
- self._robot_tf_tool = KuavoRobotToolsCore()
89
-
68
+ self._control = KuavoRobotControl()
69
+ self._rb_state = KuavoRobotStateCore()
90
70
  self._arm_ctrl_mode = KuavoArmCtrlMode.AutoSwing
91
-
92
71
  # register gait changed callback
93
72
  self._rb_state.register_gait_changed_callback(self._humanoid_gait_changed)
94
73
  # initialized
@@ -114,21 +93,6 @@ class KuavoRobotCore:
114
93
  if arm_ctrl_mode is not None:
115
94
  self._arm_ctrl_mode = arm_ctrl_mode
116
95
  SDKLogger.debug(f"[Core] initialize arm control mode: {arm_ctrl_mode}")
117
-
118
- # init manipulation mpc
119
- manipulation_mpc_frame = self._rb_state.manipulation_mpc_frame
120
- if manipulation_mpc_frame is not None:
121
- self._manipulation_mpc_frame = manipulation_mpc_frame
122
- SDKLogger.debug(f"[Core] initialize manipulation mpc frame: {manipulation_mpc_frame}")
123
- manipulation_mpc_ctrl_mode = self._rb_state.manipulation_mpc_ctrl_mode
124
- if manipulation_mpc_ctrl_mode is not None:
125
- self._manipulation_mpc_ctrl_mode = manipulation_mpc_ctrl_mode
126
- SDKLogger.debug(f"[Core] initialize manipulation mpc ctrl mode: {manipulation_mpc_ctrl_mode}")
127
- manipulation_mpc_control_flow = self._rb_state.manipulation_mpc_control_flow
128
- if manipulation_mpc_control_flow is not None:
129
- self._manipulation_mpc_control_flow = manipulation_mpc_control_flow
130
- SDKLogger.debug(f"[Core] initialize manipulation mpc control flow: {manipulation_mpc_control_flow}")
131
-
132
96
  except Exception as e:
133
97
  raise RuntimeError(f"[Core] initialize failed: \n"
134
98
  f"{e}, please check the robot is launched, "
@@ -190,21 +154,6 @@ class KuavoRobotCore:
190
154
  SDKLogger.debug(f"[Core] [StateMachine] State unchanged: already in custom_gait state")
191
155
  return
192
156
  SDKLogger.debug(f"[Core] [StateMachine] Entering custom_gait state, from {previous_state}")
193
-
194
- def _on_enter_command_pose_world(self, event):
195
- previous_state = event.transition.source
196
- if self.state == previous_state:
197
- SDKLogger.debug(f"[Core] [StateMachine] State unchanged: already in command_pose_world state")
198
- return
199
- SDKLogger.debug(f"[Core] [StateMachine] Entering command_pose_world state, from {previous_state}")
200
-
201
- def _on_enter_command_pose(self, event):
202
- previous_state = event.transition.source
203
- if self.state == previous_state:
204
- SDKLogger.debug(f"[Core] [StateMachine] State unchanged: already in command_pose state")
205
- return
206
- SDKLogger.debug(f"[Core] [StateMachine] Entering command_pose state, from {previous_state}")
207
-
208
157
  """ -------------------------------------------------------------"""
209
158
 
210
159
  """ --------------------------- Control -------------------------"""
@@ -340,54 +289,6 @@ class KuavoRobotCore:
340
289
 
341
290
  return True
342
291
 
343
- def control_command_pose(self, target_pose_x:float, target_pose_y:float, target_pose_z:float, target_pose_yaw:float)->bool:
344
- """
345
- Control robot pose in base_link frame
346
-
347
- Arguments:
348
- - target_pose_x: x position (meters)
349
- - target_pose_y: y position (meters)
350
- - target_pose_z: z position (meters)
351
- - target_pose_yaw: yaw angle (radians)
352
-
353
- Returns:
354
- bool: True if command was sent successfully, False otherwise
355
-
356
- Raises:
357
- RuntimeError: If robot is not in stance state
358
- """
359
- if self.state != 'stance':
360
- raise RuntimeError(f"[Core] control_command_pose failed: robot must be in stance state, current state: {self.state}")
361
-
362
- # Add any parameter validation if needed
363
- # e.g., limit ranges for safety
364
- self.to_command_pose()
365
- return self._control.control_command_pose(target_pose_x, target_pose_y, target_pose_z, target_pose_yaw)
366
-
367
- def control_command_pose_world(self, target_pose_x:float, target_pose_y:float, target_pose_z:float, target_pose_yaw:float)->bool:
368
- """
369
- Control robot pose in odom (world) frame
370
-
371
- Arguments:
372
- - target_pose_x: x position (meters)
373
- - target_pose_y: y position (meters)
374
- - target_pose_z: z position (meters)
375
- - target_pose_yaw: yaw angle (radians)
376
-
377
- Returns:
378
- bool: True if command was sent successfully, False otherwise
379
-
380
- Raises:
381
- RuntimeError: If robot is not in stance state
382
- """
383
- # if self.state != 'stance':
384
- # raise RuntimeError(f"[Core] control_command_pose_world failed: robot must be in stance state, current state: {self.state}")
385
-
386
- # Add any parameter validation if needed
387
- # e.g., limit ranges for safety
388
- self.to_command_pose_world()
389
- return self._control.control_command_pose_world(target_pose_x, target_pose_y, target_pose_z, target_pose_yaw)
390
-
391
292
  def execute_gesture(self, gestures:list)->bool:
392
293
  return self._control.execute_gesture(gestures)
393
294
 
@@ -410,111 +311,30 @@ class KuavoRobotCore:
410
311
  pitch_deg = pitch * 180 / math.pi
411
312
  return self._control.control_robot_head(yaw_deg, pitch_deg)
412
313
 
413
- def enable_head_tracking(self, target_id: int)->bool:
414
- return self._control.enable_head_tracking(target_id)
415
-
416
- def disable_head_tracking(self)->bool:
417
- return self._control.disable_head_tracking()
418
-
419
- def control_robot_arm_joint_positions(self, joint_data:list)->bool:
314
+ def control_robot_arm_traj(self, joint_data:list)->bool:
420
315
  if self.state != 'stance':
421
- raise RuntimeError(f"[Core] control_robot_arm_joint_positions failed: robot must be in stance state, current state: {self.state}")
316
+ raise RuntimeError(f"[Core] control_robot_arm_traj failed: robot must be in stance state, current state: {self.state}")
422
317
 
423
318
  # change to external control mode
424
319
  if self._arm_ctrl_mode != KuavoArmCtrlMode.ExternalControl:
425
- SDKLogger.debug("[Core] control_robot_arm_joint_positions, current arm mode != ExternalControl, change it.")
320
+ SDKLogger.debug("[Core] control_robot_arm_traj, current arm mode != ExternalControl, change it.")
426
321
  if not self.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ExternalControl):
427
- SDKLogger.warn("[Core] control_robot_arm_joint_positions failed, change robot arm ctrl mode failed!")
322
+ SDKLogger.warn("[Core] control_robot_arm_traj failed, change robot arm ctrl mode failed!")
428
323
  return False
429
- return self._control.control_robot_arm_joint_positions(joint_data)
324
+ return self._control.control_robot_arm_traj(joint_data)
430
325
 
431
- def control_robot_arm_joint_trajectory(self, times:list, joint_q:list)->bool:
326
+ def control_robot_arm_target_poses(self, times:list, joint_q:list)->bool:
432
327
  if self.state != 'stance':
433
- raise RuntimeError("[Core] control_robot_arm_joint_trajectory failed: robot must be in stance state")
328
+ raise RuntimeError("[Core] control_robot_arm_target_poses failed: robot must be in stance state")
434
329
 
435
330
  if self._arm_ctrl_mode != KuavoArmCtrlMode.ExternalControl:
436
- SDKLogger.debug("[Core] control_robot_arm_joint_trajectory, current arm mode != ExternalControl, change it.")
331
+ SDKLogger.debug("[Core] control_robot_arm_target_poses, current arm mode != ExternalControl, change it.")
437
332
  if not self.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ExternalControl):
438
- SDKLogger.warn("[Core] control_robot_arm_joint_trajectory failed, change robot arm ctrl mode failed!")
333
+ SDKLogger.warn("[Core] control_robot_arm_target_poses failed, change robot arm ctrl mode failed!")
439
334
  return False
440
335
 
441
- return self._control.control_robot_arm_joint_trajectory(times, joint_q)
442
-
443
- def control_robot_end_effector_pose(self, left_pose: KuavoPose, right_pose: KuavoPose, frame: KuavoManipulationMpcFrame)->bool:
444
- if self._arm_ctrl_mode != KuavoArmCtrlMode.ExternalControl:
445
- SDKLogger.debug("[Core] control_robot_end_effector_pose, current arm mode != ExternalControl, change it.")
446
- if not self.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ExternalControl):
447
- SDKLogger.warn("[Core] control_robot_end_effector_pose failed, change robot arm ctrl mode failed!")
448
- return False
449
-
450
- if self._manipulation_mpc_ctrl_mode == KuavoManipulationMpcCtrlMode.NoControl:
451
- SDKLogger.debug("[Core] control_robot_end_effector_pose, manipulation mpc ctrl mode is NoControl, change it.")
452
- if not self.change_manipulation_mpc_ctrl_mode(KuavoManipulationMpcCtrlMode.ArmOnly):
453
- SDKLogger.warn("[Core] control_robot_end_effector_pose failed, change manipulation mpc ctrl mode failed!")
454
- return False
455
-
456
- return self._control.control_robot_end_effector_pose(left_pose, right_pose, frame)
336
+ return self._control.control_robot_arm_target_poses(times, joint_q)
457
337
 
458
- def change_manipulation_mpc_frame(self, frame: KuavoManipulationMpcFrame)->bool:
459
- timeout = 1.0
460
- count = 0
461
- while self._rb_state.manipulation_mpc_frame != frame:
462
- SDKLogger.debug(f"[Core] Change manipulation mpc frame from {self._rb_state.manipulation_mpc_frame} to {frame}, retry: {count}")
463
- self._control.change_manipulation_mpc_frame(frame)
464
- if self._rb_state.manipulation_mpc_frame == frame:
465
- break
466
- if timeout <= 0:
467
- SDKLogger.warn("[Core] Change manipulation mpc frame timeout!")
468
- return False
469
- timeout -= 0.1
470
- time.sleep(0.1)
471
- count += 1
472
- if not hasattr(self, '_manipulation_mpc_frame_lock'):
473
- self._manipulation_mpc_frame_lock = threading.Lock()
474
- with self._manipulation_mpc_frame_lock:
475
- self._manipulation_mpc_frame = frame
476
- return True
477
-
478
- def change_manipulation_mpc_ctrl_mode(self, control_mode: KuavoManipulationMpcCtrlMode)->bool:
479
- timeout = 1.0
480
- count = 0
481
- while self._rb_state.manipulation_mpc_ctrl_mode != control_mode:
482
- SDKLogger.debug(f"[Core] Change manipulation mpc ctrl mode from {self._rb_state.manipulation_mpc_ctrl_mode} to {control_mode}, retry: {count}")
483
- self._control.change_manipulation_mpc_ctrl_mode(control_mode)
484
- if self._rb_state.manipulation_mpc_ctrl_mode == control_mode:
485
- break
486
- if timeout <= 0:
487
- SDKLogger.warn("[Core] Change manipulation mpc ctrl mode timeout!")
488
- return False
489
- timeout -= 0.1
490
- time.sleep(0.1)
491
- count += 1
492
- if not hasattr(self, '_manipulation_mpc_ctrl_mode_lock'):
493
- self._manipulation_mpc_ctrl_mode_lock = threading.Lock()
494
- with self._manipulation_mpc_ctrl_mode_lock:
495
- self._manipulation_mpc_ctrl_mode = control_mode
496
- return True
497
-
498
- def change_manipulation_mpc_control_flow(self, control_flow: KuavoManipulationMpcControlFlow)->bool:
499
- timeout = 1.0
500
- count = 0
501
- while self._rb_state.manipulation_mpc_control_flow != control_flow:
502
- SDKLogger.debug(f"[Core] Change manipulation mpc control flow from {self._rb_state.manipulation_mpc_control_flow} to {control_flow}, retry: {count}")
503
- self._control.change_manipulation_mpc_control_flow(control_flow)
504
- if self._rb_state.manipulation_mpc_control_flow == control_flow:
505
- break
506
- if timeout <= 0:
507
- SDKLogger.warn("[Core] Change manipulation mpc control flow timeout!")
508
- return False
509
- timeout -= 0.1
510
- time.sleep(0.1)
511
- count += 1
512
- if not hasattr(self, '_manipulation_mpc_control_flow_lock'):
513
- self._manipulation_mpc_control_flow_lock = threading.Lock()
514
- with self._manipulation_mpc_control_flow_lock:
515
- self._manipulation_mpc_control_flow = control_flow
516
- return True
517
-
518
338
  def change_robot_arm_ctrl_mode(self, mode:KuavoArmCtrlMode)->bool:
519
339
  timeout = 1.0
520
340
  count = 0
@@ -544,25 +364,12 @@ class KuavoRobotCore:
544
364
  return
545
365
 
546
366
  # init_pos = [0.0]*14
547
- # if not self.control_robot_arm_joint_trajectory([1.5], [init_pos]):
367
+ # if not self.control_robot_arm_target_poses([1.5], [init_pos]):
548
368
  # SDKLogger.warn("[Core] robot arm reset failed, control robot arm traj failed!")
549
369
  # return False
550
370
 
551
371
  return self.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.AutoSwing)
552
372
 
553
- def robot_manipulation_mpc_reset(self)->bool:
554
- if self._manipulation_mpc_ctrl_mode != KuavoManipulationMpcCtrlMode.NoControl:
555
- SDKLogger.debug("[Core] robot manipulation mpc reset, current manipulation mpc ctrl mode != NoControl, change it.")
556
- if not self.change_manipulation_mpc_ctrl_mode(KuavoManipulationMpcCtrlMode.NoControl):
557
- SDKLogger.warn("[Core] robot manipulation mpc reset failed, change manipulation mpc ctrl mode failed!")
558
- return False
559
- if self._manipulation_mpc_control_flow != KuavoManipulationMpcControlFlow.ThroughFullBodyMpc:
560
- SDKLogger.debug("[Core] robot manipulation mpc reset, current manipulation mpc control flow != ThroughFullBodyMpc, change it.")
561
- if not self.change_manipulation_mpc_control_flow(KuavoManipulationMpcControlFlow.ThroughFullBodyMpc):
562
- SDKLogger.warn("[Core] robot manipulation mpc reset failed, change manipulation mpc control flow failed!")
563
- return False
564
- return True
565
-
566
373
  """ ------------------------------------------------------------------------"""
567
374
  """ Arm Forward kinematics && Arm Inverse kinematics """
568
375
  def arm_ik(self,
@@ -587,28 +394,3 @@ class KuavoRobotCore:
587
394
  SDKLogger.debug(f"[Core] Received gait change notification: {gait_name} at time {current_time}")
588
395
  # Call the transition method if it exists
589
396
  getattr(self, to_method)()
590
-
591
-
592
- if __name__ == "__main__":
593
- DEBUG_MODE = 0
594
- core = KuavoRobotCore()
595
- core.initialize()
596
-
597
- if DEBUG_MODE == 0:
598
- time.sleep(1.0)
599
- core.change_robot_arm_ctrl_mode(KuavoArmCtrlMode.ExternalControl)
600
- core.change_manipulation_mpc_frame(KuavoManipulationMpcFrame.VRFrame)
601
- core.change_manipulation_mpc_ctrl_mode(KuavoManipulationMpcCtrlMode.ArmOnly)
602
- core.change_manipulation_mpc_control_flow(KuavoManipulationMpcControlFlow.DirectToWbc)
603
- core.robot_manipulation_mpc_reset()
604
- elif DEBUG_MODE == 1:
605
- core.to_stance()
606
- print("state now is to_stance:", core.state)
607
- core.control_command_pose_world(0.0, 1.0, 0.0, 1.57)
608
- print("state now is control_command_pose_world:", core.state)
609
- elif DEBUG_MODE == 2:
610
- core.to_trot()
611
- print("state now is to_trot:", core.state)
612
- time.sleep(3.0)
613
- core.to_stance()
614
- print("state now is to_stance:", core.state)