From c96e4199e78aec8126e4c5cbde9b032bfc49f429 Mon Sep 17 00:00:00 2001 From: lgv Date: Wed, 24 Jun 2026 15:49:54 +0800 Subject: [PATCH] feat:Sync client with server-side gRPC updates --- README.md | 19 +- clients/__pycache__/__init__.cpython-313.pyc | Bin 0 -> 155 bytes clients/__pycache__/__init__.cpython-39.pyc | Bin 142 -> 149 bytes .../__pycache__/_path_setup.cpython-313.pyc | Bin 0 -> 769 bytes .../__pycache__/_path_setup.cpython-39.pyc | Bin 499 -> 506 bytes .../__pycache__/base_client.cpython-313.pyc | Bin 0 -> 3324 bytes .../__pycache__/base_client.cpython-39.pyc | Bin 2066 -> 2052 bytes .../calibrateZeroQ.cpython-313.pyc | Bin 0 -> 2863 bytes .../__pycache__/camera_client.cpython-39.pyc | Bin 2799 -> 2806 bytes .../get_joint_state_client.cpython-313.pyc | Bin 0 -> 7122 bytes .../get_pose_client.cpython-313.pyc | Bin 0 -> 2962 bytes .../__pycache__/hand_client.cpython-39.pyc | Bin 2313 -> 2320 bytes clients/__pycache__/hlc_client.cpython-39.pyc | Bin 2026 -> 2033 bytes .../__pycache__/movej_client.cpython-313.pyc | Bin 0 -> 10844 bytes .../save_joint_to_csv.cpython-313.pyc | Bin 0 -> 3430 bytes .../__pycache__/servoj_client.cpython-313.pyc | Bin 0 -> 11599 bytes .../torque_key_client.cpython-313.pyc | Bin 0 -> 4431 bytes .../torque_off_client.cpython-313.pyc | Bin 0 -> 2104 bytes .../torque_off_client.cpython-39.pyc | Bin 1406 -> 1396 bytes .../torque_on_client.cpython-313.pyc | Bin 0 -> 2113 bytes .../torque_on_client.cpython-39.pyc | Bin 1415 -> 1405 bytes clients/base_client.py | 4 +- clients/calibrateZeroQ.py | 12 +- clients/get_joint_state_client.py | 15 +- clients/get_pose_client.py | 6 +- clients/movej_client.py | 14 +- clients/save_joint_to_csv.py | 12 +- clients/servoj_client.py | 13 +- clients/torque_key_client.py | 8 +- clients/torque_off_client.py | 8 +- clients/torque_on_client.py | 8 +- .../__pycache__/__init__.cpython-310.pyc | Bin 153 -> 0 bytes generated/__pycache__/__init__.cpython-39.pyc | Bin 144 -> 0 bytes .../cmvr/__pycache__/__init__.cpython-310.pyc | Bin 158 -> 0 bytes .../cmvr/__pycache__/__init__.cpython-39.pyc | Bin 149 -> 156 bytes .../api/__pycache__/__init__.cpython-310.pyc | Bin 162 -> 0 bytes .../api/__pycache__/__init__.cpython-39.pyc | Bin 153 -> 160 bytes .../arm_command_pb2.cpython-39.pyc | Bin 0 -> 5966 bytes .../arm_service_pb2_grpc.cpython-39.pyc | Bin 0 -> 10312 bytes .../camera_command_pb2.cpython-39.pyc | Bin 6292 -> 6299 bytes .../camera_service_pb2_grpc.cpython-39.pyc | Bin 9684 -> 9691 bytes .../__pycache__/common_pb2.cpython-310.pyc | Bin 2199 -> 0 bytes .../api/__pycache__/common_pb2.cpython-39.pyc | Bin 1956 -> 1963 bytes .../dexhand_command_pb2.cpython-310.pyc | Bin 6909 -> 0 bytes .../dexhand_command_pb2.cpython-39.pyc | Bin 5226 -> 5233 bytes .../dexhand_command_pb2_grpc.cpython-310.pyc | Bin 291 -> 0 bytes .../dexhand_service_pb2_grpc.cpython-310.pyc | Bin 6308 -> 0 bytes .../dexhand_service_pb2_grpc.cpython-39.pyc | Bin 7887 -> 7894 bytes .../hlc_command_pb2.cpython-39.pyc | Bin 1407 -> 1414 bytes .../hlc_service_pb2_grpc.cpython-39.pyc | Bin 3108 -> 3115 bytes ...humanoid_robot_command_pb2.cpython-310.pyc | Bin 5423 -> 0 bytes .../humanoid_robot_command_pb2.cpython-39.pyc | Bin 5687 -> 0 bytes ...oid_robot_service_pb2_grpc.cpython-310.pyc | Bin 6077 -> 0 bytes ...noid_robot_service_pb2_grpc.cpython-39.pyc | Bin 10228 -> 0 bytes generated/cmvr/api/arm_command_pb2.py | 109 +++++ ...nd_pb2_grpc.py => arm_command_pb2_grpc.py} | 2 +- generated/cmvr/api/arm_service_pb2.py | 38 ++ ...ce_pb2_grpc.py => arm_service_pb2_grpc.py} | 413 ++++++++++-------- .../cmvr/api/humanoid_robot_command_pb2.py | 105 ----- .../cmvr/api/humanoid_robot_service_pb2.py | 38 -- .../{__pycache__ => cmvr/common}/__init__.py | 0 generated/cmvr/common/geometry_pb2.py | 52 +++ .../{msgs => common}/geometry_pb2_grpc.py | 2 +- .../agv_config}/__init__.py | 0 .../cmvr/config/agv_config/agv_config_pb2.py | 42 ++ .../config/agv_config/agv_config_pb2_grpc.py | 24 + .../arm_config}/__init__.py | 0 .../cmvr/config/arm_config/arm_config_pb2.py | 81 ++++ .../config/arm_config/arm_config_pb2_grpc.py | 24 + .../__init__.py | 0 .../aubo_robot_config_pb2.py} | 14 +- .../aubo_robot_config_pb2_grpc.py | 24 + .../cmvr/config/biohead_config/__init__.py | 0 .../biohead_config/biohead_config_pb2.py | 40 ++ .../biohead_config/biohead_config_pb2_grpc.py | 24 + .../config/camera_config/camera_config_pb2.py | 30 +- .../cmvr/config/cmvr_es_config/__init__.py | 0 .../cmvr_es_config_pb2.py} | 14 +- .../cmvr_es_config/cmvr_es_config_pb2_grpc.py | 24 + .../config/device_manager_config/__init__.py | 0 .../device_manager_config_pb2.py | 42 ++ .../device_manager_config_pb2_grpc.py | 24 + .../dexhand_config/dexhand_config_pb2.py | 16 +- .../config/grpc_server_config/__init__.py | 0 .../grpc_server_config_pb2.py | 38 ++ .../grpc_server_config_pb2_grpc.py | 24 + generated/cmvr/config/lawba_ik_config_pb2.py | 37 ++ .../cmvr/config/lawba_ik_config_pb2_grpc.py | 24 + .../cmvr/config/logger_config/__init__.py | 0 .../config/logger_config/logger_config_pb2.py | 44 ++ .../logger_config/logger_config_pb2_grpc.py | 24 + .../microphone_config_pb2.py | 14 +- .../cmvr/config/motor_config/__init__.py | 0 .../config/motor_config/motor_config_pb2.py | 48 ++ .../motor_config/motor_config_pb2_grpc.py | 24 + .../config/pinocchio_dls_ik_config_pb2.py | 6 +- .../cmvr/config/pinocchio_qp_ik_config_pb2.py | 36 ++ ....py => pinocchio_qp_ik_config_pb2_grpc.py} | 2 +- .../speaker_config/speaker_config_pb2.py | 42 ++ ...pb2_grpc.py => speaker_config_pb2_grpc.py} | 2 +- generated/cmvr/config/srs_ik_config_pb2.py | 36 ++ .../cmvr/config/srs_ik_config_pb2_grpc.py | 24 + .../config/task_manager_config/__init__.py | 0 .../task_manager_config_pb2.py | 44 ++ .../task_manager_config_pb2_grpc.py | 24 + .../touch_screen_algorithm_config_pb2.py | 40 ++ ...touch_screen_algorithm_config_pb2_grpc.py} | 2 +- .../touch_screen_app_config_pb2.py | 52 --- .../config/touch_screen_common_config_pb2.py | 46 ++ .../touch_screen_common_config_pb2_grpc.py | 24 + .../touch_screen_task_config/__init__.py | 0 .../touch_screen_task_config_pb2.py | 63 +++ .../touch_screen_task_config_pb2_grpc.py | 24 + generated/cmvr/msgs/geometry_pb2.py | 48 -- protos/cmvr/api/arm_command.proto | 185 ++++++++ ..._robot_service.proto => arm_service.proto} | 16 +- protos/cmvr/api/humanoid_robot_command.proto | 202 --------- protos/cmvr/common/geometry.proto | 79 ++++ .../cmvr/config/agv_config/agv_config.proto | 24 + .../cmvr/config/arm_config/arm_config.proto | 178 ++++++++ .../aubo_robot_config/aubo_robot_config.proto | 10 + .../biohead_config/biohead_config.proto | 23 + .../config/camera_config/camera_config.proto | 37 +- .../cmvr_es_config/cmvr_es_config.proto | 14 + .../device_manager_config.proto | 38 ++ .../dexhand_config/dexhand_config.proto | 50 ++- .../grpc_server_config.proto | 12 + protos/cmvr/config/lawba_ik_config.proto | 15 + .../config/logger_config/logger_config.proto | 37 ++ .../microphone_config/microphone_config.proto | 20 +- .../config/motor_config/motor_config.proto | 48 ++ .../cmvr/config/pinocchio_dls_ik_config.proto | 23 + ...fig.proto => pinocchio_qp_ik_config.proto} | 0 .../speaker_config/speaker_config.proto | 25 ++ .../speaker_config/speaker_conifg.proto | 11 - protos/cmvr/config/srs_ik_config.proto | 13 + .../task_manager_config.proto | 32 ++ .../touch_screen_algorithm_config.proto | 32 ++ .../touch_screen_app_config.proto | 122 ------ .../config/touch_screen_common_config.proto | 40 ++ .../touch_screen_task_config.proto | 102 +++++ protos/cmvr/msgs/geometry.proto | 51 --- ui/__pycache__/__init__.cpython-39.pyc | Bin 137 -> 144 bytes ui/__pycache__/app.cpython-313.pyc | Bin 0 -> 48863 bytes ui/__pycache__/app.cpython-39.pyc | Bin 24497 -> 23892 bytes ui/__pycache__/camera_page.cpython-39.pyc | Bin 16282 -> 16289 bytes ui/__pycache__/plot_page.cpython-39.pyc | Bin 12406 -> 12413 bytes ui/__pycache__/rgb_image_page.cpython-39.pyc | Bin 20508 -> 20515 bytes ui/__pycache__/run_action.cpython-313.pyc | Bin 0 -> 4323 bytes ui/__pycache__/run_action.cpython-39.pyc | Bin 2471 -> 2483 bytes ui/app.py | 18 +- ui/run_action.py | 2 +- 152 files changed, 2612 insertions(+), 940 deletions(-) create mode 100644 clients/__pycache__/__init__.cpython-313.pyc create mode 100644 clients/__pycache__/_path_setup.cpython-313.pyc create mode 100644 clients/__pycache__/base_client.cpython-313.pyc create mode 100644 clients/__pycache__/calibrateZeroQ.cpython-313.pyc create mode 100644 clients/__pycache__/get_joint_state_client.cpython-313.pyc create mode 100644 clients/__pycache__/get_pose_client.cpython-313.pyc create mode 100644 clients/__pycache__/movej_client.cpython-313.pyc create mode 100644 clients/__pycache__/save_joint_to_csv.cpython-313.pyc create mode 100644 clients/__pycache__/servoj_client.cpython-313.pyc create mode 100644 clients/__pycache__/torque_key_client.cpython-313.pyc create mode 100644 clients/__pycache__/torque_off_client.cpython-313.pyc create mode 100644 clients/__pycache__/torque_on_client.cpython-313.pyc delete mode 100644 generated/__pycache__/__init__.cpython-310.pyc delete mode 100644 generated/__pycache__/__init__.cpython-39.pyc delete mode 100644 generated/cmvr/__pycache__/__init__.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/__init__.cpython-310.pyc create mode 100644 generated/cmvr/api/__pycache__/arm_command_pb2.cpython-39.pyc create mode 100644 generated/cmvr/api/__pycache__/arm_service_pb2_grpc.cpython-39.pyc delete mode 100644 generated/cmvr/api/__pycache__/common_pb2.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/dexhand_command_pb2.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/dexhand_command_pb2_grpc.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/dexhand_service_pb2_grpc.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/humanoid_robot_command_pb2.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/humanoid_robot_command_pb2.cpython-39.pyc delete mode 100644 generated/cmvr/api/__pycache__/humanoid_robot_service_pb2_grpc.cpython-310.pyc delete mode 100644 generated/cmvr/api/__pycache__/humanoid_robot_service_pb2_grpc.cpython-39.pyc create mode 100644 generated/cmvr/api/arm_command_pb2.py rename generated/cmvr/api/{humanoid_robot_command_pb2_grpc.py => arm_command_pb2_grpc.py} (89%) create mode 100644 generated/cmvr/api/arm_service_pb2.py rename generated/cmvr/api/{humanoid_robot_service_pb2_grpc.py => arm_service_pb2_grpc.py} (63%) delete mode 100644 generated/cmvr/api/humanoid_robot_command_pb2.py delete mode 100644 generated/cmvr/api/humanoid_robot_service_pb2.py rename generated/{__pycache__ => cmvr/common}/__init__.py (100%) create mode 100644 generated/cmvr/common/geometry_pb2.py rename generated/cmvr/{msgs => common}/geometry_pb2_grpc.py (90%) rename generated/cmvr/{__pycache__ => config/agv_config}/__init__.py (100%) create mode 100644 generated/cmvr/config/agv_config/agv_config_pb2.py create mode 100644 generated/cmvr/config/agv_config/agv_config_pb2_grpc.py rename generated/cmvr/{api/__pycache__ => config/arm_config}/__init__.py (100%) create mode 100644 generated/cmvr/config/arm_config/arm_config_pb2.py create mode 100644 generated/cmvr/config/arm_config/arm_config_pb2_grpc.py rename generated/cmvr/config/{touch_screen_app_config => aubo_robot_config}/__init__.py (100%) rename generated/cmvr/config/{speaker_config/speaker_conifg_pb2.py => aubo_robot_config/aubo_robot_config_pb2.py} (56%) create mode 100644 generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2_grpc.py create mode 100644 generated/cmvr/config/biohead_config/__init__.py create mode 100644 generated/cmvr/config/biohead_config/biohead_config_pb2.py create mode 100644 generated/cmvr/config/biohead_config/biohead_config_pb2_grpc.py create mode 100644 generated/cmvr/config/cmvr_es_config/__init__.py rename generated/cmvr/config/{pinocchio_qp_ik_solver_config_pb2.py => cmvr_es_config/cmvr_es_config_pb2.py} (55%) create mode 100644 generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2_grpc.py create mode 100644 generated/cmvr/config/device_manager_config/__init__.py create mode 100644 generated/cmvr/config/device_manager_config/device_manager_config_pb2.py create mode 100644 generated/cmvr/config/device_manager_config/device_manager_config_pb2_grpc.py create mode 100644 generated/cmvr/config/grpc_server_config/__init__.py create mode 100644 generated/cmvr/config/grpc_server_config/grpc_server_config_pb2.py create mode 100644 generated/cmvr/config/grpc_server_config/grpc_server_config_pb2_grpc.py create mode 100644 generated/cmvr/config/lawba_ik_config_pb2.py create mode 100644 generated/cmvr/config/lawba_ik_config_pb2_grpc.py create mode 100644 generated/cmvr/config/logger_config/__init__.py create mode 100644 generated/cmvr/config/logger_config/logger_config_pb2.py create mode 100644 generated/cmvr/config/logger_config/logger_config_pb2_grpc.py create mode 100644 generated/cmvr/config/motor_config/__init__.py create mode 100644 generated/cmvr/config/motor_config/motor_config_pb2.py create mode 100644 generated/cmvr/config/motor_config/motor_config_pb2_grpc.py create mode 100644 generated/cmvr/config/pinocchio_qp_ik_config_pb2.py rename generated/cmvr/config/{pinocchio_qp_ik_solver_config_pb2_grpc.py => pinocchio_qp_ik_config_pb2_grpc.py} (95%) create mode 100644 generated/cmvr/config/speaker_config/speaker_config_pb2.py rename generated/cmvr/config/speaker_config/{speaker_conifg_pb2_grpc.py => speaker_config_pb2_grpc.py} (95%) create mode 100644 generated/cmvr/config/srs_ik_config_pb2.py create mode 100644 generated/cmvr/config/srs_ik_config_pb2_grpc.py create mode 100644 generated/cmvr/config/task_manager_config/__init__.py create mode 100644 generated/cmvr/config/task_manager_config/task_manager_config_pb2.py create mode 100644 generated/cmvr/config/task_manager_config/task_manager_config_pb2_grpc.py create mode 100644 generated/cmvr/config/touch_screen_algorithm_config_pb2.py rename generated/cmvr/config/{touch_screen_app_config/touch_screen_app_config_pb2_grpc.py => touch_screen_algorithm_config_pb2_grpc.py} (93%) delete mode 100644 generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2.py create mode 100644 generated/cmvr/config/touch_screen_common_config_pb2.py create mode 100644 generated/cmvr/config/touch_screen_common_config_pb2_grpc.py create mode 100644 generated/cmvr/config/touch_screen_task_config/__init__.py create mode 100644 generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2.py create mode 100644 generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2_grpc.py delete mode 100644 generated/cmvr/msgs/geometry_pb2.py create mode 100644 protos/cmvr/api/arm_command.proto rename protos/cmvr/api/{humanoid_robot_service.proto => arm_service.proto} (86%) delete mode 100644 protos/cmvr/api/humanoid_robot_command.proto create mode 100644 protos/cmvr/common/geometry.proto create mode 100644 protos/cmvr/config/agv_config/agv_config.proto create mode 100644 protos/cmvr/config/arm_config/arm_config.proto create mode 100644 protos/cmvr/config/aubo_robot_config/aubo_robot_config.proto create mode 100644 protos/cmvr/config/biohead_config/biohead_config.proto create mode 100644 protos/cmvr/config/cmvr_es_config/cmvr_es_config.proto create mode 100644 protos/cmvr/config/device_manager_config/device_manager_config.proto create mode 100644 protos/cmvr/config/grpc_server_config/grpc_server_config.proto create mode 100644 protos/cmvr/config/lawba_ik_config.proto create mode 100644 protos/cmvr/config/logger_config/logger_config.proto create mode 100644 protos/cmvr/config/motor_config/motor_config.proto rename protos/cmvr/config/{pinocchio_qp_ik_solver_config.proto => pinocchio_qp_ik_config.proto} (100%) create mode 100644 protos/cmvr/config/speaker_config/speaker_config.proto delete mode 100644 protos/cmvr/config/speaker_config/speaker_conifg.proto create mode 100644 protos/cmvr/config/srs_ik_config.proto create mode 100644 protos/cmvr/config/task_manager_config/task_manager_config.proto create mode 100644 protos/cmvr/config/touch_screen_algorithm_config.proto delete mode 100644 protos/cmvr/config/touch_screen_app_config/touch_screen_app_config.proto create mode 100644 protos/cmvr/config/touch_screen_common_config.proto create mode 100644 protos/cmvr/config/touch_screen_task_config/touch_screen_task_config.proto delete mode 100644 protos/cmvr/msgs/geometry.proto create mode 100644 ui/__pycache__/app.cpython-313.pyc create mode 100644 ui/__pycache__/run_action.cpython-313.pyc diff --git a/README.md b/README.md index bfae643..afc9c93 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,21 @@ Use the same Python interpreter you run the clients with. For example: C:\Users\lgv\miniconda3\envs\grpc_client\python.exe -m pip install -r requirements.txt ``` +## Troubleshooting + +If you encounter the following error: + +```text +qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in ".../site-packages/cv2/qt/plugins" +``` + +run: + +```bash +pip uninstall opencv-python opencv-contrib-python -y +pip install opencv-python-headless +``` + ## Generate gRPC code From repo root: @@ -50,7 +65,5 @@ python -m ui.app - gRPC server address/port: set in `clients/base_client.py` (default `192.168.0.222:50052`). - HTTP server host/port: set in `clients/http_server.py` (default `0.0.0.0:8000`). -- `device_id` defaults to `hc01` in most clients; change in code if needed. +- Arm `device_id` defaults to `right_arm`. Use `left_arm` when controlling the left arm. - UI parameters (host/port/device_id/interval) are set in the PyQt window and passed to the runner. - - diff --git a/clients/__pycache__/__init__.cpython-313.pyc b/clients/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..791b5a5e48304ac0a7c0edcd72cdc9cb995493bb GIT binary patch literal 155 zcmey&%ge<81h>7dvq1D?5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~iAenx(7s(wy- znSOF^S&_bhZh3xDc5y*sa;koMQ9*Kia!zJyUWq=0D%OvW&&gS}F=_luw73mx3mgg5`7Z)TZr|PE{ V6(q+e=VYelmFPpLV*QB)asc>z7k&T$ delta 65 zcmbQr*vH6|$ji&c00b#wJ2NNpSZf-)Sj8mgmKDVq=$7XfWfvzFB&Wut7ZoJOC+B3Q O=9R=isN$H3<#GUAWEEEc diff --git a/clients/__pycache__/_path_setup.cpython-313.pyc b/clients/__pycache__/_path_setup.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a517b706905d6ad8a654aff099fd8a868dbfa9f2 GIT binary patch literal 769 zcmaJ;&ui0g6o20&YqO=Jt<@o(+RlSvY!S3DnGOa+s%4!t6oew7wqM)MGzs6N)#0Vb z4G$aWV1nRP|C};(<-29R15tv|-0z4&*qy?4=5|d2DlyAX~!sLde&zy?_op9w@HE0%V!U|;ufsEhiAF3m$ z;H-&M!YPoO`br}AlH{g#DRL=*rb$GB17+N4SwlpgllxK%@|%dI%4}Fsmcj{+T$U^2 zyG5)N3o|a>HQc3+n{C|&xH_{Gzo-h4iT!iayV9`r7(jzGG(cC1=i*2{+n^3*)qvKS zNYhm&xZ$d0y=vLivUrqH-?h7xN4+YePT+Id4;ZRlpDP}+%Ofqvr!3GFt}xdPm>`CU zOSmfH7N+|OnrRgN$Y{E4YS@jgQEPXZad-KR%U=6lwMLBw^J-SjZs8PT^7w`|X+eXI zx8m*c7r6)iQl8bD}MtYD;}>>FY*cTj^~M64wvk z^%L3NlR@&vNg}hS3{wk-!G{NX>Of0>d#P0lw zLNYtT0ia7f!f+Gj6!BQ(BWT*Kmt(>h{%siV^9|TFffJ~>`mpWRJ2qWs3up?$ec}Ht S6GDE%%`=$$8;KBoT=5^4DVpQ} literal 0 HcmV?d00001 diff --git a/clients/__pycache__/_path_setup.cpython-39.pyc b/clients/__pycache__/_path_setup.cpython-39.pyc index 29ba91f9d629a7a46fa2736e5451f9c0a4777008..3e4e181f0f97c6a47c34766e44526616bdf8ee74 100644 GIT binary patch delta 75 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 literal 0 HcmV?d00001 diff --git a/clients/__pycache__/hand_client.cpython-39.pyc b/clients/__pycache__/hand_client.cpython-39.pyc index 22c543f83d00f36e8ee9f5c13f498be9103b4585..8bc2225d56921eacd8f01d00e0299cd19635fa27 100644 GIT binary patch delta 76 zcmeAanjplR$ji&c00g(at+RAC^4?@Iu+`7V&rQ|ONiWk+&Mhm_H_$E5FUl@1NK8)E aPcJG+j!(|XOwB9Nhfu}(oB3IPF#`Z?3mGl| delta 69 zcmbOr)G5T9$ji&c00gS?r!r@6Y8k1gBkQ|?! TlbM=V5(A-%V>XMi{$d6I(=-=R diff --git a/clients/__pycache__/hlc_client.cpython-39.pyc b/clients/__pycache__/hlc_client.cpython-39.pyc index 047f6654033e1d08585a795f1f4a4bfc4225a6ac..1d3896179d0c5be0ff49cc1841c0959ddd83fcfa 100644 GIT binary patch delta 75 zcmaFG|B;_3k(ZZ?0SIn;TW4+LVP-P0(a*@wP1VmyFVj!XEi2MD&@Im|$}TQQOitBL ZFDgimPtM6q%`4G|P{sP2Etod30sv*i7{dSn delta 68 zcmey!|B9a{k(ZZ?0SH{}cV%wmVP?`ab+L*`&Mhm7G0-i~FUl@XEJ#j`NiQl$j!(|X SOwB8afl$RUo9&r4u>t_X5*DWb diff --git a/clients/__pycache__/movej_client.cpython-313.pyc b/clients/__pycache__/movej_client.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe7061d2e1e860d54251b1eff695a88516b7b7a0 GIT binary patch literal 10844 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 T3&UNtmTn86s{zlp&Gi2PT-#1` literal 0 HcmV?d00001 diff --git a/clients/__pycache__/servoj_client.cpython-313.pyc b/clients/__pycache__/servoj_client.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd5065628921bfbd6be3970c447c441114177c80 GIT binary patch literal 11599 zcmb_CYj7LKd3$&sfFnWhP4IPmh$1ABlt@Vys3%2Ql&BYtBjX2=ARut0AcFwB2S_69 zPUyxHL$+K|engbzsbMuUrju#Pw3$R1=i$WdOfs2tfDkUBi=1&M4J3t7~GIQ3(cQ}3u#Cd_>~ z%|@tj+6T1iq*lb~j}{GBu!TiVOC#Em=`PJiA1xjz!6j1JaI|!w43|k|}3i{oTwEAu}2 zyNg?$8o+PjngQSDq#T*u$U}!+RC?e|>tbx?HsCGmVzqHCxV;Y5p>;7koDI&}M&xW% zDCRb{t2!vW)yX z;62XmnbKaT%JJOl^*Fw^8pdsQ+PN*jU2Q;bJA6Bwd%3Of-R9gQeLK4h%FIB=+T%XI zdfYtPci}dmWwS)x7Ku7ohtt-Y>Eu2`Y9;7PNKkdauLK>|BNWU~HK;lcy2*rCXbB+P zBgs;ivNw`kY{5@ia&8Auv=i{Y@ep{A0AB1N@OA;-OKanCc13?kGk15H zl$F39?!ueb;|FI)=H%_p=I&zPhcehB%5h=M*_xepf}NY8pE`aGp>ax3$-6d&8j!PJ zkNPQhH-ep%_HcI&f8Eu{e0W&uwKt?1uu-Dc%Rdw0Z5mO>`6dqYzNq=Q&x3

WOfpEJ3#WsP*zOh5mV)r>- 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 F`(N)};OhVY literal 0 HcmV?d00001 diff --git a/clients/__pycache__/torque_off_client.cpython-39.pyc b/clients/__pycache__/torque_off_client.cpython-39.pyc index 16f213ddf24b7fa193f065944173a8fc444e86a3..15d87ea463e8770fc3e4d4b886691f7828632236 100644 GIT binary patch delta 119 zcmeyz^@WQ!k(ZZ?0SN3vtg|*ww zC^J2yBp%4!yq=MV$-r4ZBR@A)KPSCRKRLIoNZ&xWJijQrxF9h(RX@F`AUQrcCo?s# PL?1#G>u-L-Jc|(k9Dpe@ delta 129 zcmeyu^^c1;k(ZZ?0SHpWc4oeq$oo-ODx)+vF)u$eCB7&>DZeB>IX@T3Pl+!`GSXzc zC66jQS(LG!l_ewDz;N?CMjj?j8yBmXXN& zbI!TPLLt|kWc4-FDER48x2+>j4CW0=|52SDpkk~0^gz`*6Zi<&8qlW=d zo&;cuYx;u1l#uK59k(n}RBB5TC@vwlwFUOcW~4=~$i?|pjK>Lw({$5@np{<^BPQZ` zt5nfUOQ}@lYJM02?KvZFSebH3)2&w&Q$tWxH7XTD4-^zwkujp^1s{40L#76gmsDgq zKP(qvRaIMqB7J7P9}#n43P3^vkdz2WNhGADkVN%>qXc9m8itBYJnRUE40z1e4(eVg zt33MA#>cR7?!xNKDKQX>x6hur_2cE0Z$H01`@@}YuBd@4>=9olKHzl{p>tpoWA4bc zY6Vzu`96=A;23rCaA(=SDgY+gKqcpk|LTX3{-bvLMDS;G{jZH8*a{|l18Ep2j{~4HEs=yLm=XU*MbL+eQ)l)tMSq

gP30 zDQM6M=QNb+rsYHmnp;Dq0z{n&IFbA29pP2Y%GeO1vc#Yh!5eT3*I_e8^~8Q?R2NW{;r{_*a9l}Er)f3o=UT|VTm3l>-z~BaC!TbeHGvJoc z)ewg2!cap<)P=-?uxplD>e_mizs~nG_<>*ffdzhOmRw?^4Ys?^b}zD?Qh3;WMEjChKCd)`um(ap}LV zw|A`rB9d~A4qx5V;F5JN`Og}Ku)oc2w5Okj_M|es;974qvzxm16qiX;*U}84zXszd z>msmJJYvbHU7`-h%CfFhG+B0{vRp9=b{W&0EFZI#vM*_u<>?YMt#V1%bOVXQvRp7! zS%%w?H)o?PqZF`8s;pQREah!WGm&f%$=1;aU_YL4%DWS8MJDFn1HaSpKj{rj3hoGm zIG&19($W7z2#XVL3XI1)oS1*n3HQ}Njoz}W5H~}oy=WN4vX-bq!!q*rw3oH__4DZc z@N)v<=IXF&nuoZbqGYS8UaaT^1Ww5F>TQ%!%LaO2@W#A|@x~nX zMeo>l!xUn1do-3PvA2@a3^!Qo_pnF{3{{p{#@c{q; literal 0 HcmV?d00001 diff --git a/clients/__pycache__/torque_on_client.cpython-39.pyc b/clients/__pycache__/torque_on_client.cpython-39.pyc index 37003800f7d36c5589b5eea7843942c5cca0e23d..af15a88247523f6989b5b8ecba201988fd732863 100644 GIT binary patch delta 119 zcmZqY{>#Oi$ji&c00j0S)>-Q(@_rQOPb|ufPtMQHP0UM)FGw=dWV|H;6q>Bf*uceE zl$oAU5)b5V-oPlvWZx(GY delta 129 zcmey%)y~bE$ji&c00b#wJ2Rh6`lwT5`oSzHir^FW|8EG=! zl1G)DEXvrx%94?6V7PfcqZpH>wTo3ua&B2sjDc=>eo=ODVnK3hOnOm4a(r@5W@=tZ O41_9<+5D7w1|tA5tS$!t diff --git a/clients/base_client.py b/clients/base_client.py index eb4b629..6925ee4 100644 --- a/clients/base_client.py +++ b/clients/base_client.py @@ -7,7 +7,7 @@ from clients._path_setup import ensure_paths ensure_paths() from cmvr.api import dexhand_service_pb2_grpc -from cmvr.api import humanoid_robot_service_pb2_grpc +from cmvr.api import arm_service_pb2_grpc class RobotClientBase: @@ -22,7 +22,7 @@ class RobotClientBase: self._connect_with_retry() def _init_stubs(self, channel): - self.stub = humanoid_robot_service_pb2_grpc.HumanoidRobotServiceStub(channel) + self.stub = arm_service_pb2_grpc.ArmServiceStub(channel) self.stub_hand = dexhand_service_pb2_grpc.DexHandServiceStub(channel) def _connect_with_retry(self): diff --git a/clients/calibrateZeroQ.py b/clients/calibrateZeroQ.py index 092dc3f..8c2b5db 100644 --- a/clients/calibrateZeroQ.py +++ b/clients/calibrateZeroQ.py @@ -7,14 +7,14 @@ from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase from cmvr.api import common_pb2 -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class CalibrateZeroQClient(RobotClientBase): """Client to send calibrateZeroQ command""" - def send(self, device_id="hc01", joint_name="xxx"): + def send(self, device_id="right_arm", joint_name="xxx"): # Construct request header header = common_pb2.CommandHeader.Request() header.device_id = device_id @@ -42,8 +42,8 @@ class CalibrateZeroQClient(RobotClientBase): if __name__ == "__main__": # 创建命令行参数解析器 parser = argparse.ArgumentParser(description='Send calibrateZeroQ command to robot') - parser.add_argument('--device_id', type=str, default='hc01', - help='Device ID (default: hc01)') + parser.add_argument('--device_id', type=str, default='right_arm', + help='Device ID (default: right_arm)') parser.add_argument('--joint_name', type=str, required=True, help='Joint name to calibrate zero position') @@ -57,4 +57,4 @@ if __name__ == "__main__": client.send(device_id=args.device_id, joint_name=args.joint_name) # 关闭客户端 - client.close() \ No newline at end of file + client.close() diff --git a/clients/get_joint_state_client.py b/clients/get_joint_state_client.py index bf85d4b..41bc6cf 100644 --- a/clients/get_joint_state_client.py +++ b/clients/get_joint_state_client.py @@ -7,8 +7,8 @@ from clients._path_setup import ensure_paths ensure_paths() from clients.base_client import RobotClientBase -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc # 固定关节顺序 JOINT_ORDER = [ @@ -32,7 +32,7 @@ class GetJointStateClient(RobotClientBase): self.pos_history = {name: [] for name in JOINT_ORDER} self.vel_history = {name: [] for name in JOINT_ORDER} - def send(self, interval=0.5, device_id="hc01"): + def send(self, interval=0.5, device_id="right_arm"): """Continuously fetch joint states and print in fixed order""" try: if self._start_time is None: @@ -57,11 +57,10 @@ class GetJointStateClient(RobotClientBase): # ====== 1. 同时取 position 和 velocity ====== joint_pos_dict = {} joint_vel_dict = {} - for state in resp.state: - # 这里就用你说的三元 zip - for name, pos, vel in zip(state.name, state.position, state.velocity): - joint_pos_dict[name] = round(pos, 12) - joint_vel_dict[name] = round(vel, 12) + state = resp.state + for name, pos, vel in zip(state.name, state.position, state.velocity): + joint_pos_dict[name] = round(pos, 12) + joint_vel_dict[name] = round(vel, 12) # ====== 2. 记录到历史数据里,用于之后画图 ====== t = time.time() - self._start_time diff --git a/clients/get_pose_client.py b/clients/get_pose_client.py index 95bff89..9f219d7 100644 --- a/clients/get_pose_client.py +++ b/clients/get_pose_client.py @@ -7,14 +7,14 @@ ensure_paths() from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class GetPoseClient(RobotClientBase): """Continuous client to fetch robot pose""" - def send(self, interval=0.5, device_id="hc01", base_link="PELVIS_S", ee_link="R_FINGER_TIP"): + def send(self, interval=0.5, device_id="right_arm", base_link="PELVIS_S", ee_link="R_FINGER_TIP"): """Continuously fetch pose and print in a fixed order""" try: while True: diff --git a/clients/movej_client.py b/clients/movej_client.py index d10ce11..ee04aa2 100644 --- a/clients/movej_client.py +++ b/clients/movej_client.py @@ -11,15 +11,15 @@ from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase from clients.hand_client import DexHandClient from cmvr.api import common_pb2 -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class MoveJClient(RobotClientBase): """Client to send MoveJ commands to the robot""" - def send(self, joint_list, vel=1.0, acc=0.5, device_id="hc01"): + def send(self, joint_list, vel=1.0, acc=0.5, device_id="right_arm"): """ joint_list: list of dicts, e.g., [ @@ -31,8 +31,7 @@ class MoveJClient(RobotClientBase): acc: acceleration device_id: device ID """ - # Construct JointCmd list - cmds = [pb.JointCmd(joint_name=j["joint_name"], rad=j["rad"], vel=vel) for j in joint_list] + target = pb.JointPositionCommand(position=[j["rad"] for j in joint_list]) # Construct request header header = common_pb2.CommandHeader.Request() @@ -44,9 +43,8 @@ class MoveJClient(RobotClientBase): # Construct MoveJ request req = pb.MoveJ.Request( header=header, - vel=vel, - acc=acc, - cmds=cmds + target=target, + options=pb.MotionOptions(velocity=vel, acceleration=acc), ) # Call RPC diff --git a/clients/save_joint_to_csv.py b/clients/save_joint_to_csv.py index 28540f1..a32ea06 100644 --- a/clients/save_joint_to_csv.py +++ b/clients/save_joint_to_csv.py @@ -8,14 +8,14 @@ ensure_paths() from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class GetJointStateClient(RobotClientBase): """客户端:获取机械臂关节数据并保存到CSV""" - def fetch_and_save_joint_states(self, device_id="hc01"): + def fetch_and_save_joint_states(self, device_id="right_arm"): """获取关节数据一次并保存到CSV文件""" try: # 构建请求 @@ -40,9 +40,9 @@ class GetJointStateClient(RobotClientBase): # 将响应数据映射到字典 joint_dict = {} - for state in resp.state: - for name, pos in zip(state.name, state.position): - joint_dict[name] = round(pos, 6) + state = resp.state + for name, pos in zip(state.name, state.position): + joint_dict[name] = round(pos, 6) # 将角度从弧度转换为度 joint_list = [{"joint_name": name, "deg": round(joint_dict.get(name, 0.0) * 180 / math.pi, 10)} diff --git a/clients/servoj_client.py b/clients/servoj_client.py index a96ceb4..925ad07 100644 --- a/clients/servoj_client.py +++ b/clients/servoj_client.py @@ -20,14 +20,14 @@ from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase from cmvr.api import common_pb2 -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class ServoJClient(RobotClientBase): """Client to send ServoJ commands to the robot""" - def send(self, joint_list, vel=1.0, device_id="hc01"): + def send(self, joint_list, vel=1.0, device_id="right_arm"): """ joint_list: list of dicts, e.g., [ @@ -35,12 +35,11 @@ class ServoJClient(RobotClientBase): ... ] """ - cmds = [pb.JointCmd(joint_name=j["joint_name"], rad=j["rad"], vel=vel) for j in joint_list] + target = pb.JointPositionCommand(position=[j["rad"] for j in joint_list]) req = pb.ServoJ.Request( header=self._create_header(device_id), - vel=vel, - cmds=cmds + target=target, ) try: @@ -255,4 +254,4 @@ if __name__ == "__main__": finally: plotter.stop() client.close() - print("Client closed") \ No newline at end of file + print("Client closed") diff --git a/clients/torque_key_client.py b/clients/torque_key_client.py index 045695e..e491287 100644 --- a/clients/torque_key_client.py +++ b/clients/torque_key_client.py @@ -10,14 +10,14 @@ from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase from cmvr.api import common_pb2 -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class TorqueClient(RobotClientBase): """Client to control torque: on/off""" - def torque_on(self, device_id="hc01"): + def torque_on(self, device_id="right_arm"): req = common_pb2.CommandHeader.Request() req.device_id = device_id ts = timestamp_pb2.Timestamp() @@ -32,7 +32,7 @@ class TorqueClient(RobotClientBase): except Exception as e: print("TorqueOn RPC call failed:", e) - def torque_off(self, device_id="hc01"): + def torque_off(self, device_id="right_arm"): req = common_pb2.CommandHeader.Request() req.device_id = device_id ts = timestamp_pb2.Timestamp() diff --git a/clients/torque_off_client.py b/clients/torque_off_client.py index 293edf3..db5ad5c 100644 --- a/clients/torque_off_client.py +++ b/clients/torque_off_client.py @@ -6,14 +6,14 @@ from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase from cmvr.api import common_pb2 -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class TorqueOffClient(RobotClientBase): """Client to send TorqueOff command""" - def send(self, device_id="hc01"): + def send(self, device_id="right_arm"): # Construct request header req = common_pb2.CommandHeader.Request() req.device_id = device_id @@ -37,7 +37,7 @@ if __name__ == "__main__": client = TorqueOffClient() # Send TorqueOff command - client.send(device_id="hc01") + client.send(device_id="right_arm") # Close client client.close() diff --git a/clients/torque_on_client.py b/clients/torque_on_client.py index df42df1..9077841 100644 --- a/clients/torque_on_client.py +++ b/clients/torque_on_client.py @@ -6,14 +6,14 @@ from google.protobuf import timestamp_pb2 from clients.base_client import RobotClientBase from cmvr.api import common_pb2 -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc class TorqueOnClient(RobotClientBase): """发送 TorqueOn 指令客户端""" - def send(self, device_id="hc01"): + def send(self, device_id="right_arm"): # 构造请求头 req = common_pb2.CommandHeader.Request() req.device_id = device_id @@ -37,7 +37,7 @@ if __name__ == "__main__": client = TorqueOnClient() # 发送 TorqueOn 指令 - client.send(device_id="hc01") + client.send(device_id="right_arm") # 关闭客户端 client.close() diff --git a/generated/__pycache__/__init__.cpython-310.pyc b/generated/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index b2163badf125d4b2beb002ec02b2a729ae9fd4db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmd1j<>g`k0&&q-86f&Gh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v8KO;XkRX-=a zOg}ldtVrKLw>-ZnySN}RIaNQss318$IVUqUuS7pRH7~U&u_QG`KR!M)FS8^*Uaz3? W7Kcr4eoARhsvXGGVkRKL!Tg`k0#7feOc4DTL?8o3AjbiSi&=m~3PUi1CZpd0hlvt9Q5)&VvnU`4-AFo$Xd5gm)H$SB` NC)EyQ+-D$W000nIAwvKF diff --git a/generated/cmvr/__pycache__/__init__.cpython-310.pyc b/generated/cmvr/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 57c037e2ee3c487910820c0c85c7af03af8e64bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmd1j<>g`k0&&q-86f&Gh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vJKO;XkRX-=a zOg}ldtVrKLw>-ZnySN}RIaNQss318$IVUqUuS7pRH7~U&u_QGGqAWf>GcU6wK3=b& X@)n0pZhlH>PO2Tq=wc=y!NLFlCiNuy diff --git a/generated/cmvr/__pycache__/__init__.cpython-39.pyc b/generated/cmvr/__pycache__/__init__.cpython-39.pyc index d3c793c55f89d82f8118246d75bf2a408a3d37c9..7234bf4151300069d765406312672a61c081fc12 100644 GIT binary patch delta 79 zcmbQrIERrZk(ZZ?0SNvDS!Ye;u{L+q&&bbB)z3*U(@)MVE7CX6Ezd8?E-pw+PSsB@ dDoBn`&dE&8E74C+%}XsxEJ;m)D4SR=2LQT~8gBpq delta 72 zcmbQkIF*qnk(ZZ?0SHpWc4kiGu{N-Bv5HB~Eh~yK&@Im|$}UbUNKTDOFDgimPtM6q W%`1sXPt8j$N-RlDfhe0;CkFro0T@dF diff --git a/generated/cmvr/api/__pycache__/__init__.cpython-310.pyc b/generated/cmvr/api/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 6c9121469f39d83398f27984ae7dee4131be3309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmd1j<>g`k0&&q-86f&Gh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vNKO;XkRX-=a zOg}ldtVrKLw>-ZnySN}RIaNQss318$IVUqUuS7pRH7~U&u_QGGqAal>Q$IdFGcU6w bK3=b&@)n0pZhlH>PO2Tq_+lm?!NLFl%C;tG diff --git a/generated/cmvr/api/__pycache__/__init__.cpython-39.pyc b/generated/cmvr/api/__pycache__/__init__.cpython-39.pyc index 3b26f31a62748fc502ca16bed6c3c8f43713d01b..a88d5654a74514202b2227132a3480d09005fcf6 100644 GIT binary patch delta 83 zcmbQqxPXx-k(ZZ?0SNvDS!Ye;v9@;A&&bbB)z3*U(@)MVE7CX6Ezd8?E-pw+PSsB@ hDoBn`&dE&8E74C+%}XsxEJ;m)C`&BJ)Sp-_2LLQ#8|(l8 delta 103 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 literal 0 HcmV?d00001 diff --git a/generated/cmvr/api/__pycache__/camera_command_pb2.cpython-39.pyc b/generated/cmvr/api/__pycache__/camera_command_pb2.cpython-39.pyc index a7e87604f3110e00c4603ac606d93d8e2a6d19da..f978207b86f8098914b6d19421f20c447fba318d 100644 GIT binary patch delta 80 zcmbPYINOjXk(ZZ?0SNvDS!ZqJ$r3m6*U!k$P1VmyFVj!XEi2MD&@Im|$}TQQOitBL iFDgimPtM6q%`4GQPt8j$N-RlD(Vsk*MSSuO@jC$aq8qpX delta 78 zcmbPjIK_}Bk(ZZ?0SMZ8c4cnl$r3m5aIuO>&Mhm7G0-i~FUl@XEJ#j`NiQl$j!(|X cOwB8aNl(p7ElMm&O@Sy&EXa(RyixoW0LJ?p=>Px# diff --git a/generated/cmvr/api/__pycache__/camera_service_pb2_grpc.cpython-39.pyc b/generated/cmvr/api/__pycache__/camera_service_pb2_grpc.cpython-39.pyc index dfa98bfd74e27039610ad4e3a14a00792b0df420..bc449020315fad7b09a51bf301e8a1e1fb1c6a12 100644 GIT binary patch delta 83 zcmccOecPKak(ZZ?0SNvDS!ZcRZ{+*MVHBdDk)NBYpOapupPXA(q;H^Go?nz*T#%TY ls-Ip|kQ|?!lbM=VqMx3cms*rqlA5AF`39r%<}l7W8331~9V`F< delta 85 zcmccZeZ`wEk(ZZ?0SLNzc4b<`ZshyLVdCpz6_cD>Rup5PTb^H(U7T2uoEno}RFE8> joRgWFR}zz+nwMIXSdy9oQI=Sc88i7IqtxbD&N>+Y;!GaB diff --git a/generated/cmvr/api/__pycache__/common_pb2.cpython-310.pyc b/generated/cmvr/api/__pycache__/common_pb2.cpython-310.pyc deleted file mode 100644 index 612bb3b610fe59eb2a350cff5ce4950e5b035e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2199 zcmah~OK;mo5GM83ih5DGTogF&aERx{&*Y|(C z{HY*GzwyEHPl3Vb@OOWZC5cFViO3{k$>T^rDsvnK9P7sgjsZ^elLE&9r}}Au6M#`a zBTF=MqufgUEUZfcm+R+&i*xR#KvK7IzetPcDoNjy`Xzx7pfW9=uaOL(b%7K>8)7yK zXp@%C?~xp!3QgbKCuy2I-x|uaMDnEYI&vHBKcLy0hxEa%48FJq3N<*+gm`_XEi{yn z-I%jwK*iTFu(mC%Z3}DM?)Lf45`J&)B^%n&H)t8~CdfT4xAp0B_Mvzz;y~ky2OU|NV#8+fS)Y zneI`tGhvSB7>>0wm=1@O?HCTB)jNL3`?8M+bq!`tJcq$3zZl_(<5)l?$JBN85#_p! z4lQbUrekwm_i8+FEKGDyALuSu$a*Gdd-`~SCxZjmibxV#Gsc&!rccb8;f%+QT@~S| zDNa{`u56DSXJpZu;334?+(@9h`?HMlO?qh>^tm~t#+6}F^#H}ek4HD<9r>f&!K3QT zTy;gWI$yK<3Z>@*HHT2QSMO=K)o%3)lA1@EVBFE_%@+k(Euw5loVDAn_R~USp`&#= zC!IociRkuDP7ASxRWXk5zL8P30o&GXazu4PS>+i@cIc}qWC=W^iP#o4iP%S4eT>rc z-ET%(acSg0kfWy&v&WQ|mT5t<&B~$43~C9WsR-;{6!oZIorW z$Z?SeaoE1o;C1&87vFLrK@&CKa8cyqD=xm~;ukIm+?V|i{UpZ3F);S?D<{ujUh*?| zaY|Twj(5)~#G&KiQ;1eQJ3S159BuU`ejH7X$)fd3bhB z#b92nnCHhY)(PoSX6lxCP068YQIQOPEi6IoT}|LD2UntcAnvC2Wvih*Zyjol7meqd zpTmul-c3GE(#?p>(<}Z!X534Gp*b6H&*yVO=~`>H=g+lOtcSMPfzQe z`mwK4dpce*Sy>GQFM`^dx6;$FlO6{xu?M^Hli`4+c&73lIx-<-He=JkF4YGAocbz0 z>uR_GE@!pWg~M_tys^4|5xesgVrX*A^YhCTwaJeXt8u$r{N1U&bjGx1jV^1V)qec= z8;4!E6WyS-5t|s;uuN)uwczE}s@2+P_H77OESfVv#p>kBPkkCx_GeI*l52yAMHPAW zq@qeR7ez57&mKjNz>|85;z~q`aGZFnB!hP(0W-g&l2|R~xE=yJA^+Ed&Mhm7G0-i~FUl@XEJ#j`NiQl$j!(|X cOwB8aNl(p7ElMm&O@Sy&EXa(R?8%-40G%@$MF0Q* diff --git a/generated/cmvr/api/__pycache__/dexhand_command_pb2.cpython-310.pyc b/generated/cmvr/api/__pycache__/dexhand_command_pb2.cpython-310.pyc deleted file mode 100644 index 8f83771f8e30932e3c031b07f77d4d9348fcfef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6909 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 diff --git a/generated/cmvr/api/__pycache__/dexhand_command_pb2.cpython-39.pyc b/generated/cmvr/api/__pycache__/dexhand_command_pb2.cpython-39.pyc index 857346a4eff98de260c3ca58217a4367d25bc306..3d6f1108d511cd215aca3565afe1f5292f1c7738 100644 GIT binary patch delta 85 zcmaE*@lk^(k(ZZ?0SNvDS!ZqJ2^Y2w(9g)vP1VmyFVj!XEi2MD&@Im|$}TQQOitBL jFDgimPtM6q%`4GQPt8j$N-RlDfhbEX$kd-aUHCEpv$7r> delta 78 zcmeyU@k)ayk(ZZ?0SMZ8c4cnl2^Ti;bg_y_&Mhm7G0-i~FUl@XEJ#j`NiQl$j!(|X cOwB8aNl(p7ElMm&O@Sy&EXa(RJWu#C0Ppr3KL7v# diff --git a/generated/cmvr/api/__pycache__/dexhand_command_pb2_grpc.cpython-310.pyc b/generated/cmvr/api/__pycache__/dexhand_command_pb2_grpc.cpython-310.pyc deleted file mode 100644 index 9207ff2ae716f47d92724a4f8a8f675f00bfbc50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmYjLyH3O~5VS)i5aJ{nMCOz0u}2^ zb1UtPM!U1KxLBMrs>_St{*(B-h{LK#+)?Lq0>jqKa8o(HCVXPcqmPGsXCVxt4Mt>0 zBP5|+n=@pgF(t?mgR!9#1B#e%z|C&EGO)D)W`os`n;$yP9+%a0tdv2m)KqsV>MxdR z8tmckS@!5bx^9%(k4avwUNODo*lLhvS?T>Ja;7YsMs^S&wF8*h(MBr`y!G^}(&&BR axVcuv-Ng6l z4TTvj^H5D&0v=edF9Z+zevf&*Lo4*HzVJhTe{gVx@dK~Nqd#~q59)sf1(jw^l~u;? z--Wqs*Y9?*?eD+pBAC21cz7M|;0zG1z zxP!j~8LDmA-B4|7ZM|(!n`vj6_Mtvh>>QywaLpJs+Y>ZTDE_AqqlE-oBs2qPDMm{P zv`lCg(4`n%N}$Vx<^Zk4XeEKJ5NZOt8l$TTv zfgAdwUMN`cbweBm*TzrCbit@S-nnMountAvt#3uo_3@zN3k|n>Pt={hS5KR*@dgj~ zz&3-RrpZ;o-yQHEw87Urr{f)QA=e`>3%JergnfKz?u2_hj79AF!SPEAjJwf0?C^y~ z-tvXJ*vP#;=j{091*Gr70(p4D4WF?l+$7!$d~wqWooCFN8n+h;?sS{AO<5fD9Pz*= zDlefWZ03hHScBS8RF15X><&HV?`v~92Fg|=P9l(-AT$ZD#Izt4@#>3gNmkIs#JZIaIGBdJYD_n<=0 z>2lka1>5fWY|z1e$+q7eIGq^D+2GHvZHvpGA?;0q)R3nGG2srf)G^eOM!fl_5H5E1 zDTL>0D-)fkt!#Xf=Av`7WwH`01D3VS!HIzPgJ%mD zP^mpb>RCX)k0ZVVM@oF9u?Bmrm-UMsEnpI zjg^5%MKrZ(Y#De|LQ|W@R)9wZG_`503cR&g&$adhTZc7l0Ja%pnAADQoKq4MYq z(}&t)?R|ZyK6-AbA5b1=3LFqd6HfcJk@=IAudI#>;z>DNGZ!`5(dL{&ymnT69Sk7P zCu&6-i-#_q7&esjtiwelrvf9z3X)YMc-{y!xTqo_*V)7#`OkCMBPTkCJ@TY4Vb4PH z0uu767ojJuRE;!C0dl>IIQE6KYJp8vjpvSZm1i8r#!OsGyojJ?;BiNFj*waG!J9_) zzgHW`<*7LnPLKXBFQSOq8OIKNe35~v`!F(S0WmZP2>2OLHT^Go**_VV4b}K}MH9DS zdQ3;DYy6Esfv`$eG2F;&c^!TRQRuOC2DQvXC?Q&znJ9cKAT&D@&9efbxtVB@l?XLw zqGh&3XnrQT%qoNyW}+)>mC)i$w93{9EioN}YC|riEfp0Cn7o>|T>9D)?;iG-;ijSs ziwaCTkF+6t34reaQ)y|a4fSDWXbiK%+|V56AD2Ov))X1|Uo9U+Rf*s4!`l*lhv*2L zT1>?dMGnOfM$?mmxCV{PhK@Moq0ISxdRLOwxc0YQ!5P$U@B$XditBVbDURv&0`3k3 zmqpj__90~i@Tw)3-gBUeKk$VOFB|NE%!QzmKM17>q2w@lxt#KE3in@uCQmU#mx|=P zYDqQzb#x}Zmx=Oh-cAZEeQ;+?Y@?kKZ$dw@A(S>KsiZeV?BKYmlMfTkZ;_An#?kXr z3Z=`o6P3!t9CMVS47R9JnDhQHR_gp*rJ~yIM740h9JMH&E~*wL;6E;)R#X6fWb!94#Qt94<7tA;0EbdoOM z^mtYlAf3;4`c#=WH>ZswacNqqFQY1yn(&C7rBtmTt|Qb$@&hEhNa!WwE$rH>Onq3zYMQ2NYVue5Oso9A@G74P)EF#7^*hyZ=BUmS8bD-Hnf3SE+zsiA2i4(J jHPC-&ZG$vli$1hm2U95l`U(~;C9R@YzGi-7?dpF305!5G diff --git a/generated/cmvr/api/__pycache__/dexhand_service_pb2_grpc.cpython-39.pyc b/generated/cmvr/api/__pycache__/dexhand_service_pb2_grpc.cpython-39.pyc index 3b4d603918da096c00fa62c4550cd3b5d860b3a3..f13f30f0fef205788277e43188d8973d814f08cc 100644 GIT binary patch delta 83 zcmX?ad(DFSRJKBsE2U@=ZpS&Bh#a!~mk59aI1S delta 81 zcmca+d)}5Wk(ZZ?0SLNzc4d0IZRESgZsO-+6_cD>Rup5PTb^H(U7T2uoEno}RFE8> foRgWFR}zz+nwMIXSdy9oQI=Sc8M9fQW4jmtQQREV diff --git a/generated/cmvr/api/__pycache__/hlc_command_pb2.cpython-39.pyc b/generated/cmvr/api/__pycache__/hlc_command_pb2.cpython-39.pyc index 8cfe40aba9904ede72483624c4268df04a5ecab4..68915fcd3a12bdcd1da27ad5f4fa1a64eaaab8f8 100644 GIT binary patch delta 80 zcmey*)yB<}$ji&c00jSntg|-qJYg~N(a*@wP1VmyFVj!XEi2MD&@Im|$}TQQOitBL iFDgimPtM6q%`4GQPt8j$N-RlD(Vx7KQDm|{YXATb;O(;9A5wc delta 85 zcmZ22u|$F|k(ZZ?0SLNzc4a#7ZRAU0G4XP-ib>8bD~d7DEzd8?E>0{+PK`+~DoBn` j&dE&8D~U-@%}XsxEJ;m)C`&BJjG26oQGD|umP~d4XqFv8 diff --git a/generated/cmvr/api/__pycache__/humanoid_robot_command_pb2.cpython-310.pyc b/generated/cmvr/api/__pycache__/humanoid_robot_command_pb2.cpython-310.pyc deleted file mode 100644 index 3f006144b1bb1259b597c56422dcf46510dfdfb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5423 zcmcInO>Eo96&Cd`TDE1yab(4b9p`7`Y%C>moH&USTajc(vTS)JCTkN#2}(0|=t!bU z$=Nu^qCgMrp#}C*U{NH89(wPkDB2!-EBbfo0KK#)-`ZQzL(unz6iIuXF1p5w(8q7y zJia&Y&Aj1I9~=}t@cZ}A{`KOoa~{t>u;Knip|K4AZZqKV5RdF30`WG5mRI%)$bC&; z%P$8w_X7{gA;=Xvi0u)FlG)q9UK>|Nl!7l7TT_pROsoMG=n-g^<)B4?Ap z9&t7W>@jDTfGyD_>)B<_@YyUKc>9Em(a2tIN1(H0nq2G0bE&A$^M$Eb16 z(n#4FD_mp6)<{?ys6B4++kI_rBWX!9wlodw$`^j{x5}-pa%<>$b?>Q*7i}-+Pw;Zb zwuip^UgmA-ob9E=y_9UrC6|}dp5tZW1TXh&du}faw)C#;WsQ4Tv%RdjysWvrTsXnY z1KXb4%R^gw-}X}GUdpzYvdc@^<>jK~WwCEVUguA)+c}-IG#=R+8(d?<)|j$19@`of zu2HcyE}am|a$oz%>}PH15-@Z2H@US$j5XR_)S2G%+eI_6re<)DuLeul*ny*8+Zm#B6Bpu_LwJn#j27x;ZZi9De9fIkF8odvG50DO_&2mT09B9G|<;7fq0^N{O2 z1inlcfoB0F@`OGDo&%Ifo<0U%0F=lIT>`!eD3Pah8F&#;A|;yT@+|OcH4px0*4|96 z(l#~J9wk#9L+|Mgy*X9i-`SzYR6{2;b%-1FjKD@{d%vah4mwo%%uqWWYJgBAwA(PW zPEW_yu+vgHy50m)s71S7b(f;9L3f(8(bM!c>UIxWb-k$&wWrqAE>~#it(M+aI`vF< zKIHL;R~xNYMq2G?=@xTI_C zUam#raZ%huuC&z_O$bxM^+#t}j`AQ5`>38;Nw---~!535|)Zpd^ zGLxx(JgJ-+=TqLD>OU|g`Wr3Mg(3K^4`kwwx*eoD1`J4TG|Z7D7sYUub~}2zOXIhW zIi7MX9d*1yDXFWCm(zc?#$QhUKsZGJ!(xb1rKz=F@-#-`S46R=8oRWI$>#YS$i$q{ zSW{p{Wv1AQis$&0QT<&IgS8ICSW5onG+`ZGTDY3{(y~|6k(q#L_YuwDi)1J>?F3uJ z70zd}*e3LKUNg*^Ic1RF_gX=glfOAlkYAd+53aTUJHq%iSlFu3CTQ0 z!RQ=^b&9yZHL07QZY8z+#VDRX*w@!x{Yak{Gr8e7&t?`ggDt zR?V_Ye)|*^4LQI~++EYIg@Su&B>An=Y(4Rdq90}k(;>j7_odC@#v^fvSB||(;sH_E zih1z19TV^-$Gq{N=&f$WeEhy0^YgnL3*7jvASOOkc~G~Zl}h!~Y&8$|qGI?-Hn+xG zxERDOWwTN%O2y{|u+Q5Yh1D!?`>?(3^!v@W-5Z`F#Fl?uvMEbMA+ z$0Dwl924t7{xY0n$I`$)7}lWxFZM$(f)Bxu0N-Dp!yp2@fIWv{ga`tDz%lzZ%BmZ0nKy9nPy_#?t!0JI-N zt`7f(tOiVbhVVJUF62-9DY6-4dkAGnr?!u52w4T;Ib>IpktL9AA^Z~IR|uCN?b>C8 zIs!$wiKFTu`#r)R0A`-CkfIR1p(re|tLwW>YMyZ5yq1D94K>?L@U<0&45whbI#e#z=Z+N9Xr3VP@e9n`^_E<5xNvoXZE?w zz-7cHa2{dwJq3YT%M(P zhVY+y`i0)2>E`aMH2<2pHT#)vyzF+=22Jl8orcnAYP8);o40N{l}hjSzu?R#KK#Li zm6qxpu<)X}JwAqw%hUZKpx+l2oGa{$`i6X>R}}E_f8{0mOwF&tsNjVw{9X)1y$&;Z o@O?Cdvfz7f5On@2p5f#1esjIf2u@=E+i%bt6uyZIvi+z30=KfdV*mgE diff --git a/generated/cmvr/api/__pycache__/humanoid_robot_command_pb2.cpython-39.pyc b/generated/cmvr/api/__pycache__/humanoid_robot_command_pb2.cpython-39.pyc deleted file mode 100644 index dd8c021661f8fde43073de1a9ef1866cb358320d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5687 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 ZyaU^%M2Ll$lh~TAR`km2)*Fkj{vTH{bJ73+ diff --git a/generated/cmvr/api/__pycache__/humanoid_robot_service_pb2_grpc.cpython-39.pyc b/generated/cmvr/api/__pycache__/humanoid_robot_service_pb2_grpc.cpython-39.pyc deleted file mode 100644 index f05c297ec500790c9355738d3df282c501586c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10228 zcmds7&2JmW72jP_;lm5OWleUkiR@pl`V_E%zBenb>GjI=; zLzQrDNGB|eawHc;c_?Rcy%fvEStOTe%mRy+la*91rE5IJvGpBI6`o@=2Tg+x@CEeRTGZqY}7X|Fuqx=a{qy1fxFqiVYsxFj4tB^ zr&4jMc5UN1aI<&om3-AHGFvzsj%O2yjtFf;p3T1aLiW-UnoVsMh3nbq+b!bRqHC9( zdt9tHGV6D_wIyl=tClakm*3)6vFdvHav6OWT`TWd!86v5e!lURwNdvhj~?MwF7h5) z6&ywnS%u06;$ps5yx1WTsSFKBBAYtO*6v%3*Lan=mQ!uSRPROS%Bxb(HqKkO%RKLL zt6tj@dA#_(Qy0E`6^GT!oCb;BLJu@vupD7A=U%n7ZM$G~mqylq;)3TmW%rd=3pA9i zKLgBFT<#1A*IL!7hFKUhIV5LZ4+eXc#(K?HY|X20?7VcV=&GJDuTG(; z28KC>dIb}o_b}ubrV24MQdu?2)@HHHvjysV_ebRjt_57~PjpRd>LsiJPcIpzP${hL zL!}5w^=Y`N*-?f2_1$n&;X_`m6j#sFJ<;-fQsEKcsQ^#4;c10Ofe#1xa2r0Na1;1w zfRDD}V+xM}ABXg@(nL$&lM0KYb}D#ws_ofng(rZ|1o%uFenjC(;Ijcf+lC)icnbJj zfX}tz#}u9hJ|E!oZTN9Ej5!}^+*ok1AVj_3IU*a6Tfy&|*m5uLaa38jo3B=R`LcCQ znOkt1HH-CA%$JJ|F65-|EL?6g z-cmhg3%*r!JuW!2E8M&5u$`y+>#MqRx<|u`^8vrvSF7cnGdj>~s0^k`SWSZ|PL%W>hn)mv6L0q15vvQqE2@}4MuxbtE! z8JtS3?(ro@+{+901~!5UoJhf4$yhQ`uja*lTTwYj24yq&eHfLx2b%+VTbWw$H-pzX zJgJb;Ro|lIC_I;MQtQqd1gdUHa|tuEfgM1`mxNOZYGZpADb1i*mDzoL?m7Hm58B&= zloUg^$bzJ~sx~^8%OPb_Qq?c}+_H?UDcg_{-$nu+^@?AXNj25G8l(b_wobe;)n*DZ zdYyYT+A@lIRY)(i&8ked&oX*b(}>>udn$N?KVRzokEc)0U|hS-kDS5qcSSOW474wF9ML0B_@2gzZa$DU)9kM7E7)?ONHt&K zwk_kf?S}v;CvE%vdcGVWQ5&XTux;@Q)KtUTLSCl2D9ABfZWzSW!-lFkI1Z?xS@$@A z4Iv&FVi6X_J;F>D!#&F4EP=bpk}QRLjHTHy?r}eE%q9GIF_#P?#grc>=F)729YMQc zHjBOHsGRFMB>waYL6LJI1hV_1GF=O}+|wXUGbMqyPQ#3YqknNxJa*@>0yh%{YJktE|XOr|K~|q0v-SbXQJ}Tn-=u^-@ikn1eZTdvnj|H}Zt5vo${m51wxM(!*Zii?m4;4+h-+{|@ z7Bb!c#&RtWT&|}f(~mpkI(6uH`8(3U1v>|!e)i1;8~lh}fKZ=w2zKt!5o_Cy2R?8Y zA=@uHX#joJ#(mJ?QzM#1^f<#d)OghkHw$@q=5_eJcRmnhhRNz z?s14VaQR+@Y}+03J%9Mj9uOI>WJbiRc$2t7_>N&cn+MY`T8xFAH4r~P2Xn>7&U}M0>18lql zn*cTmDHBLEw8}V*nwj94nT}_U0Gkc4*$(U|u(<%6>%fiyn-8%04(vEEE5NK>j2XX5 zeq?ysqZ2IDG(I;z3N`gdC!3*76}O>$%CAQvQ$vUtUco_PVmC9;mIN5z%MIW>5F`vT z$tN+R#<4@w6`9jw5oRIhTMnc)9bEhjgpKqED|6vXa0D#{S)MpbWS$5GKL@q!z(5R60*YEr%?X)S9?NCABb~qmo)3-=&gTA}^pM zkGG5J+Ul@XEbPiIXY!2gRg!LjQm&jQWMA5456^@th*sw^;h!pT03Y8!I<6e<=(A<< z(z=!BsH4L?i|sj-BSMCKQ(hcZN-}DaED0on_N(MsaCyPq8CxR&m4N zo@PhcoZ?1U2+J@dC%VmuI#{XsTUjc^q2TV1%6l%9Y>?b!$!H?Ki|lTP8*LiRP;;mm zZbq8XrrC@!%J!z!;ukc0>)X0W;=Ud8*I$x~TjtcpClFQXnra_XKmvB>f)kKQ^CRkXwX3zutwXbB_~)SpUG1ZBSl^oz!Pw-IkS z0uE%nQxI%jybCIFMD7sjP{Tsq1h&Qg)HrsS8r8vAO&SvVT4a2i5kDe5l&L&+xXLjr zQ&Fy0x#({ClApfVx4yGo_4SXS1DUenUdpQNq+exe1G@QNP`X1~hP z9?Sby_Gs6c4Gzl#ncC4_+N!9aUv1CfZS;+;zjb?vwuj6u#UT5AJv@G-6g|w(k3H7Z zR9?Pw#j2=BEmjr!9Jp91MEY#Mk}7?>-^X^%8)e&1^8=aL@yGgh_fRUV>vv`;5d8gq zr4QIxx+YyoX_X=vh`JNK)Fr#|Bjr9EGDW+8?pxii$NOwY-eDkGPxjLKxo@I1MfQL1 zTk8Xsub<2qh_+L`v{h%3eodNAFHxgkXLaB@Zpn}gMCs{XO4G5cZ^Nd8+R46^zR-0) zI`D&>=?Cg7ODp(g{&%_2ZrLH3#Q*5vi?DxweUd|dOEjzE+Lvj9ehBgpT<#Yjlq)hq z>Yu6nf2kt+&*bd?Z=KRVGbye@d;g4O;yZj5-^pER?&d@U3^O=sg{X7_L{42_y}e*x zUtC#Sy@s!2_74_U*KWMIA`|xBzh2?vrE0VbP3er1H?Um9PBV={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' diff --git a/generated/cmvr/api/arm_service_pb2.py b/generated/cmvr/api/arm_service_pb2.py new file mode 100644 index 0000000..133fa4b --- /dev/null +++ b/generated/cmvr/api/arm_service_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/api/arm_service.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/api/arm_service.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cmvr.api import common_pb2 as cmvr_dot_api_dot_common__pb2 +from cmvr.api import arm_command_pb2 as cmvr_dot_api_dot_arm__command__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63mvr/api/arm_service.proto\x12\x08\x63mvr.api\x1a\x15\x63mvr/api/common.proto\x1a\x1a\x63mvr/api/arm_command.proto2\xd5\x07\n\nArmService\x12N\n\ttorqueOff\x12\x1f.cmvr.api.CommandHeader.Request\x1a .cmvr.api.CommandHeader.Feedback\x12M\n\x08torqueOn\x12\x1f.cmvr.api.CommandHeader.Request\x1a .cmvr.api.CommandHeader.Feedback\x12:\n\x05moveJ\x12\x17.cmvr.api.MoveJ.Request\x1a\x18.cmvr.api.MoveJ.Response\x12:\n\x05moveL\x12\x17.cmvr.api.MoveL.Request\x1a\x18.cmvr.api.MoveL.Response\x12=\n\x06speedJ\x12\x18.cmvr.api.SpeedJ.Request\x1a\x19.cmvr.api.SpeedJ.Response\x12=\n\x06speedL\x12\x18.cmvr.api.SpeedL.Request\x1a\x19.cmvr.api.SpeedL.Response\x12=\n\x06servoJ\x12\x18.cmvr.api.ServoJ.Request\x1a\x19.cmvr.api.ServoJ.Response\x12O\n\nstopMotion\x12\x1f.cmvr.api.CommandHeader.Request\x1a .cmvr.api.CommandHeader.Feedback\x12@\n\rgetJointState\x12\x16.cmvr.api.JointRequest\x1a\x17.cmvr.api.JointResponse\x12@\n\x07getPose\x12\x19.cmvr.api.GetPose.Request\x1a\x1a.cmvr.api.GetPose.Response\x12U\n\x0e\x63\x61librateZeroQ\x12 .cmvr.api.CalibrateZeroQ.Request\x1a!.cmvr.api.CalibrateZeroQ.Response\x12R\n\rgetPoseMatrix\x12\x1f.cmvr.api.GetPoseMatrix.Request\x1a .cmvr.api.GetPoseMatrix.Response\x12s\n\x18\x63omputeForwardKinematics\x12*.cmvr.api.ComputeForwardKinematics.Request\x1a+.cmvr.api.ComputeForwardKinematics.Responseb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.api.arm_service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_ARMSERVICE']._serialized_start=92 + _globals['_ARMSERVICE']._serialized_end=1073 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/api/humanoid_robot_service_pb2_grpc.py b/generated/cmvr/api/arm_service_pb2_grpc.py similarity index 63% rename from generated/cmvr/api/humanoid_robot_service_pb2_grpc.py rename to generated/cmvr/api/arm_service_pb2_grpc.py index 6536b92..c319603 100644 --- a/generated/cmvr/api/humanoid_robot_service_pb2_grpc.py +++ b/generated/cmvr/api/arm_service_pb2_grpc.py @@ -3,8 +3,8 @@ import grpc import warnings +from cmvr.api import arm_command_pb2 as cmvr_dot_api_dot_arm__command__pb2 from cmvr.api import common_pb2 as cmvr_dot_api_dot_common__pb2 -from cmvr.api import humanoid_robot_command_pb2 as cmvr_dot_api_dot_humanoid__robot__command__pb2 GRPC_GENERATED_VERSION = '1.76.0' GRPC_VERSION = grpc.__version__ @@ -19,14 +19,14 @@ except ImportError: if _version_not_supported: raise RuntimeError( f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in cmvr/api/humanoid_robot_service_pb2_grpc.py depends on' + + ' but the generated code in cmvr/api/arm_service_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' ) -class HumanoidRobotServiceStub(object): +class ArmServiceStub(object): """Missing associated documentation comment in .proto file.""" def __init__(self, channel): @@ -36,68 +36,73 @@ class HumanoidRobotServiceStub(object): channel: A grpc.Channel. """ self.torqueOff = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/torqueOff', + '/cmvr.api.ArmService/torqueOff', request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString, response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString, _registered_method=True) self.torqueOn = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/torqueOn', + '/cmvr.api.ArmService/torqueOn', request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString, response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString, _registered_method=True) self.moveJ = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/moveJ', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveJ.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveJ.Response.FromString, + '/cmvr.api.ArmService/moveJ', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.MoveJ.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.MoveJ.Response.FromString, _registered_method=True) self.moveL = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/moveL', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveL.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveL.Response.FromString, + '/cmvr.api.ArmService/moveL', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.MoveL.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.MoveL.Response.FromString, _registered_method=True) self.speedJ = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/speedJ', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedJ.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedJ.Response.FromString, + '/cmvr.api.ArmService/speedJ', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.SpeedJ.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.SpeedJ.Response.FromString, _registered_method=True) self.speedL = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/speedL', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedL.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedL.Response.FromString, - _registered_method=True) - self.getJointState = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/getJointState', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.JointRequest.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.JointResponse.FromString, - _registered_method=True) - self.getPose = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/getPose', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPose.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPose.Response.FromString, - _registered_method=True) - self.calibrateZeroQ = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/calibrateZeroQ', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.CalibrateZeroQ.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.CalibrateZeroQ.Response.FromString, + '/cmvr.api.ArmService/speedL', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.SpeedL.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.SpeedL.Response.FromString, _registered_method=True) self.servoJ = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/servoJ', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ServoJ.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ServoJ.Response.FromString, + '/cmvr.api.ArmService/servoJ', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.ServoJ.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.ServoJ.Response.FromString, + _registered_method=True) + self.stopMotion = channel.unary_unary( + '/cmvr.api.ArmService/stopMotion', + request_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString, + _registered_method=True) + self.getJointState = channel.unary_unary( + '/cmvr.api.ArmService/getJointState', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.JointRequest.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.JointResponse.FromString, + _registered_method=True) + self.getPose = channel.unary_unary( + '/cmvr.api.ArmService/getPose', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.GetPose.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.GetPose.Response.FromString, + _registered_method=True) + self.calibrateZeroQ = channel.unary_unary( + '/cmvr.api.ArmService/calibrateZeroQ', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.CalibrateZeroQ.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.CalibrateZeroQ.Response.FromString, _registered_method=True) self.getPoseMatrix = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/getPoseMatrix', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPoseMatrix.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPoseMatrix.Response.FromString, + '/cmvr.api.ArmService/getPoseMatrix', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.GetPoseMatrix.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.GetPoseMatrix.Response.FromString, _registered_method=True) self.computeForwardKinematics = channel.unary_unary( - '/cmvr.api.HumanoidRobotService/computeForwardKinematics', - request_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ComputeForwardKinematics.Request.SerializeToString, - response_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ComputeForwardKinematics.Response.FromString, + '/cmvr.api.ArmService/computeForwardKinematics', + request_serializer=cmvr_dot_api_dot_arm__command__pb2.ComputeForwardKinematics.Request.SerializeToString, + response_deserializer=cmvr_dot_api_dot_arm__command__pb2.ComputeForwardKinematics.Response.FromString, _registered_method=True) -class HumanoidRobotServiceServicer(object): +class ArmServiceServicer(object): """Missing associated documentation comment in .proto file.""" def torqueOff(self, request, context): @@ -136,6 +141,18 @@ class HumanoidRobotServiceServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def servoJ(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def stopMotion(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def getJointState(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -154,12 +171,6 @@ class HumanoidRobotServiceServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def servoJ(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def getPoseMatrix(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -173,7 +184,7 @@ class HumanoidRobotServiceServicer(object): raise NotImplementedError('Method not implemented!') -def add_HumanoidRobotServiceServicer_to_server(servicer, server): +def add_ArmServiceServicer_to_server(servicer, server): rpc_method_handlers = { 'torqueOff': grpc.unary_unary_rpc_method_handler( servicer.torqueOff, @@ -187,63 +198,68 @@ def add_HumanoidRobotServiceServicer_to_server(servicer, server): ), 'moveJ': grpc.unary_unary_rpc_method_handler( servicer.moveJ, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveJ.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveJ.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.MoveJ.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.MoveJ.Response.SerializeToString, ), 'moveL': grpc.unary_unary_rpc_method_handler( servicer.moveL, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveL.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveL.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.MoveL.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.MoveL.Response.SerializeToString, ), 'speedJ': grpc.unary_unary_rpc_method_handler( servicer.speedJ, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedJ.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedJ.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.SpeedJ.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.SpeedJ.Response.SerializeToString, ), 'speedL': grpc.unary_unary_rpc_method_handler( servicer.speedL, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedL.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedL.Response.SerializeToString, - ), - 'getJointState': grpc.unary_unary_rpc_method_handler( - servicer.getJointState, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.JointRequest.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.JointResponse.SerializeToString, - ), - 'getPose': grpc.unary_unary_rpc_method_handler( - servicer.getPose, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPose.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPose.Response.SerializeToString, - ), - 'calibrateZeroQ': grpc.unary_unary_rpc_method_handler( - servicer.calibrateZeroQ, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.CalibrateZeroQ.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.CalibrateZeroQ.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.SpeedL.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.SpeedL.Response.SerializeToString, ), 'servoJ': grpc.unary_unary_rpc_method_handler( servicer.servoJ, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ServoJ.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ServoJ.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.ServoJ.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.ServoJ.Response.SerializeToString, + ), + 'stopMotion': grpc.unary_unary_rpc_method_handler( + servicer.stopMotion, + request_deserializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Request.FromString, + response_serializer=cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.SerializeToString, + ), + 'getJointState': grpc.unary_unary_rpc_method_handler( + servicer.getJointState, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.JointRequest.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.JointResponse.SerializeToString, + ), + 'getPose': grpc.unary_unary_rpc_method_handler( + servicer.getPose, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.GetPose.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.GetPose.Response.SerializeToString, + ), + 'calibrateZeroQ': grpc.unary_unary_rpc_method_handler( + servicer.calibrateZeroQ, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.CalibrateZeroQ.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.CalibrateZeroQ.Response.SerializeToString, ), 'getPoseMatrix': grpc.unary_unary_rpc_method_handler( servicer.getPoseMatrix, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPoseMatrix.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPoseMatrix.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.GetPoseMatrix.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.GetPoseMatrix.Response.SerializeToString, ), 'computeForwardKinematics': grpc.unary_unary_rpc_method_handler( servicer.computeForwardKinematics, - request_deserializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ComputeForwardKinematics.Request.FromString, - response_serializer=cmvr_dot_api_dot_humanoid__robot__command__pb2.ComputeForwardKinematics.Response.SerializeToString, + request_deserializer=cmvr_dot_api_dot_arm__command__pb2.ComputeForwardKinematics.Request.FromString, + response_serializer=cmvr_dot_api_dot_arm__command__pb2.ComputeForwardKinematics.Response.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( - 'cmvr.api.HumanoidRobotService', rpc_method_handlers) + 'cmvr.api.ArmService', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('cmvr.api.HumanoidRobotService', rpc_method_handlers) + server.add_registered_method_handlers('cmvr.api.ArmService', rpc_method_handlers) # This class is part of an EXPERIMENTAL API. -class HumanoidRobotService(object): +class ArmService(object): """Missing associated documentation comment in .proto file.""" @staticmethod @@ -260,7 +276,7 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/torqueOff', + '/cmvr.api.ArmService/torqueOff', cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString, cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString, options, @@ -287,7 +303,7 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/torqueOn', + '/cmvr.api.ArmService/torqueOn', cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString, cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString, options, @@ -314,9 +330,9 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/moveJ', - cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveJ.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveJ.Response.FromString, + '/cmvr.api.ArmService/moveJ', + cmvr_dot_api_dot_arm__command__pb2.MoveJ.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.MoveJ.Response.FromString, options, channel_credentials, insecure, @@ -341,9 +357,9 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/moveL', - cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveL.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.MoveL.Response.FromString, + '/cmvr.api.ArmService/moveL', + cmvr_dot_api_dot_arm__command__pb2.MoveL.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.MoveL.Response.FromString, options, channel_credentials, insecure, @@ -368,9 +384,9 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/speedJ', - cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedJ.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedJ.Response.FromString, + '/cmvr.api.ArmService/speedJ', + cmvr_dot_api_dot_arm__command__pb2.SpeedJ.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.SpeedJ.Response.FromString, options, channel_credentials, insecure, @@ -395,90 +411,9 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/speedL', - cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedL.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.SpeedL.Response.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def getJointState(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/cmvr.api.HumanoidRobotService/getJointState', - cmvr_dot_api_dot_humanoid__robot__command__pb2.JointRequest.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.JointResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def getPose(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/cmvr.api.HumanoidRobotService/getPose', - cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPose.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPose.Response.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def calibrateZeroQ(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/cmvr.api.HumanoidRobotService/calibrateZeroQ', - cmvr_dot_api_dot_humanoid__robot__command__pb2.CalibrateZeroQ.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.CalibrateZeroQ.Response.FromString, + '/cmvr.api.ArmService/speedL', + cmvr_dot_api_dot_arm__command__pb2.SpeedL.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.SpeedL.Response.FromString, options, channel_credentials, insecure, @@ -503,9 +438,117 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/servoJ', - cmvr_dot_api_dot_humanoid__robot__command__pb2.ServoJ.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.ServoJ.Response.FromString, + '/cmvr.api.ArmService/servoJ', + cmvr_dot_api_dot_arm__command__pb2.ServoJ.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.ServoJ.Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def stopMotion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/cmvr.api.ArmService/stopMotion', + cmvr_dot_api_dot_common__pb2.CommandHeader.Request.SerializeToString, + cmvr_dot_api_dot_common__pb2.CommandHeader.Feedback.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def getJointState(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/cmvr.api.ArmService/getJointState', + cmvr_dot_api_dot_arm__command__pb2.JointRequest.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.JointResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def getPose(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/cmvr.api.ArmService/getPose', + cmvr_dot_api_dot_arm__command__pb2.GetPose.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.GetPose.Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def calibrateZeroQ(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/cmvr.api.ArmService/calibrateZeroQ', + cmvr_dot_api_dot_arm__command__pb2.CalibrateZeroQ.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.CalibrateZeroQ.Response.FromString, options, channel_credentials, insecure, @@ -530,9 +573,9 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/getPoseMatrix', - cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPoseMatrix.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.GetPoseMatrix.Response.FromString, + '/cmvr.api.ArmService/getPoseMatrix', + cmvr_dot_api_dot_arm__command__pb2.GetPoseMatrix.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.GetPoseMatrix.Response.FromString, options, channel_credentials, insecure, @@ -557,9 +600,9 @@ class HumanoidRobotService(object): return grpc.experimental.unary_unary( request, target, - '/cmvr.api.HumanoidRobotService/computeForwardKinematics', - cmvr_dot_api_dot_humanoid__robot__command__pb2.ComputeForwardKinematics.Request.SerializeToString, - cmvr_dot_api_dot_humanoid__robot__command__pb2.ComputeForwardKinematics.Response.FromString, + '/cmvr.api.ArmService/computeForwardKinematics', + cmvr_dot_api_dot_arm__command__pb2.ComputeForwardKinematics.Request.SerializeToString, + cmvr_dot_api_dot_arm__command__pb2.ComputeForwardKinematics.Response.FromString, options, channel_credentials, insecure, diff --git a/generated/cmvr/api/humanoid_robot_command_pb2.py b/generated/cmvr/api/humanoid_robot_command_pb2.py deleted file mode 100644 index c8c95a5..0000000 --- a/generated/cmvr/api/humanoid_robot_command_pb2.py +++ /dev/null @@ -1,105 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: cmvr/api/humanoid_robot_command.proto -# Protobuf Python Version: 6.31.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 31, - 1, - '', - 'cmvr/api/humanoid_robot_command.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from cmvr.api import common_pb2 as cmvr_dot_api_dot_common__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cmvr/api/humanoid_robot_command.proto\x12\x08\x63mvr.api\x1a\x15\x63mvr/api/common.proto\"8\n\x08JointCmd\x12\x12\n\njoint_name\x18\x01 \x01(\t\x12\x0b\n\x03rad\x18\x02 \x01(\x01\x12\x0b\n\x03vel\x18\x03 \x01(\x01\"M\n\x06Pose3D\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\x12\n\n\x02rx\x18\x04 \x01(\x01\x12\n\n\x02ry\x18\x05 \x01(\x01\x12\n\n\x02rz\x18\x06 \x01(\x01\"\xe4\x01\n\x12TransformMatrix4x4\x12\x0b\n\x03m00\x18\x01 \x01(\x01\x12\x0b\n\x03m01\x18\x02 \x01(\x01\x12\x0b\n\x03m02\x18\x03 \x01(\x01\x12\x0b\n\x03m03\x18\x04 \x01(\x01\x12\x0b\n\x03m10\x18\x05 \x01(\x01\x12\x0b\n\x03m11\x18\x06 \x01(\x01\x12\x0b\n\x03m12\x18\x07 \x01(\x01\x12\x0b\n\x03m13\x18\x08 \x01(\x01\x12\x0b\n\x03m20\x18\t \x01(\x01\x12\x0b\n\x03m21\x18\n \x01(\x01\x12\x0b\n\x03m22\x18\x0b \x01(\x01\x12\x0b\n\x03m23\x18\x0c \x01(\x01\x12\x0b\n\x03m30\x18\r \x01(\x01\x12\x0b\n\x03m31\x18\x0e \x01(\x01\x12\x0b\n\x03m32\x18\x0f \x01(\x01\x12\x0b\n\x03m33\x18\x10 \x01(\x01\"\xbd\x01\n\x05MoveJ\x1av\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12 \n\x04\x63mds\x18\x02 \x03(\x0b\x32\x12.cmvr.api.JointCmd\x12\x0b\n\x03vel\x18\x03 \x01(\x01\x12\x0b\n\x03\x61\x63\x63\x18\x04 \x01(\x01\x1a<\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\"\xc7\x01\n\x07GetPose\x1a^\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x11\n\tbase_link\x18\x02 \x01(\t\x12\x0f\n\x07\x65\x65_link\x18\x03 \x01(\t\x1a\\\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\x12\x1e\n\x04pose\x18\x02 \x01(\x0b\x32\x10.cmvr.api.Pose3D\"\xd3\x01\n\x05MoveL\x1a\x8b\x01\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x0f\n\x07\x65\x65_link\x18\x02 \x01(\t\x12$\n\ntargetPose\x18\x03 \x01(\x0b\x32\x10.cmvr.api.Pose3D\x12\x0b\n\x03vel\x18\x04 \x01(\x01\x12\x0b\n\x03\x61\x63\x63\x18\x05 \x01(\x01\x1a<\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\"\xe2\x01\n\x06SpeedJ\x1a\x99\x01\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x12\n\njoint_name\x18\x02 \x01(\t\x12\x0b\n\x03vel\x18\x03 \x01(\x01\x12\x0b\n\x03\x61\x63\x63\x18\x04 \x01(\x01\x12/\n\x03\x64ir\x18\x05 \x01(\x0e\x32\".cmvr.api.RobotJointIndexDirection\x1a<\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\"\x87\x02\n\x06SpeedL\x1a\xbe\x01\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x0f\n\x07\x65\x65_link\x18\x02 \x01(\t\x12\x0b\n\x03vel\x18\x03 \x01(\x01\x12\x0b\n\x03\x61\x63\x63\x18\x04 \x01(\x01\x12/\n\x03\x64ir\x18\x05 \x01(\x0e\x32\".cmvr.api.RobotJointIndexDirection\x12&\n\x04\x63\x61rt\x18\x06 \x01(\x0e\x32\x18.cmvr.api.RobotCartesian\x1a<\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\"a\n\nJointState\x12\x0c\n\x04name\x18\x01 \x03(\t\x12\x10\n\x08position\x18\x02 \x03(\x01\x12\x10\n\x08velocity\x18\x03 \x03(\x01\x12\x0e\n\x06\x65\x66\x66ort\x18\x04 \x03(\x01\x12\x11\n\ttimestamp\x18\x05 \x01(\x01\"f\n\rJointResponse\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\x12#\n\x05state\x18\x02 \x03(\x0b\x32\x14.cmvr.api.JointState\"?\n\x0cJointRequest\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\"\x9e\x01\n\x0e\x43\x61librateZeroQ\x1aN\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x12\n\njoint_name\x18\x02 \x01(\t\x1a<\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\"\xb1\x01\n\x06ServoJ\x1ai\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12 \n\x04\x63mds\x18\x02 \x03(\x0b\x32\x12.cmvr.api.JointCmd\x12\x0b\n\x03vel\x18\x03 \x01(\x01\x1a<\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\"\xdb\x01\n\rGetPoseMatrix\x1a^\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x11\n\tbase_link\x18\x02 \x01(\t\x12\x0f\n\x07\x65\x65_link\x18\x03 \x01(\t\x1aj\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\x12,\n\x06matrix\x18\x02 \x01(\x0b\x32\x1c.cmvr.api.TransformMatrix4x4\"\x8b\x02\n\x18\x43omputeForwardKinematics\x1a\x82\x01\n\x07Request\x12/\n\x06header\x18\x01 \x01(\x0b\x32\x1f.cmvr.api.CommandHeader.Request\x12\x11\n\tbase_link\x18\x02 \x01(\t\x12\x0f\n\x07\x65\x65_link\x18\x03 \x01(\t\x12\"\n\x06joints\x18\x04 \x03(\x0b\x32\x12.cmvr.api.JointCmd\x1aj\n\x08Response\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32 .cmvr.api.CommandHeader.Feedback\x12,\n\x06matrix\x18\x02 \x01(\x0b\x32\x1c.cmvr.api.TransformMatrix4x4*=\n\x0eRobotCartesian\x12\x05\n\x01X\x10\x00\x12\x05\n\x01Y\x10\x01\x12\x05\n\x01Z\x10\x02\x12\x06\n\x02RX\x10\x03\x12\x06\n\x02RY\x10\x04\x12\x06\n\x02RZ\x10\x05*\xbf\x01\n\x18RobotJointIndexDirection\x12\x0b\n\x07\x46ORWARD\x10\x00\x12\x0c\n\x08\x42\x41\x43KWARD\x10\x01\x12\x0e\n\nX_POSITIVE\x10\x02\x12\x0e\n\nX_NEGATIVE\x10\x03\x12\x0e\n\nY_POSITIVE\x10\x04\x12\x0e\n\nY_NEGATIVE\x10\x05\x12\x0e\n\nZ_POSITIVE\x10\x06\x12\x0e\n\nZ_NEGATIVE\x10\x07\x12\x0c\n\x08ROTATE_X\x10\x08\x12\x0c\n\x08ROTATE_Y\x10\t\x12\x0c\n\x08ROTATE_Z\x10\nb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.api.humanoid_robot_command_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_ROBOTCARTESIAN']._serialized_start=2646 - _globals['_ROBOTCARTESIAN']._serialized_end=2707 - _globals['_ROBOTJOINTINDEXDIRECTION']._serialized_start=2710 - _globals['_ROBOTJOINTINDEXDIRECTION']._serialized_end=2901 - _globals['_JOINTCMD']._serialized_start=74 - _globals['_JOINTCMD']._serialized_end=130 - _globals['_POSE3D']._serialized_start=132 - _globals['_POSE3D']._serialized_end=209 - _globals['_TRANSFORMMATRIX4X4']._serialized_start=212 - _globals['_TRANSFORMMATRIX4X4']._serialized_end=440 - _globals['_MOVEJ']._serialized_start=443 - _globals['_MOVEJ']._serialized_end=632 - _globals['_MOVEJ_REQUEST']._serialized_start=452 - _globals['_MOVEJ_REQUEST']._serialized_end=570 - _globals['_MOVEJ_RESPONSE']._serialized_start=572 - _globals['_MOVEJ_RESPONSE']._serialized_end=632 - _globals['_GETPOSE']._serialized_start=635 - _globals['_GETPOSE']._serialized_end=834 - _globals['_GETPOSE_REQUEST']._serialized_start=646 - _globals['_GETPOSE_REQUEST']._serialized_end=740 - _globals['_GETPOSE_RESPONSE']._serialized_start=742 - _globals['_GETPOSE_RESPONSE']._serialized_end=834 - _globals['_MOVEL']._serialized_start=837 - _globals['_MOVEL']._serialized_end=1048 - _globals['_MOVEL_REQUEST']._serialized_start=847 - _globals['_MOVEL_REQUEST']._serialized_end=986 - _globals['_MOVEL_RESPONSE']._serialized_start=572 - _globals['_MOVEL_RESPONSE']._serialized_end=632 - _globals['_SPEEDJ']._serialized_start=1051 - _globals['_SPEEDJ']._serialized_end=1277 - _globals['_SPEEDJ_REQUEST']._serialized_start=1062 - _globals['_SPEEDJ_REQUEST']._serialized_end=1215 - _globals['_SPEEDJ_RESPONSE']._serialized_start=572 - _globals['_SPEEDJ_RESPONSE']._serialized_end=632 - _globals['_SPEEDL']._serialized_start=1280 - _globals['_SPEEDL']._serialized_end=1543 - _globals['_SPEEDL_REQUEST']._serialized_start=1291 - _globals['_SPEEDL_REQUEST']._serialized_end=1481 - _globals['_SPEEDL_RESPONSE']._serialized_start=572 - _globals['_SPEEDL_RESPONSE']._serialized_end=632 - _globals['_JOINTSTATE']._serialized_start=1545 - _globals['_JOINTSTATE']._serialized_end=1642 - _globals['_JOINTRESPONSE']._serialized_start=1644 - _globals['_JOINTRESPONSE']._serialized_end=1746 - _globals['_JOINTREQUEST']._serialized_start=1748 - _globals['_JOINTREQUEST']._serialized_end=1811 - _globals['_CALIBRATEZEROQ']._serialized_start=1814 - _globals['_CALIBRATEZEROQ']._serialized_end=1972 - _globals['_CALIBRATEZEROQ_REQUEST']._serialized_start=1062 - _globals['_CALIBRATEZEROQ_REQUEST']._serialized_end=1140 - _globals['_CALIBRATEZEROQ_RESPONSE']._serialized_start=572 - _globals['_CALIBRATEZEROQ_RESPONSE']._serialized_end=632 - _globals['_SERVOJ']._serialized_start=1975 - _globals['_SERVOJ']._serialized_end=2152 - _globals['_SERVOJ_REQUEST']._serialized_start=452 - _globals['_SERVOJ_REQUEST']._serialized_end=557 - _globals['_SERVOJ_RESPONSE']._serialized_start=572 - _globals['_SERVOJ_RESPONSE']._serialized_end=632 - _globals['_GETPOSEMATRIX']._serialized_start=2155 - _globals['_GETPOSEMATRIX']._serialized_end=2374 - _globals['_GETPOSEMATRIX_REQUEST']._serialized_start=646 - _globals['_GETPOSEMATRIX_REQUEST']._serialized_end=740 - _globals['_GETPOSEMATRIX_RESPONSE']._serialized_start=2268 - _globals['_GETPOSEMATRIX_RESPONSE']._serialized_end=2374 - _globals['_COMPUTEFORWARDKINEMATICS']._serialized_start=2377 - _globals['_COMPUTEFORWARDKINEMATICS']._serialized_end=2644 - _globals['_COMPUTEFORWARDKINEMATICS_REQUEST']._serialized_start=2406 - _globals['_COMPUTEFORWARDKINEMATICS_REQUEST']._serialized_end=2536 - _globals['_COMPUTEFORWARDKINEMATICS_RESPONSE']._serialized_start=2268 - _globals['_COMPUTEFORWARDKINEMATICS_RESPONSE']._serialized_end=2374 -# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/api/humanoid_robot_service_pb2.py b/generated/cmvr/api/humanoid_robot_service_pb2.py deleted file mode 100644 index 822a742..0000000 --- a/generated/cmvr/api/humanoid_robot_service_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: cmvr/api/humanoid_robot_service.proto -# Protobuf Python Version: 6.31.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 31, - 1, - '', - 'cmvr/api/humanoid_robot_service.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from cmvr.api import common_pb2 as cmvr_dot_api_dot_common__pb2 -from cmvr.api import humanoid_robot_command_pb2 as cmvr_dot_api_dot_humanoid__robot__command__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cmvr/api/humanoid_robot_service.proto\x12\x08\x63mvr.api\x1a\x15\x63mvr/api/common.proto\x1a%cmvr/api/humanoid_robot_command.proto2\x8e\x07\n\x14HumanoidRobotService\x12N\n\ttorqueOff\x12\x1f.cmvr.api.CommandHeader.Request\x1a .cmvr.api.CommandHeader.Feedback\x12M\n\x08torqueOn\x12\x1f.cmvr.api.CommandHeader.Request\x1a .cmvr.api.CommandHeader.Feedback\x12:\n\x05moveJ\x12\x17.cmvr.api.MoveJ.Request\x1a\x18.cmvr.api.MoveJ.Response\x12:\n\x05moveL\x12\x17.cmvr.api.MoveL.Request\x1a\x18.cmvr.api.MoveL.Response\x12=\n\x06speedJ\x12\x18.cmvr.api.SpeedJ.Request\x1a\x19.cmvr.api.SpeedJ.Response\x12=\n\x06speedL\x12\x18.cmvr.api.SpeedL.Request\x1a\x19.cmvr.api.SpeedL.Response\x12@\n\rgetJointState\x12\x16.cmvr.api.JointRequest\x1a\x17.cmvr.api.JointResponse\x12@\n\x07getPose\x12\x19.cmvr.api.GetPose.Request\x1a\x1a.cmvr.api.GetPose.Response\x12U\n\x0e\x63\x61librateZeroQ\x12 .cmvr.api.CalibrateZeroQ.Request\x1a!.cmvr.api.CalibrateZeroQ.Response\x12=\n\x06servoJ\x12\x18.cmvr.api.ServoJ.Request\x1a\x19.cmvr.api.ServoJ.Response\x12R\n\rgetPoseMatrix\x12\x1f.cmvr.api.GetPoseMatrix.Request\x1a .cmvr.api.GetPoseMatrix.Response\x12s\n\x18\x63omputeForwardKinematics\x12*.cmvr.api.ComputeForwardKinematics.Request\x1a+.cmvr.api.ComputeForwardKinematics.Responseb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.api.humanoid_robot_service_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_HUMANOIDROBOTSERVICE']._serialized_start=114 - _globals['_HUMANOIDROBOTSERVICE']._serialized_end=1024 -# @@protoc_insertion_point(module_scope) diff --git a/generated/__pycache__/__init__.py b/generated/cmvr/common/__init__.py similarity index 100% rename from generated/__pycache__/__init__.py rename to generated/cmvr/common/__init__.py diff --git a/generated/cmvr/common/geometry_pb2.py b/generated/cmvr/common/geometry_pb2.py new file mode 100644 index 0000000..fab6f7d --- /dev/null +++ b/generated/cmvr/common/geometry_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/common/geometry.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/common/geometry.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63mvr/common/geometry.proto\x12\x0b\x63mvr.common\"2\n\x04Vec2\x12\x0e\n\x01x\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x04\n\x02_xB\x04\n\x02_y\"H\n\x04Vec3\x12\x0e\n\x01x\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0e\n\x01z\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\x04\n\x02_xB\x04\n\x02_yB\x04\n\x02_z\"\x90\x01\n\x04Vec6\x12\x0e\n\x01x\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0e\n\x01z\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x0f\n\x02rx\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x0f\n\x02ry\x18\x05 \x01(\x01H\x04\x88\x01\x01\x12\x0f\n\x02rz\x18\x06 \x01(\x01H\x05\x88\x01\x01\x42\x04\n\x02_xB\x04\n\x02_yB\x04\n\x02_zB\x05\n\x03_rxB\x05\n\x03_ryB\x05\n\x03_rz\"^\n\x04Quat\x12\x0e\n\x01w\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x01x\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0e\n\x01y\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x0e\n\x01z\x18\x04 \x01(\x01H\x03\x88\x01\x01\x42\x04\n\x02_wB\x04\n\x02_xB\x04\n\x02_yB\x04\n\x02_z\"O\n\x05\x45uler\x12\x0f\n\x02rx\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0f\n\x02ry\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0f\n\x02rz\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\x05\n\x03_rxB\x05\n\x03_ryB\x05\n\x03_rz\"w\n\x06Pose3d\x12#\n\x08position\x18\x01 \x01(\x0b\x32\x11.cmvr.common.Vec3\x12%\n\nquaternion\x18\x02 \x01(\x0b\x32\x11.cmvr.common.Quat\x12!\n\x05\x65uler\x18\x03 \x01(\x0b\x32\x12.cmvr.common.Euler\"R\n\x06Pose2d\x12\x0e\n\x01x\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x12\n\x05theta\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\x04\n\x02_xB\x04\n\x02_yB\x08\n\x06_theta\"\xf0\x01\n\x04Mat3\x12\x10\n\x03m00\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03m01\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03m02\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03m10\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x10\n\x03m11\x18\x05 \x01(\x01H\x04\x88\x01\x01\x12\x10\n\x03m12\x18\x06 \x01(\x01H\x05\x88\x01\x01\x12\x10\n\x03m20\x18\x07 \x01(\x01H\x06\x88\x01\x01\x12\x10\n\x03m21\x18\x08 \x01(\x01H\x07\x88\x01\x01\x12\x10\n\x03m22\x18\t \x01(\x01H\x08\x88\x01\x01\x42\x06\n\x04_m00B\x06\n\x04_m01B\x06\n\x04_m02B\x06\n\x04_m10B\x06\n\x04_m11B\x06\n\x04_m12B\x06\n\x04_m20B\x06\n\x04_m21B\x06\n\x04_m22\"\xa6\x03\n\x04Mat4\x12\x10\n\x03m00\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03m01\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03m02\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03m03\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x10\n\x03m10\x18\x05 \x01(\x01H\x04\x88\x01\x01\x12\x10\n\x03m11\x18\x06 \x01(\x01H\x05\x88\x01\x01\x12\x10\n\x03m12\x18\x07 \x01(\x01H\x06\x88\x01\x01\x12\x10\n\x03m13\x18\x08 \x01(\x01H\x07\x88\x01\x01\x12\x10\n\x03m20\x18\t \x01(\x01H\x08\x88\x01\x01\x12\x10\n\x03m21\x18\n \x01(\x01H\t\x88\x01\x01\x12\x10\n\x03m22\x18\x0b \x01(\x01H\n\x88\x01\x01\x12\x10\n\x03m23\x18\x0c \x01(\x01H\x0b\x88\x01\x01\x12\x10\n\x03m30\x18\r \x01(\x01H\x0c\x88\x01\x01\x12\x10\n\x03m31\x18\x0e \x01(\x01H\r\x88\x01\x01\x12\x10\n\x03m32\x18\x0f \x01(\x01H\x0e\x88\x01\x01\x12\x10\n\x03m33\x18\x10 \x01(\x01H\x0f\x88\x01\x01\x42\x06\n\x04_m00B\x06\n\x04_m01B\x06\n\x04_m02B\x06\n\x04_m03B\x06\n\x04_m10B\x06\n\x04_m11B\x06\n\x04_m12B\x06\n\x04_m13B\x06\n\x04_m20B\x06\n\x04_m21B\x06\n\x04_m22B\x06\n\x04_m23B\x06\n\x04_m30B\x06\n\x04_m31B\x06\n\x04_m32B\x06\n\x04_m33b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.common.geometry_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_VEC2']._serialized_start=43 + _globals['_VEC2']._serialized_end=93 + _globals['_VEC3']._serialized_start=95 + _globals['_VEC3']._serialized_end=167 + _globals['_VEC6']._serialized_start=170 + _globals['_VEC6']._serialized_end=314 + _globals['_QUAT']._serialized_start=316 + _globals['_QUAT']._serialized_end=410 + _globals['_EULER']._serialized_start=412 + _globals['_EULER']._serialized_end=491 + _globals['_POSE3D']._serialized_start=493 + _globals['_POSE3D']._serialized_end=612 + _globals['_POSE2D']._serialized_start=614 + _globals['_POSE2D']._serialized_end=696 + _globals['_MAT3']._serialized_start=699 + _globals['_MAT3']._serialized_end=939 + _globals['_MAT4']._serialized_start=942 + _globals['_MAT4']._serialized_end=1364 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/msgs/geometry_pb2_grpc.py b/generated/cmvr/common/geometry_pb2_grpc.py similarity index 90% rename from generated/cmvr/msgs/geometry_pb2_grpc.py rename to generated/cmvr/common/geometry_pb2_grpc.py index 92b4f0b..9362954 100644 --- a/generated/cmvr/msgs/geometry_pb2_grpc.py +++ b/generated/cmvr/common/geometry_pb2_grpc.py @@ -17,7 +17,7 @@ except ImportError: if _version_not_supported: raise RuntimeError( f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in cmvr/msgs/geometry_pb2_grpc.py depends on' + + ' but the generated code in cmvr/common/geometry_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' diff --git a/generated/cmvr/__pycache__/__init__.py b/generated/cmvr/config/agv_config/__init__.py similarity index 100% rename from generated/cmvr/__pycache__/__init__.py rename to generated/cmvr/config/agv_config/__init__.py diff --git a/generated/cmvr/config/agv_config/agv_config_pb2.py b/generated/cmvr/config/agv_config/agv_config_pb2.py new file mode 100644 index 0000000..124474d --- /dev/null +++ b/generated/cmvr/config/agv_config/agv_config_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/agv_config/agv_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/agv_config/agv_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'cmvr/config/agv_config/agv_config.proto\x12\x0b\x63mvr.config\"3\n\x0bMyAgvConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\"T\n\x0f\x41GVDeviceConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12*\n\x06my_agv\x18\n \x01(\x0b\x32\x18.cmvr.config.MyAgvConfigH\x00\x42\t\n\x07\x62\x61\x63kend\"7\n\tAGVConfig\x12*\n\x04\x61gvs\x18\x01 \x03(\x0b\x32\x1c.cmvr.config.AGVDeviceConfig\"4\n\rAGVRootConfig\x12#\n\x03\x61gv\x18\x01 \x01(\x0b\x32\x16.cmvr.config.AGVConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.agv_config.agv_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MYAGVCONFIG']._serialized_start=56 + _globals['_MYAGVCONFIG']._serialized_end=107 + _globals['_AGVDEVICECONFIG']._serialized_start=109 + _globals['_AGVDEVICECONFIG']._serialized_end=193 + _globals['_AGVCONFIG']._serialized_start=195 + _globals['_AGVCONFIG']._serialized_end=250 + _globals['_AGVROOTCONFIG']._serialized_start=252 + _globals['_AGVROOTCONFIG']._serialized_end=304 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/agv_config/agv_config_pb2_grpc.py b/generated/cmvr/config/agv_config/agv_config_pb2_grpc.py new file mode 100644 index 0000000..d594250 --- /dev/null +++ b/generated/cmvr/config/agv_config/agv_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/agv_config/agv_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/api/__pycache__/__init__.py b/generated/cmvr/config/arm_config/__init__.py similarity index 100% rename from generated/cmvr/api/__pycache__/__init__.py rename to generated/cmvr/config/arm_config/__init__.py diff --git a/generated/cmvr/config/arm_config/arm_config_pb2.py b/generated/cmvr/config/arm_config/arm_config_pb2.py new file mode 100644 index 0000000..8053dab --- /dev/null +++ b/generated/cmvr/config/arm_config/arm_config_pb2.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/arm_config/arm_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/arm_config/arm_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cmvr.common import geometry_pb2 as cmvr_dot_common_dot_geometry__pb2 +from cmvr.config import lawba_ik_config_pb2 as cmvr_dot_config_dot_lawba__ik__config__pb2 +from cmvr.config import pinocchio_dls_ik_config_pb2 as cmvr_dot_config_dot_pinocchio__dls__ik__config__pb2 +from cmvr.config import pinocchio_qp_ik_config_pb2 as cmvr_dot_config_dot_pinocchio__qp__ik__config__pb2 +from cmvr.config import srs_ik_config_pb2 as cmvr_dot_config_dot_srs__ik__config__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'cmvr/config/arm_config/arm_config.proto\x12\x0b\x63mvr.config\x1a\x1a\x63mvr/common/geometry.proto\x1a!cmvr/config/lawba_ik_config.proto\x1a)cmvr/config/pinocchio_dls_ik_config.proto\x1a(cmvr/config/pinocchio_qp_ik_config.proto\x1a\x1f\x63mvr/config/srs_ik_config.proto\"\xc1\x01\n\x1aMotorRobotArmBackendConfig\x12\x17\n\x0fmotor_system_id\x18\x02 \x01(\t\x12\x0b\n\x03\x64of\x18\x03 \x01(\x05\x12\x13\n\x0bjoint_names\x18\x04 \x03(\t\x12\x10\n\x08upd_freq\x18\x05 \x01(\x05\x12\x13\n\x0b\x62uffer_size\x18\x06 \x01(\x05\x12\x13\n\x0b\x64\x65\x66\x61ult_vel\x18\x07 \x01(\x01\x12\x13\n\x0b\x64\x65\x66\x61ult_acc\x18\x08 \x01(\x01\x12\x17\n\x0fmotor_group_ids\x18\t \x03(\t\"\x9f\x01\n\x1bVendorRobotArmBackendConfig\x12\r\n\x05\x62rand\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\x12\r\n\x05model\x18\x04 \x01(\t\x12\x0b\n\x03\x64of\x18\x05 \x01(\x05\x12\x13\n\x0bjoint_names\x18\x06 \x03(\t\x12\x12\n\nbase_frame\x18\x07 \x01(\t\x12\x12\n\ntool_frame\x18\x08 \x01(\t\"V\n\x10JointLimitConfig\x12\x12\n\njoint_name\x18\x01 \x01(\t\x12\r\n\x05lower\x18\x02 \x01(\x01\x12\r\n\x05upper\x18\x03 \x01(\x01\x12\x10\n\x08velocity\x18\x04 \x01(\x01\"q\n\x11JointLimitsConfig\x12-\n\x06source\x18\x01 \x01(\x0e\x32\x1d.cmvr.config.JointLimitSource\x12-\n\x06joints\x18\x02 \x03(\x0b\x32\x1d.cmvr.config.JointLimitConfig\"s\n\x1bQpJointLimitAvoidanceConfig\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\x12\x14\n\x0cmargin_ratio\x18\x02 \x01(\x01\x12\x0c\n\x04gain\x18\x03 \x01(\x01\x12\x10\n\x08max_push\x18\x04 \x01(\x01\x12\x0e\n\x06weight\x18\x05 \x01(\x01\"\x9f\x02\n\x19\x43\x61rtesianVelocityQpConfig\x12\x34\n\x0cjoint_limits\x18\x01 \x01(\x0b\x32\x1e.cmvr.config.JointLimitsConfig\x12\x30\n\x15twist_tracking_weight\x18\x02 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12\x1b\n\x13qdot_regularization\x18\x03 \x01(\x01\x12 \n\x18prev_qdot_regularization\x18\x04 \x01(\x01\x12\x12\n\nsolver_eps\x18\x05 \x01(\x01\x12G\n\x15joint_limit_avoidance\x18\x06 \x01(\x0b\x32(.cmvr.config.QpJointLimitAvoidanceConfig\"\xd6\x04\n\x13SpeedLPlannerConfig\x12\x1b\n\x13linear_velocity_max\x18\x01 \x01(\x01\x12\x1f\n\x17linear_acceleration_max\x18\x02 \x01(\x01\x12\x17\n\x0flinear_jerk_max\x18\x03 \x01(\x01\x12\x1c\n\x14\x61ngular_velocity_max\x18\x04 \x01(\x01\x12 \n\x18\x61ngular_acceleration_max\x18\x05 \x01(\x01\x12\x18\n\x10\x61ngular_jerk_max\x18\x06 \x01(\x01\x12\x1e\n\x16joint_acceleration_max\x18\x07 \x03(\x01\x12&\n\x1elinear_target_replan_threshold\x18\x08 \x01(\x01\x12\'\n\x1f\x61ngular_target_replan_threshold\x18\t \x01(\x01\x12$\n\x1clinear_reverse_cos_threshold\x18\n \x01(\x01\x12-\n%linear_reverse_switch_speed_threshold\x18\x0b \x01(\x01\x12&\n\x1enormal_direction_deviation_deg\x18\x0c \x01(\x01\x12$\n\x1cmild_direction_deviation_deg\x18\r \x01(\x01\x12&\n\x1esevere_direction_deviation_deg\x18\x0e \x01(\x01\x12\x1e\n\x16linear_min_speed_ratio\x18\x0f \x01(\x01\x12\x32\n\x02qp\x18\x10 \x01(\x0b\x32&.cmvr.config.CartesianVelocityQpConfig\"\x9f\x01\n!CartesianVelocityControllerConfig\x12\x18\n\x10\x63ontrol_period_s\x18\x01 \x01(\x01\x12\x17\n\x0fstop_twist_norm\x18\x02 \x01(\x01\x12\"\n\x1astop_command_velocity_norm\x18\x03 \x01(\x01\x12#\n\x1bstop_measured_velocity_norm\x18\x04 \x01(\x01\"\x94\x01\n\x1eToppraJointMotionPlannerConfig\x12.\n\tpath_type\x18\x01 \x01(\x0e\x32\x1b.cmvr.config.ToppraPathType\x12\x17\n\x0fsample_period_s\x18\x02 \x01(\x01\x12\x11\n\tgrid_size\x18\x03 \x01(\x05\x12\x16\n\x0ehigh_grid_size\x18\x04 \x01(\x05\"n\n\x0bMoveJConfig\x12R\n\x1btoppra_joint_motion_planner\x18\x01 \x01(\x0b\x32+.cmvr.config.ToppraJointMotionPlannerConfigH\x00\x42\x0b\n\talgorithm\"\x8f\x01\n\x12MoveLPlannerConfig\x12\x17\n\x0fsample_period_s\x18\x01 \x01(\x01\x12\x15\n\rposition_gain\x18\x02 \x01(\x01\x12\x15\n\rrotation_gain\x18\x03 \x01(\x01\x12\x32\n\x02qp\x18\x04 \x01(\x0b\x32&.cmvr.config.CartesianVelocityQpConfig\"\xbf\x01\n\x0bMoveLConfig\x12Q\n&pinocchio_dls_cartesian_motion_planner\x18\x01 \x01(\x0b\x32\x1f.cmvr.config.MoveLPlannerConfigH\x00\x12P\n%pinocchio_qp_cartesian_motion_planner\x18\x02 \x01(\x0b\x32\x1f.cmvr.config.MoveLPlannerConfigH\x00\x42\x0b\n\talgorithm\"~\n\x16SpeedLControllerConfig\x12W\n\x1d\x63\x61rtesian_velocity_controller\x18\x01 \x01(\x0b\x32..cmvr.config.CartesianVelocityControllerConfigH\x00\x42\x0b\n\talgorithm\"\x83\x02\n\x0cSpeedLConfig\x12R\n&pinocchio_dls_cartesian_motion_planner\x18\x01 \x01(\x0b\x32 .cmvr.config.SpeedLPlannerConfigH\x00\x12Q\n%pinocchio_qp_cartesian_motion_planner\x18\x02 \x01(\x0b\x32 .cmvr.config.SpeedLPlannerConfigH\x00\x12?\n\x12speed_l_controller\x18\n \x01(\x0b\x32#.cmvr.config.SpeedLControllerConfigB\x0b\n\talgorithm\"\x96\x02\n\x13\x41rmKinematicsConfig\x12\x44\n\x17pinocchio_dls_ik_solver\x18\n \x01(\x0b\x32!.cmvr.config.PinocchioDlsIKConfigH\x00\x12\x42\n\x16pinocchio_qp_ik_solver\x18\x0b \x01(\x0b\x32 .cmvr.config.PinocchioQpIKConfigH\x00\x12\x31\n\rsrs_ik_solver\x18\x0c \x01(\x0b\x32\x18.cmvr.config.SrsIKConfigH\x00\x12\x35\n\x0flawba_ik_solver\x18\r \x01(\x0b\x32\x1a.cmvr.config.LawbaIKConfigH\x00\x42\x0b\n\talgorithm\"\x97\x01\n\x0f\x41rmMotionConfig\x12(\n\x06move_j\x18\x01 \x01(\x0b\x32\x18.cmvr.config.MoveJConfig\x12(\n\x06move_l\x18\x02 \x01(\x0b\x32\x18.cmvr.config.MoveLConfig\x12*\n\x07speed_l\x18\x04 \x01(\x0b\x32\x19.cmvr.config.SpeedLConfigJ\x04\x08\x03\x10\x04\"\x87\x02\n\x0eRobotArmConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x38\n\x05motor\x18\n \x01(\x0b\x32\'.cmvr.config.MotorRobotArmBackendConfigH\x00\x12:\n\x06vendor\x18\x0b \x01(\x0b\x32(.cmvr.config.VendorRobotArmBackendConfigH\x00\x12\x34\n\nkinematics\x18\x14 \x01(\x0b\x32 .cmvr.config.ArmKinematicsConfig\x12,\n\x06motion\x18\x15 \x01(\x0b\x32\x1c.cmvr.config.ArmMotionConfigB\t\n\x07\x62\x61\x63kendJ\x04\x08\x02\x10\x03\"<\n\tArmConfig\x12/\n\nrobot_arms\x18\x01 \x03(\x0b\x32\x1b.cmvr.config.RobotArmConfig\"4\n\rArmRootConfig\x12#\n\x03\x61rm\x18\x01 \x01(\x0b\x32\x16.cmvr.config.ArmConfig*\xab\x01\n\x0eToppraPathType\x12\x1c\n\x18TOPPRA_PATH_TYPE_UNKNOWN\x10\x00\x12\x1b\n\x17TOPPRA_PATH_TYPE_LINEAR\x10\x01\x12\"\n\x1eTOPPRA_PATH_TYPE_CUBIC_HERMITE\x10\x02\x12\x1c\n\x18TOPPRA_PATH_TYPE_QUINTIC\x10\x03\x12\x1c\n\x18TOPPRA_PATH_TYPE_NATURAL\x10\x04*n\n\x10JointLimitSource\x12\x1e\n\x1aJOINT_LIMIT_SOURCE_UNKNOWN\x10\x00\x12\x1b\n\x17JOINT_LIMIT_SOURCE_URDF\x10\x01\x12\x1d\n\x19JOINT_LIMIT_SOURCE_CUSTOM\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.arm_config.arm_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TOPPRAPATHTYPE']._serialized_start=3779 + _globals['_TOPPRAPATHTYPE']._serialized_end=3950 + _globals['_JOINTLIMITSOURCE']._serialized_start=3952 + _globals['_JOINTLIMITSOURCE']._serialized_end=4062 + _globals['_MOTORROBOTARMBACKENDCONFIG']._serialized_start=238 + _globals['_MOTORROBOTARMBACKENDCONFIG']._serialized_end=431 + _globals['_VENDORROBOTARMBACKENDCONFIG']._serialized_start=434 + _globals['_VENDORROBOTARMBACKENDCONFIG']._serialized_end=593 + _globals['_JOINTLIMITCONFIG']._serialized_start=595 + _globals['_JOINTLIMITCONFIG']._serialized_end=681 + _globals['_JOINTLIMITSCONFIG']._serialized_start=683 + _globals['_JOINTLIMITSCONFIG']._serialized_end=796 + _globals['_QPJOINTLIMITAVOIDANCECONFIG']._serialized_start=798 + _globals['_QPJOINTLIMITAVOIDANCECONFIG']._serialized_end=913 + _globals['_CARTESIANVELOCITYQPCONFIG']._serialized_start=916 + _globals['_CARTESIANVELOCITYQPCONFIG']._serialized_end=1203 + _globals['_SPEEDLPLANNERCONFIG']._serialized_start=1206 + _globals['_SPEEDLPLANNERCONFIG']._serialized_end=1804 + _globals['_CARTESIANVELOCITYCONTROLLERCONFIG']._serialized_start=1807 + _globals['_CARTESIANVELOCITYCONTROLLERCONFIG']._serialized_end=1966 + _globals['_TOPPRAJOINTMOTIONPLANNERCONFIG']._serialized_start=1969 + _globals['_TOPPRAJOINTMOTIONPLANNERCONFIG']._serialized_end=2117 + _globals['_MOVEJCONFIG']._serialized_start=2119 + _globals['_MOVEJCONFIG']._serialized_end=2229 + _globals['_MOVELPLANNERCONFIG']._serialized_start=2232 + _globals['_MOVELPLANNERCONFIG']._serialized_end=2375 + _globals['_MOVELCONFIG']._serialized_start=2378 + _globals['_MOVELCONFIG']._serialized_end=2569 + _globals['_SPEEDLCONTROLLERCONFIG']._serialized_start=2571 + _globals['_SPEEDLCONTROLLERCONFIG']._serialized_end=2697 + _globals['_SPEEDLCONFIG']._serialized_start=2700 + _globals['_SPEEDLCONFIG']._serialized_end=2959 + _globals['_ARMKINEMATICSCONFIG']._serialized_start=2962 + _globals['_ARMKINEMATICSCONFIG']._serialized_end=3240 + _globals['_ARMMOTIONCONFIG']._serialized_start=3243 + _globals['_ARMMOTIONCONFIG']._serialized_end=3394 + _globals['_ROBOTARMCONFIG']._serialized_start=3397 + _globals['_ROBOTARMCONFIG']._serialized_end=3660 + _globals['_ARMCONFIG']._serialized_start=3662 + _globals['_ARMCONFIG']._serialized_end=3722 + _globals['_ARMROOTCONFIG']._serialized_start=3724 + _globals['_ARMROOTCONFIG']._serialized_end=3776 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/arm_config/arm_config_pb2_grpc.py b/generated/cmvr/config/arm_config/arm_config_pb2_grpc.py new file mode 100644 index 0000000..a30828f --- /dev/null +++ b/generated/cmvr/config/arm_config/arm_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/arm_config/arm_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/touch_screen_app_config/__init__.py b/generated/cmvr/config/aubo_robot_config/__init__.py similarity index 100% rename from generated/cmvr/config/touch_screen_app_config/__init__.py rename to generated/cmvr/config/aubo_robot_config/__init__.py diff --git a/generated/cmvr/config/speaker_config/speaker_conifg_pb2.py b/generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2.py similarity index 56% rename from generated/cmvr/config/speaker_config/speaker_conifg_pb2.py rename to generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2.py index 6eae730..e3b5107 100644 --- a/generated/cmvr/config/speaker_config/speaker_conifg_pb2.py +++ b/generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE -# source: cmvr/config/speaker_config/speaker_conifg.proto +# source: cmvr/config/aubo_robot_config/aubo_robot_config.proto # Protobuf Python Version: 6.31.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor @@ -15,7 +15,7 @@ _runtime_version.ValidateProtobufRuntimeVersion( 31, 1, '', - 'cmvr/config/speaker_config/speaker_conifg.proto' + 'cmvr/config/aubo_robot_config/aubo_robot_config.proto' ) # @@protoc_insertion_point(imports) @@ -24,15 +24,13 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/speaker_config/speaker_conifg.proto\x12\x0b\x63mvr.config\"1\n\x13\x46\x46MpegSpeakerConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nable\x18\x02 \x01(\x08\"J\n\rSpeakerConfig\x12\x39\n\x0f\x66\x66mpeg_speakers\x18\x01 \x03(\x0b\x32 .cmvr.config.FFMpegSpeakerConfigb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5cmvr/config/aubo_robot_config/aubo_robot_config.proto\x12\x0b\x63mvr.config\"[\n\x0f\x41uboRobotConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\x12\x10\n\x08username\x18\x04 \x01(\t\x12\x10\n\x08password\x18\x05 \x01(\tb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.speaker_config.speaker_conifg_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.aubo_robot_config.aubo_robot_config_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None - _globals['_FFMPEGSPEAKERCONFIG']._serialized_start=64 - _globals['_FFMPEGSPEAKERCONFIG']._serialized_end=113 - _globals['_SPEAKERCONFIG']._serialized_start=115 - _globals['_SPEAKERCONFIG']._serialized_end=189 + _globals['_AUBOROBOTCONFIG']._serialized_start=70 + _globals['_AUBOROBOTCONFIG']._serialized_end=161 # @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2_grpc.py b/generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2_grpc.py new file mode 100644 index 0000000..4227d2f --- /dev/null +++ b/generated/cmvr/config/aubo_robot_config/aubo_robot_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/aubo_robot_config/aubo_robot_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/biohead_config/__init__.py b/generated/cmvr/config/biohead_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/biohead_config/biohead_config_pb2.py b/generated/cmvr/config/biohead_config/biohead_config_pb2.py new file mode 100644 index 0000000..67834e5 --- /dev/null +++ b/generated/cmvr/config/biohead_config/biohead_config_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/biohead_config/biohead_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/biohead_config/biohead_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/biohead_config/biohead_config.proto\x12\x0b\x63mvr.config\"\x9c\x01\n\x17\x42ioHeadServoGroupConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\x05\x12\x15\n\rchannel_start\x18\x03 \x01(\x05\x12\x13\n\x0b\x63hannel_end\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x03(\x01\x12\x12\n\nmin_angles\x18\x06 \x03(\x01\x12\x12\n\nmax_angles\x18\x07 \x03(\x01\"\x84\x01\n\x12\x42ioHeadRobotConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0bserial_port\x18\x02 \x01(\t\x12\x11\n\tbaud_rate\x18\x03 \x01(\x05\x12:\n\x0cservo_groups\x18\x04 \x03(\x0b\x32$.cmvr.config.BioHeadServoGroupConfig\"K\n\x16\x42ioHeadRobotRootConfig\x12\x31\n\x08\x62io_head\x18\x01 \x01(\x0b\x32\x1f.cmvr.config.BioHeadRobotConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.biohead_config.biohead_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_BIOHEADSERVOGROUPCONFIG']._serialized_start=65 + _globals['_BIOHEADSERVOGROUPCONFIG']._serialized_end=221 + _globals['_BIOHEADROBOTCONFIG']._serialized_start=224 + _globals['_BIOHEADROBOTCONFIG']._serialized_end=356 + _globals['_BIOHEADROBOTROOTCONFIG']._serialized_start=358 + _globals['_BIOHEADROBOTROOTCONFIG']._serialized_end=433 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/biohead_config/biohead_config_pb2_grpc.py b/generated/cmvr/config/biohead_config/biohead_config_pb2_grpc.py new file mode 100644 index 0000000..169ce91 --- /dev/null +++ b/generated/cmvr/config/biohead_config/biohead_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/biohead_config/biohead_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/camera_config/camera_config_pb2.py b/generated/cmvr/config/camera_config/camera_config_pb2.py index d43d179..5adf9c7 100644 --- a/generated/cmvr/config/camera_config/camera_config_pb2.py +++ b/generated/cmvr/config/camera_config/camera_config_pb2.py @@ -24,23 +24,29 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-cmvr/config/camera_config/camera_config.proto\x12\x0b\x63mvr.config\"\xdc\x02\n\x15RealSenseCameraConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cserialNumber\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\x12\x0b\n\x03\x66ps\x18\x05 \x01(\x05\x12\r\n\x05\x63odec\x18\x06 \x01(\t\x12,\n\x0b\x63\x61mera_mode\x18\x07 \x01(\x0e\x32\x17.cmvr.config.CameraMode\x12,\n\x0bstream_mode\x18\x08 \x01(\x0e\x32\x17.cmvr.config.StreamMode\x12*\n\nalign_mode\x18\t \x01(\x0e\x32\x16.cmvr.config.AlignMode\x12\x13\n\x0b\x62uffer_size\x18\n \x01(\x05\x12\x0c\n\x04sync\x18\x0b \x01(\x08\x12\x0e\n\x06\x65nable\x18\x0c \x01(\x08\x12\x14\n\x0c\x65ncode_width\x18\r \x01(\x05\x12\x15\n\rencode_height\x18\x0e \x01(\x05\"\x93\x02\n\x0fUVCCameraConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0b\n\x03usb\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\x12\x0b\n\x03\x66ps\x18\x05 \x01(\x05\x12\r\n\x05\x63odec\x18\x06 \x01(\t\x12,\n\x0b\x63\x61mera_mode\x18\x07 \x01(\x0e\x32\x17.cmvr.config.CameraMode\x12,\n\x0bstream_mode\x18\x08 \x01(\x0e\x32\x17.cmvr.config.StreamMode\x12\x13\n\x0b\x62uffer_size\x18\t \x01(\x05\x12\x0e\n\x06\x65nable\x18\n \x01(\x08\x12\x14\n\x0c\x65ncode_width\x18\x0b \x01(\x05\x12\x15\n\rencode_height\x18\x0c \x01(\x05\"\x80\x01\n\x0c\x43\x61meraConfig\x12\x31\n\x0buvc_cameras\x18\x01 \x03(\x0b\x32\x1c.cmvr.config.UVCCameraConfig\x12=\n\x11realsense_cameras\x18\x02 \x03(\x0b\x32\".cmvr.config.RealSenseCameraConfig*:\n\nCameraMode\x12\x15\n\x11\x43\x41MERA_MODE_PHOTO\x10\x00\x12\x15\n\x11\x43\x41MERA_MODE_VIDEO\x10\x01*N\n\nStreamMode\x12\x13\n\x0fSTREAM_MODE_RGB\x10\x00\x12\x14\n\x10STREAM_MODE_RGBD\x10\x01\x12\x15\n\x11STREAM_MODE_DEPTH\x10\x02*7\n\tAlignMode\x12\x14\n\x10\x41LIGN_MODE_COLOR\x10\x00\x12\x14\n\x10\x41LIGN_MODE_DEPTH\x10\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-cmvr/config/camera_config/camera_config.proto\x12\x0b\x63mvr.config\"\xd2\x02\n\x15RealSenseCameraConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cserialNumber\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\x12\x0b\n\x03\x66ps\x18\x05 \x01(\x05\x12\r\n\x05\x63odec\x18\x06 \x01(\t\x12,\n\x0b\x63\x61mera_mode\x18\x07 \x01(\x0e\x32\x17.cmvr.config.CameraMode\x12,\n\x0bstream_mode\x18\x08 \x01(\x0e\x32\x17.cmvr.config.StreamMode\x12*\n\nalign_mode\x18\t \x01(\x0e\x32\x16.cmvr.config.AlignMode\x12\x13\n\x0b\x62uffer_size\x18\n \x01(\x05\x12\x0c\n\x04sync\x18\x0b \x01(\x08\x12\x14\n\x0c\x65ncode_width\x18\r \x01(\x05\x12\x15\n\rencode_height\x18\x0e \x01(\x05J\x04\x08\x0c\x10\r\"\x89\x02\n\x0fUVCCameraConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0b\n\x03usb\x18\x02 \x01(\t\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\x12\x0b\n\x03\x66ps\x18\x05 \x01(\x05\x12\r\n\x05\x63odec\x18\x06 \x01(\t\x12,\n\x0b\x63\x61mera_mode\x18\x07 \x01(\x0e\x32\x17.cmvr.config.CameraMode\x12,\n\x0bstream_mode\x18\x08 \x01(\x0e\x32\x17.cmvr.config.StreamMode\x12\x13\n\x0b\x62uffer_size\x18\t \x01(\x05\x12\x14\n\x0c\x65ncode_width\x18\x0b \x01(\x05\x12\x15\n\rencode_height\x18\x0c \x01(\x05J\x04\x08\n\x10\x0b\"h\n\x14MechMindCameraConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x12\n\x05\x61lign\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x0cimage2d_type\x18\x04 \x01(\tB\x08\n\x06_alignJ\x04\x08\x05\x10\x06\"\xce\x01\n\x12\x43\x61meraDeviceConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12+\n\x03uvc\x18\n \x01(\x0b\x32\x1c.cmvr.config.UVCCameraConfigH\x00\x12\x37\n\trealsense\x18\x0b \x01(\x0b\x32\".cmvr.config.RealSenseCameraConfigH\x00\x12\x35\n\x08mechmind\x18\x0c \x01(\x0b\x32!.cmvr.config.MechMindCameraConfigH\x00\x42\t\n\x07\x62\x61\x63kendJ\x04\x08\x02\x10\x03\"@\n\x0c\x43\x61meraConfig\x12\x30\n\x07\x63\x61meras\x18\x01 \x03(\x0b\x32\x1f.cmvr.config.CameraDeviceConfig\"=\n\x10\x43\x61meraRootConfig\x12)\n\x06\x63\x61mera\x18\x01 \x01(\x0b\x32\x19.cmvr.config.CameraConfig*:\n\nCameraMode\x12\x15\n\x11\x43\x41MERA_MODE_PHOTO\x10\x00\x12\x15\n\x11\x43\x41MERA_MODE_VIDEO\x10\x01*N\n\nStreamMode\x12\x13\n\x0fSTREAM_MODE_RGB\x10\x00\x12\x14\n\x10STREAM_MODE_RGBD\x10\x01\x12\x15\n\x11STREAM_MODE_DEPTH\x10\x02*7\n\tAlignMode\x12\x14\n\x10\x41LIGN_MODE_COLOR\x10\x00\x12\x14\n\x10\x41LIGN_MODE_DEPTH\x10\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.camera_config.camera_config_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None - _globals['_CAMERAMODE']._serialized_start=822 - _globals['_CAMERAMODE']._serialized_end=880 - _globals['_STREAMMODE']._serialized_start=882 - _globals['_STREAMMODE']._serialized_end=960 - _globals['_ALIGNMODE']._serialized_start=962 - _globals['_ALIGNMODE']._serialized_end=1017 + _globals['_CAMERAMODE']._serialized_start=1115 + _globals['_CAMERAMODE']._serialized_end=1173 + _globals['_STREAMMODE']._serialized_start=1175 + _globals['_STREAMMODE']._serialized_end=1253 + _globals['_ALIGNMODE']._serialized_start=1255 + _globals['_ALIGNMODE']._serialized_end=1310 _globals['_REALSENSECAMERACONFIG']._serialized_start=63 - _globals['_REALSENSECAMERACONFIG']._serialized_end=411 - _globals['_UVCCAMERACONFIG']._serialized_start=414 - _globals['_UVCCAMERACONFIG']._serialized_end=689 - _globals['_CAMERACONFIG']._serialized_start=692 - _globals['_CAMERACONFIG']._serialized_end=820 + _globals['_REALSENSECAMERACONFIG']._serialized_end=401 + _globals['_UVCCAMERACONFIG']._serialized_start=404 + _globals['_UVCCAMERACONFIG']._serialized_end=669 + _globals['_MECHMINDCAMERACONFIG']._serialized_start=671 + _globals['_MECHMINDCAMERACONFIG']._serialized_end=775 + _globals['_CAMERADEVICECONFIG']._serialized_start=778 + _globals['_CAMERADEVICECONFIG']._serialized_end=984 + _globals['_CAMERACONFIG']._serialized_start=986 + _globals['_CAMERACONFIG']._serialized_end=1050 + _globals['_CAMERAROOTCONFIG']._serialized_start=1052 + _globals['_CAMERAROOTCONFIG']._serialized_end=1113 # @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/cmvr_es_config/__init__.py b/generated/cmvr/config/cmvr_es_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/pinocchio_qp_ik_solver_config_pb2.py b/generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2.py similarity index 55% rename from generated/cmvr/config/pinocchio_qp_ik_solver_config_pb2.py rename to generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2.py index 130cca9..6ad7765 100644 --- a/generated/cmvr/config/pinocchio_qp_ik_solver_config_pb2.py +++ b/generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE -# source: cmvr/config/pinocchio_qp_ik_solver_config.proto +# source: cmvr/config/cmvr_es_config/cmvr_es_config.proto # Protobuf Python Version: 6.31.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor @@ -15,7 +15,7 @@ _runtime_version.ValidateProtobufRuntimeVersion( 31, 1, '', - 'cmvr/config/pinocchio_qp_ik_solver_config.proto' + 'cmvr/config/cmvr_es_config/cmvr_es_config.proto' ) # @@protoc_insertion_point(imports) @@ -24,13 +24,15 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/pinocchio_qp_ik_solver_config.proto\x12\x0b\x63mvr.config\"\xcd\x01\n\x13PinocchioQpIKConfig\x12\x11\n\turdf_path\x18\x01 \x01(\t\x12\x17\n\x0f\x62\x61se_frame_name\x18\x02 \x01(\t\x12\x19\n\x11\x66lange_frame_name\x18\x03 \x01(\t\x12\x16\n\x0etcp_frame_name\x18\x04 \x01(\t\x12\x0e\n\x06lambda\x18\x05 \x01(\x01\x12\x10\n\x08w_posrot\x18\x06 \x01(\x01\x12\x11\n\tmax_iters\x18\x07 \x01(\x05\x12\x0b\n\x03tol\x18\x08 \x01(\x01\x12\x15\n\rqp_time_limit\x18\t \x01(\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/cmvr_es_config/cmvr_es_config.proto\x12\x0b\x63mvr.config\"\x9d\x01\n\x0c\x43MVRESConfig\x12\x1a\n\x12logger_config_file\x18\x01 \x01(\t\x12\"\n\x1a\x64\x65vice_manager_config_file\x18\x02 \x01(\t\x12 \n\x18task_manager_config_file\x18\x04 \x01(\t\x12\x1f\n\x17grpc_server_config_file\x18\x06 \x01(\tJ\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06\">\n\x10\x43MVRESRootConfig\x12*\n\x07\x63mvr_es\x18\x01 \x01(\x0b\x32\x19.cmvr.config.CMVRESConfigb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.pinocchio_qp_ik_solver_config_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.cmvr_es_config.cmvr_es_config_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None - _globals['_PINOCCHIOQPIKCONFIG']._serialized_start=65 - _globals['_PINOCCHIOQPIKCONFIG']._serialized_end=270 + _globals['_CMVRESCONFIG']._serialized_start=65 + _globals['_CMVRESCONFIG']._serialized_end=222 + _globals['_CMVRESROOTCONFIG']._serialized_start=224 + _globals['_CMVRESROOTCONFIG']._serialized_end=286 # @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2_grpc.py b/generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2_grpc.py new file mode 100644 index 0000000..482c7df --- /dev/null +++ b/generated/cmvr/config/cmvr_es_config/cmvr_es_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/cmvr_es_config/cmvr_es_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/device_manager_config/__init__.py b/generated/cmvr/config/device_manager_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/device_manager_config/device_manager_config_pb2.py b/generated/cmvr/config/device_manager_config/device_manager_config_pb2.py new file mode 100644 index 0000000..792f5cd --- /dev/null +++ b/generated/cmvr/config/device_manager_config/device_manager_config_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/device_manager_config/device_manager_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/device_manager_config/device_manager_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n=cmvr/config/device_manager_config/device_manager_config.proto\x12\x0b\x63mvr.config\"\xa4\x05\n\x11\x44\x65viceConfigEntry\x12\n\n\x02id\x18\x01 \x01(\t\x12\x37\n\x04type\x18\x02 \x01(\x0e\x32).cmvr.config.DeviceConfigEntry.DeviceType\x12\x13\n\x0b\x63onfig_file\x18\x03 \x01(\t\x12\x0e\n\x06\x65nable\x18\x04 \x01(\x08\"\xa4\x04\n\nDeviceType\x12\x17\n\x13\x44\x45VICE_TYPE_UNKNOWN\x10\x00\x12\x1e\n\x1a\x44\x45VICE_TYPE_BIO_HEAD_ROBOT\x10\x08\x12\x1c\n\x18\x44\x45VICE_TYPE_MOTOR_SYSTEM\x10\t\x12\x19\n\x15\x44\x45VICE_TYPE_ROBOT_ARM\x10\x0c\x12\x16\n\x12\x44\x45VICE_TYPE_CAMERA\x10\r\x12\x17\n\x13\x44\x45VICE_TYPE_DEXHAND\x10\x0e\x12\x1a\n\x16\x44\x45VICE_TYPE_MICROPHONE\x10\x0f\x12\x17\n\x13\x44\x45VICE_TYPE_SPEAKER\x10\x10\x12\x13\n\x0f\x44\x45VICE_TYPE_AGV\x10\x11\"\x04\x08\x01\x10\x01\"\x04\x08\x02\x10\x02\"\x04\x08\x03\x10\x03\"\x04\x08\x04\x10\x04\"\x04\x08\x05\x10\x05\"\x04\x08\x06\x10\x06\"\x04\x08\x07\x10\x07\"\x04\x08\n\x10\n\"\x04\x08\x0b\x10\x0b*\x16\x44\x45VICE_TYPE_UVC_CAMERA*\x1c\x44\x45VICE_TYPE_REALSENSE_CAMERA*\x1c\x44\x45VICE_TYPE_RH56DFTP_DEXHAND*\x16\x44\x45VICE_TYPE_PX6AX_GEN3*\x1d\x44\x45VICE_TYPE_FFMPEG_MICROPHONE*\x1a\x44\x45VICE_TYPE_FFMPEG_SPEAKER*\x1a\x44\x45VICE_TYPE_HUMANOID_ROBOT*\x15\x44\x45VICE_TYPE_MOTOR_ARM*\x19\x44\x45VICE_TYPE_CARTESIAN_ARM\"z\n\x13\x44\x65viceManagerConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x07\x64\x65vices\x18\x04 \x03(\x0b\x32\x1e.cmvr.config.DeviceConfigEntry\"S\n\x17\x44\x65viceManagerRootConfig\x12\x38\n\x0e\x64\x65vice_manager\x18\x01 \x01(\x0b\x32 .cmvr.config.DeviceManagerConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.device_manager_config.device_manager_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DEVICECONFIGENTRY']._serialized_start=79 + _globals['_DEVICECONFIGENTRY']._serialized_end=755 + _globals['_DEVICECONFIGENTRY_DEVICETYPE']._serialized_start=207 + _globals['_DEVICECONFIGENTRY_DEVICETYPE']._serialized_end=755 + _globals['_DEVICEMANAGERCONFIG']._serialized_start=757 + _globals['_DEVICEMANAGERCONFIG']._serialized_end=879 + _globals['_DEVICEMANAGERROOTCONFIG']._serialized_start=881 + _globals['_DEVICEMANAGERROOTCONFIG']._serialized_end=964 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/device_manager_config/device_manager_config_pb2_grpc.py b/generated/cmvr/config/device_manager_config/device_manager_config_pb2_grpc.py new file mode 100644 index 0000000..86d83bb --- /dev/null +++ b/generated/cmvr/config/device_manager_config/device_manager_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/device_manager_config/device_manager_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/dexhand_config/dexhand_config_pb2.py b/generated/cmvr/config/dexhand_config/dexhand_config_pb2.py index 35bf933..b121f46 100644 --- a/generated/cmvr/config/dexhand_config/dexhand_config_pb2.py +++ b/generated/cmvr/config/dexhand_config/dexhand_config_pb2.py @@ -24,15 +24,23 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/dexhand_config/dexhand_config.proto\x12\x0b\x63mvr.config\"M\n\x15RH56DFTPDexHandConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\x12\x0e\n\x06\x65nable\x18\x04 \x01(\x08\"N\n\rDexHandConfig\x12=\n\x11rh56dftp_dexhands\x18\x01 \x03(\x0b\x32\".cmvr.config.RH56DFTPDexHandConfigb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/dexhand_config/dexhand_config.proto\x12\x0b\x63mvr.config\"]\n\x15RH56DFTPDexHandConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\x12\x18\n\x10poll_interval_ms\x18\x05 \x01(\x05J\x04\x08\x04\x10\x05\"\xc5\x03\n\tPX6AXGen3\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0bserial_port\x18\x02 \x01(\t\x12\x14\n\x0csensor_model\x18\x03 \x01(\t\x12\x11\n\tmodule_id\x18\x04 \x01(\x05\x12\x11\n\tbaud_rate\x18\x05 \x01(\x05\x12\x1a\n\x12\x64istributed_length\x18\x06 \x01(\x05\x12\x18\n\x10resultant_length\x18\x07 \x01(\x05\x12\x18\n\x10poll_interval_ms\x18\x08 \x01(\x05\x12\x16\n\x0e\x61uto_calibrate\x18\t \x01(\x08\x12\x1b\n\x13response_timeout_ms\x18\x0b \x01(\x05\x12\x14\n\x0ctactile_rows\x18\x0c \x01(\x05\x12\x14\n\x0ctactile_cols\x18\r \x01(\x05\x12\x1d\n\x15response_header_bytes\x18\x0e \x01(\x05\x12\x16\n\x0etactile_finger\x18\x0f \x01(\t\x12\x16\n\x0etactile_region\x18\x10 \x01(\t\x12\x13\n\x0bsensor_name\x18\x11 \x01(\t\x12@\n\x11polling_read_mode\x18\x12 \x01(\x0e\x32%.cmvr.config.PX6AXGen3PollingReadModeJ\x04\x08\n\x10\x0b\"\x99\x01\n\x13\x44\x65xHandDeviceConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x36\n\x08rh56dftp\x18\n \x01(\x0b\x32\".cmvr.config.RH56DFTPDexHandConfigH\x00\x12-\n\x0bpx_6ax_gen3\x18\x0b \x01(\x0b\x32\x16.cmvr.config.PX6AXGen3H\x00\x42\t\n\x07\x62\x61\x63kendJ\x04\x08\x02\x10\x03\"C\n\rDexHandConfig\x12\x32\n\x08\x64\x65xhands\x18\x01 \x03(\x0b\x32 .cmvr.config.DexHandDeviceConfig\"@\n\x11\x44\x65xHandRootConfig\x12+\n\x07\x64\x65xhand\x18\x01 \x01(\x0b\x32\x1a.cmvr.config.DexHandConfig*\xc5\x01\n\x18PX6AXGen3PollingReadMode\x12\x41\n=PX_6AX_GEN3_POLLING_READ_MODE_DISTRIBUTED_AND_RESULTANT_FORCE\x10\x00\x12\x33\n/PX_6AX_GEN3_POLLING_READ_MODE_DISTRIBUTED_FORCE\x10\x01\x12\x31\n-PX_6AX_GEN3_POLLING_READ_MODE_RESULTANT_FORCE\x10\x02\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.dexhand_config.dexhand_config_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None + _globals['_PX6AXGEN3POLLINGREADMODE']._serialized_start=907 + _globals['_PX6AXGEN3POLLINGREADMODE']._serialized_end=1104 _globals['_RH56DFTPDEXHANDCONFIG']._serialized_start=64 - _globals['_RH56DFTPDEXHANDCONFIG']._serialized_end=141 - _globals['_DEXHANDCONFIG']._serialized_start=143 - _globals['_DEXHANDCONFIG']._serialized_end=221 + _globals['_RH56DFTPDEXHANDCONFIG']._serialized_end=157 + _globals['_PX6AXGEN3']._serialized_start=160 + _globals['_PX6AXGEN3']._serialized_end=613 + _globals['_DEXHANDDEVICECONFIG']._serialized_start=616 + _globals['_DEXHANDDEVICECONFIG']._serialized_end=769 + _globals['_DEXHANDCONFIG']._serialized_start=771 + _globals['_DEXHANDCONFIG']._serialized_end=838 + _globals['_DEXHANDROOTCONFIG']._serialized_start=840 + _globals['_DEXHANDROOTCONFIG']._serialized_end=904 # @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/grpc_server_config/__init__.py b/generated/cmvr/config/grpc_server_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/grpc_server_config/grpc_server_config_pb2.py b/generated/cmvr/config/grpc_server_config/grpc_server_config_pb2.py new file mode 100644 index 0000000..4c284d8 --- /dev/null +++ b/generated/cmvr/config/grpc_server_config/grpc_server_config_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/grpc_server_config/grpc_server_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/grpc_server_config/grpc_server_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7cmvr/config/grpc_server_config/grpc_server_config.proto\x12\x0b\x63mvr.config\"U\n\x10GRPCServerConfig\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\x19\n\x11\x65nable_reflection\x18\x03 \x01(\x08\x12\n\n\x02id\x18\x04 \x01(\t\"J\n\x14GRPCServerRootConfig\x12\x32\n\x0bgrpc_server\x18\x01 \x01(\x0b\x32\x1d.cmvr.config.GRPCServerConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.grpc_server_config.grpc_server_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_GRPCSERVERCONFIG']._serialized_start=72 + _globals['_GRPCSERVERCONFIG']._serialized_end=157 + _globals['_GRPCSERVERROOTCONFIG']._serialized_start=159 + _globals['_GRPCSERVERROOTCONFIG']._serialized_end=233 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/grpc_server_config/grpc_server_config_pb2_grpc.py b/generated/cmvr/config/grpc_server_config/grpc_server_config_pb2_grpc.py new file mode 100644 index 0000000..37c22a3 --- /dev/null +++ b/generated/cmvr/config/grpc_server_config/grpc_server_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/grpc_server_config/grpc_server_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/lawba_ik_config_pb2.py b/generated/cmvr/config/lawba_ik_config_pb2.py new file mode 100644 index 0000000..7e10260 --- /dev/null +++ b/generated/cmvr/config/lawba_ik_config_pb2.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/lawba_ik_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/lawba_ik_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cmvr.config import srs_ik_config_pb2 as cmvr_dot_config_dot_srs__ik__config__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cmvr/config/lawba_ik_config.proto\x12\x0b\x63mvr.config\x1a\x1f\x63mvr/config/srs_ik_config.proto\"\xd5\x01\n\rLawbaIKConfig\x12,\n\nsrs_config\x18\x01 \x01(\x0b\x32\x18.cmvr.config.SrsIKConfig\x12\x10\n\x08lambda_q\x18\x02 \x01(\x01\x12!\n\x19\x63ur_branch_cost_threshold\x18\x03 \x01(\x01\x12\x1c\n\x14opt_psi_update_alpha\x18\x04 \x01(\x01\x12\x19\n\x11opt_psi_max_delta\x18\x05 \x01(\x01\x12\x13\n\x0bopt_psi_min\x18\x06 \x01(\x01\x12\x13\n\x0bopt_psi_eps\x18\x07 \x01(\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.lawba_ik_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_LAWBAIKCONFIG']._serialized_start=84 + _globals['_LAWBAIKCONFIG']._serialized_end=297 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/lawba_ik_config_pb2_grpc.py b/generated/cmvr/config/lawba_ik_config_pb2_grpc.py new file mode 100644 index 0000000..8b6b33a --- /dev/null +++ b/generated/cmvr/config/lawba_ik_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/lawba_ik_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/logger_config/__init__.py b/generated/cmvr/config/logger_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/logger_config/logger_config_pb2.py b/generated/cmvr/config/logger_config/logger_config_pb2.py new file mode 100644 index 0000000..f91ac00 --- /dev/null +++ b/generated/cmvr/config/logger_config/logger_config_pb2.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/logger_config/logger_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/logger_config/logger_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-cmvr/config/logger_config/logger_config.proto\x12\x0b\x63mvr.config\"P\n\x08LogRoute\x12$\n\x05level\x18\x01 \x01(\x0e\x32\x15.cmvr.config.LogLevel\x12\x10\n\x08terminal\x18\x02 \x01(\x08\x12\x0c\n\x04\x66ile\x18\x03 \x01(\x08\"\xc5\x01\n\tLogFormat\x12\x16\n\tshow_time\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nshow_level\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0eshow_thread_id\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14show_source_location\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x0c\n\n_show_timeB\r\n\x0b_show_levelB\x11\n\x0f_show_thread_idB\x17\n\x15_show_source_location\"\xd8\x01\n\x0cLoggerConfig\x12,\n\rminimum_level\x18\x01 \x01(\x0e\x32\x15.cmvr.config.LogLevel\x12%\n\x06routes\x18\x02 \x03(\x0b\x32\x15.cmvr.config.LogRoute\x12\x11\n\tdirectory\x18\x03 \x01(\t\x12\x18\n\x10max_file_size_mb\x18\x04 \x01(\x05\x12\x1e\n\x16\x66lush_interval_seconds\x18\x05 \x01(\x05\x12&\n\x06\x66ormat\x18\x06 \x01(\x0b\x32\x16.cmvr.config.LogFormat\"=\n\x10LoggerRootConfig\x12)\n\x06logger\x18\x01 \x01(\x0b\x32\x19.cmvr.config.LoggerConfig*\x8f\x01\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x01\x12\x12\n\x0eLOG_LEVEL_INFO\x10\x02\x12\x15\n\x11LOG_LEVEL_WARNING\x10\x03\x12\x13\n\x0fLOG_LEVEL_ERROR\x10\x04\x12\x13\n\x0fLOG_LEVEL_FATAL\x10\x05\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.logger_config.logger_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_LOGLEVEL']._serialized_start=627 + _globals['_LOGLEVEL']._serialized_end=770 + _globals['_LOGROUTE']._serialized_start=62 + _globals['_LOGROUTE']._serialized_end=142 + _globals['_LOGFORMAT']._serialized_start=145 + _globals['_LOGFORMAT']._serialized_end=342 + _globals['_LOGGERCONFIG']._serialized_start=345 + _globals['_LOGGERCONFIG']._serialized_end=561 + _globals['_LOGGERROOTCONFIG']._serialized_start=563 + _globals['_LOGGERROOTCONFIG']._serialized_end=624 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/logger_config/logger_config_pb2_grpc.py b/generated/cmvr/config/logger_config/logger_config_pb2_grpc.py new file mode 100644 index 0000000..612172c --- /dev/null +++ b/generated/cmvr/config/logger_config/logger_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/logger_config/logger_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/microphone_config/microphone_config_pb2.py b/generated/cmvr/config/microphone_config/microphone_config_pb2.py index 80620f7..859c557 100644 --- a/generated/cmvr/config/microphone_config/microphone_config_pb2.py +++ b/generated/cmvr/config/microphone_config/microphone_config_pb2.py @@ -24,15 +24,19 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5cmvr/config/microphone_config/microphone_config.proto\x12\x0b\x63mvr.config\"\x80\x01\n\x16\x46\x46MpegMicroPhoneConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x63hannels\x18\x02 \x01(\x05\x12\x12\n\nsampleRate\x18\x03 \x01(\x05\x12\x0e\n\x06volume\x18\x04 \x01(\x05\x12\x0e\n\x06\x65nable\x18\x05 \x01(\x08\x12\x14\n\x0cinput_device\x18\x06 \x01(\t\"S\n\x10MicroPhoneConfig\x12?\n\x12\x66\x66mpeg_microphones\x18\x01 \x03(\x0b\x32#.cmvr.config.FFMpegMicroPhoneConfigb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5cmvr/config/microphone_config/microphone_config.proto\x12\x0b\x63mvr.config\"v\n\x16\x46\x46MpegMicroPhoneConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x63hannels\x18\x02 \x01(\x05\x12\x12\n\nsampleRate\x18\x03 \x01(\x05\x12\x0e\n\x06volume\x18\x04 \x01(\x05\x12\x14\n\x0cinput_device\x18\x06 \x01(\tJ\x04\x08\x05\x10\x06\"l\n\x16MicrophoneDeviceConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x35\n\x06\x66\x66mpeg\x18\n \x01(\x0b\x32#.cmvr.config.FFMpegMicroPhoneConfigH\x00\x42\t\n\x07\x62\x61\x63kendJ\x04\x08\x02\x10\x03\"L\n\x10MicroPhoneConfig\x12\x38\n\x0bmicrophones\x18\x01 \x03(\x0b\x32#.cmvr.config.MicrophoneDeviceConfig\"I\n\x14MicroPhoneRootConfig\x12\x31\n\nmicrophone\x18\x01 \x01(\x0b\x32\x1d.cmvr.config.MicroPhoneConfigb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.microphone_config.microphone_config_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None - _globals['_FFMPEGMICROPHONECONFIG']._serialized_start=71 - _globals['_FFMPEGMICROPHONECONFIG']._serialized_end=199 - _globals['_MICROPHONECONFIG']._serialized_start=201 - _globals['_MICROPHONECONFIG']._serialized_end=284 + _globals['_FFMPEGMICROPHONECONFIG']._serialized_start=70 + _globals['_FFMPEGMICROPHONECONFIG']._serialized_end=188 + _globals['_MICROPHONEDEVICECONFIG']._serialized_start=190 + _globals['_MICROPHONEDEVICECONFIG']._serialized_end=298 + _globals['_MICROPHONECONFIG']._serialized_start=300 + _globals['_MICROPHONECONFIG']._serialized_end=376 + _globals['_MICROPHONEROOTCONFIG']._serialized_start=378 + _globals['_MICROPHONEROOTCONFIG']._serialized_end=451 # @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/motor_config/__init__.py b/generated/cmvr/config/motor_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/motor_config/motor_config_pb2.py b/generated/cmvr/config/motor_config/motor_config_pb2.py new file mode 100644 index 0000000..64f7923 --- /dev/null +++ b/generated/cmvr/config/motor_config/motor_config_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/motor_config/motor_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/motor_config/motor_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+cmvr/config/motor_config/motor_config.proto\x12\x0b\x63mvr.config\"j\n\x0eTi5MotorConfig\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x12\n\njoint_name\x18\x02 \x01(\t\x12\x12\n\nlimit_q_lb\x18\x03 \x01(\x01\x12\x12\n\nlimit_q_ub\x18\x04 \x01(\x01\x12\x10\n\x08limit_qd\x18\x05 \x01(\x01\"5\n\x0fSocketCanConfig\x12\x0e\n\x06\x64\x65v_id\x18\x01 \x01(\t\x12\x12\n\nchannel_id\x18\x02 \x01(\x05\"5\n\x0e\x45therCATConfig\x12\x11\n\tmaster_id\x18\x01 \x01(\t\x12\x10\n\x08\x63ycle_us\x18\x02 \x01(\x05\"\xf8\x01\n\x10MotorGroupConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12+\n\x08\x62us_type\x18\x02 \x01(\x0e\x32\x19.cmvr.config.MotorBusType\x12\x12\n\ntool_frame\x18\x03 \x01(\t\x12+\n\x03\x63\x61n\x18\n \x01(\x0b\x32\x1c.cmvr.config.SocketCanConfigH\x00\x12/\n\x08\x65thercat\x18\x0b \x01(\x0b\x32\x1b.cmvr.config.EtherCATConfigH\x00\x12+\n\x06motors\x18\x14 \x03(\x0b\x32\x1b.cmvr.config.Ti5MotorConfigB\x0c\n\nbus_config\"N\n\x0bMotorConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x33\n\x0cmotor_groups\x18\x02 \x03(\x0b\x32\x1d.cmvr.config.MotorGroupConfig\":\n\x0fMotorRootConfig\x12\'\n\x05motor\x18\x01 \x01(\x0b\x32\x18.cmvr.config.MotorConfig*f\n\x0cMotorBusType\x12\x15\n\x11MOTOR_BUS_UNKNOWN\x10\x00\x12\x11\n\rMOTOR_BUS_CAN\x10\x01\x12\x16\n\x12MOTOR_BUS_ETHERCAT\x10\x02\x12\x14\n\x10MOTOR_BUS_MUJOCO\x10\x03\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.motor_config.motor_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MOTORBUSTYPE']._serialized_start=669 + _globals['_MOTORBUSTYPE']._serialized_end=771 + _globals['_TI5MOTORCONFIG']._serialized_start=60 + _globals['_TI5MOTORCONFIG']._serialized_end=166 + _globals['_SOCKETCANCONFIG']._serialized_start=168 + _globals['_SOCKETCANCONFIG']._serialized_end=221 + _globals['_ETHERCATCONFIG']._serialized_start=223 + _globals['_ETHERCATCONFIG']._serialized_end=276 + _globals['_MOTORGROUPCONFIG']._serialized_start=279 + _globals['_MOTORGROUPCONFIG']._serialized_end=527 + _globals['_MOTORCONFIG']._serialized_start=529 + _globals['_MOTORCONFIG']._serialized_end=607 + _globals['_MOTORROOTCONFIG']._serialized_start=609 + _globals['_MOTORROOTCONFIG']._serialized_end=667 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/motor_config/motor_config_pb2_grpc.py b/generated/cmvr/config/motor_config/motor_config_pb2_grpc.py new file mode 100644 index 0000000..610487a --- /dev/null +++ b/generated/cmvr/config/motor_config/motor_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/motor_config/motor_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/pinocchio_dls_ik_config_pb2.py b/generated/cmvr/config/pinocchio_dls_ik_config_pb2.py index 58a880d..6e14e73 100644 --- a/generated/cmvr/config/pinocchio_dls_ik_config_pb2.py +++ b/generated/cmvr/config/pinocchio_dls_ik_config_pb2.py @@ -24,11 +24,15 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)cmvr/config/pinocchio_dls_ik_config.proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)cmvr/config/pinocchio_dls_ik_config.proto\x12\x0b\x63mvr.config\"\x82\x02\n\x14PinocchioDlsIKConfig\x12\x11\n\turdf_path\x18\x01 \x01(\t\x12\x17\n\x0f\x62\x61se_frame_name\x18\x02 \x01(\t\x12\x19\n\x11\x66lange_frame_name\x18\x03 \x01(\t\x12\x16\n\x0etcp_frame_name\x18\x04 \x01(\t\x12\x11\n\tmax_iters\x18\x05 \x01(\x05\x12\x0f\n\x07pos_eps\x18\x06 \x01(\x01\x12\x0f\n\x07rot_eps\x18\x07 \x01(\x01\x12\x0f\n\x07\x64\x61mping\x18\x08 \x01(\x01\x12\x45\n\x15joint_limit_avoidance\x18\t \x01(\x0b\x32&.cmvr.config.JointLimitAvoidanceConfig\"a\n\x19JointLimitAvoidanceConfig\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\x12\x0c\n\x04gain\x18\x02 \x01(\x01\x12\x14\n\x0cmargin_ratio\x18\x03 \x01(\x01\x12\x10\n\x08max_push\x18\x04 \x01(\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.pinocchio_dls_ik_config_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None + _globals['_PINOCCHIODLSIKCONFIG']._serialized_start=59 + _globals['_PINOCCHIODLSIKCONFIG']._serialized_end=317 + _globals['_JOINTLIMITAVOIDANCECONFIG']._serialized_start=319 + _globals['_JOINTLIMITAVOIDANCECONFIG']._serialized_end=416 # @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/pinocchio_qp_ik_config_pb2.py b/generated/cmvr/config/pinocchio_qp_ik_config_pb2.py new file mode 100644 index 0000000..aec3311 --- /dev/null +++ b/generated/cmvr/config/pinocchio_qp_ik_config_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/pinocchio_qp_ik_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/pinocchio_qp_ik_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(cmvr/config/pinocchio_qp_ik_config.proto\x12\x0b\x63mvr.config\"\xcd\x01\n\x13PinocchioQpIKConfig\x12\x11\n\turdf_path\x18\x01 \x01(\t\x12\x17\n\x0f\x62\x61se_frame_name\x18\x02 \x01(\t\x12\x19\n\x11\x66lange_frame_name\x18\x03 \x01(\t\x12\x16\n\x0etcp_frame_name\x18\x04 \x01(\t\x12\x0e\n\x06lambda\x18\x05 \x01(\x01\x12\x10\n\x08w_posrot\x18\x06 \x01(\x01\x12\x11\n\tmax_iters\x18\x07 \x01(\x05\x12\x0b\n\x03tol\x18\x08 \x01(\x01\x12\x15\n\rqp_time_limit\x18\t \x01(\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.pinocchio_qp_ik_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_PINOCCHIOQPIKCONFIG']._serialized_start=58 + _globals['_PINOCCHIOQPIKCONFIG']._serialized_end=263 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/pinocchio_qp_ik_solver_config_pb2_grpc.py b/generated/cmvr/config/pinocchio_qp_ik_config_pb2_grpc.py similarity index 95% rename from generated/cmvr/config/pinocchio_qp_ik_solver_config_pb2_grpc.py rename to generated/cmvr/config/pinocchio_qp_ik_config_pb2_grpc.py index 68c6d43..0cb600a 100644 --- a/generated/cmvr/config/pinocchio_qp_ik_solver_config_pb2_grpc.py +++ b/generated/cmvr/config/pinocchio_qp_ik_config_pb2_grpc.py @@ -17,7 +17,7 @@ except ImportError: if _version_not_supported: raise RuntimeError( f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in cmvr/config/pinocchio_qp_ik_solver_config_pb2_grpc.py depends on' + + ' but the generated code in cmvr/config/pinocchio_qp_ik_config_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' diff --git a/generated/cmvr/config/speaker_config/speaker_config_pb2.py b/generated/cmvr/config/speaker_config/speaker_config_pb2.py new file mode 100644 index 0000000..f81eb8e --- /dev/null +++ b/generated/cmvr/config/speaker_config/speaker_config_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/speaker_config/speaker_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/speaker_config/speaker_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/speaker_config/speaker_config.proto\x12\x0b\x63mvr.config\"\'\n\x13\x46\x46MpegSpeakerConfig\x12\n\n\x02id\x18\x01 \x01(\tJ\x04\x08\x02\x10\x03\"f\n\x13SpeakerDeviceConfig\x12\n\n\x02id\x18\x01 \x01(\t\x12\x32\n\x06\x66\x66mpeg\x18\n \x01(\x0b\x32 .cmvr.config.FFMpegSpeakerConfigH\x00\x42\t\n\x07\x62\x61\x63kendJ\x04\x08\x02\x10\x03\"C\n\rSpeakerConfig\x12\x32\n\x08speakers\x18\x01 \x03(\x0b\x32 .cmvr.config.SpeakerDeviceConfig\"@\n\x11SpeakerRootConfig\x12+\n\x07speaker\x18\x01 \x01(\x0b\x32\x1a.cmvr.config.SpeakerConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.speaker_config.speaker_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_FFMPEGSPEAKERCONFIG']._serialized_start=64 + _globals['_FFMPEGSPEAKERCONFIG']._serialized_end=103 + _globals['_SPEAKERDEVICECONFIG']._serialized_start=105 + _globals['_SPEAKERDEVICECONFIG']._serialized_end=207 + _globals['_SPEAKERCONFIG']._serialized_start=209 + _globals['_SPEAKERCONFIG']._serialized_end=276 + _globals['_SPEAKERROOTCONFIG']._serialized_start=278 + _globals['_SPEAKERROOTCONFIG']._serialized_end=342 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/speaker_config/speaker_conifg_pb2_grpc.py b/generated/cmvr/config/speaker_config/speaker_config_pb2_grpc.py similarity index 95% rename from generated/cmvr/config/speaker_config/speaker_conifg_pb2_grpc.py rename to generated/cmvr/config/speaker_config/speaker_config_pb2_grpc.py index fcf45ff..0588009 100644 --- a/generated/cmvr/config/speaker_config/speaker_conifg_pb2_grpc.py +++ b/generated/cmvr/config/speaker_config/speaker_config_pb2_grpc.py @@ -17,7 +17,7 @@ except ImportError: if _version_not_supported: raise RuntimeError( f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in cmvr/config/speaker_config/speaker_conifg_pb2_grpc.py depends on' + + ' but the generated code in cmvr/config/speaker_config/speaker_config_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' diff --git a/generated/cmvr/config/srs_ik_config_pb2.py b/generated/cmvr/config/srs_ik_config_pb2.py new file mode 100644 index 0000000..c6fd00a --- /dev/null +++ b/generated/cmvr/config/srs_ik_config_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/srs_ik_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/srs_ik_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63mvr/config/srs_ik_config.proto\x12\x0b\x63mvr.config\"\xb5\x01\n\x0bSrsIKConfig\x12\x13\n\x0binitial_psi\x18\x01 \x01(\x01\x12\x17\n\x0fshoulder_config\x18\x02 \x01(\x05\x12\x14\n\x0c\x65lbow_config\x18\x03 \x01(\x05\x12\x14\n\x0cwrist_config\x18\x04 \x01(\x05\x12\x14\n\x0clink_lengths\x18\n \x03(\x01\x12\x1a\n\x12joint_lower_limits\x18\x0b \x03(\x01\x12\x1a\n\x12joint_upper_limits\x18\x0c \x03(\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.srs_ik_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SRSIKCONFIG']._serialized_start=49 + _globals['_SRSIKCONFIG']._serialized_end=230 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/srs_ik_config_pb2_grpc.py b/generated/cmvr/config/srs_ik_config_pb2_grpc.py new file mode 100644 index 0000000..09242b2 --- /dev/null +++ b/generated/cmvr/config/srs_ik_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/srs_ik_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/task_manager_config/__init__.py b/generated/cmvr/config/task_manager_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/task_manager_config/task_manager_config_pb2.py b/generated/cmvr/config/task_manager_config/task_manager_config_pb2.py new file mode 100644 index 0000000..6166b79 --- /dev/null +++ b/generated/cmvr/config/task_manager_config/task_manager_config_pb2.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/task_manager_config/task_manager_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/task_manager_config/task_manager_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n9cmvr/config/task_manager_config/task_manager_config.proto\x12\x0b\x63mvr.config\"\xb3\x03\n\x0fTaskConfigEntry\x12\n\n\x02id\x18\x01 \x01(\t\x12\x33\n\x04type\x18\x02 \x01(\x0e\x32%.cmvr.config.TaskConfigEntry.TaskType\x12\x13\n\x0b\x63onfig_file\x18\x03 \x01(\t\x12\x0e\n\x06\x65nable\x18\x04 \x01(\x08\x12:\n\x08run_mode\x18\x05 \x01(\x0e\x32(.cmvr.config.TaskConfigEntry.TaskRunMode\x12\x18\n\x10\x63ontrol_period_s\x18\x06 \x01(\x01\"u\n\x08TaskType\x12\x15\n\x11TASK_TYPE_UNKNOWN\x10\x00\x12\x1a\n\x16TASK_TYPE_TOUCH_SCREEN\x10\x01\x12\x19\n\x15TASK_TYPE_GRPC_SERVER\x10\x03\"\x04\x08\x02\x10\x02*\x15TASK_TYPE_ARM_CONTROL\"m\n\x0bTaskRunMode\x12\x19\n\x15TASK_RUN_MODE_UNKNOWN\x10\x00\x12\x1f\n\x1bTASK_RUN_MODE_PERIODIC_STEP\x10\x01\x12\"\n\x1eTASK_RUN_MODE_BLOCKING_SERVICE\x10\x02\"@\n\x11TaskManagerConfig\x12+\n\x05tasks\x18\x01 \x03(\x0b\x32\x1c.cmvr.config.TaskConfigEntry\"M\n\x15TaskManagerRootConfig\x12\x34\n\x0ctask_manager\x18\x01 \x01(\x0b\x32\x1e.cmvr.config.TaskManagerConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.task_manager_config.task_manager_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TASKCONFIGENTRY']._serialized_start=75 + _globals['_TASKCONFIGENTRY']._serialized_end=510 + _globals['_TASKCONFIGENTRY_TASKTYPE']._serialized_start=282 + _globals['_TASKCONFIGENTRY_TASKTYPE']._serialized_end=399 + _globals['_TASKCONFIGENTRY_TASKRUNMODE']._serialized_start=401 + _globals['_TASKCONFIGENTRY_TASKRUNMODE']._serialized_end=510 + _globals['_TASKMANAGERCONFIG']._serialized_start=512 + _globals['_TASKMANAGERCONFIG']._serialized_end=576 + _globals['_TASKMANAGERROOTCONFIG']._serialized_start=578 + _globals['_TASKMANAGERROOTCONFIG']._serialized_end=655 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/task_manager_config/task_manager_config_pb2_grpc.py b/generated/cmvr/config/task_manager_config/task_manager_config_pb2_grpc.py new file mode 100644 index 0000000..c7b66a0 --- /dev/null +++ b/generated/cmvr/config/task_manager_config/task_manager_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/task_manager_config/task_manager_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/touch_screen_algorithm_config_pb2.py b/generated/cmvr/config/touch_screen_algorithm_config_pb2.py new file mode 100644 index 0000000..96d9753 --- /dev/null +++ b/generated/cmvr/config/touch_screen_algorithm_config_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/touch_screen_algorithm_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/touch_screen_algorithm_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cmvr.common import geometry_pb2 as cmvr_dot_common_dot_geometry__pb2 +from cmvr.config import touch_screen_common_config_pb2 as cmvr_dot_config_dot_touch__screen__common__config__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cmvr/config/touch_screen_algorithm_config.proto\x12\x0b\x63mvr.config\x1a\x1a\x63mvr/common/geometry.proto\x1a,cmvr/config/touch_screen_common_config.proto\"\xf9\x01\n\x19TouchScreenApriltagConfig\x12\x17\n\ntag_size_m\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12>\n\x0c\x64\x65pth_policy\x18\x02 \x01(\x0e\x32#.cmvr.config.TouchScreenDepthPolicyH\x01\x88\x01\x01\x12K\n\x13target_point_method\x18\x03 \x01(\x0e\x32).cmvr.config.TouchScreenTargetPointMethodH\x02\x88\x01\x01\x42\r\n\x0b_tag_size_mB\x0f\n\r_depth_policyB\x16\n\x14_target_point_method\"\xcc\x05\n\x15TouchScreenIbvsConfig\x12\x18\n\x0b\x63\x61mera_link\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06lambda\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0f\n\x02mu\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x15\n\x08qdot_max\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12 \n\x05vmax6\x18\x05 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12 \n\x05\x61max6\x18\x06 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12\x1f\n\x12twist_filter_alpha\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12)\n\x1c\x65nable_joint_limit_avoidance\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x1ajoint_limit_avoidance_gain\x18\t \x01(\x01H\x06\x88\x01\x01\x12/\n\"joint_limit_avoidance_margin_ratio\x18\n \x01(\x01H\x07\x88\x01\x01\x12+\n\x1ejoint_limit_avoidance_max_push\x18\x0b \x01(\x01H\x08\x88\x01\x01\x12+\n\x10r_camera_to_visp\x18\x0c \x01(\x0b\x32\x11.cmvr.common.Mat3\x12+\n\x10r_camera_to_urdf\x18\r \x01(\x0b\x32\x11.cmvr.common.Mat3\x12\x1b\n\x13\x63ontrol_joint_names\x18\x0e \x03(\tB\x0e\n\x0c_camera_linkB\t\n\x07_lambdaB\x05\n\x03_muB\x0b\n\t_qdot_maxB\x15\n\x13_twist_filter_alphaB\x1f\n\x1d_enable_joint_limit_avoidanceB\x1d\n\x1b_joint_limit_avoidance_gainB%\n#_joint_limit_avoidance_margin_ratioB!\n\x1f_joint_limit_avoidance_max_pushb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.touch_screen_algorithm_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TOUCHSCREENAPRILTAGCONFIG']._serialized_start=139 + _globals['_TOUCHSCREENAPRILTAGCONFIG']._serialized_end=388 + _globals['_TOUCHSCREENIBVSCONFIG']._serialized_start=391 + _globals['_TOUCHSCREENIBVSCONFIG']._serialized_end=1107 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2_grpc.py b/generated/cmvr/config/touch_screen_algorithm_config_pb2_grpc.py similarity index 93% rename from generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2_grpc.py rename to generated/cmvr/config/touch_screen_algorithm_config_pb2_grpc.py index cf0475d..43ccfa9 100644 --- a/generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2_grpc.py +++ b/generated/cmvr/config/touch_screen_algorithm_config_pb2_grpc.py @@ -17,7 +17,7 @@ except ImportError: if _version_not_supported: raise RuntimeError( f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2_grpc.py depends on' + + ' but the generated code in cmvr/config/touch_screen_algorithm_config_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' diff --git a/generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2.py b/generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2.py deleted file mode 100644 index c543ace..0000000 --- a/generated/cmvr/config/touch_screen_app_config/touch_screen_app_config_pb2.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: cmvr/config/touch_screen_app_config/touch_screen_app_config.proto -# Protobuf Python Version: 6.31.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 31, - 1, - '', - 'cmvr/config/touch_screen_app_config/touch_screen_app_config.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nAcmvr/config/touch_screen_app_config/touch_screen_app_config.proto\x12\x0b\x63mvr.config\"S\n\x0fTouchScreenVec3\x12\x0e\n\x01x\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0e\n\x01z\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\x04\n\x02_xB\x04\n\x02_yB\x04\n\x02_z\"\xa3\x01\n\x11TouchScreenTwist6\x12\x0f\n\x02vx\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x0f\n\x02vy\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x0f\n\x02vz\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x0f\n\x02wx\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x0f\n\x02wy\x18\x05 \x01(\x01H\x04\x88\x01\x01\x12\x0f\n\x02wz\x18\x06 \x01(\x01H\x05\x88\x01\x01\x42\x05\n\x03_vxB\x05\n\x03_vyB\x05\n\x03_vzB\x05\n\x03_wxB\x05\n\x03_wyB\x05\n\x03_wz\"\xff\x01\n\x13TouchScreenMatrix3d\x12\x10\n\x03m00\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03m01\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03m02\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03m10\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x10\n\x03m11\x18\x05 \x01(\x01H\x04\x88\x01\x01\x12\x10\n\x03m12\x18\x06 \x01(\x01H\x05\x88\x01\x01\x12\x10\n\x03m20\x18\x07 \x01(\x01H\x06\x88\x01\x01\x12\x10\n\x03m21\x18\x08 \x01(\x01H\x07\x88\x01\x01\x12\x10\n\x03m22\x18\t \x01(\x01H\x08\x88\x01\x01\x42\x06\n\x04_m00B\x06\n\x04_m01B\x06\n\x04_m02B\x06\n\x04_m10B\x06\n\x04_m11B\x06\n\x04_m12B\x06\n\x04_m20B\x06\n\x04_m21B\x06\n\x04_m22\"]\n\x19TouchScreenInitJointPoint\x12\x17\n\njoint_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03rad\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\r\n\x0b_joint_nameB\x06\n\x04_rad\"\xba\x15\n\x14TouchScreenAppConfig\x12\x15\n\x08robot_id\x18( \x01(\tH\x00\x88\x01\x01\x12\x17\n\ndexhand_id\x18) \x01(\tH\x01\x88\x01\x01\x12\x16\n\tcamera_id\x18* \x01(\tH\x02\x88\x01\x01\x12\"\n\x15move_to_init_position\x18+ \x01(\x08H\x03\x88\x01\x01\x12\x44\n\x14init_joint_positions\x18, \x03(\x0b\x32&.cmvr.config.TouchScreenInitJointPoint\x12\x1b\n\x0einit_movej_vel\x18- \x01(\x01H\x04\x88\x01\x01\x12\x1b\n\x0einit_movej_acc\x18. \x01(\x01H\x05\x88\x01\x01\x12/\n\"move_to_init_position_before_start\x18/ \x01(\x08H\x06\x88\x01\x01\x12\x16\n\turdf_path\x18\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\tbase_link\x18\x02 \x01(\tH\x08\x88\x01\x01\x12\x18\n\x0b\x66lange_link\x18\x03 \x01(\tH\t\x88\x01\x01\x12\x18\n\x0b\x63\x61mera_link\x18\x04 \x01(\tH\n\x88\x01\x01\x12\x17\n\ntag_size_m\x18\x05 \x01(\x01H\x0b\x88\x01\x01\x12>\n\x0c\x64\x65pth_policy\x18\x06 \x01(\x0e\x32#.cmvr.config.TouchScreenDepthPolicyH\x0c\x88\x01\x01\x12K\n\x13target_point_method\x18\x07 \x01(\x0e\x32).cmvr.config.TouchScreenTargetPointMethodH\r\x88\x01\x01\x12<\n\x16hover_target_in_camera\x18\x08 \x01(\x0b\x32\x1c.cmvr.config.TouchScreenVec3\x12\x16\n\ttarget_rx\x18\t \x01(\x01H\x0e\x88\x01\x01\x12\x16\n\ttarget_ry\x18\n \x01(\x01H\x0f\x88\x01\x01\x12\x16\n\ttarget_rz\x18\x0b \x01(\x01H\x10\x88\x01\x01\x12\x18\n\x0bibvs_lambda\x18\x0c \x01(\x01H\x11\x88\x01\x01\x12\x14\n\x07ibvs_mu\x18\r \x01(\x01H\x12\x88\x01\x01\x12\x1a\n\ribvs_qdot_max\x18\x0e \x01(\x01H\x13\x88\x01\x01\x12\x32\n\nibvs_vmax6\x18\x0f \x01(\x0b\x32\x1e.cmvr.config.TouchScreenTwist6\x12)\n\x1c\x65nable_joint_limit_avoidance\x18\x10 \x01(\x08H\x14\x88\x01\x01\x12\'\n\x1ajoint_limit_avoidance_gain\x18\x11 \x01(\x01H\x15\x88\x01\x01\x12/\n\"joint_limit_avoidance_margin_ratio\x18\x12 \x01(\x01H\x16\x88\x01\x01\x12+\n\x1ejoint_limit_avoidance_max_push\x18\x13 \x01(\x01H\x17\x88\x01\x01\x12:\n\x10r_camera_to_visp\x18\x14 \x01(\x0b\x32 .cmvr.config.TouchScreenMatrix3d\x12:\n\x10r_camera_to_urdf\x18\x15 \x01(\x0b\x32 .cmvr.config.TouchScreenMatrix3d\x12\x1b\n\x13\x63ontrol_joint_names\x18\x16 \x03(\t\x12!\n\x14\x61lign_xy_threshold_m\x18\x17 \x01(\x01H\x18\x88\x01\x01\x12 \n\x13\x61lign_z_threshold_m\x18\x18 \x01(\x01H\x19\x88\x01\x01\x12$\n\x17\x61lign_rot_threshold_rad\x18\x19 \x01(\x01H\x1a\x88\x01\x01\x12 \n\x13\x61lign_stable_frames\x18\x1a \x01(\x05H\x1b\x88\x01\x01\x12\x1c\n\x0f\x61lign_timeout_s\x18\x1b \x01(\x01H\x1c\x88\x01\x01\x12&\n\x19pause_after_align_reached\x18\x1c \x01(\x08H\x1d\x88\x01\x01\x12\x38\n\x10touch_twist_base\x18\x1d \x01(\x0b\x32\x1e.cmvr.config.TouchScreenTwist6\x12\x1f\n\x12touch_acceleration\x18\x1e \x01(\x01H\x1e\x88\x01\x01\x12%\n\x18touch_forward_duration_s\x18\x1f \x01(\x01H\x1f\x88\x01\x01\x12\x19\n\x0c\x64well_time_s\x18 \x01(\x01H \x88\x01\x01\x12:\n\x12retract_twist_base\x18! \x01(\x0b\x32\x1e.cmvr.config.TouchScreenTwist6\x12!\n\x14retract_acceleration\x18\" \x01(\x01H!\x88\x01\x01\x12\x1f\n\x12retract_duration_s\x18# \x01(\x01H\"\x88\x01\x01\x12?\n\x0etactile_finger\x18$ \x01(\x0e\x32\".cmvr.config.TouchScreenFingerTypeH#\x88\x01\x01\x12\x42\n\x0etactile_region\x18% \x01(\x0e\x32%.cmvr.config.TouchScreenTactileRegionH$\x88\x01\x01\x12+\n\x1etactile_pressure_sum_threshold\x18& \x01(\x01H%\x88\x01\x01\x12,\n\x1ftactile_pressure_peak_threshold\x18\' \x01(\x01H&\x88\x01\x01\x42\x0b\n\t_robot_idB\r\n\x0b_dexhand_idB\x0c\n\n_camera_idB\x18\n\x16_move_to_init_positionB\x11\n\x0f_init_movej_velB\x11\n\x0f_init_movej_accB%\n#_move_to_init_position_before_startB\x0c\n\n_urdf_pathB\x0c\n\n_base_linkB\x0e\n\x0c_flange_linkB\x0e\n\x0c_camera_linkB\r\n\x0b_tag_size_mB\x0f\n\r_depth_policyB\x16\n\x14_target_point_methodB\x0c\n\n_target_rxB\x0c\n\n_target_ryB\x0c\n\n_target_rzB\x0e\n\x0c_ibvs_lambdaB\n\n\x08_ibvs_muB\x10\n\x0e_ibvs_qdot_maxB\x1f\n\x1d_enable_joint_limit_avoidanceB\x1d\n\x1b_joint_limit_avoidance_gainB%\n#_joint_limit_avoidance_margin_ratioB!\n\x1f_joint_limit_avoidance_max_pushB\x17\n\x15_align_xy_threshold_mB\x16\n\x14_align_z_threshold_mB\x1a\n\x18_align_rot_threshold_radB\x16\n\x14_align_stable_framesB\x12\n\x10_align_timeout_sB\x1c\n\x1a_pause_after_align_reachedB\x15\n\x13_touch_accelerationB\x1b\n\x19_touch_forward_duration_sB\x0f\n\r_dwell_time_sB\x17\n\x15_retract_accelerationB\x15\n\x13_retract_duration_sB\x11\n\x0f_tactile_fingerB\x11\n\x0f_tactile_regionB!\n\x1f_tactile_pressure_sum_thresholdB\"\n _tactile_pressure_peak_threshold*\x89\x01\n\x16TouchScreenDepthPolicy\x12\"\n\x1eTOUCH_SCREEN_DEPTH_POLICY_NONE\x10\x00\x12$\n TOUCH_SCREEN_DEPTH_POLICY_PREFER\x10\x01\x12%\n!TOUCH_SCREEN_DEPTH_POLICY_REQUIRE\x10\x02*\x80\x01\n\x1cTouchScreenTargetPointMethod\x12.\n*TOUCH_SCREEN_TARGET_POINT_METHOD_TAG_PLANE\x10\x00\x12\x30\n,TOUCH_SCREEN_TARGET_POINT_METHOD_DEPTH_IMAGE\x10\x01*\xcb\x01\n\x15TouchScreenFingerType\x12\"\n\x1eTOUCH_SCREEN_FINGER_TYPE_PINKY\x10\x00\x12!\n\x1dTOUCH_SCREEN_FINGER_TYPE_RING\x10\x01\x12#\n\x1fTOUCH_SCREEN_FINGER_TYPE_MIDDLE\x10\x02\x12\"\n\x1eTOUCH_SCREEN_FINGER_TYPE_INDEX\x10\x03\x12\"\n\x1eTOUCH_SCREEN_FINGER_TYPE_THUMB\x10\x04*\xea\x01\n\x18TouchScreenTactileRegion\x12#\n\x1fTOUCH_SCREEN_TACTILE_REGION_TIP\x10\x00\x12&\n\"TOUCH_SCREEN_TACTILE_REGION_FINGER\x10\x01\x12#\n\x1fTOUCH_SCREEN_TACTILE_REGION_PAD\x10\x02\x12.\n*TOUCH_SCREEN_TACTILE_REGION_TIP_AND_FINGER\x10\x03\x12,\n(TOUCH_SCREEN_TACTILE_REGION_THUMB_MIDDLE\x10\x04\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.touch_screen_app_config.touch_screen_app_config_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_TOUCHSCREENDEPTHPOLICY']._serialized_start=3436 - _globals['_TOUCHSCREENDEPTHPOLICY']._serialized_end=3573 - _globals['_TOUCHSCREENTARGETPOINTMETHOD']._serialized_start=3576 - _globals['_TOUCHSCREENTARGETPOINTMETHOD']._serialized_end=3704 - _globals['_TOUCHSCREENFINGERTYPE']._serialized_start=3707 - _globals['_TOUCHSCREENFINGERTYPE']._serialized_end=3910 - _globals['_TOUCHSCREENTACTILEREGION']._serialized_start=3913 - _globals['_TOUCHSCREENTACTILEREGION']._serialized_end=4147 - _globals['_TOUCHSCREENVEC3']._serialized_start=82 - _globals['_TOUCHSCREENVEC3']._serialized_end=165 - _globals['_TOUCHSCREENTWIST6']._serialized_start=168 - _globals['_TOUCHSCREENTWIST6']._serialized_end=331 - _globals['_TOUCHSCREENMATRIX3D']._serialized_start=334 - _globals['_TOUCHSCREENMATRIX3D']._serialized_end=589 - _globals['_TOUCHSCREENINITJOINTPOINT']._serialized_start=591 - _globals['_TOUCHSCREENINITJOINTPOINT']._serialized_end=684 - _globals['_TOUCHSCREENAPPCONFIG']._serialized_start=687 - _globals['_TOUCHSCREENAPPCONFIG']._serialized_end=3433 -# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/touch_screen_common_config_pb2.py b/generated/cmvr/config/touch_screen_common_config_pb2.py new file mode 100644 index 0000000..3960dfc --- /dev/null +++ b/generated/cmvr/config/touch_screen_common_config_pb2.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/touch_screen_common_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/touch_screen_common_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,cmvr/config/touch_screen_common_config.proto\x12\x0b\x63mvr.config*\x89\x01\n\x16TouchScreenDepthPolicy\x12\"\n\x1eTOUCH_SCREEN_DEPTH_POLICY_NONE\x10\x00\x12$\n TOUCH_SCREEN_DEPTH_POLICY_PREFER\x10\x01\x12%\n!TOUCH_SCREEN_DEPTH_POLICY_REQUIRE\x10\x02*\x80\x01\n\x1cTouchScreenTargetPointMethod\x12.\n*TOUCH_SCREEN_TARGET_POINT_METHOD_TAG_PLANE\x10\x00\x12\x30\n,TOUCH_SCREEN_TARGET_POINT_METHOD_DEPTH_IMAGE\x10\x01*\xcb\x01\n\x15TouchScreenFingerType\x12\"\n\x1eTOUCH_SCREEN_FINGER_TYPE_PINKY\x10\x00\x12!\n\x1dTOUCH_SCREEN_FINGER_TYPE_RING\x10\x01\x12#\n\x1fTOUCH_SCREEN_FINGER_TYPE_MIDDLE\x10\x02\x12\"\n\x1eTOUCH_SCREEN_FINGER_TYPE_INDEX\x10\x03\x12\"\n\x1eTOUCH_SCREEN_FINGER_TYPE_THUMB\x10\x04*\xba\x01\n\x18TouchScreenTactileRegion\x12#\n\x1fTOUCH_SCREEN_TACTILE_REGION_TIP\x10\x00\x12&\n\"TOUCH_SCREEN_TACTILE_REGION_FINGER\x10\x01\x12#\n\x1fTOUCH_SCREEN_TACTILE_REGION_PAD\x10\x02\x12,\n(TOUCH_SCREEN_TACTILE_REGION_THUMB_MIDDLE\x10\x04*r\n\x1bTouchScreenTactileCriterion\x12%\n!TOUCH_SCREEN_TACTILE_CRITERION_FZ\x10\x00\x12,\n(TOUCH_SCREEN_TACTILE_CRITERION_MAGNITUDE\x10\x01*\xa0\x01\n\x14TouchScreenAlignMode\x12-\n)TOUCH_SCREEN_ALIGN_MODE_POSE_AND_POSITION\x10\x00\x12.\n*TOUCH_SCREEN_ALIGN_MODE_RX_RY_AND_POSITION\x10\x01\x12)\n%TOUCH_SCREEN_ALIGN_MODE_POSITION_ONLY\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.touch_screen_common_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TOUCHSCREENDEPTHPOLICY']._serialized_start=62 + _globals['_TOUCHSCREENDEPTHPOLICY']._serialized_end=199 + _globals['_TOUCHSCREENTARGETPOINTMETHOD']._serialized_start=202 + _globals['_TOUCHSCREENTARGETPOINTMETHOD']._serialized_end=330 + _globals['_TOUCHSCREENFINGERTYPE']._serialized_start=333 + _globals['_TOUCHSCREENFINGERTYPE']._serialized_end=536 + _globals['_TOUCHSCREENTACTILEREGION']._serialized_start=539 + _globals['_TOUCHSCREENTACTILEREGION']._serialized_end=725 + _globals['_TOUCHSCREENTACTILECRITERION']._serialized_start=727 + _globals['_TOUCHSCREENTACTILECRITERION']._serialized_end=841 + _globals['_TOUCHSCREENALIGNMODE']._serialized_start=844 + _globals['_TOUCHSCREENALIGNMODE']._serialized_end=1004 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/touch_screen_common_config_pb2_grpc.py b/generated/cmvr/config/touch_screen_common_config_pb2_grpc.py new file mode 100644 index 0000000..c02bd4d --- /dev/null +++ b/generated/cmvr/config/touch_screen_common_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/touch_screen_common_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/config/touch_screen_task_config/__init__.py b/generated/cmvr/config/touch_screen_task_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2.py b/generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2.py new file mode 100644 index 0000000..49616bb --- /dev/null +++ b/generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: cmvr/config/touch_screen_task_config/touch_screen_task_config.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'cmvr/config/touch_screen_task_config/touch_screen_task_config.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from cmvr.common import geometry_pb2 as cmvr_dot_common_dot_geometry__pb2 +from cmvr.config import touch_screen_common_config_pb2 as cmvr_dot_config_dot_touch__screen__common__config__pb2 +from cmvr.config import touch_screen_algorithm_config_pb2 as cmvr_dot_config_dot_touch__screen__algorithm__config__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nCcmvr/config/touch_screen_task_config/touch_screen_task_config.proto\x12\x0b\x63mvr.config\x1a\x1a\x63mvr/common/geometry.proto\x1a,cmvr/config/touch_screen_common_config.proto\x1a/cmvr/config/touch_screen_algorithm_config.proto\"]\n\x19TouchScreenInitJointPoint\x12\x17\n\njoint_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03rad\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\r\n\x0b_joint_nameB\x06\n\x04_rad\"\x9c\x01\n\x1cTouchScreenTaskDevicesConfig\x12\x13\n\x06\x61rm_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ndexhand_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tcamera_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\t\n\x07_arm_idB\r\n\x0b_dexhand_idB\x0c\n\n_camera_idJ\x04\x08\x01\x10\x02R\x08robot_id\"\x8e\x02\n#TouchScreenTaskInitializationConfig\x12\x19\n\x0c\x62\x65\x66ore_start\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0c\x61\x66ter_finish\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12?\n\x0fjoint_positions\x18\x03 \x03(\x0b\x32&.cmvr.config.TouchScreenInitJointPoint\x12\x15\n\x08velocity\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0c\x61\x63\x63\x65leration\x18\x05 \x01(\x01H\x03\x88\x01\x01\x42\x0f\n\r_before_startB\x0f\n\r_after_finishB\x0b\n\t_velocityB\x0f\n\r_acceleration\"[\n\x1fTouchScreenTaskPerceptionConfig\x12\x38\n\x08\x61priltag\x18\x01 \x01(\x0b\x32&.cmvr.config.TouchScreenApriltagConfig\"\xbc\x01\n TouchScreenAlignmentTargetConfig\x12-\n\x12position_in_camera\x18\x01 \x01(\x0b\x32\x11.cmvr.common.Vec3\x12*\n\x0frotation_vector\x18\x02 \x01(\x0b\x32\x11.cmvr.common.Vec3\x12\x34\n\x04mode\x18\x03 \x01(\x0e\x32!.cmvr.config.TouchScreenAlignModeH\x00\x88\x01\x01\x42\x07\n\x05_mode\"\xdb\x02\n\x1eTouchScreenTaskAlignmentConfig\x12\x30\n\x04ibvs\x18\x02 \x01(\x0b\x32\".cmvr.config.TouchScreenIbvsConfig\x12=\n\x06target\x18\x03 \x01(\x0b\x32-.cmvr.config.TouchScreenAlignmentTargetConfig\x12*\n\x0f\x65rror_threshold\x18\x04 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12\x1a\n\rstable_frames\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\ttimeout_s\x18\x06 \x01(\x01H\x01\x88\x01\x01\x12\x1f\n\x12pause_when_reached\x18\x07 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_stable_framesB\x0c\n\n_timeout_sB\x15\n\x13_pause_when_reachedJ\x04\x08\x01\x10\x02R\nkinematics\"\xa1\x01\n\x1cTouchScreenTouchSpeedLConfig\x12%\n\ntwist_tool\x18\x01 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12\x19\n\x0c\x61\x63\x63\x65leration\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x1b\n\x0emax_distance_m\x18\x03 \x01(\x01H\x01\x88\x01\x01\x42\x0f\n\r_accelerationB\x11\n\x0f_max_distance_m\"\xfb\x01\n\x1bTouchScreenTouchMoveLConfig\x12)\n\x0e\x64irection_tool\x18\x01 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12\x17\n\ndistance_m\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08velocity\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x19\n\x0c\x61\x63\x63\x65leration\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x11\n\x04jerk\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x1d\n\x15joint_velocity_limits\x18\x06 \x03(\x01\x42\r\n\x0b_distance_mB\x0b\n\t_velocityB\x0f\n\r_accelerationB\x07\n\x05_jerk\"\xae\x02\n\x1fTouchScreenTactileTriggerConfig\x12\x37\n\x06\x66inger\x18\x01 \x01(\x0e\x32\".cmvr.config.TouchScreenFingerTypeH\x00\x88\x01\x01\x12:\n\x06region\x18\x02 \x01(\x0e\x32%.cmvr.config.TouchScreenTactileRegionH\x01\x88\x01\x01\x12@\n\tcriterion\x18\x03 \x01(\x0e\x32(.cmvr.config.TouchScreenTactileCriterionH\x02\x88\x01\x01\x12\x1c\n\x0f\x66orce_threshold\x18\x04 \x01(\x01H\x03\x88\x01\x01\x42\t\n\x07_fingerB\t\n\x07_regionB\x0c\n\n_criterionB\x12\n\x10_force_threshold\"\x8b\x02\n\x1aTouchScreenTaskTouchConfig\x12<\n\x07speed_l\x18\x01 \x01(\x0b\x32).cmvr.config.TouchScreenTouchSpeedLConfigH\x00\x12:\n\x06move_l\x18\x02 \x01(\x0b\x32(.cmvr.config.TouchScreenTouchMoveLConfigH\x00\x12=\n\x07tactile\x18\x03 \x01(\x0b\x32,.cmvr.config.TouchScreenTactileTriggerConfig\x12\x19\n\x0c\x64well_time_s\x18\x04 \x01(\x01H\x01\x88\x01\x01\x42\x08\n\x06motionB\x0f\n\r_dwell_time_s\"\x99\x01\n\x1cTouchScreenTaskRetractConfig\x12%\n\ntwist_tool\x18\x01 \x01(\x0b\x32\x11.cmvr.common.Vec6\x12\x19\n\x0c\x61\x63\x63\x65leration\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nduration_s\x18\x03 \x01(\x01H\x01\x88\x01\x01\x42\x0f\n\r_accelerationB\r\n\x0b_duration_s\"\xab\x03\n\x15TouchScreenTaskConfig\x12:\n\x07\x64\x65vices\x18\x01 \x01(\x0b\x32).cmvr.config.TouchScreenTaskDevicesConfig\x12H\n\x0einitialization\x18\x02 \x01(\x0b\x32\x30.cmvr.config.TouchScreenTaskInitializationConfig\x12@\n\nperception\x18\x03 \x01(\x0b\x32,.cmvr.config.TouchScreenTaskPerceptionConfig\x12>\n\talignment\x18\x04 \x01(\x0b\x32+.cmvr.config.TouchScreenTaskAlignmentConfig\x12\x36\n\x05touch\x18\x05 \x01(\x0b\x32\'.cmvr.config.TouchScreenTaskTouchConfig\x12:\n\x07retract\x18\x06 \x01(\x0b\x32).cmvr.config.TouchScreenTaskRetractConfig\x12\x0f\n\x02id\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"Z\n\x19TouchScreenTaskRootConfig\x12=\n\x11touch_screen_task\x18\x01 \x01(\x0b\x32\".cmvr.config.TouchScreenTaskConfigb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.config.touch_screen_task_config.touch_screen_task_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TOUCHSCREENINITJOINTPOINT']._serialized_start=207 + _globals['_TOUCHSCREENINITJOINTPOINT']._serialized_end=300 + _globals['_TOUCHSCREENTASKDEVICESCONFIG']._serialized_start=303 + _globals['_TOUCHSCREENTASKDEVICESCONFIG']._serialized_end=459 + _globals['_TOUCHSCREENTASKINITIALIZATIONCONFIG']._serialized_start=462 + _globals['_TOUCHSCREENTASKINITIALIZATIONCONFIG']._serialized_end=732 + _globals['_TOUCHSCREENTASKPERCEPTIONCONFIG']._serialized_start=734 + _globals['_TOUCHSCREENTASKPERCEPTIONCONFIG']._serialized_end=825 + _globals['_TOUCHSCREENALIGNMENTTARGETCONFIG']._serialized_start=828 + _globals['_TOUCHSCREENALIGNMENTTARGETCONFIG']._serialized_end=1016 + _globals['_TOUCHSCREENTASKALIGNMENTCONFIG']._serialized_start=1019 + _globals['_TOUCHSCREENTASKALIGNMENTCONFIG']._serialized_end=1366 + _globals['_TOUCHSCREENTOUCHSPEEDLCONFIG']._serialized_start=1369 + _globals['_TOUCHSCREENTOUCHSPEEDLCONFIG']._serialized_end=1530 + _globals['_TOUCHSCREENTOUCHMOVELCONFIG']._serialized_start=1533 + _globals['_TOUCHSCREENTOUCHMOVELCONFIG']._serialized_end=1784 + _globals['_TOUCHSCREENTACTILETRIGGERCONFIG']._serialized_start=1787 + _globals['_TOUCHSCREENTACTILETRIGGERCONFIG']._serialized_end=2089 + _globals['_TOUCHSCREENTASKTOUCHCONFIG']._serialized_start=2092 + _globals['_TOUCHSCREENTASKTOUCHCONFIG']._serialized_end=2359 + _globals['_TOUCHSCREENTASKRETRACTCONFIG']._serialized_start=2362 + _globals['_TOUCHSCREENTASKRETRACTCONFIG']._serialized_end=2515 + _globals['_TOUCHSCREENTASKCONFIG']._serialized_start=2518 + _globals['_TOUCHSCREENTASKCONFIG']._serialized_end=2945 + _globals['_TOUCHSCREENTASKROOTCONFIG']._serialized_start=2947 + _globals['_TOUCHSCREENTASKROOTCONFIG']._serialized_end=3037 +# @@protoc_insertion_point(module_scope) diff --git a/generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2_grpc.py b/generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2_grpc.py new file mode 100644 index 0000000..c89406a --- /dev/null +++ b/generated/cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in cmvr/config/touch_screen_task_config/touch_screen_task_config_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/generated/cmvr/msgs/geometry_pb2.py b/generated/cmvr/msgs/geometry_pb2.py deleted file mode 100644 index 32d9fb2..0000000 --- a/generated/cmvr/msgs/geometry_pb2.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: cmvr/msgs/geometry.proto -# Protobuf Python Version: 6.31.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 31, - 1, - '', - 'cmvr/msgs/geometry.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x63mvr/msgs/geometry.proto\x12\tcmvr.msgs\"\x1c\n\x04Vec2\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\"\'\n\x04Vec3\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\"2\n\x04Quat\x12\t\n\x01w\x18\x01 \x01(\x01\x12\t\n\x01x\x18\x02 \x01(\x01\x12\t\n\x01y\x18\x03 \x01(\x01\x12\t\n\x01z\x18\x04 \x01(\x01\"+\n\x08Position\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\"+\n\x05\x45uler\x12\n\n\x02rx\x18\x01 \x01(\x01\x12\n\n\x02ry\x18\x02 \x01(\x01\x12\n\n\x02rz\x18\x03 \x01(\x01\"u\n\x06Pose3d\x12%\n\x08position\x18\x01 \x01(\x0b\x32\x13.cmvr.msgs.Position\x12#\n\nquaternion\x18\x02 \x01(\x0b\x32\x0f.cmvr.msgs.Quat\x12\x1f\n\x05\x65uler\x18\x03 \x01(\x0b\x32\x10.cmvr.msgs.Euler\"-\n\x06Pose2d\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\r\n\x05theta\x18\x03 \x01(\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cmvr.msgs.geometry_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_VEC2']._serialized_start=39 - _globals['_VEC2']._serialized_end=67 - _globals['_VEC3']._serialized_start=69 - _globals['_VEC3']._serialized_end=108 - _globals['_QUAT']._serialized_start=110 - _globals['_QUAT']._serialized_end=160 - _globals['_POSITION']._serialized_start=162 - _globals['_POSITION']._serialized_end=205 - _globals['_EULER']._serialized_start=207 - _globals['_EULER']._serialized_end=250 - _globals['_POSE3D']._serialized_start=252 - _globals['_POSE3D']._serialized_end=369 - _globals['_POSE2D']._serialized_start=371 - _globals['_POSE2D']._serialized_end=416 -# @@protoc_insertion_point(module_scope) diff --git a/protos/cmvr/api/arm_command.proto b/protos/cmvr/api/arm_command.proto new file mode 100644 index 0000000..3c0d7b9 --- /dev/null +++ b/protos/cmvr/api/arm_command.proto @@ -0,0 +1,185 @@ +syntax = "proto3"; + +package cmvr.api; + +import "cmvr/api/common.proto"; + +enum ArmFrameType { + ARM_FRAME_BASE = 0; + ARM_FRAME_TOOL = 1; + ARM_FRAME_WORLD = 2; + ARM_FRAME_USER = 3; +} + +message JointPositionCommand { + repeated double position = 1; +} + +message JointVelocityCommand { + repeated double velocity = 1; +} + +message MotionOptions { + double velocity = 1; + double acceleration = 2; + double blend_radius = 3; + double jerk = 4; + repeated double joint_velocity_limits = 5; + bool asynchronous = 6; +} + +message CartesianPose { + double x = 1; + double y = 2; + double z = 3; + double rx = 4; + double ry = 5; + double rz = 6; +} + +message CartesianVelocity { + double vx = 1; + double vy = 2; + double vz = 3; + double wx = 4; + double wy = 5; + double wz = 6; +} + +message TransformMatrix4x4 { + double m00 = 1; double m01 = 2; double m02 = 3; double m03 = 4; + double m10 = 5; double m11 = 6; double m12 = 7; double m13 = 8; + double m20 = 9; double m21 = 10; double m22 = 11; double m23 = 12; + double m30 = 13; double m31 = 14; double m32 = 15; double m33 = 16; +} + +message MoveJ { + message Request { + CommandHeader.Request header = 1; + JointPositionCommand target = 2; + MotionOptions options = 3; + } + + message Response { + CommandHeader.Feedback header = 1; + } +} + +message MoveL { + message Request { + CommandHeader.Request header = 1; + CartesianPose target = 2; + MotionOptions options = 3; + ArmFrameType frame = 4; + } + + message Response { + CommandHeader.Feedback header = 1; + } +} + +message SpeedJ { + message Request { + CommandHeader.Request header = 1; + JointVelocityCommand velocity = 2; + double acceleration = 3; + double duration = 4; + } + + message Response { + CommandHeader.Feedback header = 1; + } +} + +message SpeedL { + message Request { + CommandHeader.Request header = 1; + CartesianVelocity velocity = 2; + double acceleration = 3; + double duration = 4; + ArmFrameType frame = 5; + } + + message Response { + CommandHeader.Feedback header = 1; + } +} + +message ServoJ { + message Request { + CommandHeader.Request header = 1; + JointPositionCommand target = 2; + } + + message Response { + CommandHeader.Feedback header = 1; + } +} + +message JointState { + repeated string name = 1; + repeated double position = 2; + repeated double velocity = 3; + repeated double effort = 4; + double timestamp = 5; +} + +message JointRequest { + CommandHeader.Request header = 1; +} + +message JointResponse { + CommandHeader.Feedback header = 1; + JointState state = 2; +} + +message GetPose { + message Request { + CommandHeader.Request header = 1; + string base_link = 2; + string ee_link = 3; + } + + message Response { + CommandHeader.Feedback header = 1; + CartesianPose pose = 2; + } +} + +message CalibrateZeroQ { + message Request { + CommandHeader.Request header = 1; + string joint_name = 2; + } + + message Response { + CommandHeader.Feedback header = 1; + } +} + +message GetPoseMatrix { + message Request { + CommandHeader.Request header = 1; + string base_link = 2; + string ee_link = 3; + } + + message Response { + CommandHeader.Feedback header = 1; + TransformMatrix4x4 matrix = 2; + } +} + +message ComputeForwardKinematics { + message Request { + CommandHeader.Request header = 1; + string base_link = 2; + string ee_link = 3; + JointPositionCommand joints = 4; + } + + message Response { + CommandHeader.Feedback header = 1; + TransformMatrix4x4 matrix = 2; + } +} diff --git a/protos/cmvr/api/humanoid_robot_service.proto b/protos/cmvr/api/arm_service.proto similarity index 86% rename from protos/cmvr/api/humanoid_robot_service.proto rename to protos/cmvr/api/arm_service.proto index b046eb9..565b493 100644 --- a/protos/cmvr/api/humanoid_robot_service.proto +++ b/protos/cmvr/api/arm_service.proto @@ -1,22 +1,22 @@ - - syntax = "proto3"; -package cmvr.api; -import "cmvr/api/common.proto"; -import "cmvr/api/humanoid_robot_command.proto"; -service HumanoidRobotService{ +package cmvr.api; + +import "cmvr/api/common.proto"; +import "cmvr/api/arm_command.proto"; + +service ArmService { rpc torqueOff(CommandHeader.Request) returns (CommandHeader.Feedback); rpc torqueOn(CommandHeader.Request) returns (CommandHeader.Feedback); rpc moveJ(MoveJ.Request) returns (MoveJ.Response); rpc moveL(MoveL.Request) returns (MoveL.Response); rpc speedJ(SpeedJ.Request) returns (SpeedJ.Response); rpc speedL(SpeedL.Request) returns (SpeedL.Response); + rpc servoJ(ServoJ.Request) returns (ServoJ.Response); + rpc stopMotion(CommandHeader.Request) returns (CommandHeader.Feedback); rpc getJointState(JointRequest) returns (JointResponse); rpc getPose(GetPose.Request) returns (GetPose.Response); rpc calibrateZeroQ(CalibrateZeroQ.Request) returns (CalibrateZeroQ.Response); - rpc servoJ(ServoJ.Request) returns (ServoJ.Response); - rpc getPoseMatrix(GetPoseMatrix.Request) returns (GetPoseMatrix.Response); rpc computeForwardKinematics(ComputeForwardKinematics.Request) returns (ComputeForwardKinematics.Response); } diff --git a/protos/cmvr/api/humanoid_robot_command.proto b/protos/cmvr/api/humanoid_robot_command.proto deleted file mode 100644 index 75804fb..0000000 --- a/protos/cmvr/api/humanoid_robot_command.proto +++ /dev/null @@ -1,202 +0,0 @@ - - -syntax = "proto3"; -package cmvr.api; -import "cmvr/api/common.proto"; - -message JointCmd { - string joint_name = 1; // 关节名称 - double rad = 2; // 弧度 - double vel = 3; // 角速度,rad/s -} - -message Pose3D{ - double x = 1; - double y = 2; - double z = 3; - double rx = 4; - double ry = 5; - double rz = 6; -} - -enum RobotCartesian{ - X = 0; - Y = 1; - Z = 2; - RX = 3; - RY = 4; - RZ = 5; -} ; -enum RobotJointIndexDirection{ - FORWARD = 0; - BACKWARD = 1; - X_POSITIVE = 2; // X轴正向 - X_NEGATIVE = 3; // X轴负向 - Y_POSITIVE = 4; // Y轴正向 - Y_NEGATIVE = 5; // Y轴负向 - Z_POSITIVE = 6; // Z轴正向 - Z_NEGATIVE = 7; // Z轴负向 - ROTATE_X = 8; // 绕X轴旋转 - ROTATE_Y = 9; // 绕Y轴旋转 - ROTATE_Z = 10; // 绕Z轴旋转 -} - - -// 4x4 齐次变换矩阵 -message TransformMatrix4x4 { - double m00 = 1; double m01 = 2; double m02 = 3; double m03 = 4; - double m10 = 5; double m11 = 6; double m12 = 7; double m13 = 8; - double m20 = 9; double m21 = 10; double m22 = 11; double m23 = 12; - double m30 = 13; double m31 = 14; double m32 = 15; double m33 = 16; -} - - -message MoveJ{ - message Request{ - CommandHeader.Request header = 1; - repeated JointCmd cmds = 2; - double vel = 3; - double acc = 4; - } - - message Response{ - CommandHeader.Feedback header= 1; - } - -} - -message GetPose{ - message Request{ - CommandHeader.Request header = 1; - string base_link = 2; - string ee_link = 3; - } - - message Response{ - CommandHeader.Feedback header= 1; - Pose3D pose = 2; - } -} - -message MoveL{ - - message Request{ - CommandHeader.Request header = 1; - string ee_link = 2; //连杆名称 - Pose3D targetPose = 3; - double vel = 4; - double acc = 5; - } - - message Response{ - CommandHeader.Feedback header= 1; - } - -} - -message SpeedJ{ - - message Request{ - CommandHeader.Request header = 1; - string joint_name = 2; - double vel = 3; - double acc = 4; - RobotJointIndexDirection dir = 5; - } - - message Response{ - CommandHeader.Feedback header= 1; - } -} - -message SpeedL{ - message Request{ - CommandHeader.Request header = 1; - string ee_link = 2; - double vel = 3; - double acc = 4; - RobotJointIndexDirection dir = 5; - RobotCartesian cart = 6; - } - - message Response{ - CommandHeader.Feedback header= 1; - } -} - -// 关节状态消息 -message JointState { - repeated string name = 1; // 关节名称 - repeated double position = 2; // 关节位置 - repeated double velocity = 3; // 可选:关节速度 - repeated double effort = 4; // 可选:关节力矩 - double timestamp = 5; // 可选:时间戳 -} - -// 返回消息 -message JointResponse { - CommandHeader.Feedback header= 1; - repeated JointState state = 2; -} - -// 请求消息(可选) -message JointRequest { - CommandHeader.Request header = 1; -} - - -message CalibrateZeroQ { - message Request{ - CommandHeader.Request header = 1; - string joint_name = 2; - } - - message Response{ - CommandHeader.Feedback header= 1; - } -} - - -message ServoJ{ - message Request{ - CommandHeader.Request header = 1; - repeated JointCmd cmds = 2; - double vel = 3; - } - - message Response{ - CommandHeader.Feedback header= 1; - } - -} - - - -// 获取当前位姿的4x4矩阵 -message GetPoseMatrix { - message Request { - CommandHeader.Request header = 1; - string base_link = 2; // 基坐标系 - string ee_link = 3; // 末端连杆名称 - } - - message Response { - CommandHeader.Feedback header = 1; - TransformMatrix4x4 matrix = 2; // 4x4 位姿矩阵 - } -} - -// 根据关节角度计算正运动学位姿矩阵 -message ComputeForwardKinematics { - message Request { - CommandHeader.Request header = 1; - string base_link = 2; // 基坐标系 - string ee_link = 3; // 末端连杆名称 - repeated JointCmd joints = 4; // 关节角度 - } - - message Response { - CommandHeader.Feedback header = 1; - TransformMatrix4x4 matrix = 2; // 计算出的4x4位姿矩阵 - } -} \ No newline at end of file diff --git a/protos/cmvr/common/geometry.proto b/protos/cmvr/common/geometry.proto new file mode 100644 index 0000000..729596f --- /dev/null +++ b/protos/cmvr/common/geometry.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package cmvr.common; + +message Vec2 { + optional double x = 1; + optional double y = 2; +} + +message Vec3 { + optional double x = 1; + optional double y = 2; + optional double z = 3; +} + +message Vec6 { + optional double x = 1; + optional double y = 2; + optional double z = 3; + optional double rx = 4; + optional double ry = 5; + optional double rz = 6; +} + +message Quat { + optional double w = 1; + optional double x = 2; + optional double y = 3; + optional double z = 4; +} + +message Euler { + optional double rx = 1; + optional double ry = 2; + optional double rz = 3; +} + +message Pose3d { + Vec3 position = 1; + Quat quaternion = 2; + Euler euler = 3; +} + +message Pose2d { + optional double x = 1; + optional double y = 2; + optional double theta = 3; +} + +message Mat3 { + optional double m00 = 1; + optional double m01 = 2; + optional double m02 = 3; + optional double m10 = 4; + optional double m11 = 5; + optional double m12 = 6; + optional double m20 = 7; + optional double m21 = 8; + optional double m22 = 9; +} + +message Mat4 { + optional double m00 = 1; + optional double m01 = 2; + optional double m02 = 3; + optional double m03 = 4; + optional double m10 = 5; + optional double m11 = 6; + optional double m12 = 7; + optional double m13 = 8; + optional double m20 = 9; + optional double m21 = 10; + optional double m22 = 11; + optional double m23 = 12; + optional double m30 = 13; + optional double m31 = 14; + optional double m32 = 15; + optional double m33 = 16; +} diff --git a/protos/cmvr/config/agv_config/agv_config.proto b/protos/cmvr/config/agv_config/agv_config.proto new file mode 100644 index 0000000..004e215 --- /dev/null +++ b/protos/cmvr/config/agv_config/agv_config.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package cmvr.config; + +message MyAgvConfig { + string id = 1; + string ip = 2; + int32 port = 3; +} + +message AGVDeviceConfig { + string id = 1; + + oneof backend { + MyAgvConfig my_agv = 10; + } +} + +message AGVConfig { + repeated AGVDeviceConfig agvs = 1; +} + +message AGVRootConfig { + AGVConfig agv = 1; +} diff --git a/protos/cmvr/config/arm_config/arm_config.proto b/protos/cmvr/config/arm_config/arm_config.proto new file mode 100644 index 0000000..787ebf9 --- /dev/null +++ b/protos/cmvr/config/arm_config/arm_config.proto @@ -0,0 +1,178 @@ +syntax = "proto3"; +package cmvr.config; + +import "cmvr/common/geometry.proto"; +import "cmvr/config/lawba_ik_config.proto"; +import "cmvr/config/pinocchio_dls_ik_config.proto"; +import "cmvr/config/pinocchio_qp_ik_config.proto"; +import "cmvr/config/srs_ik_config.proto"; + +enum ToppraPathType { + TOPPRA_PATH_TYPE_UNKNOWN = 0; + TOPPRA_PATH_TYPE_LINEAR = 1; + TOPPRA_PATH_TYPE_CUBIC_HERMITE = 2; + TOPPRA_PATH_TYPE_QUINTIC = 3; + TOPPRA_PATH_TYPE_NATURAL = 4; +} + +enum JointLimitSource { + JOINT_LIMIT_SOURCE_UNKNOWN = 0; + JOINT_LIMIT_SOURCE_URDF = 1; + JOINT_LIMIT_SOURCE_CUSTOM = 2; +} + +message MotorRobotArmBackendConfig { + string motor_system_id = 2; + int32 dof = 3; + repeated string joint_names = 4; + int32 upd_freq = 5; + int32 buffer_size = 6; + double default_vel = 7; + double default_acc = 8; + repeated string motor_group_ids = 9; +} + +message VendorRobotArmBackendConfig { + string brand = 1; + string ip = 2; + int32 port = 3; + string model = 4; + int32 dof = 5; + repeated string joint_names = 6; + string base_frame = 7; + string tool_frame = 8; +} + +message JointLimitConfig { + string joint_name = 1; + double lower = 2; + double upper = 3; + double velocity = 4; +} + +message JointLimitsConfig { + JointLimitSource source = 1; + repeated JointLimitConfig joints = 2; +} + +message QpJointLimitAvoidanceConfig { + bool enable = 1; + double margin_ratio = 2; + double gain = 3; + double max_push = 4; + double weight = 5; +} + +message CartesianVelocityQpConfig { + JointLimitsConfig joint_limits = 1; + .cmvr.common.Vec6 twist_tracking_weight = 2; + double qdot_regularization = 3; + double prev_qdot_regularization = 4; + double solver_eps = 5; + QpJointLimitAvoidanceConfig joint_limit_avoidance = 6; +} + +message SpeedLPlannerConfig { + double linear_velocity_max = 1; + double linear_acceleration_max = 2; + double linear_jerk_max = 3; + double angular_velocity_max = 4; + double angular_acceleration_max = 5; + double angular_jerk_max = 6; + repeated double joint_acceleration_max = 7; + double linear_target_replan_threshold = 8; + double angular_target_replan_threshold = 9; + double linear_reverse_cos_threshold = 10; + double linear_reverse_switch_speed_threshold = 11; + double normal_direction_deviation_deg = 12; + double mild_direction_deviation_deg = 13; + double severe_direction_deviation_deg = 14; + double linear_min_speed_ratio = 15; + CartesianVelocityQpConfig qp = 16; +} + +message CartesianVelocityControllerConfig { + double control_period_s = 1; + double stop_twist_norm = 2; + double stop_command_velocity_norm = 3; + double stop_measured_velocity_norm = 4; +} + +message ToppraJointMotionPlannerConfig { + ToppraPathType path_type = 1; + double sample_period_s = 2; + int32 grid_size = 3; + int32 high_grid_size = 4; +} + +message MoveJConfig { + oneof algorithm { + ToppraJointMotionPlannerConfig toppra_joint_motion_planner = 1; + } +} + +message MoveLPlannerConfig { + double sample_period_s = 1; + double position_gain = 2; + double rotation_gain = 3; + CartesianVelocityQpConfig qp = 4; +} + +message MoveLConfig { + oneof algorithm { + MoveLPlannerConfig pinocchio_dls_cartesian_motion_planner = 1; + MoveLPlannerConfig pinocchio_qp_cartesian_motion_planner = 2; + } +} + +message SpeedLControllerConfig { + oneof algorithm { + CartesianVelocityControllerConfig cartesian_velocity_controller = 1; + } +} + +message SpeedLConfig { + oneof algorithm { + SpeedLPlannerConfig pinocchio_dls_cartesian_motion_planner = 1; + SpeedLPlannerConfig pinocchio_qp_cartesian_motion_planner = 2; + } + + SpeedLControllerConfig speed_l_controller = 10; +} + +message ArmKinematicsConfig { + oneof algorithm { + PinocchioDlsIKConfig pinocchio_dls_ik_solver = 10; + PinocchioQpIKConfig pinocchio_qp_ik_solver = 11; + SrsIKConfig srs_ik_solver = 12; + LawbaIKConfig lawba_ik_solver = 13; + } +} + +message ArmMotionConfig { + MoveJConfig move_j = 1; + MoveLConfig move_l = 2; + reserved 3; + SpeedLConfig speed_l = 4; +} + +message RobotArmConfig { + string id = 1; + reserved 2; + + oneof backend { + MotorRobotArmBackendConfig motor = 10; + VendorRobotArmBackendConfig vendor = 11; + } + + ArmKinematicsConfig kinematics = 20; + ArmMotionConfig motion = 21; +} + +message ArmConfig { + repeated RobotArmConfig robot_arms = 1; +} + +message ArmRootConfig { + ArmConfig arm = 1; +} diff --git a/protos/cmvr/config/aubo_robot_config/aubo_robot_config.proto b/protos/cmvr/config/aubo_robot_config/aubo_robot_config.proto new file mode 100644 index 0000000..4cc6b0e --- /dev/null +++ b/protos/cmvr/config/aubo_robot_config/aubo_robot_config.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package cmvr.config; + +message AuboRobotConfig { + string id = 1; + string ip = 2; + int32 port = 3; + string username = 4; + string password = 5; +} diff --git a/protos/cmvr/config/biohead_config/biohead_config.proto b/protos/cmvr/config/biohead_config/biohead_config.proto new file mode 100644 index 0000000..543a96e --- /dev/null +++ b/protos/cmvr/config/biohead_config/biohead_config.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; +package cmvr.config; + +message BioHeadServoGroupConfig { + string name = 1; + int32 address = 2; + int32 channel_start = 3; + int32 channel_end = 4; + repeated double offset = 5; + repeated double min_angles = 6; + repeated double max_angles = 7; +} + +message BioHeadRobotConfig { + string id = 1; + string serial_port = 2; + int32 baud_rate = 3; + repeated BioHeadServoGroupConfig servo_groups = 4; +} +message BioHeadRobotRootConfig { + BioHeadRobotConfig bio_head = 1; +} + diff --git a/protos/cmvr/config/camera_config/camera_config.proto b/protos/cmvr/config/camera_config/camera_config.proto index 602337f..153a7ec 100644 --- a/protos/cmvr/config/camera_config/camera_config.proto +++ b/protos/cmvr/config/camera_config/camera_config.proto @@ -21,6 +21,8 @@ enum AlignMode { // RealSense摄像头 message RealSenseCameraConfig { + reserved 12; + string id = 1; string serialNumber = 2; int32 width = 3; @@ -32,13 +34,14 @@ message RealSenseCameraConfig { AlignMode align_mode = 9; int32 buffer_size = 10; bool sync = 11; - bool enable = 12; int32 encode_width = 13; int32 encode_height = 14; } // UVC摄像头 message UVCCameraConfig { + reserved 10; + string id = 1; string usb = 2; // 或者叫 device_path int32 width = 3; @@ -48,13 +51,35 @@ message UVCCameraConfig { CameraMode camera_mode = 7; StreamMode stream_mode = 8; int32 buffer_size = 9; - bool enable = 10; int32 encode_width = 11; int32 encode_height = 12; } -// 主配置消息 - 统一管理所有摄像头 -message CameraConfig { - repeated UVCCameraConfig uvc_cameras = 1; - repeated RealSenseCameraConfig realsense_cameras = 2; +// MechMind工业相机 +message MechMindCameraConfig { + reserved 5; + + string id = 1; + string ip = 2; + optional bool align = 3; + string image2d_type = 4; +} + +message CameraDeviceConfig { + string id = 1; + reserved 2; + + oneof backend { + UVCCameraConfig uvc = 10; + RealSenseCameraConfig realsense = 11; + MechMindCameraConfig mechmind = 12; + } +} + +message CameraConfig { + repeated CameraDeviceConfig cameras = 1; +} + +message CameraRootConfig { + CameraConfig camera = 1; } diff --git a/protos/cmvr/config/cmvr_es_config/cmvr_es_config.proto b/protos/cmvr/config/cmvr_es_config/cmvr_es_config.proto new file mode 100644 index 0000000..ea54076 --- /dev/null +++ b/protos/cmvr/config/cmvr_es_config/cmvr_es_config.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package cmvr.config; + +message CMVRESConfig { + reserved 3, 5; + + string logger_config_file = 1; + string device_manager_config_file = 2; + string task_manager_config_file = 4; + string grpc_server_config_file = 6; +} +message CMVRESRootConfig { + CMVRESConfig cmvr_es = 1; +} diff --git a/protos/cmvr/config/device_manager_config/device_manager_config.proto b/protos/cmvr/config/device_manager_config/device_manager_config.proto new file mode 100644 index 0000000..21a3674 --- /dev/null +++ b/protos/cmvr/config/device_manager_config/device_manager_config.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; +package cmvr.config; + +message DeviceConfigEntry { + enum DeviceType { + reserved 1, 2, 3, 4, 5, 6, 7, 10, 11; + reserved "DEVICE_TYPE_UVC_CAMERA", "DEVICE_TYPE_REALSENSE_CAMERA", + "DEVICE_TYPE_RH56DFTP_DEXHAND", "DEVICE_TYPE_PX6AX_GEN3", + "DEVICE_TYPE_FFMPEG_MICROPHONE", "DEVICE_TYPE_FFMPEG_SPEAKER", + "DEVICE_TYPE_HUMANOID_ROBOT", "DEVICE_TYPE_MOTOR_ARM", + "DEVICE_TYPE_CARTESIAN_ARM"; + + DEVICE_TYPE_UNKNOWN = 0; + DEVICE_TYPE_BIO_HEAD_ROBOT = 8; + DEVICE_TYPE_MOTOR_SYSTEM = 9; + DEVICE_TYPE_ROBOT_ARM = 12; + DEVICE_TYPE_CAMERA = 13; + DEVICE_TYPE_DEXHAND = 14; + DEVICE_TYPE_MICROPHONE = 15; + DEVICE_TYPE_SPEAKER = 16; + DEVICE_TYPE_AGV = 17; + } + + string id = 1; + DeviceType type = 2; + string config_file = 3; + bool enable = 4; +} + +message DeviceManagerConfig { + string name = 1; + string version = 2; + string description = 3; + repeated DeviceConfigEntry devices = 4; +} +message DeviceManagerRootConfig { + DeviceManagerConfig device_manager = 1; +} diff --git a/protos/cmvr/config/dexhand_config/dexhand_config.proto b/protos/cmvr/config/dexhand_config/dexhand_config.proto index 8502021..b822f3f 100644 --- a/protos/cmvr/config/dexhand_config/dexhand_config.proto +++ b/protos/cmvr/config/dexhand_config/dexhand_config.proto @@ -2,14 +2,58 @@ syntax = "proto3"; package cmvr.config; message RH56DFTPDexHandConfig{ + reserved 4; + string id = 1; string ip = 2; int32 port = 3; - bool enable = 4; + int32 poll_interval_ms = 5; +} + +enum PX6AXGen3PollingReadMode { + PX_6AX_GEN3_POLLING_READ_MODE_DISTRIBUTED_AND_RESULTANT_FORCE = 0; + PX_6AX_GEN3_POLLING_READ_MODE_DISTRIBUTED_FORCE = 1; + PX_6AX_GEN3_POLLING_READ_MODE_RESULTANT_FORCE = 2; +} + +message PX6AXGen3{ + reserved 10; + + string id = 1; + string serial_port = 2; + string sensor_model = 3; + int32 module_id = 4; + int32 baud_rate = 5; + int32 distributed_length = 6; + int32 resultant_length = 7; + int32 poll_interval_ms = 8; + bool auto_calibrate = 9; + int32 response_timeout_ms = 11; + int32 tactile_rows = 12; + int32 tactile_cols = 13; + int32 response_header_bytes = 14; + string tactile_finger = 15; + string tactile_region = 16; + string sensor_name = 17; + PX6AXGen3PollingReadMode polling_read_mode = 18; } +message DexHandDeviceConfig { + string id = 1; + reserved 2; + + oneof backend { + RH56DFTPDexHandConfig rh56dftp = 10; + PX6AXGen3 px_6ax_gen3 = 11; + } +} + message DexHandConfig{ - repeated RH56DFTPDexHandConfig rh56dftp_dexhands = 1; -} \ No newline at end of file + repeated DexHandDeviceConfig dexhands = 1; +} + +message DexHandRootConfig { + DexHandConfig dexhand = 1; +} diff --git a/protos/cmvr/config/grpc_server_config/grpc_server_config.proto b/protos/cmvr/config/grpc_server_config/grpc_server_config.proto new file mode 100644 index 0000000..11ad801 --- /dev/null +++ b/protos/cmvr/config/grpc_server_config/grpc_server_config.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +package cmvr.config; + +message GRPCServerConfig { + string host = 1; + string port = 2; + bool enable_reflection = 3; + string id = 4; +} +message GRPCServerRootConfig { + GRPCServerConfig grpc_server = 1; +} diff --git a/protos/cmvr/config/lawba_ik_config.proto b/protos/cmvr/config/lawba_ik_config.proto new file mode 100644 index 0000000..8cee950 --- /dev/null +++ b/protos/cmvr/config/lawba_ik_config.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package cmvr.config; + +import "cmvr/config/srs_ik_config.proto"; + +message LawbaIKConfig { + SrsIKConfig srs_config = 1; + double lambda_q = 2; + double cur_branch_cost_threshold = 3; + double opt_psi_update_alpha = 4; + double opt_psi_max_delta = 5; + double opt_psi_min = 6; + double opt_psi_eps = 7; +} diff --git a/protos/cmvr/config/logger_config/logger_config.proto b/protos/cmvr/config/logger_config/logger_config.proto new file mode 100644 index 0000000..1e6814f --- /dev/null +++ b/protos/cmvr/config/logger_config/logger_config.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; +package cmvr.config; + +enum LogLevel { + LOG_LEVEL_UNSPECIFIED = 0; + LOG_LEVEL_DEBUG = 1; + LOG_LEVEL_INFO = 2; + LOG_LEVEL_WARNING = 3; + LOG_LEVEL_ERROR = 4; + LOG_LEVEL_FATAL = 5; +} + +message LogRoute { + LogLevel level = 1; + bool terminal = 2; + bool file = 3; +} + +message LogFormat { + optional bool show_time = 1; + optional bool show_level = 2; + optional bool show_thread_id = 3; + optional bool show_source_location = 4; +} + +message LoggerConfig { + LogLevel minimum_level = 1; + repeated LogRoute routes = 2; + string directory = 3; + int32 max_file_size_mb = 4; + int32 flush_interval_seconds = 5; + LogFormat format = 6; +} + +message LoggerRootConfig { + LoggerConfig logger = 1; +} diff --git a/protos/cmvr/config/microphone_config/microphone_config.proto b/protos/cmvr/config/microphone_config/microphone_config.proto index be4451f..741d44d 100644 --- a/protos/cmvr/config/microphone_config/microphone_config.proto +++ b/protos/cmvr/config/microphone_config/microphone_config.proto @@ -2,14 +2,28 @@ syntax = "proto3"; package cmvr.config; message FFMpegMicroPhoneConfig{ + reserved 5; + string id = 1; int32 channels = 2; int32 sampleRate = 3; int32 volume = 4; - bool enable = 5; string input_device = 6; } +message MicrophoneDeviceConfig { + string id = 1; + reserved 2; + + oneof backend { + FFMpegMicroPhoneConfig ffmpeg = 10; + } +} + message MicroPhoneConfig{ - repeated FFMpegMicroPhoneConfig ffmpeg_microphones = 1; -} \ No newline at end of file + repeated MicrophoneDeviceConfig microphones = 1; +} + +message MicroPhoneRootConfig { + MicroPhoneConfig microphone = 1; +} diff --git a/protos/cmvr/config/motor_config/motor_config.proto b/protos/cmvr/config/motor_config/motor_config.proto new file mode 100644 index 0000000..f580dc5 --- /dev/null +++ b/protos/cmvr/config/motor_config/motor_config.proto @@ -0,0 +1,48 @@ +syntax = "proto3"; +package cmvr.config; + +message Ti5MotorConfig { + int32 id = 1; + string joint_name = 2; + double limit_q_lb = 3; + double limit_q_ub = 4; + double limit_qd = 5; +} + +message SocketCanConfig { + string dev_id = 1; + int32 channel_id = 2; +} + +message EtherCATConfig { + string master_id = 1; + int32 cycle_us = 2; +} + +enum MotorBusType { + MOTOR_BUS_UNKNOWN = 0; + MOTOR_BUS_CAN = 1; + MOTOR_BUS_ETHERCAT = 2; + MOTOR_BUS_MUJOCO = 3; +} + +message MotorGroupConfig { + string id = 1; + MotorBusType bus_type = 2; + string tool_frame = 3; + + oneof bus_config { + SocketCanConfig can = 10; + EtherCATConfig ethercat = 11; + } + + repeated Ti5MotorConfig motors = 20; +} + +message MotorConfig { + string id = 1; + repeated MotorGroupConfig motor_groups = 2; +} +message MotorRootConfig { + MotorConfig motor = 1; +} diff --git a/protos/cmvr/config/pinocchio_dls_ik_config.proto b/protos/cmvr/config/pinocchio_dls_ik_config.proto index e69de29..0baa855 100644 --- a/protos/cmvr/config/pinocchio_dls_ik_config.proto +++ b/protos/cmvr/config/pinocchio_dls_ik_config.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +package cmvr.config; + +message PinocchioDlsIKConfig { + string urdf_path = 1; + string base_frame_name = 2; + string flange_frame_name = 3; + string tcp_frame_name = 4; + + int32 max_iters = 5; + double pos_eps = 6; + double rot_eps = 7; + double damping = 8; + JointLimitAvoidanceConfig joint_limit_avoidance = 9; +} + +message JointLimitAvoidanceConfig { + bool enable = 1; + double gain = 2; + double margin_ratio = 3; + double max_push = 4; +} diff --git a/protos/cmvr/config/pinocchio_qp_ik_solver_config.proto b/protos/cmvr/config/pinocchio_qp_ik_config.proto similarity index 100% rename from protos/cmvr/config/pinocchio_qp_ik_solver_config.proto rename to protos/cmvr/config/pinocchio_qp_ik_config.proto diff --git a/protos/cmvr/config/speaker_config/speaker_config.proto b/protos/cmvr/config/speaker_config/speaker_config.proto new file mode 100644 index 0000000..d1505b7 --- /dev/null +++ b/protos/cmvr/config/speaker_config/speaker_config.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package cmvr.config; + +message FFMpegSpeakerConfig{ + reserved 2; + + string id = 1; +} + +message SpeakerDeviceConfig { + string id = 1; + reserved 2; + + oneof backend { + FFMpegSpeakerConfig ffmpeg = 10; + } +} + +message SpeakerConfig{ + repeated SpeakerDeviceConfig speakers = 1; +} + +message SpeakerRootConfig { + SpeakerConfig speaker = 1; +} diff --git a/protos/cmvr/config/speaker_config/speaker_conifg.proto b/protos/cmvr/config/speaker_config/speaker_conifg.proto deleted file mode 100644 index 7402b46..0000000 --- a/protos/cmvr/config/speaker_config/speaker_conifg.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; -package cmvr.config; - -message FFMpegSpeakerConfig{ - string id = 1; - bool enable = 2; -} - -message SpeakerConfig{ - repeated FFMpegSpeakerConfig ffmpeg_speakers = 1; -} \ No newline at end of file diff --git a/protos/cmvr/config/srs_ik_config.proto b/protos/cmvr/config/srs_ik_config.proto new file mode 100644 index 0000000..f21f64e --- /dev/null +++ b/protos/cmvr/config/srs_ik_config.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package cmvr.config; + +message SrsIKConfig { + double initial_psi = 1; + int32 shoulder_config = 2; + int32 elbow_config = 3; + int32 wrist_config = 4; + repeated double link_lengths = 10; + repeated double joint_lower_limits = 11; + repeated double joint_upper_limits = 12; +} diff --git a/protos/cmvr/config/task_manager_config/task_manager_config.proto b/protos/cmvr/config/task_manager_config/task_manager_config.proto new file mode 100644 index 0000000..6c13c84 --- /dev/null +++ b/protos/cmvr/config/task_manager_config/task_manager_config.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; +package cmvr.config; + +message TaskConfigEntry { + enum TaskType { + TASK_TYPE_UNKNOWN = 0; + TASK_TYPE_TOUCH_SCREEN = 1; + TASK_TYPE_GRPC_SERVER = 3; + reserved 2; + reserved "TASK_TYPE_ARM_CONTROL"; + } + + enum TaskRunMode { + TASK_RUN_MODE_UNKNOWN = 0; + TASK_RUN_MODE_PERIODIC_STEP = 1; + TASK_RUN_MODE_BLOCKING_SERVICE = 2; + } + + string id = 1; + TaskType type = 2; + string config_file = 3; + bool enable = 4; + TaskRunMode run_mode = 5; + double control_period_s = 6; +} + +message TaskManagerConfig { + repeated TaskConfigEntry tasks = 1; +} +message TaskManagerRootConfig { + TaskManagerConfig task_manager = 1; +} diff --git a/protos/cmvr/config/touch_screen_algorithm_config.proto b/protos/cmvr/config/touch_screen_algorithm_config.proto new file mode 100644 index 0000000..9a15bc0 --- /dev/null +++ b/protos/cmvr/config/touch_screen_algorithm_config.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; + +package cmvr.config; + +import "cmvr/common/geometry.proto"; +import "cmvr/config/touch_screen_common_config.proto"; + +message TouchScreenApriltagConfig { + optional double tag_size_m = 1; + optional TouchScreenDepthPolicy depth_policy = 2; + optional TouchScreenTargetPointMethod target_point_method = 3; +} + +message TouchScreenIbvsConfig { + optional string camera_link = 1; + optional double lambda = 2; + optional double mu = 3; + optional double qdot_max = 4; + .cmvr.common.Vec6 vmax6 = 5; + .cmvr.common.Vec6 amax6 = 6; + optional double twist_filter_alpha = 7; + + optional bool enable_joint_limit_avoidance = 8; + optional double joint_limit_avoidance_gain = 9; + optional double joint_limit_avoidance_margin_ratio = 10; + optional double joint_limit_avoidance_max_push = 11; + + .cmvr.common.Mat3 r_camera_to_visp = 12; + .cmvr.common.Mat3 r_camera_to_urdf = 13; + + repeated string control_joint_names = 14; +} diff --git a/protos/cmvr/config/touch_screen_app_config/touch_screen_app_config.proto b/protos/cmvr/config/touch_screen_app_config/touch_screen_app_config.proto deleted file mode 100644 index 8b8bf17..0000000 --- a/protos/cmvr/config/touch_screen_app_config/touch_screen_app_config.proto +++ /dev/null @@ -1,122 +0,0 @@ -syntax = "proto3"; - -package cmvr.config; - -message TouchScreenVec3 { - optional double x = 1; - optional double y = 2; - optional double z = 3; -} - -message TouchScreenTwist6 { - optional double vx = 1; - optional double vy = 2; - optional double vz = 3; - optional double wx = 4; - optional double wy = 5; - optional double wz = 6; -} - -message TouchScreenMatrix3d { - optional double m00 = 1; - optional double m01 = 2; - optional double m02 = 3; - optional double m10 = 4; - optional double m11 = 5; - optional double m12 = 6; - optional double m20 = 7; - optional double m21 = 8; - optional double m22 = 9; -} - -message TouchScreenInitJointPoint { - optional string joint_name = 1; - optional double rad = 2; -} - -enum TouchScreenDepthPolicy { - TOUCH_SCREEN_DEPTH_POLICY_NONE = 0; - TOUCH_SCREEN_DEPTH_POLICY_PREFER = 1; - TOUCH_SCREEN_DEPTH_POLICY_REQUIRE = 2; -} - -enum TouchScreenTargetPointMethod { - TOUCH_SCREEN_TARGET_POINT_METHOD_TAG_PLANE = 0; - TOUCH_SCREEN_TARGET_POINT_METHOD_DEPTH_IMAGE = 1; -} - -enum TouchScreenFingerType { - TOUCH_SCREEN_FINGER_TYPE_PINKY = 0; - TOUCH_SCREEN_FINGER_TYPE_RING = 1; - TOUCH_SCREEN_FINGER_TYPE_MIDDLE = 2; - TOUCH_SCREEN_FINGER_TYPE_INDEX = 3; - TOUCH_SCREEN_FINGER_TYPE_THUMB = 4; -} - -enum TouchScreenTactileRegion { - TOUCH_SCREEN_TACTILE_REGION_TIP = 0; - TOUCH_SCREEN_TACTILE_REGION_FINGER = 1; - TOUCH_SCREEN_TACTILE_REGION_PAD = 2; - TOUCH_SCREEN_TACTILE_REGION_TIP_AND_FINGER = 3; - TOUCH_SCREEN_TACTILE_REGION_THUMB_MIDDLE = 4; -} - -message TouchScreenAppConfig { - optional string robot_id = 40; - optional string dexhand_id = 41; - optional string camera_id = 42; - optional bool move_to_init_position = 43; - repeated TouchScreenInitJointPoint init_joint_positions = 44; - optional double init_movej_vel = 45; - optional double init_movej_acc = 46; - optional bool move_to_init_position_before_start = 47; - - optional string urdf_path = 1; - optional string base_link = 2; - optional string flange_link = 3; - optional string camera_link = 4; - - optional double tag_size_m = 5; - optional TouchScreenDepthPolicy depth_policy = 6; - optional TouchScreenTargetPointMethod target_point_method = 7; - - TouchScreenVec3 hover_target_in_camera = 8; - optional double target_rx = 9; - optional double target_ry = 10; - optional double target_rz = 11; - - optional double ibvs_lambda = 12; - optional double ibvs_mu = 13; - optional double ibvs_qdot_max = 14; - TouchScreenTwist6 ibvs_vmax6 = 15; - optional bool enable_joint_limit_avoidance = 16; - optional double joint_limit_avoidance_gain = 17; - optional double joint_limit_avoidance_margin_ratio = 18; - optional double joint_limit_avoidance_max_push = 19; - - TouchScreenMatrix3d r_camera_to_visp = 20; - TouchScreenMatrix3d r_camera_to_urdf = 21; - - repeated string control_joint_names = 22; - - optional double align_xy_threshold_m = 23; - optional double align_z_threshold_m = 24; - optional double align_rot_threshold_rad = 25; - optional int32 align_stable_frames = 26; - optional double align_timeout_s = 27; - optional bool pause_after_align_reached = 28; - - TouchScreenTwist6 touch_twist_base = 29; - optional double touch_acceleration = 30; - optional double touch_forward_duration_s = 31; - - optional double dwell_time_s = 32; - TouchScreenTwist6 retract_twist_base = 33; - optional double retract_acceleration = 34; - optional double retract_duration_s = 35; - - optional TouchScreenFingerType tactile_finger = 36; - optional TouchScreenTactileRegion tactile_region = 37; - optional double tactile_pressure_sum_threshold = 38; - optional double tactile_pressure_peak_threshold = 39; -} diff --git a/protos/cmvr/config/touch_screen_common_config.proto b/protos/cmvr/config/touch_screen_common_config.proto new file mode 100644 index 0000000..b6dc8b2 --- /dev/null +++ b/protos/cmvr/config/touch_screen_common_config.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; + +package cmvr.config; + +enum TouchScreenDepthPolicy { + TOUCH_SCREEN_DEPTH_POLICY_NONE = 0; + TOUCH_SCREEN_DEPTH_POLICY_PREFER = 1; + TOUCH_SCREEN_DEPTH_POLICY_REQUIRE = 2; +} + +enum TouchScreenTargetPointMethod { + TOUCH_SCREEN_TARGET_POINT_METHOD_TAG_PLANE = 0; + TOUCH_SCREEN_TARGET_POINT_METHOD_DEPTH_IMAGE = 1; +} + +enum TouchScreenFingerType { + TOUCH_SCREEN_FINGER_TYPE_PINKY = 0; + TOUCH_SCREEN_FINGER_TYPE_RING = 1; + TOUCH_SCREEN_FINGER_TYPE_MIDDLE = 2; + TOUCH_SCREEN_FINGER_TYPE_INDEX = 3; + TOUCH_SCREEN_FINGER_TYPE_THUMB = 4; +} + +enum TouchScreenTactileRegion { + TOUCH_SCREEN_TACTILE_REGION_TIP = 0; + TOUCH_SCREEN_TACTILE_REGION_FINGER = 1; + TOUCH_SCREEN_TACTILE_REGION_PAD = 2; + TOUCH_SCREEN_TACTILE_REGION_THUMB_MIDDLE = 4; +} + +enum TouchScreenTactileCriterion { + TOUCH_SCREEN_TACTILE_CRITERION_FZ = 0; + TOUCH_SCREEN_TACTILE_CRITERION_MAGNITUDE = 1; +} + +enum TouchScreenAlignMode { + TOUCH_SCREEN_ALIGN_MODE_POSE_AND_POSITION = 0; + TOUCH_SCREEN_ALIGN_MODE_RX_RY_AND_POSITION = 1; + TOUCH_SCREEN_ALIGN_MODE_POSITION_ONLY = 2; +} diff --git a/protos/cmvr/config/touch_screen_task_config/touch_screen_task_config.proto b/protos/cmvr/config/touch_screen_task_config/touch_screen_task_config.proto new file mode 100644 index 0000000..c48681a --- /dev/null +++ b/protos/cmvr/config/touch_screen_task_config/touch_screen_task_config.proto @@ -0,0 +1,102 @@ +syntax = "proto3"; + +package cmvr.config; + +import "cmvr/common/geometry.proto"; +import "cmvr/config/touch_screen_common_config.proto"; +import "cmvr/config/touch_screen_algorithm_config.proto"; + +message TouchScreenInitJointPoint { + optional string joint_name = 1; + optional double rad = 2; +} + +message TouchScreenTaskDevicesConfig { + reserved 1; + reserved "robot_id"; + + optional string arm_id = 4; + optional string dexhand_id = 2; + optional string camera_id = 3; +} + +message TouchScreenTaskInitializationConfig { + optional bool before_start = 1; + optional bool after_finish = 2; + repeated TouchScreenInitJointPoint joint_positions = 3; + optional double velocity = 4; + optional double acceleration = 5; +} + +message TouchScreenTaskPerceptionConfig { + TouchScreenApriltagConfig apriltag = 1; +} + +message TouchScreenAlignmentTargetConfig { + .cmvr.common.Vec3 position_in_camera = 1; + .cmvr.common.Vec3 rotation_vector = 2; + optional TouchScreenAlignMode mode = 3; +} + +message TouchScreenTaskAlignmentConfig { + reserved 1; + reserved "kinematics"; + TouchScreenIbvsConfig ibvs = 2; + TouchScreenAlignmentTargetConfig target = 3; + .cmvr.common.Vec6 error_threshold = 4; + optional int32 stable_frames = 5; + optional double timeout_s = 6; + optional bool pause_when_reached = 7; +} + +message TouchScreenTouchSpeedLConfig { + .cmvr.common.Vec6 twist_tool = 1; + optional double acceleration = 2; + optional double max_distance_m = 3; +} + +message TouchScreenTouchMoveLConfig { + .cmvr.common.Vec6 direction_tool = 1; + optional double distance_m = 2; + optional double velocity = 3; + optional double acceleration = 4; + optional double jerk = 5; + repeated double joint_velocity_limits = 6; +} + +message TouchScreenTactileTriggerConfig { + optional TouchScreenFingerType finger = 1; + optional TouchScreenTactileRegion region = 2; + optional TouchScreenTactileCriterion criterion = 3; + optional double force_threshold = 4; +} + +message TouchScreenTaskTouchConfig { + oneof motion { + TouchScreenTouchSpeedLConfig speed_l = 1; + TouchScreenTouchMoveLConfig move_l = 2; + } + + TouchScreenTactileTriggerConfig tactile = 3; + optional double dwell_time_s = 4; +} + +message TouchScreenTaskRetractConfig { + .cmvr.common.Vec6 twist_tool = 1; + optional double acceleration = 2; + optional double duration_s = 3; +} + +message TouchScreenTaskConfig { + TouchScreenTaskDevicesConfig devices = 1; + TouchScreenTaskInitializationConfig initialization = 2; + TouchScreenTaskPerceptionConfig perception = 3; + TouchScreenTaskAlignmentConfig alignment = 4; + TouchScreenTaskTouchConfig touch = 5; + TouchScreenTaskRetractConfig retract = 6; + optional string id = 7; +} + +message TouchScreenTaskRootConfig { + TouchScreenTaskConfig touch_screen_task = 1; +} diff --git a/protos/cmvr/msgs/geometry.proto b/protos/cmvr/msgs/geometry.proto deleted file mode 100644 index dca7663..0000000 --- a/protos/cmvr/msgs/geometry.proto +++ /dev/null @@ -1,51 +0,0 @@ -syntax = "proto3"; - -package cmvr.msgs; - - -message Vec2 { - double x = 1; - double y = 2; -} - -message Vec3 { - double x = 1; - double y = 2; - double z = 3; -} - -// ===== 四元数 ===== -message Quat { - double w = 1; - double x = 2; - double y = 3; - double z = 4; -} - -// ===== 位置(3D)===== -message Position { - double x = 1; // unit: m - double y = 2; - double z = 3; -} - -// ===== 欧拉角 ===== -message Euler { - double rx = 1; // unit: rad (roll) - double ry = 2; // unit: rad (pitch) - double rz = 3; // unit: rad (yaw) -} - -// ===== 位姿(3D)===== -message Pose3d { - Position position = 1; // (m) - Quat quaternion = 2; // 四元数 - Euler euler = 3; // 欧拉角 (rad) -} - -// ===== 位姿(2D)===== -message Pose2d { - double x = 1; // (m) - double y = 2; // (m) - double theta = 3; // (rad) -} diff --git a/ui/__pycache__/__init__.cpython-39.pyc b/ui/__pycache__/__init__.cpython-39.pyc index d6bc60f6dc95fd945efc1fd6c90dfb922d0c736e..82f8f387e3232ed94a4ddfb9a081b5666883cff5 100644 GIT binary patch delta 68 zcmeBVoWRJN$ji&c00g(at+Ny-@>*$|>SyHVrt0UUm+2?xmKEt6=$7XfWfvDDCa3DB W7ZoJOC+B3Q=9TD|X6jGOmIDBbqZM-i delta 88 zcmbQh*vZJ7$ji&c00b#wJ2RCg@>)6Rxmd*{=av=480ePg7iAYG79^*}q!$$=$0z4x nrskEzlxD`n$7kkcmc+;F6;$5hu*uC&Da}c>V+5M=8DtayljR#{ diff --git a/ui/__pycache__/app.cpython-313.pyc b/ui/__pycache__/app.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..628103de0fa6576f79b8d47aed222141a9aa2974 GIT binary patch literal 48863 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 F{6FM5luG~r delta 7827 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 diff --git a/ui/__pycache__/camera_page.cpython-39.pyc b/ui/__pycache__/camera_page.cpython-39.pyc index d72dbbe1a6004f7fe5948054776cc7e3cf2e6682..c4575eda8c54223126efc3e542cd04a290852669 100644 GIT binary patch delta 70 zcmbPLzp$Psk(ZZ?0SIn;TW4+L*~_eLp`VeTo2s9aUZ$U%TUMlRpj)0_lwDkqn4GGg YUR01ApPZAKnpdJ^nu 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 diff --git a/ui/app.py b/ui/app.py index 4ba59c3..9a0f8d0 100644 --- a/ui/app.py +++ b/ui/app.py @@ -19,8 +19,8 @@ from ui.camera_page import CameraPage from ui.plot_page import PlotPage from ui.rgb_image_page import RGBImagePage -from cmvr.api import humanoid_robot_command_pb2 as pb -from cmvr.api import humanoid_robot_service_pb2_grpc as rpc +from cmvr.api import arm_command_pb2 as pb +from cmvr.api import arm_service_pb2_grpc as rpc DEFAULT_JOINT_ORDER = [ "L_SHOULDER_P", "L_SHOULDER_R", "L_SHOULDER_Y", @@ -61,7 +61,7 @@ class JointStateWorker(QtCore.QThread): def run(self) -> None: try: self._channel = grpc.insecure_channel(self.address) - stub = rpc.HumanoidRobotServiceStub(self._channel) + stub = rpc.ArmServiceStub(self._channel) except Exception as exc: self.log.emit(f"[error] connect failed: {exc}") return @@ -81,10 +81,10 @@ class JointStateWorker(QtCore.QThread): joint_pos: Dict[str, float] = {} joint_vel: Dict[str, float] = {} - for state in resp.state: - for name, pos, vel in zip(state.name, state.position, state.velocity): - joint_pos[name] = pos - joint_vel[name] = vel + state = resp.state + for name, pos, vel in zip(state.name, state.position, state.velocity): + joint_pos[name] = pos + joint_vel[name] = vel payload: Dict[str, Tuple[float, float]] = {} for name in self.joint_names: @@ -125,7 +125,7 @@ class PoseWorker(QtCore.QThread): def run(self) -> None: try: self._channel = grpc.insecure_channel(self.address) - stub = rpc.HumanoidRobotServiceStub(self._channel) + stub = rpc.ArmServiceStub(self._channel) except Exception as exc: self.log.emit(f"[error] connect failed: {exc}") return @@ -354,7 +354,7 @@ class MainWindow(QtWidgets.QMainWindow): self.port_edit = QtWidgets.QSpinBox() self.port_edit.setRange(1, 65535) self.port_edit.setValue(50052) - self.device_edit = QtWidgets.QLineEdit("hc01") + self.device_edit = QtWidgets.QLineEdit("right_arm") self.interval_edit = QtWidgets.QDoubleSpinBox() self.interval_edit.setDecimals(3) self.interval_edit.setRange(0.001, 10.0) diff --git a/ui/run_action.py b/ui/run_action.py index ce738d5..ed7a80e 100644 --- a/ui/run_action.py +++ b/ui/run_action.py @@ -15,7 +15,7 @@ def parse_args() -> argparse.Namespace: ) parser.add_argument("--host", default="192.168.0.222", help="gRPC server host") parser.add_argument("--port", type=int, default=50052, help="gRPC server port") - parser.add_argument("--device-id", default="hc01", help="Device ID") + parser.add_argument("--device-id", default="right_arm", help="Device ID") parser.add_argument("--interval", type=float, default=0.05, help="Interval seconds") parser.add_argument("--base-link", default="PELVIS_S", help="Base link for pose") parser.add_argument("--ee-link", default="R_FINGER_TIP", help="End-effector link for pose")