kuavo-humanoid-sdk 1.1.5__py3-none-any.whl → 1.1.6__py3-none-any.whl

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 (50) hide show
  1. kuavo_humanoid_sdk/__init__.py +0 -2
  2. kuavo_humanoid_sdk/interfaces/data_types.py +0 -90
  3. kuavo_humanoid_sdk/kuavo/__init__.py +0 -3
  4. kuavo_humanoid_sdk/kuavo/core/core.py +20 -238
  5. kuavo_humanoid_sdk/kuavo/core/ros/control.py +27 -1087
  6. kuavo_humanoid_sdk/kuavo/core/ros/param.py +4 -142
  7. kuavo_humanoid_sdk/kuavo/core/ros/state.py +19 -556
  8. kuavo_humanoid_sdk/kuavo/core/ros_env.py +1 -229
  9. kuavo_humanoid_sdk/kuavo/dexterous_hand.py +2 -6
  10. kuavo_humanoid_sdk/kuavo/leju_claw.py +2 -6
  11. kuavo_humanoid_sdk/kuavo/robot.py +27 -150
  12. kuavo_humanoid_sdk/kuavo/robot_arm.py +7 -53
  13. kuavo_humanoid_sdk/kuavo/robot_head.py +0 -10
  14. kuavo_humanoid_sdk/kuavo/robot_info.py +2 -7
  15. kuavo_humanoid_sdk/kuavo/robot_state.py +4 -41
  16. kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py +0 -7
  17. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py +0 -5
  18. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py +20 -26
  19. kuavo_humanoid_sdk/msg/motion_capture_ik/msg/__init__.py +9 -0
  20. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_armHandPose.py +2 -2
  21. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_handPose.py +2 -2
  22. kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_headBodyPose.py +145 -0
  23. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_ikSolveError.py +13 -13
  24. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_ikSolveParam.py +2 -2
  25. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_robotArmQVVD.py +2 -2
  26. kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_robotHandPosition.py +225 -0
  27. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_twoArmHandPose.py +13 -13
  28. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/msg/_twoArmHandPoseCmd.py +30 -34
  29. kuavo_humanoid_sdk/msg/motion_capture_ik/srv/__init__.py +4 -0
  30. kuavo_humanoid_sdk/msg/{kuavo_msgs/srv/_setMmCtrlFrame.py → motion_capture_ik/srv/_changeArmCtrlMode.py} +37 -35
  31. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/srv/_changeArmCtrlModeKuavo.py +5 -5
  32. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/srv/_fkSrv.py +13 -13
  33. kuavo_humanoid_sdk/msg/{kuavo_msgs → motion_capture_ik}/srv/_twoArmHandPoseCmdSrv.py +37 -38
  34. {kuavo_humanoid_sdk-1.1.5.dist-info → kuavo_humanoid_sdk-1.1.6.dist-info}/METADATA +1 -2
  35. {kuavo_humanoid_sdk-1.1.5.dist-info → kuavo_humanoid_sdk-1.1.6.dist-info}/RECORD +37 -46
  36. kuavo_humanoid_sdk/common/global_config.py +0 -16
  37. kuavo_humanoid_sdk/common/websocket_kuavo_sdk.py +0 -23
  38. kuavo_humanoid_sdk/kuavo/core/audio.py +0 -36
  39. kuavo_humanoid_sdk/kuavo/core/ros/audio.py +0 -176
  40. kuavo_humanoid_sdk/kuavo/core/ros/tools.py +0 -158
  41. kuavo_humanoid_sdk/kuavo/core/ros/vision.py +0 -283
  42. kuavo_humanoid_sdk/kuavo/robot_audio.py +0 -39
  43. kuavo_humanoid_sdk/kuavo/robot_tool.py +0 -62
  44. kuavo_humanoid_sdk/kuavo/robot_vision.py +0 -90
  45. kuavo_humanoid_sdk/kuavo_strategy/__init__.py +0 -2
  46. kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py +0 -418
  47. kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py +0 -63
  48. kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py +0 -270
  49. {kuavo_humanoid_sdk-1.1.5.dist-info → kuavo_humanoid_sdk-1.1.6.dist-info}/WHEEL +0 -0
  50. {kuavo_humanoid_sdk-1.1.5.dist-info → kuavo_humanoid_sdk-1.1.6.dist-info}/top_level.txt +0 -0
@@ -1,45 +1,32 @@
1
- kuavo_humanoid_sdk/__init__.py,sha256=DtPCVJH91dONgYSjFe8oFSpUSYbJOzYgpyyHvD7F8oo,214
2
- kuavo_humanoid_sdk/common/global_config.py,sha256=2iDGXEwjmfc9MQ4jYOYxFyTB_BnLIxf6HYent5dS4gA,315
1
+ kuavo_humanoid_sdk/__init__.py,sha256=pdgXhpulXKUcdUPwDVFZCe47AZAkOJdh_YAM8f3g2Ek,141
3
2
  kuavo_humanoid_sdk/common/logger.py,sha256=nSIbsJaW4nDcaQdhZebZkjtji6kmWVR8tYO-sUTz3Gg,1246
4
- kuavo_humanoid_sdk/common/websocket_kuavo_sdk.py,sha256=lfilfXYdZFTasjRudHb_Xc89ah44jWljpQTozVSABGU,675
5
3
  kuavo_humanoid_sdk/interfaces/__init__.py,sha256=_zXDinj2T3X7UH19-Xrotc7uYZWHmZqHaMCWU1FYR5I,100
6
- kuavo_humanoid_sdk/interfaces/data_types.py,sha256=3yBYRD6fhp-czJabZPkqAjDHEV_KBKRiqx035vmT3WY,8266
4
+ kuavo_humanoid_sdk/interfaces/data_types.py,sha256=TCCVE0gmbw6KzCJKCzVCiG5yUl2IY-uIjHO5RKs0y2o,5281
7
5
  kuavo_humanoid_sdk/interfaces/end_effector.py,sha256=rlvBrYd_-b5-Px_m2UiHn47wuZJwlqVBrGPdV1lu0Qg,1876
8
6
  kuavo_humanoid_sdk/interfaces/robot.py,sha256=qqnq7gRc_mK8xEWnF5pJ7AJUPtry1bpN9eDl8nmE3EM,393
9
7
  kuavo_humanoid_sdk/interfaces/robot_info.py,sha256=-rh7VXjMJFYTsx7Ktok5VuI6JF_W2BpJBUbqtYJRkkA,1176
10
- kuavo_humanoid_sdk/kuavo/__init__.py,sha256=WAIykcMUtMhFTPZ_6oE_VARfNo3fJXD8DxNhwEyoZxk,415
11
- kuavo_humanoid_sdk/kuavo/dexterous_hand.py,sha256=q2_vTdjxIuUW-J9QzZdbDUgxQJocZ70jfxzLDle2S9M,8709
12
- kuavo_humanoid_sdk/kuavo/leju_claw.py,sha256=5BKBCOqIt2AEai8e9xymm5_jPPfJw3O7ZeDeXSBpDTw,10465
13
- kuavo_humanoid_sdk/kuavo/robot.py,sha256=Z_zgqR--s8hvP_KlaUxNuriOvTaH6hWoRcMgrAq3Qz0,20487
14
- kuavo_humanoid_sdk/kuavo/robot_arm.py,sha256=HTY3J1dZDOBzCWesZaFlg6XhkqARtRxXqiZg2OAW-J8,9419
15
- kuavo_humanoid_sdk/kuavo/robot_audio.py,sha256=Z0ZN0DldOEWL1iLo9wPgGE9m8J_jQuNKq-QkY6H_PhE,1310
16
- kuavo_humanoid_sdk/kuavo/robot_head.py,sha256=EagxK9vU1nczdm8qVKc_sJzwhiLKF7xhzHRuGUnUhB4,1851
17
- kuavo_humanoid_sdk/kuavo/robot_info.py,sha256=etyqcUg22IAA2O59cjBhLTpacQ3DLhT8qZNj7vX8yL8,4116
18
- kuavo_humanoid_sdk/kuavo/robot_state.py,sha256=TLp7Rr0OJPRUO3tCJSIGAn20Ug47iiqUVCiog2c81mI,12355
19
- kuavo_humanoid_sdk/kuavo/robot_tool.py,sha256=moCaX46JWO6k9QXIhXPXjL_ywccz4iovkrjS2yH9Dgg,2747
20
- kuavo_humanoid_sdk/kuavo/robot_vision.py,sha256=AxlD3Ckl2GafsNpPNWYUM89653AN1BvWtMi9stdDALE,3156
21
- kuavo_humanoid_sdk/kuavo/core/audio.py,sha256=lyoYTKkt3ZEnehh1cJenksrkYUrlHBC559r1JmzysR4,1024
22
- kuavo_humanoid_sdk/kuavo/core/core.py,sha256=SgvLQMxE9NHA1glrKgh8rrjp1hgXIYMW8MeabeT-J_s,29692
8
+ kuavo_humanoid_sdk/kuavo/__init__.py,sha256=O4gPIQALqxUyNqBPCzzme4EfvTbbbh-IWGhLnhnZW_c,291
9
+ kuavo_humanoid_sdk/kuavo/dexterous_hand.py,sha256=S4giIerF44sfMim1Tp-ZwoSbj7aqX3l_sgxNBS-nZRI,8497
10
+ kuavo_humanoid_sdk/kuavo/leju_claw.py,sha256=6GUtQC_APuWzRAQtJFrSMqq9bUg8mI-g2ZBKYbOT4No,10253
11
+ kuavo_humanoid_sdk/kuavo/robot.py,sha256=AiBHuT2uj8n3tOPr0gEWgZO2hCalaeRhANyafAQuu-c,14239
12
+ kuavo_humanoid_sdk/kuavo/robot_arm.py,sha256=qD8oWSlKdxqc739vvM_18dpJgnMzjBbX41xJiyI6VWg,6946
13
+ kuavo_humanoid_sdk/kuavo/robot_head.py,sha256=8caHrPNwg98b4jf5cLJUbsGNovgtXetOqBvuG5vWSXA,1526
14
+ kuavo_humanoid_sdk/kuavo/robot_info.py,sha256=SZ0TeI87hc69Oop4CT1PxU7zSauTxJTJe8fcIIr-h6Q,3912
15
+ kuavo_humanoid_sdk/kuavo/robot_state.py,sha256=X9vPmIK1dYBgaKHanfj0kVaUAMqxopBJWmlbOouTIqQ,10873
16
+ kuavo_humanoid_sdk/kuavo/core/core.py,sha256=PTUjGG6ZZaDv6p70OF4iZEA2-D2uIOKT87Xml59Xi5M,17915
23
17
  kuavo_humanoid_sdk/kuavo/core/dex_hand_control.py,sha256=51iLPIKMFKeOhc5TpRCMWTm7Aw8pt6XG9XUB-_swr4Y,5158
24
18
  kuavo_humanoid_sdk/kuavo/core/leju_claw_control.py,sha256=RCrnWTMW-L0fOMa1op7t43aGWSyMVqrOjR0lVtIFzqY,3432
25
- kuavo_humanoid_sdk/kuavo/core/ros_env.py,sha256=lVhEVUZvdQI43mPkFqRYBld3N-L4nPigRkcSZ-ejL9I,18848
26
- kuavo_humanoid_sdk/kuavo/core/ros/audio.py,sha256=aJQ9i7df8mK55XCtNM4MDLcwz8CnEk-K3P93QrtWwXQ,6850
27
- kuavo_humanoid_sdk/kuavo/core/ros/control.py,sha256=s-yf4jRYn58awqEIMZl0wTUMDiQXlqbnTf13lITyt94,81827
28
- kuavo_humanoid_sdk/kuavo/core/ros/param.py,sha256=r8Xve8zsfFBBZQnEbLOCNC1YQhv_h-Xv1hHx6gHkQag,11745
19
+ kuavo_humanoid_sdk/kuavo/core/ros_env.py,sha256=Fq7YfHFjVvoUn-jMsrcHB_gUQ4w1y54jUVKtxV7zNEg,9500
20
+ kuavo_humanoid_sdk/kuavo/core/ros/control.py,sha256=8erUTrGEY-JcqT0u_DTLsK5RFzobjjdOcufIn4tPnek,35305
21
+ kuavo_humanoid_sdk/kuavo/core/ros/param.py,sha256=8XtwH6V59n8IX6TtXB5-lTMvBuhrNJqQaoRkbCYyIJc,6760
29
22
  kuavo_humanoid_sdk/kuavo/core/ros/sat_utils.py,sha256=AhBNM-s9nVwRiLZ8gtqC2RvPImkT9uulONSLXk3KooI,3317
30
- kuavo_humanoid_sdk/kuavo/core/ros/state.py,sha256=YZZePu6M_aL02D_Thh97CP04sJdgtGs75LZqLoVQEDw,46302
31
- kuavo_humanoid_sdk/kuavo/core/ros/tools.py,sha256=RF9PVvHEfYBuNYyKRbgtLrFrR15kfPTjtcXmZG17Gk4,6142
32
- kuavo_humanoid_sdk/kuavo/core/ros/vision.py,sha256=gGCzJb5hZgH-TBLm9P7tlbCt73MMAm9AfmokZfdm_Oo,11121
33
- kuavo_humanoid_sdk/kuavo_strategy/__init__.py,sha256=JqwMTRKG-1LpDqnvFFGm6oQW31oQ7YmTLB4KZ7U7o3Y,73
34
- kuavo_humanoid_sdk/kuavo_strategy/kuavo_strategy.py,sha256=qjmeNYatDP-TvgDvsa7T5LFNRmzqafC4qWVMAnW3F-A,2043
35
- kuavo_humanoid_sdk/kuavo_strategy/grasp_box/grasp_box_strategy.py,sha256=X5Z5bVy7Zp6_Ht9Iia8Mq4Qg0_eOTtQFV-yLmiec2Ok,17762
23
+ kuavo_humanoid_sdk/kuavo/core/ros/state.py,sha256=tA5250P82MNwvYJ9QGbcNcWm_n2NWKPqD383GAARiAE,18146
36
24
  kuavo_humanoid_sdk/msg/__init__.py,sha256=8TElMWrXsBCGxhJBe3mfgtiAlX4LzgQep66TSwMcaDQ,19
37
25
  kuavo_humanoid_sdk/msg/kuavo_msgs/__init__.py,sha256=wk-pfWFvAOl475vxWFVTwbJGejP6UKgivUApv8RvK_8,216
38
26
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetection.py,sha256=2Iz0kN1w5IqvXFmK-DN14i-9hrtZNSRSWvxr6tSPIlA,11655
39
27
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_AprilTagDetectionArray.py,sha256=JayCQPuoFsBQ5nyhVuArhePEPW0FjI4T7dEz88tf6Gw,14938
40
28
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_Metadata.py,sha256=2uZlLK7eQAj72sCHw40s8PHiXpj_u0JqBgAhIGqnsO8,6857
41
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py,sha256=53jGXe2jFB4UfYdwgDmpCnOhsaKGFIQ8ppyAssgX1Qg,1071
42
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armHandPose.py,sha256=JFzYudRq0CIBzrOt2XnSw_fR7FgQerC2L6ntkoHu1eM,5522
29
+ kuavo_humanoid_sdk/msg/kuavo_msgs/msg/__init__.py,sha256=xFpeX8iIKqDgMMzM_kYBoKS5KLMhYys5tyiTQD8v8Lk,866
43
30
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armPoseWithTimeStamp.py,sha256=miPh7Mim4Zp1wEWw3HrvUOr8dlvJGT-DzffjGUT25xE,5806
44
31
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_armTargetPoses.py,sha256=2egR0jL7ZD0-eUIteC5pdrnADgb29KZMNTNnNZPznOY,5032
45
32
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_dexhandCommand.py,sha256=cxqVA14d_ylCoZwo4wE2zgv6WqlkT7nqIV_OlZqu9dA,7886
@@ -50,35 +37,26 @@ kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_footPoseTargetTrajectories.py,sha256=weFk
50
37
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gaitTimeName.py,sha256=4DoUi8RVuUAG4Su3MoeN9iwelYFGT1U626iKjGSNvo8,4827
51
38
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureInfo.py,sha256=jxX5x4dNNcTmUJuVD49nGWQVr_q-B3X_klygNvMKFIM,7265
52
39
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_gestureTask.py,sha256=0oPveCGud3VXHoLHlUqLrq1KOYpCinPWZIMFf-n1bGI,5090
53
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_handPose.py,sha256=O8R4Efpv8xaVZW-1y-eGxDZGgdlHEzBNcHXbwNr2V54,4352
54
40
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_headBodyPose.py,sha256=69JZkFZFNT8xpoixu8BMsZ2BU-WkFW4jSBbI9-jnirM,5119
55
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveError.py,sha256=jR4JrWr1y_VMI7o8mmoQLAJX4ogno2fSTYXswO-xWSc,6876
56
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_ikSolveParam.py,sha256=0gxZMJ-izoEAbQmfiZYjLif18EhOGdVV9envbeekCdE,5797
57
41
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_imuData.py,sha256=mYEOFd-YfsJzOskHPioyycNccC51G3-uCc7o4DwclPU,6412
58
42
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointCmd.py,sha256=ryln-guf6GVWN0uFTWXzhl4mD0IOmAsvMyEIxuVdzls,13421
59
43
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_jointData.py,sha256=c8UQLJJPXqN0d2_xJeDjKpWNP6ZGCRPUwZ2tlEp2dLU,6974
60
44
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawCommand.py,sha256=9ntVsgjRFVJNIOeLffFrWlwm0gWErwd5mHyB70RUSus,11018
61
45
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_lejuClawState.py,sha256=2YZdHBEuWh0GhXViMjNROCcZZcw--Zdox69oGG96Gj4,11611
62
46
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_questJoySticks.py,sha256=OKag_7VEOV5qFUmFmBd-Lr5iIJ_sMfro4Hrb-jsYrGs,9339
63
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotArmQVVD.py,sha256=3jlIrYDHkb6eVDZlfPH8nmb0faDbt9qHwEDBtz0ffNo,5755
64
47
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHandPosition.py,sha256=BQYNPRNR3TejYhcYTsI7kKRfwKLKGcnKVEHF2yi3_Hw,8153
65
48
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotHeadMotionData.py,sha256=mL470CWBjPQ8PxSM2MffeSV3Pn2GP3rFaLquT6LtaBo,4265
66
49
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_robotState.py,sha256=LHaCkfHg7bkAy-oHkJke7-kC90utZzlloOv1rsd1sj4,7541
67
50
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_sensorsData.py,sha256=hHAvPSEAdsQ7lvsR9SXHzFGrRp1WNOqewZe5cz2bolU,19022
68
51
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_switchGaitByName.py,sha256=saXfUf1k8nT0Y5OW7rBxMi9xBdyHYvsZP8EloYgaLZs,6891
69
52
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_touchSensorStatus.py,sha256=XsZbTNfmD748TPMBlK88XwsX4Lhg7LtGd_hEQ5e_0sA,7227
70
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPose.py,sha256=9rMuid2MzIOdU06lqYzIQp5N8dbgynhbjqHKk9bkZ9c,10174
71
- kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_twoArmHandPoseCmd.py,sha256=MCpOFt5O8Lf3Lpkzt1bt3m3u6--mkCtso5CMXl8JVJ0,13560
72
53
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloDetection.py,sha256=Sb7W4mZ2WBLHpUBxPUO0MsLnV7NeSByOXBwMfV87Fhw,8701
73
54
  kuavo_humanoid_sdk/msg/kuavo_msgs/msg/_yoloOutputData.py,sha256=kXYLnrYTjKU9yopZJ8NgCEtswLy66WWdh6rj05TL2DY,5696
74
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_SpeechSynthesis.py,sha256=ERh-Y-JoghTDkUWp_yn8bFm7eQIHyLu4bTGR_ORVcQQ,8858
75
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py,sha256=dc5_M23g4KtiOap6vSwA-2u7C_T13XfN96poQKsFSTY,698
55
+ kuavo_humanoid_sdk/msg/kuavo_msgs/srv/__init__.py,sha256=FFX0pxPEjltERtadS5ud2-UWn8z41yz2eY8hq23Sl9w,537
76
56
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlMode.py,sha256=OI312Z4IOywRn_9ckHmc89eFbBGRpIO9crRz_zlYKIk,9159
77
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeArmCtrlModeKuavo.py,sha256=l1t3VqPbn2nVFuPnOHuiLjAUcz08zH1y7R0PO10Lo9E,8040
78
57
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_changeTorsoCtrlMode.py,sha256=2_CTVtEgaFUaODV8VyTZA0Z6El3hiDcYrBPP9hstnLs,9206
79
58
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_controlLejuClaw.py,sha256=jSK0OY6JRqPxiCtEGSBnibwc-5sk-JLaP7UOMZTcdJ8,13582
80
59
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_enableHandTouchSensor.py,sha256=yfutLxkhL5sFJToLNQSEd6dM2dSXgLEOCt4lv8Fkoj4,9881
81
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_fkSrv.py,sha256=oQ8mc0mTDd-qcD5ZFpr_6BNsdj5wMAXm0vN2rzb2q68,14783
82
60
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_footPoseTargetTrajectoriesSrv.py,sha256=WzvTdNpizYi5_1iREOiwGyOnpv6XVFo5Vt-7YvC0fEg,12371
83
61
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecute.py,sha256=I6-Ohq1fQg3KjI7GWm0eEB1FGaSFwR0wGUYw_i4WPqM,11602
84
62
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureExecuteState.py,sha256=ChmcjaxNf5ED9o7JE3z_UcSaaGC6tKixvitz7eQEs3I,8717
@@ -86,14 +64,27 @@ kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_gestureList.py,sha256=Y51SV-xBTW9Rk6jAKam
86
64
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_getCurrentGaitName.py,sha256=50CyEUJseck7b9lopj-3ihxUSy62Mn5PwgbLHCqjuOs,8429
87
65
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_handForceLevel.py,sha256=YVhwt3RCVdYna6UEKV4oA81aydcPE7ilmVrHetcw-ew,10796
88
66
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_jointMoveTo.py,sha256=CHM0sooP3GoIvphVn3lut0fWtjuIwgz9DYd6oJ3XCz4,9984
89
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py,sha256=QKWQDAW_NFgy5Vo6TMc_C7PyBeJwVPU32_wa-9672a8,9111
67
+ kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_playmusic.py,sha256=2OhWGB_QWfzo80IwfNZrFD3W4wd6nWuawru2BO1mwIg,8913
90
68
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setHwIntialState.py,sha256=0_GWZCBfmthlwVuYOZLzFMUgjIymL8BxtW6_3ZzSqAE,10204
91
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMmCtrlFrame.py,sha256=9WdGrggQ5kHa2Ekay7F6cUTsLYdbK1sOhU2zbAmOELY,9075
92
69
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setMotorEncoderRoundService.py,sha256=E6A81oVoNeBTc5jDbsCMTM0TLnGvsvoo0JVtwk8cmNA,9815
93
70
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_setTagId.py,sha256=edQqsBm-LvmT0s55UQ-qVEvqaiGFOBmwF8ox95xcyPY,8970
94
71
  kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_singleStepControl.py,sha256=yfCfwqP7H9KJ5GnzTiwpiB0NrczFXkON76i7SRk9eV8,13279
95
- kuavo_humanoid_sdk/msg/kuavo_msgs/srv/_twoArmHandPoseCmdSrv.py,sha256=rmMc_8OtHwEBDnNhT7hckliLwFrsyVACLiQepgiW8Uc,29178
96
72
  kuavo_humanoid_sdk/msg/motion_capture_ik/__init__.py,sha256=wk-pfWFvAOl475vxWFVTwbJGejP6UKgivUApv8RvK_8,216
73
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/__init__.py,sha256=MFFzlDRPEqO2XS-G9QcFFAsOM3h-sschYUfef9rpszQ,268
74
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_armHandPose.py,sha256=OPm4KqKpzTqtF-q-UTGsyWTNLH4PEwezSjuOqadoK54,5536
75
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_handPose.py,sha256=vPMztL544qsUYHbk2KYWLYnNTlVcMY4m01MYxUortLE,4366
76
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_headBodyPose.py,sha256=Sa8mOVMeH9PIM6LS3kKfP-BaFqILTTXxtAJLpY7FyEo,5133
77
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_ikSolveError.py,sha256=DBqZp_nMRB0fwlP4V2-nHkJwkLwbNn-LNcZtMuN58EI,6974
78
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_ikSolveParam.py,sha256=bola3i-GY-k-OhDbd8NNrs9ASaQlbdMtmU2iaD_jKP8,5811
79
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_robotArmQVVD.py,sha256=4fBamid058UyM-P-czvMFA5_LFlJ0coX9UeRKk5kmeY,5769
80
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_robotHandPosition.py,sha256=swzoPp-dA4VeMLvRHnX1KfPWIYzrorcpmJh3UNEANU0,8167
81
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_twoArmHandPose.py,sha256=PJJDAlLrDseRfLfVB5sqVIDmtciMybBEg1hp9TEEV-E,10272
82
+ kuavo_humanoid_sdk/msg/motion_capture_ik/msg/_twoArmHandPoseCmd.py,sha256=6tU3Bx9Bn_LMvnXci4s2kGX5E3-Nfvi_LE71bzI6XXE,13413
83
+ kuavo_humanoid_sdk/msg/motion_capture_ik/srv/__init__.py,sha256=Agetxi8Og-gpF9PkD4uI_TweIMB_iHl_KD8fPfrcWt4,132
84
+ kuavo_humanoid_sdk/msg/motion_capture_ik/srv/_changeArmCtrlMode.py,sha256=NwNn72dD8Eviyy-o61Os7QPnGX1GpQPG_XMkBX1pOQo,9194
85
+ kuavo_humanoid_sdk/msg/motion_capture_ik/srv/_changeArmCtrlModeKuavo.py,sha256=JHs_gLWgYVnbSZltl5LTlxkagnqQRnS9q-MTw-xltX4,8075
86
+ kuavo_humanoid_sdk/msg/motion_capture_ik/srv/_fkSrv.py,sha256=ZBsAFPF36XAJP0fDebc1bRMUm1GRSjSGLBDxgxL1KkE,14874
87
+ kuavo_humanoid_sdk/msg/motion_capture_ik/srv/_twoArmHandPoseCmdSrv.py,sha256=lXLo2tJPJzJUwKhz1kzeVBJ7SPImTzET68yERLiZUwA,29075
97
88
  kuavo_humanoid_sdk/msg/ocs2_msgs/__init__.py,sha256=wk-pfWFvAOl475vxWFVTwbJGejP6UKgivUApv8RvK_8,216
98
89
  kuavo_humanoid_sdk/msg/ocs2_msgs/msg/__init__.py,sha256=dJBWOS_viXh9umNB2pGUPdSFm9h8ySMOqtIop--PGss,388
99
90
  kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_constraint.py,sha256=Fl-vdxvT6FPxWoSpPIw0Jt-anEsYsY1wFiiNMgmwsRA,4621
@@ -110,7 +101,7 @@ kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_mpc_target_trajectories.py,sha256=c8l2__Lu
110
101
  kuavo_humanoid_sdk/msg/ocs2_msgs/msg/_multiplier.py,sha256=UY0klrLwiuQeEOxBXGrLdivCOhI3HsHUbi5uX7nsT8g,4895
111
102
  kuavo_humanoid_sdk/msg/ocs2_msgs/srv/__init__.py,sha256=LaBHLkXuxdf1Z6BCqgWQC2F9yUNSDYC_iQp6NMYAnjQ,22
112
103
  kuavo_humanoid_sdk/msg/ocs2_msgs/srv/_reset.py,sha256=KtnylmS0VOjVfa3lldprbhZl04wU3ng5v94jghu3dYU,13379
113
- kuavo_humanoid_sdk-1.1.5.dist-info/METADATA,sha256=37EY8oyL-xI8iDsrq-sirHLuQOfGsJ4LLkOgdiLuVrs,10826
114
- kuavo_humanoid_sdk-1.1.5.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
115
- kuavo_humanoid_sdk-1.1.5.dist-info/top_level.txt,sha256=9uSyZoiOEykRMOf0Gm-N9mkyQQg9yOSimfsb632G99c,19
116
- kuavo_humanoid_sdk-1.1.5.dist-info/RECORD,,
104
+ kuavo_humanoid_sdk-1.1.6.dist-info/METADATA,sha256=H9zTiNKHHFCuubg6XDAQlZJtvfrWBByYD3zVsO-x8TI,10802
105
+ kuavo_humanoid_sdk-1.1.6.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
106
+ kuavo_humanoid_sdk-1.1.6.dist-info/top_level.txt,sha256=9uSyZoiOEykRMOf0Gm-N9mkyQQg9yOSimfsb632G99c,19
107
+ kuavo_humanoid_sdk-1.1.6.dist-info/RECORD,,
@@ -1,16 +0,0 @@
1
-
2
- class GlobalConfig:
3
-
4
- _instance = None
5
-
6
- use_websocket = False
7
- websocket_host = '127.0.0.1'
8
- websocket_port = 9090
9
- websocket_timeout = 5.0
10
-
11
- def __new__(cls, *args, **kwargs):
12
- if cls._instance is None:
13
- cls._instance = super().__new__(cls)
14
- return cls._instance
15
-
16
-
@@ -1,23 +0,0 @@
1
- import roslibpy
2
- from kuavo_humanoid_sdk.common.global_config import GlobalConfig
3
-
4
- class WebSocketKuavoSDK:
5
-
6
- _instance = None
7
- _initialized = False
8
-
9
- def __new__(cls, *args, **kwargs):
10
- if cls._instance is None:
11
- cls._instance = super().__new__(cls)
12
- return cls._instance
13
-
14
- def __init__(self):
15
- if not self._initialized:
16
- self._initialized = True
17
- self.client = roslibpy.Ros(host=GlobalConfig.websocket_host, port=GlobalConfig.websocket_port)
18
- self.client.run(timeout=GlobalConfig.websocket_timeout)
19
-
20
-
21
- def __del__(self):
22
- self.client.terminate()
23
- self.instance = None
@@ -1,36 +0,0 @@
1
- import time
2
- import math
3
- import threading
4
- import numpy as np
5
- from typing import Tuple
6
- from transitions import Machine, State
7
-
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
11
-
12
- class KuavoRobotAudioCore:
13
- def __init__(self):
14
- if GlobalConfig.use_websocket:
15
- self.robot_audio = AudioWebsocket()
16
- else:
17
- self.robot_audio = Audio()
18
-
19
- def play_audio(self, music_number: str, volume: float = 0.5, speed: float = 1.0) -> bool:
20
- """
21
- play music
22
- """
23
- return self.robot_audio.play_audio(music_number, volume, speed)
24
-
25
- def stop_music(self) -> bool:
26
- """
27
- stop music
28
- """
29
- return self.robot_audio.stop_audio()
30
-
31
- def text_to_speech(self, text: str, volume: float = 0.5) -> bool:
32
- """
33
- text to speech
34
- """
35
- return self.robot_audio.text_to_speech(text, volume)
36
-
@@ -1,176 +0,0 @@
1
- #!/usr/bin/env python3
2
- # coding: utf-8
3
- from kuavo_humanoid_sdk.common.logger import SDKLogger
4
- from kuavo_humanoid_sdk.kuavo.core.core import KuavoRobotCore
5
- from kuavo_humanoid_sdk.common.websocket_kuavo_sdk import WebSocketKuavoSDK
6
- import roslibpy
7
-
8
- try:
9
- import rospy
10
- from std_msgs.msg import Bool
11
- from kuavo_humanoid_sdk.msg.kuavo_msgs.srv import playmusic, playmusicRequest
12
- from kuavo_humanoid_sdk.msg.kuavo_msgs.srv import SpeechSynthesis, SpeechSynthesisRequest
13
- except:
14
- pass
15
-
16
- class Audio:
17
- """Audio system interface for controlling audio playback functionality of Kuavo humanoid robot.
18
-
19
- Provides functionality to play music files.
20
- """
21
-
22
- def __init__(self):
23
- """Initialize the audio system."""
24
- self._audio_stop_publisher = rospy.Publisher('stop_music', Bool, queue_size=10)
25
- rospy.sleep(0.5) # Wait for publisher initialization
26
- def play_audio(self, file_name: str,volume: float = 0.5,speed: float = 1.0) -> bool:
27
- """Play the specified audio file.
28
-
29
- Args:
30
- file_name (str): Name of the audio file to play
31
-
32
- Returns:
33
- bool: True if the play request was successfully sent, False otherwise
34
- """
35
- try:
36
- # Wait for service availability
37
- rospy.wait_for_service('play_music', timeout=2.0)
38
- # Create service client
39
- play_music_service = rospy.ServiceProxy('play_music', playmusic)
40
- # Call service
41
- request = playmusicRequest()
42
- request.music_number = file_name
43
- volume = min(max(volume , 0), 1.0)
44
- request.volume = volume
45
- request.speed = speed
46
- response = play_music_service(request)
47
- SDKLogger.info(f"[Robot Audio] Requested to play audio file: {file_name}")
48
- return True
49
- except rospy.ROSException as e:
50
- SDKLogger.error(f"[Robot Audio] Audio playback service unavailable: {str(e)}")
51
- return False
52
- except Exception as e:
53
- SDKLogger.error(f"[Robot Audio] Failed to play audio file: {str(e)}")
54
- return False
55
-
56
- def stop_audio(self):
57
- """Stop the currently playing audio."""
58
- try:
59
- msg = Bool()
60
- msg.data = True
61
- self._audio_stop_publisher.publish(msg)
62
- SDKLogger.info("[Robot Audio] Requested to stop audio playback")
63
- return True
64
- except Exception as e:
65
- SDKLogger.error(f"[Robot Audio] Failed to stop audio playback: {str(e)}")
66
- return False
67
-
68
- def text_to_speech(self, text: str,volume: float = 0.5) -> bool:
69
- """Synthesize and play the specified text.
70
-
71
- Args:
72
- text (str): Text to be played
73
-
74
- Returns:
75
- bool: True if the play request was successfully sent, False otherwise
76
- """
77
- try:
78
- # Wait for service availability
79
- rospy.wait_for_service('play_music', timeout=2.0)
80
- # Create service client
81
- play_music_service = rospy.ServiceProxy('speech_synthesis', SpeechSynthesis)
82
- # Call service
83
- request = SpeechSynthesisRequest()
84
- request.data = text
85
- request.volume = volume
86
- response = play_music_service(request)
87
- SDKLogger.info(f"[Robot Audio] Requested to play audio text: {text}")
88
- return True
89
- except rospy.ROSException as e:
90
- SDKLogger.error(f"[Robot Audio] Audio playback service unavailable: {str(e)}")
91
- return False
92
- except Exception as e:
93
- SDKLogger.error(f"[Robot Audio] Failed to play audio text: {str(e)}")
94
- return False
95
-
96
- class AudioWebsocket:
97
- """WebSocket-based audio system interface for controlling audio playback functionality of Kuavo humanoid robot.
98
-
99
- Provides functionality to play music files through WebSocket connection.
100
- """
101
-
102
- def __init__(self):
103
- """Initialize the WebSocket audio system."""
104
- websocket = WebSocketKuavoSDK()
105
- self._audio_stop_publisher = roslibpy.Topic(websocket.client, 'stop_music', 'std_msgs/Bool')
106
- self._audio_stop_publisher.advertise()
107
-
108
- def play_audio(self, file_name: str, volume: float = 0.5, speed: float = 1.0) -> bool:
109
- """Play the specified audio file through WebSocket.
110
-
111
- Args:
112
- file_name (str): Name of the audio file to play
113
- volume (float): Volume level (0.0 to 1.0)
114
- speed (float): Playback speed
115
-
116
- Returns:
117
- bool: True if the play request was successfully sent, False otherwise
118
- """
119
- try:
120
- websocket = WebSocketKuavoSDK()
121
- service = roslibpy.Service(websocket.client, 'play_music', 'kuavo_msgs/playmusic')
122
-
123
- volume = min(max(volume, 0), 1.0)
124
- request = {
125
- "music_number": file_name,
126
- "volume": volume,
127
- "speed": speed
128
- }
129
-
130
- response = service.call(request)
131
- SDKLogger.info(f"[Robot Audio] Requested to play audio file: {file_name}")
132
- return True
133
- except Exception as e:
134
- SDKLogger.error(f"[Robot Audio] Failed to play audio file: {str(e)}")
135
- return False
136
-
137
- def stop_audio(self) -> bool:
138
- """Stop the currently playing audio through WebSocket."""
139
- try:
140
- msg = {
141
- "data": True
142
- }
143
- self._audio_stop_publisher.publish(roslibpy.Message(msg))
144
- SDKLogger.info("[Robot Audio] Requested to stop audio playback")
145
- return True
146
- except Exception as e:
147
- SDKLogger.error(f"[Robot Audio] Failed to stop audio playback: {str(e)}")
148
- return False
149
-
150
- def text_to_speech(self, text: str, volume: float = 0.5) -> bool:
151
- """Synthesize and play the specified text through WebSocket.
152
-
153
- Args:
154
- text (str): Text to be played
155
- volume (float): Volume level (0.0 to 1.0)
156
-
157
- Returns:
158
- bool: True if the play request was successfully sent, False otherwise
159
- """
160
- try:
161
- websocket = WebSocketKuavoSDK()
162
- service = roslibpy.Service(websocket.client, 'speech_synthesis', 'kuavo_msgs/SpeechSynthesis')
163
-
164
- request = {
165
- "data": text,
166
- "volume": volume
167
- }
168
-
169
- response = service.call(request)
170
- SDKLogger.info(f"[Robot Audio] Requested to play audio text: {text}")
171
- return True
172
- except Exception as e:
173
- SDKLogger.error(f"[Robot Audio] Failed to play audio text: {str(e)}")
174
- return False
175
-
176
-
@@ -1,158 +0,0 @@
1
- #! /usr/bin/env python3
2
- # coding: utf-8
3
-
4
- import copy
5
- import time
6
- import numpy as np
7
- from typing import Tuple, Union
8
- from kuavo_humanoid_sdk.common.logger import SDKLogger
9
-
10
- try:
11
- import rospy
12
- import tf2_ros
13
- import tf.transformations as tf_trans
14
- from std_msgs.msg import Float64
15
- from nav_msgs.msg import Odometry
16
- from sensor_msgs.msg import JointState
17
- from kuavo_humanoid_sdk.msg.kuavo_msgs.msg import sensorsData, lejuClawState, gaitTimeName, dexhandTouchState
18
- from geometry_msgs.msg import TransformStamped
19
- except ImportError:
20
- pass
21
-
22
- from kuavo_humanoid_sdk.interfaces.data_types import (PoseQuaternion, HomogeneousMatrix)
23
- from kuavo_humanoid_sdk.kuavo.core.ros.param import make_robot_param, EndEffectorType
24
-
25
-
26
-
27
- class KuavoRobotToolsCore:
28
- """Provides core ROS tools for Kuavo humanoid robot transformations.
29
-
30
- Attributes:
31
- tf_buffer (tf2_ros.Buffer): TF2 transform buffer for storing transforms
32
- tf_listener (tf2_ros.TransformListener): TF2 transform listener
33
- """
34
-
35
- def __init__(self):
36
- """Initializes TF2 buffer and listener for coordinate transformations."""
37
- if not hasattr(self, '_initialized'):
38
- # 初始化TF2相关组件
39
- self.tf_buffer = tf2_ros.Buffer(cache_time=rospy.Duration(10))
40
- self.tf_listener = tf2_ros.TransformListener(self.tf_buffer)
41
-
42
- def _get_tf_tree_transform(self, target_frame: str, source_frame: str,
43
- time=0.0, timeout=1.0,
44
- return_type: str = "pose_quaternion") -> Union[PoseQuaternion, HomogeneousMatrix, None]:
45
- """Gets transform between coordinate frames.
46
-
47
- Args:
48
- target_frame (str): Target coordinate frame name
49
- source_frame (str): Source coordinate frame name
50
- time (rospy.Time, optional): Time of transform. Defaults to latest.
51
- timeout (float, optional): Wait timeout in seconds. Defaults to 1.0.
52
- return_type (str, optional): Return data format. Options:
53
- "pose_quaternion", "homogeneous". Defaults to "pose_quaternion".
54
-
55
- Returns:
56
- Union[PoseQuaternion, HomogeneousMatrix, None]: Requested transform data
57
- or None if failed
58
-
59
- Raises:
60
- tf2_ros.LookupException: If transform is not available
61
- tf2_ros.ConnectivityException: If transform connectivity issue
62
- tf2_ros.ExtrapolationException: If transform time is out of range
63
- """
64
- time = rospy.Time(time)
65
- try:
66
- transform = self.tf_buffer.lookup_transform(
67
- target_frame,
68
- source_frame,
69
- time,
70
- rospy.Duration(timeout)
71
- )
72
- return self._parse_transform(transform.transform, return_type)
73
- except Exception as e:
74
- SDKLogger.error(f"Transform error: {str(e)}")
75
- return None
76
-
77
- def _parse_transform(self, transform, return_type: str) -> Union[PoseQuaternion, HomogeneousMatrix, None]:
78
- """Parses transform data to specified format.
79
-
80
- Args:
81
- transform (geometry_msgs/Transform): Input transform data
82
- return_type (str): Output format type. Valid values:
83
- "pose_quaternion", "homogeneous"
84
-
85
- Returns:
86
- Union[PoseQuaternion, HomogeneousMatrix, None]: Parsed transform data
87
- in requested format, or None if invalid input
88
-
89
- Note:
90
- Falls back to pose_quaternion format if invalid return_type specified
91
- """
92
- if return_type == "pose_quaternion":
93
- return PoseQuaternion(
94
- position=(transform.translation.x,
95
- transform.translation.y,
96
- transform.translation.z),
97
- orientation=(transform.rotation.x,
98
- transform.rotation.y,
99
- transform.rotation.z,
100
- transform.rotation.w)
101
- )
102
- elif return_type == "homogeneous":
103
- return HomogeneousMatrix(
104
- matrix=self._transform_to_homogeneous(transform)
105
- )
106
- else:
107
- SDKLogger.warn(f"Invalid return_type: {return_type}, using default(pose_quaternion)")
108
- return self._parse_transform(transform, "pose_quaternion")
109
-
110
- def _transform_to_homogeneous(self, transform) -> np.ndarray:
111
- """Converts geometry_msgs/Transform to homogeneous matrix.
112
-
113
- Args:
114
- transform (geometry_msgs/Transform): Input transform message
115
-
116
- Returns:
117
- np.ndarray: 4x4 homogeneous transformation matrix (numpy.float32)
118
-
119
- Example:
120
- >>> matrix = _transform_to_homogeneous(transform_msg)
121
- >>> print(matrix.shape)
122
- (4, 4)
123
- """
124
- # 四元数转旋转矩阵
125
- rotation = [
126
- transform.rotation.x,
127
- transform.rotation.y,
128
- transform.rotation.z,
129
- transform.rotation.w
130
- ]
131
- rot_matrix = tf_trans.quaternion_matrix(rotation)
132
-
133
- # 设置平移分量
134
- translation = [
135
- transform.translation.x,
136
- transform.translation.y,
137
- transform.translation.z
138
- ]
139
- rot_matrix[:3, 3] = translation
140
-
141
- return rot_matrix.astype(np.float32) # 确保矩阵数据类型一致
142
-
143
- # if __name__ == "__main__":
144
- # robot_tools = KuavoRobotToolsCore()
145
- # time.sleep(0.1)
146
- # # 获取位姿信息
147
- # pose = robot_tools._get_tf_tree_transform("odom", "base_link", return_type="pose_quaternion")
148
- # print(f"Position: {pose.position}")
149
- # print(f"Orientation: {pose.orientation}")
150
-
151
- # # 获取齐次矩阵
152
- # homogeneous = robot_tools._get_tf_tree_transform("odom", "base_link", return_type="homogeneous")
153
- # print(f"Transformation matrix:\n{homogeneous.matrix}")
154
-
155
- # # 矩阵运算示例
156
- # transform_matrix = homogeneous.matrix
157
- # inverse_matrix = np.linalg.inv(transform_matrix) # 求逆变换
158
- # print(f"Inverse matrix:\n{inverse_matrix}")