solve dependencies problem
This commit is contained in:
5
data_gen_dependencies/aimdk/protocol/hal/CMakeLists.txt
Normal file
5
data_gen_dependencies/aimdk/protocol/hal/CMakeLists.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
# -------------------------------------------------------------
|
||||
# Protocol: aimdk::protocol::hand
|
||||
# -------------------------------------------------------------
|
||||
|
||||
aimrte_protocol(DEPEND aimdk::protocol::common ROS2_DEPEND std_msgs sensor_msgs)
|
||||
20
data_gen_dependencies/aimdk/protocol/hal/hand/agi_claw.proto
Normal file
20
data_gen_dependencies/aimdk/protocol/hal/hand/agi_claw.proto
Normal file
@@ -0,0 +1,20 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
|
||||
// 夹爪手部命令
|
||||
message AgiClawHandCommand {
|
||||
uint32 cmd = 1;
|
||||
uint32 pos = 2;
|
||||
uint32 force = 3;
|
||||
uint32 clamp_method = 4;
|
||||
uint32 finger_pos = 5;
|
||||
}
|
||||
|
||||
// 夹爪手部状态
|
||||
message AgiClawHandState {
|
||||
uint32 state = 1;
|
||||
uint32 pos = 2;
|
||||
uint32 temperature = 3;
|
||||
uint32 finger_pos = 4;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: aimdk/protocol/hal/hand/agi_claw.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&aimdk/protocol/hal/hand/agi_claw.proto\x12\x0e\x61imdk.protocol\"g\n\x12\x41giClawHandCommand\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\x0b\n\x03pos\x18\x02 \x01(\r\x12\r\n\x05\x66orce\x18\x03 \x01(\r\x12\x14\n\x0c\x63lamp_method\x18\x04 \x01(\r\x12\x12\n\nfinger_pos\x18\x05 \x01(\r\"W\n\x10\x41giClawHandState\x12\r\n\x05state\x18\x01 \x01(\r\x12\x0b\n\x03pos\x18\x02 \x01(\r\x12\x13\n\x0btemperature\x18\x03 \x01(\r\x12\x12\n\nfinger_pos\x18\x04 \x01(\rb\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aimdk.protocol.hal.hand.agi_claw_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_AGICLAWHANDCOMMAND']._serialized_start=58
|
||||
_globals['_AGICLAWHANDCOMMAND']._serialized_end=161
|
||||
_globals['_AGICLAWHANDSTATE']._serialized_start=163
|
||||
_globals['_AGICLAWHANDSTATE']._serialized_end=250
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
@@ -0,0 +1,25 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
import public "aimdk/protocol/common/rpc.proto";
|
||||
import public "aimdk/protocol/common/header.proto";
|
||||
import public "aimdk/protocol/hal/hand/hand.proto";
|
||||
|
||||
|
||||
// 获取机器人手部状态响应
|
||||
message HandStateResponse {
|
||||
ResponseHeader header = 1; // 响应头
|
||||
HandState data = 2; // 手部状态
|
||||
}
|
||||
|
||||
// 设置机器人手部控制请求
|
||||
message HandCommandRequest {
|
||||
RequestHeader header = 1; // 请求头
|
||||
HandCommand data = 2; // 手部控制
|
||||
}
|
||||
|
||||
// HandService
|
||||
service HalHandService {
|
||||
rpc GetHandState(CommonRequest) returns (HandStateResponse);
|
||||
rpc SetHandCommand(HandCommandRequest) returns (CommonResponse);
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: aimdk/protocol/hal/hand/hal_hand_service.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from aimdk.protocol.common import rpc_pb2 as aimdk_dot_protocol_dot_common_dot_rpc__pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_common_dot_timestamp__pb2 = aimdk_dot_protocol_dot_common_dot_rpc__pb2.aimdk_dot_protocol_dot_common_dot_timestamp__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_common_dot_timestamp__pb2 = aimdk_dot_protocol_dot_common_dot_rpc__pb2.aimdk.protocol.common.timestamp_pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_common_dot_header__pb2 = aimdk_dot_protocol_dot_common_dot_rpc__pb2.aimdk_dot_protocol_dot_common_dot_header__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_common_dot_header__pb2 = aimdk_dot_protocol_dot_common_dot_rpc__pb2.aimdk.protocol.common.header_pb2
|
||||
from aimdk.protocol.common import header_pb2 as aimdk_dot_protocol_dot_common_dot_header__pb2
|
||||
from aimdk.protocol.hal.hand import hand_pb2 as aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_common_dot_header__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk_dot_protocol_dot_common_dot_header__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_common_dot_header__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk.protocol.common.header_pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_inspire__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk_dot_protocol_dot_hal_dot_hand_dot_inspire__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_inspire__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk.protocol.hal.hand.inspire_pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_jodell__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk_dot_protocol_dot_hal_dot_hand_dot_jodell__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_jodell__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk.protocol.hal.hand.jodell_pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_agi__claw__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk_dot_protocol_dot_hal_dot_hand_dot_agi__claw__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_agi__claw__pb2 = aimdk_dot_protocol_dot_hal_dot_hand_dot_hand__pb2.aimdk.protocol.hal.hand.agi_claw_pb2
|
||||
|
||||
from aimdk.protocol.common.rpc_pb2 import *
|
||||
from aimdk.protocol.common.header_pb2 import *
|
||||
from aimdk.protocol.hal.hand.hand_pb2 import *
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.aimdk/protocol/hal/hand/hal_hand_service.proto\x12\x0e\x61imdk.protocol\x1a\x1f\x61imdk/protocol/common/rpc.proto\x1a\"aimdk/protocol/common/header.proto\x1a\"aimdk/protocol/hal/hand/hand.proto\"l\n\x11HandStateResponse\x12.\n\x06header\x18\x01 \x01(\x0b\x32\x1e.aimdk.protocol.ResponseHeader\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.aimdk.protocol.HandState\"n\n\x12HandCommandRequest\x12-\n\x06header\x18\x01 \x01(\x0b\x32\x1d.aimdk.protocol.RequestHeader\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.aimdk.protocol.HandCommand2\xb8\x01\n\x0eHalHandService\x12P\n\x0cGetHandState\x12\x1d.aimdk.protocol.CommonRequest\x1a!.aimdk.protocol.HandStateResponse\x12T\n\x0eSetHandCommand\x12\".aimdk.protocol.HandCommandRequest\x1a\x1e.aimdk.protocol.CommonResponseP\x00P\x01P\x02\x62\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aimdk.protocol.hal.hand.hal_hand_service_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_HANDSTATERESPONSE']._serialized_start=171
|
||||
_globals['_HANDSTATERESPONSE']._serialized_end=279
|
||||
_globals['_HANDCOMMANDREQUEST']._serialized_start=281
|
||||
_globals['_HANDCOMMANDREQUEST']._serialized_end=391
|
||||
_globals['_HALHANDSERVICE']._serialized_start=394
|
||||
_globals['_HALHANDSERVICE']._serialized_end=578
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
@@ -0,0 +1,103 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
"""Client and server classes corresponding to protobuf-defined services."""
|
||||
import grpc
|
||||
|
||||
from aimdk.protocol.common import rpc_pb2 as aimdk_dot_protocol_dot_common_dot_rpc__pb2
|
||||
from aimdk.protocol.hal.hand import hal_hand_service_pb2 as aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2
|
||||
|
||||
|
||||
class HalHandServiceStub(object):
|
||||
"""HandService
|
||||
"""
|
||||
|
||||
def __init__(self, channel):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
channel: A grpc.Channel.
|
||||
"""
|
||||
self.GetHandState = channel.unary_unary(
|
||||
'/aimdk.protocol.HalHandService/GetHandState',
|
||||
request_serializer=aimdk_dot_protocol_dot_common_dot_rpc__pb2.CommonRequest.SerializeToString,
|
||||
response_deserializer=aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2.HandStateResponse.FromString,
|
||||
)
|
||||
self.SetHandCommand = channel.unary_unary(
|
||||
'/aimdk.protocol.HalHandService/SetHandCommand',
|
||||
request_serializer=aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2.HandCommandRequest.SerializeToString,
|
||||
response_deserializer=aimdk_dot_protocol_dot_common_dot_rpc__pb2.CommonResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
class HalHandServiceServicer(object):
|
||||
"""HandService
|
||||
"""
|
||||
|
||||
def GetHandState(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 SetHandCommand(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 add_HalHandServiceServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
'GetHandState': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetHandState,
|
||||
request_deserializer=aimdk_dot_protocol_dot_common_dot_rpc__pb2.CommonRequest.FromString,
|
||||
response_serializer=aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2.HandStateResponse.SerializeToString,
|
||||
),
|
||||
'SetHandCommand': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.SetHandCommand,
|
||||
request_deserializer=aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2.HandCommandRequest.FromString,
|
||||
response_serializer=aimdk_dot_protocol_dot_common_dot_rpc__pb2.CommonResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'aimdk.protocol.HalHandService', rpc_method_handlers)
|
||||
server.add_generic_rpc_handlers((generic_handler,))
|
||||
|
||||
|
||||
# This class is part of an EXPERIMENTAL API.
|
||||
class HalHandService(object):
|
||||
"""HandService
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def GetHandState(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, '/aimdk.protocol.HalHandService/GetHandState',
|
||||
aimdk_dot_protocol_dot_common_dot_rpc__pb2.CommonRequest.SerializeToString,
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2.HandStateResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def SetHandCommand(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, '/aimdk.protocol.HalHandService/SetHandCommand',
|
||||
aimdk_dot_protocol_dot_hal_dot_hand_dot_hal__hand__service__pb2.HandCommandRequest.SerializeToString,
|
||||
aimdk_dot_protocol_dot_common_dot_rpc__pb2.CommonResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
35
data_gen_dependencies/aimdk/protocol/hal/hand/hand.proto
Normal file
35
data_gen_dependencies/aimdk/protocol/hal/hand/hand.proto
Normal file
@@ -0,0 +1,35 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
import public "aimdk/protocol/common/header.proto";
|
||||
import public "aimdk/protocol/hal/hand/inspire.proto";
|
||||
import public "aimdk/protocol/hal/hand/jodell.proto";
|
||||
import public "aimdk/protocol/hal/hand/agi_claw.proto";
|
||||
|
||||
|
||||
message SingleHandState {
|
||||
oneof hand {
|
||||
InspireHand inspire = 1; // 因时手
|
||||
ClawHand claw = 2; // jodell夹爪手
|
||||
AgiClawHandState agi_claw_state = 3; // agi自研夹爪状态
|
||||
}
|
||||
}
|
||||
|
||||
message SingleHandCommand {
|
||||
oneof hand {
|
||||
InspireHand inspire = 1; // 因时手
|
||||
ClawHand claw = 2; // jodell夹爪手
|
||||
AgiClawHandCommand agi_claw_cmd = 3; // agi自研夹爪命令
|
||||
}
|
||||
}
|
||||
|
||||
message HandState {
|
||||
SingleHandState left = 2; // 左手状态
|
||||
SingleHandState right = 3; // 右手状态
|
||||
}
|
||||
|
||||
message HandCommand {
|
||||
SingleHandCommand left = 2; // 左手指令
|
||||
SingleHandCommand right = 3; // 右手指令
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
import public "aimdk/protocol/common/header.proto";
|
||||
import public "aimdk/protocol/hal/hand/hand.proto";
|
||||
|
||||
|
||||
// 机器人手部状态
|
||||
message HandStateChannel {
|
||||
Header header = 1; // 消息头
|
||||
HandState data = 2; // 手部状态
|
||||
}
|
||||
|
||||
// 机器人手部指令
|
||||
message HandCommandChannel {
|
||||
Header header = 1; // 消息头
|
||||
HandCommand data = 2; // 手部指令
|
||||
}
|
||||
40
data_gen_dependencies/aimdk/protocol/hal/hand/hand_pb2.py
Normal file
40
data_gen_dependencies/aimdk/protocol/hal/hand/hand_pb2.py
Normal file
@@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: aimdk/protocol/hal/hand/hand.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from aimdk.protocol.common import header_pb2 as aimdk_dot_protocol_dot_common_dot_header__pb2
|
||||
from aimdk.protocol.hal.hand import inspire_pb2 as aimdk_dot_protocol_dot_hal_dot_hand_dot_inspire__pb2
|
||||
from aimdk.protocol.hal.hand import jodell_pb2 as aimdk_dot_protocol_dot_hal_dot_hand_dot_jodell__pb2
|
||||
from aimdk.protocol.hal.hand import agi_claw_pb2 as aimdk_dot_protocol_dot_hal_dot_hand_dot_agi__claw__pb2
|
||||
|
||||
from aimdk.protocol.common.header_pb2 import *
|
||||
from aimdk.protocol.hal.hand.inspire_pb2 import *
|
||||
from aimdk.protocol.hal.hand.jodell_pb2 import *
|
||||
from aimdk.protocol.hal.hand.agi_claw_pb2 import *
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"aimdk/protocol/hal/hand/hand.proto\x12\x0e\x61imdk.protocol\x1a\"aimdk/protocol/common/header.proto\x1a%aimdk/protocol/hal/hand/inspire.proto\x1a$aimdk/protocol/hal/hand/jodell.proto\x1a&aimdk/protocol/hal/hand/agi_claw.proto\"\xaf\x01\n\x0fSingleHandState\x12.\n\x07inspire\x18\x01 \x01(\x0b\x32\x1b.aimdk.protocol.InspireHandH\x00\x12(\n\x04\x63law\x18\x02 \x01(\x0b\x32\x18.aimdk.protocol.ClawHandH\x00\x12:\n\x0e\x61gi_claw_state\x18\x03 \x01(\x0b\x32 .aimdk.protocol.AgiClawHandStateH\x00\x42\x06\n\x04hand\"\xb1\x01\n\x11SingleHandCommand\x12.\n\x07inspire\x18\x01 \x01(\x0b\x32\x1b.aimdk.protocol.InspireHandH\x00\x12(\n\x04\x63law\x18\x02 \x01(\x0b\x32\x18.aimdk.protocol.ClawHandH\x00\x12:\n\x0c\x61gi_claw_cmd\x18\x03 \x01(\x0b\x32\".aimdk.protocol.AgiClawHandCommandH\x00\x42\x06\n\x04hand\"j\n\tHandState\x12-\n\x04left\x18\x02 \x01(\x0b\x32\x1f.aimdk.protocol.SingleHandState\x12.\n\x05right\x18\x03 \x01(\x0b\x32\x1f.aimdk.protocol.SingleHandState\"p\n\x0bHandCommand\x12/\n\x04left\x18\x02 \x01(\x0b\x32!.aimdk.protocol.SingleHandCommand\x12\x30\n\x05right\x18\x03 \x01(\x0b\x32!.aimdk.protocol.SingleHandCommandP\x00P\x01P\x02P\x03\x62\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aimdk.protocol.hal.hand.hand_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_SINGLEHANDSTATE']._serialized_start=208
|
||||
_globals['_SINGLEHANDSTATE']._serialized_end=383
|
||||
_globals['_SINGLEHANDCOMMAND']._serialized_start=386
|
||||
_globals['_SINGLEHANDCOMMAND']._serialized_end=563
|
||||
_globals['_HANDSTATE']._serialized_start=565
|
||||
_globals['_HANDSTATE']._serialized_end=671
|
||||
_globals['_HANDCOMMAND']._serialized_start=673
|
||||
_globals['_HANDCOMMAND']._serialized_end=785
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
25
data_gen_dependencies/aimdk/protocol/hal/hand/inspire.proto
Normal file
25
data_gen_dependencies/aimdk/protocol/hal/hand/inspire.proto
Normal file
@@ -0,0 +1,25 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
|
||||
// 手指
|
||||
message Finger {
|
||||
int32 thumb_pos_0 = 1; // 拇指第一关节
|
||||
int32 thumb_pos_1 = 2; // 拇指第二关节
|
||||
int32 index_pos = 3; // 食指
|
||||
int32 middle_pos = 4; // 中指
|
||||
int32 ring_pos = 5; // 无名指
|
||||
int32 pinky_pos = 6; // 小指
|
||||
}
|
||||
|
||||
// 手腕
|
||||
message Wrist {
|
||||
int32 x = 1; // x轴
|
||||
int32 y = 2; // y轴
|
||||
}
|
||||
|
||||
// Inspire手部
|
||||
message InspireHand {
|
||||
Finger finger = 1; // 手指
|
||||
Wrist wrist = 2; // 手腕
|
||||
}
|
||||
30
data_gen_dependencies/aimdk/protocol/hal/hand/inspire_pb2.py
Normal file
30
data_gen_dependencies/aimdk/protocol/hal/hand/inspire_pb2.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: aimdk/protocol/hal/hand/inspire.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%aimdk/protocol/hal/hand/inspire.proto\x12\x0e\x61imdk.protocol\"~\n\x06\x46inger\x12\x13\n\x0bthumb_pos_0\x18\x01 \x01(\x05\x12\x13\n\x0bthumb_pos_1\x18\x02 \x01(\x05\x12\x11\n\tindex_pos\x18\x03 \x01(\x05\x12\x12\n\nmiddle_pos\x18\x04 \x01(\x05\x12\x10\n\x08ring_pos\x18\x05 \x01(\x05\x12\x11\n\tpinky_pos\x18\x06 \x01(\x05\"\x1d\n\x05Wrist\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"[\n\x0bInspireHand\x12&\n\x06\x66inger\x18\x01 \x01(\x0b\x32\x16.aimdk.protocol.Finger\x12$\n\x05wrist\x18\x02 \x01(\x0b\x32\x15.aimdk.protocol.Wristb\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aimdk.protocol.hal.hand.inspire_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_FINGER']._serialized_start=57
|
||||
_globals['_FINGER']._serialized_end=183
|
||||
_globals['_WRIST']._serialized_start=185
|
||||
_globals['_WRIST']._serialized_end=214
|
||||
_globals['_INSPIREHAND']._serialized_start=216
|
||||
_globals['_INSPIREHAND']._serialized_end=307
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
10
data_gen_dependencies/aimdk/protocol/hal/hand/jodell.proto
Normal file
10
data_gen_dependencies/aimdk/protocol/hal/hand/jodell.proto
Normal file
@@ -0,0 +1,10 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
|
||||
// 夹爪手部
|
||||
message ClawHand {
|
||||
uint32 position = 1;
|
||||
uint32 velocity = 2;
|
||||
uint32 force = 3;
|
||||
}
|
||||
26
data_gen_dependencies/aimdk/protocol/hal/hand/jodell_pb2.py
Normal file
26
data_gen_dependencies/aimdk/protocol/hal/hand/jodell_pb2.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: aimdk/protocol/hal/hand/jodell.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$aimdk/protocol/hal/hand/jodell.proto\x12\x0e\x61imdk.protocol\"=\n\x08\x43lawHand\x12\x10\n\x08position\x18\x01 \x01(\r\x12\x10\n\x08velocity\x18\x02 \x01(\r\x12\r\n\x05\x66orce\x18\x03 \x01(\rb\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aimdk.protocol.hal.hand.jodell_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_CLAWHAND']._serialized_start=56
|
||||
_globals['_CLAWHAND']._serialized_end=117
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
733
data_gen_dependencies/aimdk/protocol/hal/jaka/jaka.proto
Normal file
733
data_gen_dependencies/aimdk/protocol/hal/jaka/jaka.proto
Normal file
@@ -0,0 +1,733 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
import public "aimdk/protocol/common/vec3.proto";
|
||||
import public "aimdk/protocol/common/quaternion.proto";
|
||||
import public "aimdk/protocol/common/rpy.proto";
|
||||
import public "aimdk/protocol/common/se3_pose.proto";
|
||||
|
||||
|
||||
/**
|
||||
* @brief 关节位置,单位rad
|
||||
*/
|
||||
message JointPos { // Jaka: JointValue
|
||||
repeated double jPos = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 负载
|
||||
*/
|
||||
message PayLoad {
|
||||
double mass = 1; // 负载质量,单位:kg
|
||||
Vec3 centroid = 2; // 负载质心, 单位:mm
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 运动模式
|
||||
*/
|
||||
enum MoveMode {
|
||||
MoveMode_ABS = 0; // 绝对运动
|
||||
MoveMode_INCR = 1; // 相对运动
|
||||
MoveMode_CONTINUE = 2; // 连续运动
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 机器人状态
|
||||
*/
|
||||
message RobotState {
|
||||
int32 estoped = 1; // 是否急停
|
||||
int32 poweredOn = 2; // 是否打开电源
|
||||
int32 servoEnabled = 3; // 是否使能
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 机械臂单关节瞬时信息
|
||||
*/
|
||||
message JointMonitorData {
|
||||
double instCurrent = 1; // 瞬时电流
|
||||
double instVoltage = 2; // 瞬时电压
|
||||
double instTemperature = 3; // 瞬时温度
|
||||
double instVel = 4; // 瞬时速度 控制器1.7.0.20及以上
|
||||
double instTorq = 5; // 瞬时力矩
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 机械臂关节信息
|
||||
*/
|
||||
message RobotMonitorData {
|
||||
double scbMajorVersion = 1; // scb主版本号
|
||||
double scbMinorVersion = 2; // scb小版本号
|
||||
double cabTemperature = 3; // 控制器温度
|
||||
double robotAveragePower = 4; // 机器人平均电压
|
||||
double robotAverageCurrent = 5; // 机器人平均电流
|
||||
repeated JointMonitorData joint_monitor_data = 6; // 机器人7个关节的监测数据
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 力传感器监控信息
|
||||
*/
|
||||
message TorqSernsorMonitorData {
|
||||
string ip = 1; // 力矩传感器ip地址
|
||||
int32 port = 2; // 力矩传感器端口号
|
||||
PayLoad payLoad = 3; // 工具负载
|
||||
int32 status = 4; // 力矩传感器状态
|
||||
int32 errcode = 5; // 力矩传感器异常错误码
|
||||
repeated double actTorque = 6; // 力矩传感器实际接触力值(勾选初始化时)或原始读数值(勾选不初始化时)
|
||||
repeated double torque = 7; // 力矩传感器原始读数值
|
||||
repeated double realTorque = 8; // 力矩传感器实际接触力值(不随初始化选项变化)
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 机械臂详细状态信息
|
||||
*/
|
||||
message RobotStatus {
|
||||
int32 errcode = 1;
|
||||
int32 inpos = 2;
|
||||
int32 powered_on = 3;
|
||||
int32 enabled = 4;
|
||||
double rapidrate = 5;
|
||||
int32 protective_stop = 6;
|
||||
int32 emergency_stop = 7;
|
||||
repeated double cartesiantran_pos = 8;
|
||||
repeated double joint_pos = 9;
|
||||
uint32 on_soft_limit = 10;
|
||||
uint32 cur_user_id = 11;
|
||||
int32 drag_status = 12;
|
||||
RobotMonitorData robot_monitor_data = 13;
|
||||
TorqSernsorMonitorData torq_sensor_monitor_data = 14;
|
||||
int32 is_socket_connect = 15;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 可选参数
|
||||
*/
|
||||
message OptionalCond {
|
||||
int32 executingLineId = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 错误状态
|
||||
*/
|
||||
message ErrorCode {
|
||||
int32 code = 1;
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetJointPosition() 请求信息
|
||||
*/
|
||||
message GetJointPositionReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetJointPosition() 响应信息
|
||||
*/
|
||||
message GetJointPositionRsp {
|
||||
JointPos pos = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief JointMove扩展参数
|
||||
*/
|
||||
message JointMoveExt {
|
||||
double acc = 1;
|
||||
double tol = 2;
|
||||
OptionalCond option_cond = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc JointMove() 请求信息
|
||||
*/
|
||||
message JointMoveReq {
|
||||
string robot_name = 1;
|
||||
JointPos pos = 2;
|
||||
MoveMode mode = 3;
|
||||
bool is_block = 4;
|
||||
double distance_frame = 5;
|
||||
JointMoveExt ext = 6;
|
||||
bool ee_interpolation = 7;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc JointMove() 响应信息
|
||||
*/
|
||||
message JointMoveRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief LinearMove扩展参数
|
||||
*/
|
||||
message LinearMoveExt {
|
||||
double acc = 1;
|
||||
double tol = 2;
|
||||
OptionalCond option_cond = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc LinearMove() 请求信息
|
||||
*/
|
||||
message LinearMoveReq {
|
||||
string robot_name = 1;
|
||||
SE3RpyPose pose = 2;
|
||||
MoveMode mode = 3;
|
||||
bool is_block = 4;
|
||||
double distance_frame = 5;
|
||||
LinearMoveExt ext = 6;
|
||||
bool ee_interpolation = 7;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc LinearMove() 响应信息
|
||||
*/
|
||||
message LinearMoveRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetRobotState() 请求信息
|
||||
*/
|
||||
message GetRobotStateReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetRobotState() 响应信息
|
||||
*/
|
||||
message GetRobotStateRsp {
|
||||
RobotState state = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetRobotStatus() 请求信息
|
||||
*/
|
||||
message GetRobotStatusReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetRobotStatus() 响应信息
|
||||
*/
|
||||
message GetRobotStatusRsp {
|
||||
RobotStatus status = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc IsInPos() 请求信息
|
||||
*/
|
||||
message IsInPosReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc IsInPos() 响应信息
|
||||
*/
|
||||
message IsInPosRsp {
|
||||
bool is_in_pos = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc IsOnLimit() 请求信息
|
||||
*/
|
||||
message IsOnLimitReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc IsOnLimit() 响应信息
|
||||
*/
|
||||
message IsOnLimitRsp {
|
||||
bool is_on_limit = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetTcpPosition() 请求信息
|
||||
*/
|
||||
message GetTcpPositionReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetTcpPosition() 响应信息
|
||||
*/
|
||||
message GetTcpPositionRsp {
|
||||
SE3RpyPose pose = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc KineForward() 请求信息
|
||||
*/
|
||||
message KineForwardReq {
|
||||
string robot_name = 1;
|
||||
JointPos pos = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc KineForward() 响应信息
|
||||
*/
|
||||
message KineForwardRsp {
|
||||
SE3RpyPose pose = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc KineInverse() 请求信息
|
||||
*/
|
||||
message KineInverseReq {
|
||||
string robot_name = 1;
|
||||
JointPos ref_pos = 2;
|
||||
SE3RpyPose pose = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc KineInverse() 响应信息
|
||||
*/
|
||||
message KineInverseRsp {
|
||||
JointPos pos = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc ClearError() 请求信息
|
||||
*/
|
||||
message ClearErrorReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc ClearError() 响应信息
|
||||
*/
|
||||
message ClearErrorRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetLastError() 请求信息
|
||||
*/
|
||||
message GetLastErrorReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetLastError() 响应信息
|
||||
*/
|
||||
message GetLastErrorRsp {
|
||||
ErrorCode robot_error = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc IsInCollision() 请求信息
|
||||
*/
|
||||
message IsInCollisionReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc IsInCollision() 响应信息
|
||||
*/
|
||||
message IsInCollisionRsp {
|
||||
bool is_in_collision = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc CollisionRecover() 请求信息
|
||||
*/
|
||||
message CollisionRecoverReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc CollisionRecover() 响应信息
|
||||
*/
|
||||
message CollisionRecoverRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetCollisionLevel() 请求信息
|
||||
*/
|
||||
message GetCollisionLevelReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetCollisionLevel() 响应信息
|
||||
*/
|
||||
message GetCollisionLevelRsp {
|
||||
int32 level = 1;
|
||||
int32 errcode = 2;
|
||||
string errmsg = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetCollisionLevel() 请求信息
|
||||
*/
|
||||
message SetCollisionLevelReq {
|
||||
string robot_name = 1;
|
||||
int32 level = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetCollisionLevel() 响应信息
|
||||
*/
|
||||
message SetCollisionLevelRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc EnableServoControl() 请求信息
|
||||
*/
|
||||
message EnableServoControlReq {
|
||||
string robot_name = 1;
|
||||
bool enable = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc EnableServoControl() 响应信息
|
||||
*/
|
||||
message EnableServoControlRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc EnableTorqueControl() 请求信息
|
||||
*/
|
||||
message EnableTorqueControlReq {
|
||||
string robot_name = 1;
|
||||
bool enable = 2;
|
||||
int32 period = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc EnableTorqueControl() 响应信息
|
||||
*/
|
||||
message EnableTorqueControlRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
// InstallationAngle
|
||||
/**
|
||||
* @brief rpc SetInstallationAngle() 请求信息
|
||||
*/
|
||||
message SetInstallationAngleReq {
|
||||
string robot_name = 1;
|
||||
double angleX = 2;
|
||||
double angleZ = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetInstallationAngle() 响应信息
|
||||
*/
|
||||
message SetInstallationAngleRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetInstallationAngle() 请求信息
|
||||
*/
|
||||
message GetInstallationAngleReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetInstallationAngle() 响应信息
|
||||
*/
|
||||
message GetInstallationAngleRsp {
|
||||
Quaternion quat = 1;
|
||||
Rpy rpy = 2;
|
||||
int32 errcode = 3;
|
||||
string errmsg = 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc EnableAdmittanceCtrl() 请求信息
|
||||
*/
|
||||
message EnableAdmittanceCtrlReq {
|
||||
string robot_name = 1;
|
||||
bool enable_flag = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc EnableAdmittanceCtrl() 响应信息
|
||||
*/
|
||||
message EnableAdmittanceCtrlRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetFtCtrlFrame() 请求信息
|
||||
*/
|
||||
message SetFtCtrlFrameReq {
|
||||
string robot_name = 1;
|
||||
int32 ftFrame = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetFtCtrlFrame() 响应信息
|
||||
*/
|
||||
message SetFtCtrlFrameRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc DisableForceControl() 请求信息
|
||||
*/
|
||||
message DisableForceControlReq {
|
||||
string robot_name = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc DisableForceControl() 响应信息
|
||||
*/
|
||||
message DisableForceControlRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetCompliantType() 请求信息
|
||||
*/
|
||||
message SetCompliantTypeReq {
|
||||
string robot_name = 1;
|
||||
int32 sensor_compensation = 2;
|
||||
int32 compliance_type = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetCompliantType() 响应信息
|
||||
*/
|
||||
message SetCompliantTypeRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetTorqueSensorMode() 请求信息
|
||||
*/
|
||||
message SetTorqueSensorModeReq {
|
||||
string robot_name = 1;
|
||||
int32 sensor_mode = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetTorqueSensorMode() 响应信息
|
||||
*/
|
||||
message SetTorqueSensorModeRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetTorqueSensorMode() 请求信息
|
||||
*/
|
||||
message SetAdmitCtrlConfigReq {
|
||||
string robot_name = 1;
|
||||
int32 axis = 2;
|
||||
int32 opt = 3;
|
||||
double ftUser = 4;
|
||||
double ftConstant = 5;
|
||||
int32 ftNnormalTrack = 6;
|
||||
double ftReboundFK = 7;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc SetAdmitCtrlConfig() 响应信息
|
||||
*/
|
||||
message SetAdmitCtrlConfigRsp {
|
||||
int32 errcode = 1;
|
||||
string errmsg = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 由 aimrt_hal 中的 jaka_module::JakaModule 模块提供的服务
|
||||
*/
|
||||
service A2wArmControlService {
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的关节角度。
|
||||
* @param GetJointPositionReq
|
||||
* @return GetJointPositionRsp
|
||||
*/
|
||||
rpc GetJointPosition(GetJointPositionReq) returns (GetJointPositionRsp);
|
||||
/**
|
||||
* @brief jaka_module::JakaModule 执行普通关节运动。
|
||||
* @param JointMoveReq
|
||||
* @return JointMoveRsp
|
||||
*/
|
||||
rpc JointMove(JointMoveReq) returns (JointMoveRsp);
|
||||
/**
|
||||
* @brief jaka_module::JakaModule 执行末端线性运动。
|
||||
* @param LinearMoveReq
|
||||
* @return LinearMoveRsp
|
||||
*/
|
||||
rpc LinearMove(LinearMoveReq) returns (LinearMoveRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂状态信息。
|
||||
* @param GetRobotStateReq
|
||||
* @return GetRobotStateRsp
|
||||
*/
|
||||
rpc GetRobotState(GetRobotStateReq) returns (GetRobotStateRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂详细信息。
|
||||
* @param GetRobotStatusReq
|
||||
* @return GetRobotStatusRsp
|
||||
*/
|
||||
rpc GetRobotStatus(GetRobotStatusReq) returns (GetRobotStatusRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂是否到达目标点的状态信息。
|
||||
* @param IsInPosReq
|
||||
* @return IsInPosRsp
|
||||
*/
|
||||
rpc IsInPos(IsInPosReq) returns (IsInPosRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂是否限位的信息。
|
||||
* @param IsOnLimitReq
|
||||
* @return IsOnLimitRsp
|
||||
*/
|
||||
rpc IsOnLimit(IsOnLimitReq) returns (IsOnLimitRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的末端笛卡尔位姿信息。
|
||||
* @param GetTcpPositionReq
|
||||
* @return GetTcpPositionRsp
|
||||
*/
|
||||
rpc GetTcpPosition(GetTcpPositionReq) returns (GetTcpPositionRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 进行运动学正解。
|
||||
* @param KineForwardReq
|
||||
* @return KineForwardRsp
|
||||
*/
|
||||
rpc KineForward(KineForwardReq) returns (KineForwardRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 进行运动学逆解。
|
||||
* @param KineInverseReq
|
||||
* @return KineInverseRsp
|
||||
*/
|
||||
rpc KineInverse(KineInverseReq) returns (KineInverseRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 清理错误。
|
||||
* @param ClearErrorReq
|
||||
* @return ClearErrorRsp
|
||||
*/
|
||||
rpc ClearError(ClearErrorReq) returns (ClearErrorRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂错误信息。
|
||||
* @param GetLastErrorReq
|
||||
* @return GetLastErrorRsp
|
||||
*/
|
||||
rpc GetLastError(GetLastErrorReq) returns (GetLastErrorRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂是否碰撞的状态信息。
|
||||
* @param IsInCollisionReq
|
||||
* @return IsInCollisionRsp
|
||||
*/
|
||||
rpc IsInCollision(IsInCollisionReq) returns (IsInCollisionRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 进行碰撞恢复。
|
||||
* @param CollisionRecoverReq
|
||||
* @return CollisionRecoverRsp
|
||||
*/
|
||||
rpc CollisionRecover(CollisionRecoverReq) returns (CollisionRecoverRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂碰撞登记。
|
||||
* @param GetCollisionLevelReq
|
||||
* @return GetCollisionLevelRsp
|
||||
*/
|
||||
rpc GetCollisionLevel(GetCollisionLevelReq) returns (GetCollisionLevelRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 设置机械臂碰撞登记。
|
||||
* @param SetCollisionLevelReq
|
||||
* @return SetCollisionLevelRsp
|
||||
*/
|
||||
rpc SetCollisionLevel(SetCollisionLevelReq) returns (SetCollisionLevelRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 进行伺服使能控制。
|
||||
* @param EnableServoControlReq
|
||||
* @return EnableServoControlRsp
|
||||
*/
|
||||
rpc EnableServoControl(EnableServoControlReq) returns (EnableServoControlRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 进行电流环控制。
|
||||
* @param EnableTorqueControlReq
|
||||
* @return EnableTorqueControlRsp
|
||||
*/
|
||||
rpc EnableTorqueControl(EnableTorqueControlReq) returns (EnableTorqueControlRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 设置安装角度。
|
||||
* @param SetInstallationAngleReq
|
||||
* @return SetInstallationAngleRsp
|
||||
*/
|
||||
rpc SetInstallationAngle(SetInstallationAngleReq) returns (SetInstallationAngleRsp);
|
||||
/**
|
||||
* @brief 获取 jaka_module::JakaModule 收到的机械臂安装角度。
|
||||
* @param GetInstallationAngleReq
|
||||
* @return GetInstallationAngleRsp
|
||||
*/
|
||||
rpc GetInstallationAngle(GetInstallationAngleReq) returns (GetInstallationAngleRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 设置力控拖拽使能。
|
||||
* @param EnableAdmittanceCtrlReq
|
||||
* @return EnableAdmittanceCtrlRsp
|
||||
*/
|
||||
rpc EnableAdmittanceCtrl(EnableAdmittanceCtrlReq) returns (EnableAdmittanceCtrlRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 设置导纳控制运动坐标系。
|
||||
* @param SetFtCtrlFrameReq
|
||||
* @return SetFtCtrlFrameRsp
|
||||
*/
|
||||
rpc SetFtCtrlFrame(SetFtCtrlFrameReq) returns (SetFtCtrlFrameRsp);
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 关闭力控。
|
||||
* @param DisableForceControlReq
|
||||
* @return DisableForceControlRsp
|
||||
*/
|
||||
rpc DisableForceControl(DisableForceControlReq) returns (DisableForceControlRsp);
|
||||
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 设置力控类型和传感器初始化状态。
|
||||
* @param SetCompliantTypeReq
|
||||
* @return SetCompliantTypeRsp
|
||||
*/
|
||||
rpc SetCompliantType(SetCompliantTypeReq) returns (SetCompliantTypeRsp);
|
||||
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 开启或关闭力矩传感器。
|
||||
* @param SetTorqueSensorModeReq
|
||||
* @return SetTorqueSensorModeRsp
|
||||
*/
|
||||
rpc SetTorqueSensorMode(SetTorqueSensorModeReq) returns (SetTorqueSensorModeRsp);
|
||||
|
||||
/**
|
||||
* @brief 通过 jaka_module::JakaModule 设置柔顺控制参数。
|
||||
* @param SetAdmitCtrlConfigReq
|
||||
* @return SetAdmitCtrlConfigRsp
|
||||
*/
|
||||
rpc SetAdmitCtrlConfig(SetAdmitCtrlConfigReq) returns (SetAdmitCtrlConfigRsp);
|
||||
}
|
||||
174
data_gen_dependencies/aimdk/protocol/hal/jaka/jaka_pb2.py
Normal file
174
data_gen_dependencies/aimdk/protocol/hal/jaka/jaka_pb2.py
Normal file
File diff suppressed because one or more lines are too long
1001
data_gen_dependencies/aimdk/protocol/hal/jaka/jaka_pb2_grpc.py
Normal file
1001
data_gen_dependencies/aimdk/protocol/hal/jaka/jaka_pb2_grpc.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,69 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
import public "aimdk/protocol/common/header.proto";
|
||||
import public "aimdk/protocol/common/joint.proto";
|
||||
import public "aimdk/protocol/common/se3_pose.proto";
|
||||
|
||||
message JointStatesChannel {
|
||||
/** 消息头 */
|
||||
Header header = 1;
|
||||
|
||||
/**
|
||||
* 关节状态,包括角度和速度、扭矩
|
||||
*/
|
||||
repeated JointState states = 2;
|
||||
}
|
||||
message IKStatus{
|
||||
repeated string joint_names=1;
|
||||
repeated double joint_positions=2;
|
||||
bool isSuccess=3;
|
||||
}
|
||||
|
||||
message JointCommandsChannel {
|
||||
/** 消息头 */
|
||||
Header header = 1;
|
||||
|
||||
/**
|
||||
* 关节指令
|
||||
*/
|
||||
repeated JointCommand commands = 2;
|
||||
}
|
||||
|
||||
message GetJointReq {
|
||||
string serial_no = 1;
|
||||
}
|
||||
message GetJointRsp {
|
||||
repeated JointState states = 1;
|
||||
}
|
||||
message GetEEPoseReq {
|
||||
bool is_right = 1;
|
||||
}
|
||||
message GetEEPoseRsp {
|
||||
string prim_path = 1;
|
||||
SE3RpyPose ee_pose = 2;
|
||||
}
|
||||
message GetIKStatusReq {
|
||||
bool is_right = 1;
|
||||
repeated SE3RpyPose target_pose = 2;
|
||||
bool ObsAvoid = 3;
|
||||
}
|
||||
message GetIKStatusRsp {
|
||||
repeated IKStatus IKStatus = 2;
|
||||
}
|
||||
|
||||
|
||||
message SetJointReq {
|
||||
repeated JointCommand commands = 1;
|
||||
bool is_trajectory = 2;
|
||||
}
|
||||
message SetJointRsp {
|
||||
string errmsg = 1;
|
||||
}
|
||||
|
||||
service JointControlService {
|
||||
rpc GetJointPosition(GetJointReq) returns(GetJointRsp);
|
||||
rpc SetJointPosition(SetJointReq) returns(SetJointRsp);
|
||||
rpc GetIKStatus(GetIKStatusReq) returns(GetIKStatusRsp);
|
||||
rpc GetEEPose(GetEEPoseReq) returns(GetEEPoseRsp);
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: aimdk/protocol/hal/joint/joint_channel.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from aimdk.protocol.common import header_pb2 as aimdk_dot_protocol_dot_common_dot_header__pb2
|
||||
from aimdk.protocol.common import joint_pb2 as aimdk_dot_protocol_dot_common_dot_joint__pb2
|
||||
from aimdk.protocol.common import se3_pose_pb2 as aimdk_dot_protocol_dot_common_dot_se3__pose__pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_common_dot_vec3__pb2 = aimdk_dot_protocol_dot_common_dot_se3__pose__pb2.aimdk_dot_protocol_dot_common_dot_vec3__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_common_dot_vec3__pb2 = aimdk_dot_protocol_dot_common_dot_se3__pose__pb2.aimdk.protocol.common.vec3_pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_common_dot_quaternion__pb2 = aimdk_dot_protocol_dot_common_dot_se3__pose__pb2.aimdk_dot_protocol_dot_common_dot_quaternion__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_common_dot_quaternion__pb2 = aimdk_dot_protocol_dot_common_dot_se3__pose__pb2.aimdk.protocol.common.quaternion_pb2
|
||||
try:
|
||||
aimdk_dot_protocol_dot_common_dot_rpy__pb2 = aimdk_dot_protocol_dot_common_dot_se3__pose__pb2.aimdk_dot_protocol_dot_common_dot_rpy__pb2
|
||||
except AttributeError:
|
||||
aimdk_dot_protocol_dot_common_dot_rpy__pb2 = aimdk_dot_protocol_dot_common_dot_se3__pose__pb2.aimdk.protocol.common.rpy_pb2
|
||||
|
||||
from aimdk.protocol.common.header_pb2 import *
|
||||
from aimdk.protocol.common.joint_pb2 import *
|
||||
from aimdk.protocol.common.se3_pose_pb2 import *
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,aimdk/protocol/hal/joint/joint_channel.proto\x12\x0e\x61imdk.protocol\x1a\"aimdk/protocol/common/header.proto\x1a!aimdk/protocol/common/joint.proto\x1a$aimdk/protocol/common/se3_pose.proto\"h\n\x12JointStatesChannel\x12&\n\x06header\x18\x01 \x01(\x0b\x32\x16.aimdk.protocol.Header\x12*\n\x06states\x18\x02 \x03(\x0b\x32\x1a.aimdk.protocol.JointState\"K\n\x08IKStatus\x12\x13\n\x0bjoint_names\x18\x01 \x03(\t\x12\x17\n\x0fjoint_positions\x18\x02 \x03(\x01\x12\x11\n\tisSuccess\x18\x03 \x01(\x08\"n\n\x14JointCommandsChannel\x12&\n\x06header\x18\x01 \x01(\x0b\x32\x16.aimdk.protocol.Header\x12.\n\x08\x63ommands\x18\x02 \x03(\x0b\x32\x1c.aimdk.protocol.JointCommand\" \n\x0bGetJointReq\x12\x11\n\tserial_no\x18\x01 \x01(\t\"9\n\x0bGetJointRsp\x12*\n\x06states\x18\x01 \x03(\x0b\x32\x1a.aimdk.protocol.JointState\" \n\x0cGetEEPoseReq\x12\x10\n\x08is_right\x18\x01 \x01(\x08\"N\n\x0cGetEEPoseRsp\x12\x11\n\tprim_path\x18\x01 \x01(\t\x12+\n\x07\x65\x65_pose\x18\x02 \x01(\x0b\x32\x1a.aimdk.protocol.SE3RpyPose\"e\n\x0eGetIKStatusReq\x12\x10\n\x08is_right\x18\x01 \x01(\x08\x12/\n\x0btarget_pose\x18\x02 \x03(\x0b\x32\x1a.aimdk.protocol.SE3RpyPose\x12\x10\n\x08ObsAvoid\x18\x03 \x01(\x08\"<\n\x0eGetIKStatusRsp\x12*\n\x08IKStatus\x18\x02 \x03(\x0b\x32\x18.aimdk.protocol.IKStatus\"T\n\x0bSetJointReq\x12.\n\x08\x63ommands\x18\x01 \x03(\x0b\x32\x1c.aimdk.protocol.JointCommand\x12\x15\n\ris_trajectory\x18\x02 \x01(\x08\"\x1d\n\x0bSetJointRsp\x12\x0e\n\x06\x65rrmsg\x18\x01 \x01(\t2\xc9\x02\n\x13JointControlService\x12L\n\x10GetJointPosition\x12\x1b.aimdk.protocol.GetJointReq\x1a\x1b.aimdk.protocol.GetJointRsp\x12L\n\x10SetJointPosition\x12\x1b.aimdk.protocol.SetJointReq\x1a\x1b.aimdk.protocol.SetJointRsp\x12M\n\x0bGetIKStatus\x12\x1e.aimdk.protocol.GetIKStatusReq\x1a\x1e.aimdk.protocol.GetIKStatusRsp\x12G\n\tGetEEPose\x12\x1c.aimdk.protocol.GetEEPoseReq\x1a\x1c.aimdk.protocol.GetEEPoseRspP\x00P\x01P\x02\x62\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aimdk.protocol.hal.joint.joint_channel_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_JOINTSTATESCHANNEL']._serialized_start=173
|
||||
_globals['_JOINTSTATESCHANNEL']._serialized_end=277
|
||||
_globals['_IKSTATUS']._serialized_start=279
|
||||
_globals['_IKSTATUS']._serialized_end=354
|
||||
_globals['_JOINTCOMMANDSCHANNEL']._serialized_start=356
|
||||
_globals['_JOINTCOMMANDSCHANNEL']._serialized_end=466
|
||||
_globals['_GETJOINTREQ']._serialized_start=468
|
||||
_globals['_GETJOINTREQ']._serialized_end=500
|
||||
_globals['_GETJOINTRSP']._serialized_start=502
|
||||
_globals['_GETJOINTRSP']._serialized_end=559
|
||||
_globals['_GETEEPOSEREQ']._serialized_start=561
|
||||
_globals['_GETEEPOSEREQ']._serialized_end=593
|
||||
_globals['_GETEEPOSERSP']._serialized_start=595
|
||||
_globals['_GETEEPOSERSP']._serialized_end=673
|
||||
_globals['_GETIKSTATUSREQ']._serialized_start=675
|
||||
_globals['_GETIKSTATUSREQ']._serialized_end=776
|
||||
_globals['_GETIKSTATUSRSP']._serialized_start=778
|
||||
_globals['_GETIKSTATUSRSP']._serialized_end=838
|
||||
_globals['_SETJOINTREQ']._serialized_start=840
|
||||
_globals['_SETJOINTREQ']._serialized_end=924
|
||||
_globals['_SETJOINTRSP']._serialized_start=926
|
||||
_globals['_SETJOINTRSP']._serialized_end=955
|
||||
_globals['_JOINTCONTROLSERVICE']._serialized_start=958
|
||||
_globals['_JOINTCONTROLSERVICE']._serialized_end=1287
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
@@ -0,0 +1,165 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
"""Client and server classes corresponding to protobuf-defined services."""
|
||||
import grpc
|
||||
|
||||
from aimdk.protocol.hal.joint import joint_channel_pb2 as aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2
|
||||
|
||||
|
||||
class JointControlServiceStub(object):
|
||||
"""Missing associated documentation comment in .proto file."""
|
||||
|
||||
def __init__(self, channel):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
channel: A grpc.Channel.
|
||||
"""
|
||||
self.GetJointPosition = channel.unary_unary(
|
||||
'/aimdk.protocol.JointControlService/GetJointPosition',
|
||||
request_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetJointReq.SerializeToString,
|
||||
response_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetJointRsp.FromString,
|
||||
)
|
||||
self.SetJointPosition = channel.unary_unary(
|
||||
'/aimdk.protocol.JointControlService/SetJointPosition',
|
||||
request_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.SetJointReq.SerializeToString,
|
||||
response_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.SetJointRsp.FromString,
|
||||
)
|
||||
self.GetIKStatus = channel.unary_unary(
|
||||
'/aimdk.protocol.JointControlService/GetIKStatus',
|
||||
request_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetIKStatusReq.SerializeToString,
|
||||
response_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetIKStatusRsp.FromString,
|
||||
)
|
||||
self.GetEEPose = channel.unary_unary(
|
||||
'/aimdk.protocol.JointControlService/GetEEPose',
|
||||
request_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetEEPoseReq.SerializeToString,
|
||||
response_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetEEPoseRsp.FromString,
|
||||
)
|
||||
|
||||
|
||||
class JointControlServiceServicer(object):
|
||||
"""Missing associated documentation comment in .proto file."""
|
||||
|
||||
def GetJointPosition(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 SetJointPosition(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 GetIKStatus(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 GetEEPose(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 add_JointControlServiceServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
'GetJointPosition': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetJointPosition,
|
||||
request_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetJointReq.FromString,
|
||||
response_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetJointRsp.SerializeToString,
|
||||
),
|
||||
'SetJointPosition': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.SetJointPosition,
|
||||
request_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.SetJointReq.FromString,
|
||||
response_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.SetJointRsp.SerializeToString,
|
||||
),
|
||||
'GetIKStatus': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetIKStatus,
|
||||
request_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetIKStatusReq.FromString,
|
||||
response_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetIKStatusRsp.SerializeToString,
|
||||
),
|
||||
'GetEEPose': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetEEPose,
|
||||
request_deserializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetEEPoseReq.FromString,
|
||||
response_serializer=aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetEEPoseRsp.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'aimdk.protocol.JointControlService', rpc_method_handlers)
|
||||
server.add_generic_rpc_handlers((generic_handler,))
|
||||
|
||||
|
||||
# This class is part of an EXPERIMENTAL API.
|
||||
class JointControlService(object):
|
||||
"""Missing associated documentation comment in .proto file."""
|
||||
|
||||
@staticmethod
|
||||
def GetJointPosition(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, '/aimdk.protocol.JointControlService/GetJointPosition',
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetJointReq.SerializeToString,
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetJointRsp.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def SetJointPosition(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, '/aimdk.protocol.JointControlService/SetJointPosition',
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.SetJointReq.SerializeToString,
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.SetJointRsp.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetIKStatus(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, '/aimdk.protocol.JointControlService/GetIKStatus',
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetIKStatusReq.SerializeToString,
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetIKStatusRsp.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetEEPose(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, '/aimdk.protocol.JointControlService/GetEEPose',
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetEEPoseReq.SerializeToString,
|
||||
aimdk_dot_protocol_dot_hal_dot_joint_dot_joint__channel__pb2.GetEEPoseRsp.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
@@ -0,0 +1,7 @@
|
||||
string name
|
||||
uint32 sequence
|
||||
float64 position
|
||||
float64 velocity
|
||||
float64 effort
|
||||
float64 stiffness
|
||||
float64 damping
|
||||
@@ -0,0 +1,3 @@
|
||||
std_msgs/Header header
|
||||
|
||||
Command[] joints
|
||||
@@ -0,0 +1,3 @@
|
||||
std_msgs/Header header
|
||||
|
||||
State[] joints
|
||||
@@ -0,0 +1,5 @@
|
||||
string name
|
||||
uint32 sequence
|
||||
float64 position
|
||||
float64 velocity
|
||||
float64 effort
|
||||
@@ -0,0 +1,6 @@
|
||||
float64 x
|
||||
float64 y
|
||||
float64 z
|
||||
float64 rx
|
||||
float64 ry
|
||||
float64 rz
|
||||
@@ -0,0 +1,4 @@
|
||||
std_msgs/Header header
|
||||
|
||||
string[] names
|
||||
PoseCommand[] poses
|
||||
@@ -0,0 +1,6 @@
|
||||
float64 x
|
||||
float64 y
|
||||
float64 z
|
||||
float64 rx
|
||||
float64 ry
|
||||
float64 rz
|
||||
@@ -0,0 +1,5 @@
|
||||
std_msgs/Header header
|
||||
|
||||
string[] names
|
||||
PoseState[] poses
|
||||
TorqSensorState[] torqs
|
||||
@@ -0,0 +1,3 @@
|
||||
float64[] act_torque
|
||||
float64[] torque
|
||||
float64[] real_torque
|
||||
@@ -0,0 +1,4 @@
|
||||
std_msgs/Header header
|
||||
|
||||
string[] names
|
||||
SensorState[] states
|
||||
@@ -0,0 +1,9 @@
|
||||
# Livox costom pointcloud format.
|
||||
|
||||
uint32 offset_time # offset time relative to the base time
|
||||
float32 x # X axis, unit:m
|
||||
float32 y # Y axis, unit:m
|
||||
float32 z # Z axis, unit:m
|
||||
uint8 reflectivity # reflectivity, 0~255
|
||||
uint8 tag # livox tag
|
||||
uint8 line # laser number in lidar
|
||||
@@ -0,0 +1,8 @@
|
||||
# Livox publish pointcloud msg format.
|
||||
|
||||
std_msgs/Header header # ROS standard message header
|
||||
uint64 timebase # The time of first point
|
||||
uint32 point_num # Total number of pointclouds
|
||||
uint8 lidar_id # Lidar device id number
|
||||
uint8[3] rsvd # Reserved use
|
||||
LivoxPoint[] points # Pointcloud data
|
||||
@@ -0,0 +1 @@
|
||||
int16[] presure
|
||||
@@ -0,0 +1,98 @@
|
||||
syntax = "proto3";
|
||||
package aimdk.protocol;
|
||||
|
||||
|
||||
/**
|
||||
* @brief 图像类型,包括深度和彩色
|
||||
*/
|
||||
enum ImageType {
|
||||
ImageType_UNDEFINED = 0;
|
||||
ImageType_DEPTH = 1;
|
||||
ImageType_COLOR = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 图像模型参数
|
||||
*/
|
||||
enum DistortionType {
|
||||
DistortionType_UNDEFINED = 0;
|
||||
DistortionType_MODIFIED_BROWN_CONRADY = 1;
|
||||
DistortionType_INVERSE_BROWN_CONRADY = 2;
|
||||
DistortionType_FTHETA = 3;
|
||||
DistortionType_BROWN_CONRADY = 4;
|
||||
DistortionType_KANNALA_BRANDT4 = 5;
|
||||
DistortionType_COUNT = 6;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 压缩图像数据
|
||||
*/
|
||||
message CompressedImage {
|
||||
string format = 2;
|
||||
bytes data = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 相机内参
|
||||
*/
|
||||
message CameraInfo {
|
||||
int32 width = 1;
|
||||
int32 height = 2;
|
||||
float ppx = 3;
|
||||
float ppy = 4;
|
||||
float fx = 5;
|
||||
float fy = 6;
|
||||
DistortionType model = 7;
|
||||
repeated float coeffs = 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetCameraInfo() 的请求数据
|
||||
*/
|
||||
message GetCameraInfoRequest {
|
||||
string serial_no = 1;
|
||||
ImageType stream_type = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetCameraInfo() 的响应数据
|
||||
*/
|
||||
message GetCameraInfoResponse {
|
||||
repeated CameraInfo info = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetCameraData() 的请求数据
|
||||
*/
|
||||
message GetCameraDataRequest {
|
||||
string serial_no = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief rpc GetCameraData() 的响应数据
|
||||
*/
|
||||
message GetCameraDataResponse {
|
||||
string serial_no = 1;
|
||||
CameraInfo color_info = 2;
|
||||
CompressedImage color_image = 3;
|
||||
CameraInfo depth_info = 4;
|
||||
CompressedImage depth_image = 5;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 由 aimrt_hal 中的 realsense_camera_module::RealsenseCameraModule 模块提供的服务
|
||||
*/
|
||||
service CameraService {
|
||||
/**
|
||||
* @brief 获取 realsense_camera_module::RealsenseCameraModule 收到的相机内参信息。
|
||||
* @param GetCameraInfoRequest 相机序列号
|
||||
* @return GetCameraInfoResponse 相机内参
|
||||
*/
|
||||
rpc GetCameraInfo(GetCameraInfoRequest) returns (GetCameraInfoResponse);
|
||||
/**
|
||||
* @brief 获取 realsense_camera_module::RealsenseCameraModule 收到的相机数据,包括相机内参、彩色和深度图像信息。
|
||||
* @param GetCameraDataRequest 相机序列号
|
||||
* @return GetCameraDataResponse 详细数据
|
||||
*/
|
||||
rpc GetCameraData(GetCameraDataRequest) returns (GetCameraDataResponse);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: protocol/hal/sensors/rs2_camera.proto
|
||||
# Protobuf Python Version: 4.25.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 symbol_database as _symbol_database
|
||||
from google.protobuf.internal import builder as _builder
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%protocol/hal/sensors/rs2_camera.proto\x12\x0e\x61imdk.protocol\"/\n\x0f\x43ompressedImage\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\x9c\x01\n\nCameraInfo\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\x0b\n\x03ppx\x18\x03 \x01(\x02\x12\x0b\n\x03ppy\x18\x04 \x01(\x02\x12\n\n\x02\x66x\x18\x05 \x01(\x02\x12\n\n\x02\x66y\x18\x06 \x01(\x02\x12-\n\x05model\x18\x07 \x01(\x0e\x32\x1e.aimdk.protocol.DistortionType\x12\x0e\n\x06\x63oeffs\x18\x08 \x03(\x02\"Y\n\x14GetCameraInfoRequest\x12\x11\n\tserial_no\x18\x01 \x01(\t\x12.\n\x0bstream_type\x18\x02 \x01(\x0e\x32\x19.aimdk.protocol.ImageType\"A\n\x15GetCameraInfoResponse\x12(\n\x04info\x18\x01 \x03(\x0b\x32\x1a.aimdk.protocol.CameraInfo\")\n\x14GetCameraDataRequest\x12\x11\n\tserial_no\x18\x01 \x01(\t\"\xf6\x01\n\x15GetCameraDataResponse\x12\x11\n\tserial_no\x18\x01 \x01(\t\x12.\n\ncolor_info\x18\x02 \x01(\x0b\x32\x1a.aimdk.protocol.CameraInfo\x12\x34\n\x0b\x63olor_image\x18\x03 \x01(\x0b\x32\x1f.aimdk.protocol.CompressedImage\x12.\n\ndepth_info\x18\x04 \x01(\x0b\x32\x1a.aimdk.protocol.CameraInfo\x12\x34\n\x0b\x64\x65pth_image\x18\x05 \x01(\x0b\x32\x1f.aimdk.protocol.CompressedImage*N\n\tImageType\x12\x17\n\x13ImageType_UNDEFINED\x10\x00\x12\x13\n\x0fImageType_DEPTH\x10\x01\x12\x13\n\x0fImageType_COLOR\x10\x02*\xfe\x01\n\x0e\x44istortionType\x12\x1c\n\x18\x44istortionType_UNDEFINED\x10\x00\x12)\n%DistortionType_MODIFIED_BROWN_CONRADY\x10\x01\x12(\n$DistortionType_INVERSE_BROWN_CONRADY\x10\x02\x12\x19\n\x15\x44istortionType_FTHETA\x10\x03\x12 \n\x1c\x44istortionType_BROWN_CONRADY\x10\x04\x12\"\n\x1e\x44istortionType_KANNALA_BRANDT4\x10\x05\x12\x18\n\x14\x44istortionType_COUNT\x10\x06\x32\xcb\x01\n\rCameraService\x12\\\n\rGetCameraInfo\x12$.aimdk.protocol.GetCameraInfoRequest\x1a%.aimdk.protocol.GetCameraInfoResponse\x12\\\n\rGetCameraData\x12$.aimdk.protocol.GetCameraDataRequest\x1a%.aimdk.protocol.GetCameraDataResponseb\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protocol.hal.sensors.rs2_camera_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_globals['_IMAGETYPE']._serialized_start=715
|
||||
_globals['_IMAGETYPE']._serialized_end=793
|
||||
_globals['_DISTORTIONTYPE']._serialized_start=796
|
||||
_globals['_DISTORTIONTYPE']._serialized_end=1050
|
||||
_globals['_COMPRESSEDIMAGE']._serialized_start=57
|
||||
_globals['_COMPRESSEDIMAGE']._serialized_end=104
|
||||
_globals['_CAMERAINFO']._serialized_start=107
|
||||
_globals['_CAMERAINFO']._serialized_end=263
|
||||
_globals['_GETCAMERAINFOREQUEST']._serialized_start=265
|
||||
_globals['_GETCAMERAINFOREQUEST']._serialized_end=354
|
||||
_globals['_GETCAMERAINFORESPONSE']._serialized_start=356
|
||||
_globals['_GETCAMERAINFORESPONSE']._serialized_end=421
|
||||
_globals['_GETCAMERADATAREQUEST']._serialized_start=423
|
||||
_globals['_GETCAMERADATAREQUEST']._serialized_end=464
|
||||
_globals['_GETCAMERADATARESPONSE']._serialized_start=467
|
||||
_globals['_GETCAMERADATARESPONSE']._serialized_end=713
|
||||
_globals['_CAMERASERVICE']._serialized_start=1053
|
||||
_globals['_CAMERASERVICE']._serialized_end=1256
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
@@ -0,0 +1,113 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
"""Client and server classes corresponding to protobuf-defined services."""
|
||||
import grpc
|
||||
|
||||
from . import rs2_camera_pb2 as protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2
|
||||
|
||||
|
||||
class CameraServiceStub(object):
|
||||
"""*
|
||||
@brief 由 aimrt_hal 中的 realsense_camera_module::RealsenseCameraModule 模块提供的服务
|
||||
"""
|
||||
|
||||
def __init__(self, channel):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
channel: A grpc.Channel.
|
||||
"""
|
||||
self.GetCameraInfo = channel.unary_unary(
|
||||
'/aimdk.protocol.CameraService/GetCameraInfo',
|
||||
request_serializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraInfoRequest.SerializeToString,
|
||||
response_deserializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraInfoResponse.FromString,
|
||||
)
|
||||
self.GetCameraData = channel.unary_unary(
|
||||
'/aimdk.protocol.CameraService/GetCameraData',
|
||||
request_serializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraDataRequest.SerializeToString,
|
||||
response_deserializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraDataResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
class CameraServiceServicer(object):
|
||||
"""*
|
||||
@brief 由 aimrt_hal 中的 realsense_camera_module::RealsenseCameraModule 模块提供的服务
|
||||
"""
|
||||
|
||||
def GetCameraInfo(self, request, context):
|
||||
"""*
|
||||
@brief 获取 realsense_camera_module::RealsenseCameraModule 收到的相机内参信息。
|
||||
@param GetCameraInfoRequest 相机序列号
|
||||
@return GetCameraInfoResponse 相机内参
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetCameraData(self, request, context):
|
||||
"""*
|
||||
@brief 获取 realsense_camera_module::RealsenseCameraModule 收到的相机数据,包括相机内参、彩色和深度图像信息。
|
||||
@param GetCameraDataRequest 相机序列号
|
||||
@return GetCameraDataResponse 详细数据
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
|
||||
def add_CameraServiceServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
'GetCameraInfo': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetCameraInfo,
|
||||
request_deserializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraInfoRequest.FromString,
|
||||
response_serializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraInfoResponse.SerializeToString,
|
||||
),
|
||||
'GetCameraData': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetCameraData,
|
||||
request_deserializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraDataRequest.FromString,
|
||||
response_serializer=protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraDataResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'aimdk.protocol.CameraService', rpc_method_handlers)
|
||||
server.add_generic_rpc_handlers((generic_handler,))
|
||||
|
||||
|
||||
# This class is part of an EXPERIMENTAL API.
|
||||
class CameraService(object):
|
||||
"""*
|
||||
@brief 由 aimrt_hal 中的 realsense_camera_module::RealsenseCameraModule 模块提供的服务
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def GetCameraInfo(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, '/aimdk.protocol.CameraService/GetCameraInfo',
|
||||
protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraInfoRequest.SerializeToString,
|
||||
protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraInfoResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetCameraData(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, '/aimdk.protocol.CameraService/GetCameraData',
|
||||
protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraDataRequest.SerializeToString,
|
||||
protocol_dot_hal_dot_sensors_dot_rs2__camera__pb2.GetCameraDataResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
Reference in New Issue
Block a user