Add preliminary GRPC server for PyBullet and BulletRobotics.

Will add GRPC client and PyBullet GRPC server plugin.
Will cover most/all SharedMemoryCommand/SharedMemoryStatus messages.
Run the server, then test using the pybullet_client.py
This commit is contained in:
erwincoumans
2018-08-29 21:12:13 -07:00
parent 65175425b0
commit 4f7dfc2069
18 changed files with 6556 additions and 29 deletions

View File

@@ -0,0 +1,508 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: pybullet.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='pybullet.proto',
package='pybullet_grpc',
syntax='proto3',
serialized_pb=_b('\n\x0epybullet.proto\x12\rpybullet_grpc\"\'\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\"3\n\x05quat4\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\t\n\x01w\x18\x04 \x01(\x01\",\n\x16TerminateServerCommand\x12\x12\n\nexitReason\x18\x01 \x01(\t\"\x17\n\x15StepSimulationCommand\"\x9d\x02\n\x0fLoadUrdfCommand\x12\x14\n\x0curdfFileName\x18\x01 \x01(\t\x12,\n\x0finitialPosition\x18\x02 \x01(\x0b\x32\x13.pybullet_grpc.vec3\x12\x30\n\x12initialOrientation\x18\x03 \x01(\x0b\x32\x14.pybullet_grpc.quat4\x12\x16\n\x0cuseMultiBody\x18\x04 \x01(\x05H\x00\x12\x16\n\x0cuseFixedBase\x18\x05 \x01(\x08H\x01\x12\x11\n\turdfFlags\x18\x06 \x01(\x05\x12\x17\n\rglobalScaling\x18\x07 \x01(\x01H\x02\x42\x11\n\x0fhasUseMultiBodyB\x11\n\x0fhasUseFixedBaseB\x12\n\x10hasGlobalScaling\"(\n\x0eLoadUrdfStatus\x12\x16\n\x0eobjectUniqueId\x18\x01 \x01(\x05\"\xfd\x01\n\x0fPyBulletCommand\x12\x13\n\x0b\x63ommandType\x18\x01 \x01(\x05\x12\x39\n\x0floadUrdfCommand\x18\x03 \x01(\x0b\x32\x1e.pybullet_grpc.LoadUrdfCommandH\x00\x12G\n\x16terminateServerCommand\x18\x04 \x01(\x0b\x32%.pybullet_grpc.TerminateServerCommandH\x00\x12\x45\n\x15stepSimulationCommand\x18\x05 \x01(\x0b\x32$.pybullet_grpc.StepSimulationCommandH\x00\x42\n\n\x08\x63ommands\"c\n\x0ePyBulletStatus\x12\x12\n\nstatusType\x18\x01 \x01(\x05\x12\x33\n\nurdfStatus\x18\x02 \x01(\x0b\x32\x1d.pybullet_grpc.LoadUrdfStatusH\x00\x42\x08\n\x06status2_\n\x0bPyBulletAPI\x12P\n\rSubmitCommand\x12\x1e.pybullet_grpc.PyBulletCommand\x1a\x1d.pybullet_grpc.PyBulletStatus\"\x00\x42.\n\x15io.grpc.pybullet_grpcB\rPyBulletProtoP\x01\xa2\x02\x03PBGb\x06proto3')
)
_VEC3 = _descriptor.Descriptor(
name='vec3',
full_name='pybullet_grpc.vec3',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='x', full_name='pybullet_grpc.vec3.x', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='y', full_name='pybullet_grpc.vec3.y', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='z', full_name='pybullet_grpc.vec3.z', index=2,
number=3, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=33,
serialized_end=72,
)
_QUAT4 = _descriptor.Descriptor(
name='quat4',
full_name='pybullet_grpc.quat4',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='x', full_name='pybullet_grpc.quat4.x', index=0,
number=1, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='y', full_name='pybullet_grpc.quat4.y', index=1,
number=2, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='z', full_name='pybullet_grpc.quat4.z', index=2,
number=3, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='w', full_name='pybullet_grpc.quat4.w', index=3,
number=4, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=74,
serialized_end=125,
)
_TERMINATESERVERCOMMAND = _descriptor.Descriptor(
name='TerminateServerCommand',
full_name='pybullet_grpc.TerminateServerCommand',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='exitReason', full_name='pybullet_grpc.TerminateServerCommand.exitReason', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=127,
serialized_end=171,
)
_STEPSIMULATIONCOMMAND = _descriptor.Descriptor(
name='StepSimulationCommand',
full_name='pybullet_grpc.StepSimulationCommand',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=173,
serialized_end=196,
)
_LOADURDFCOMMAND = _descriptor.Descriptor(
name='LoadUrdfCommand',
full_name='pybullet_grpc.LoadUrdfCommand',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='urdfFileName', full_name='pybullet_grpc.LoadUrdfCommand.urdfFileName', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='initialPosition', full_name='pybullet_grpc.LoadUrdfCommand.initialPosition', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='initialOrientation', full_name='pybullet_grpc.LoadUrdfCommand.initialOrientation', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='useMultiBody', full_name='pybullet_grpc.LoadUrdfCommand.useMultiBody', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='useFixedBase', full_name='pybullet_grpc.LoadUrdfCommand.useFixedBase', index=4,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='urdfFlags', full_name='pybullet_grpc.LoadUrdfCommand.urdfFlags', index=5,
number=6, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='globalScaling', full_name='pybullet_grpc.LoadUrdfCommand.globalScaling', index=6,
number=7, type=1, cpp_type=5, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
_descriptor.OneofDescriptor(
name='hasUseMultiBody', full_name='pybullet_grpc.LoadUrdfCommand.hasUseMultiBody',
index=0, containing_type=None, fields=[]),
_descriptor.OneofDescriptor(
name='hasUseFixedBase', full_name='pybullet_grpc.LoadUrdfCommand.hasUseFixedBase',
index=1, containing_type=None, fields=[]),
_descriptor.OneofDescriptor(
name='hasGlobalScaling', full_name='pybullet_grpc.LoadUrdfCommand.hasGlobalScaling',
index=2, containing_type=None, fields=[]),
],
serialized_start=199,
serialized_end=484,
)
_LOADURDFSTATUS = _descriptor.Descriptor(
name='LoadUrdfStatus',
full_name='pybullet_grpc.LoadUrdfStatus',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='objectUniqueId', full_name='pybullet_grpc.LoadUrdfStatus.objectUniqueId', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
],
serialized_start=486,
serialized_end=526,
)
_PYBULLETCOMMAND = _descriptor.Descriptor(
name='PyBulletCommand',
full_name='pybullet_grpc.PyBulletCommand',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='commandType', full_name='pybullet_grpc.PyBulletCommand.commandType', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='loadUrdfCommand', full_name='pybullet_grpc.PyBulletCommand.loadUrdfCommand', index=1,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='terminateServerCommand', full_name='pybullet_grpc.PyBulletCommand.terminateServerCommand', index=2,
number=4, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stepSimulationCommand', full_name='pybullet_grpc.PyBulletCommand.stepSimulationCommand', index=3,
number=5, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
_descriptor.OneofDescriptor(
name='commands', full_name='pybullet_grpc.PyBulletCommand.commands',
index=0, containing_type=None, fields=[]),
],
serialized_start=529,
serialized_end=782,
)
_PYBULLETSTATUS = _descriptor.Descriptor(
name='PyBulletStatus',
full_name='pybullet_grpc.PyBulletStatus',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='statusType', full_name='pybullet_grpc.PyBulletStatus.statusType', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='urdfStatus', full_name='pybullet_grpc.PyBulletStatus.urdfStatus', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto3',
extension_ranges=[],
oneofs=[
_descriptor.OneofDescriptor(
name='status', full_name='pybullet_grpc.PyBulletStatus.status',
index=0, containing_type=None, fields=[]),
],
serialized_start=784,
serialized_end=883,
)
_LOADURDFCOMMAND.fields_by_name['initialPosition'].message_type = _VEC3
_LOADURDFCOMMAND.fields_by_name['initialOrientation'].message_type = _QUAT4
_LOADURDFCOMMAND.oneofs_by_name['hasUseMultiBody'].fields.append(
_LOADURDFCOMMAND.fields_by_name['useMultiBody'])
_LOADURDFCOMMAND.fields_by_name['useMultiBody'].containing_oneof = _LOADURDFCOMMAND.oneofs_by_name['hasUseMultiBody']
_LOADURDFCOMMAND.oneofs_by_name['hasUseFixedBase'].fields.append(
_LOADURDFCOMMAND.fields_by_name['useFixedBase'])
_LOADURDFCOMMAND.fields_by_name['useFixedBase'].containing_oneof = _LOADURDFCOMMAND.oneofs_by_name['hasUseFixedBase']
_LOADURDFCOMMAND.oneofs_by_name['hasGlobalScaling'].fields.append(
_LOADURDFCOMMAND.fields_by_name['globalScaling'])
_LOADURDFCOMMAND.fields_by_name['globalScaling'].containing_oneof = _LOADURDFCOMMAND.oneofs_by_name['hasGlobalScaling']
_PYBULLETCOMMAND.fields_by_name['loadUrdfCommand'].message_type = _LOADURDFCOMMAND
_PYBULLETCOMMAND.fields_by_name['terminateServerCommand'].message_type = _TERMINATESERVERCOMMAND
_PYBULLETCOMMAND.fields_by_name['stepSimulationCommand'].message_type = _STEPSIMULATIONCOMMAND
_PYBULLETCOMMAND.oneofs_by_name['commands'].fields.append(
_PYBULLETCOMMAND.fields_by_name['loadUrdfCommand'])
_PYBULLETCOMMAND.fields_by_name['loadUrdfCommand'].containing_oneof = _PYBULLETCOMMAND.oneofs_by_name['commands']
_PYBULLETCOMMAND.oneofs_by_name['commands'].fields.append(
_PYBULLETCOMMAND.fields_by_name['terminateServerCommand'])
_PYBULLETCOMMAND.fields_by_name['terminateServerCommand'].containing_oneof = _PYBULLETCOMMAND.oneofs_by_name['commands']
_PYBULLETCOMMAND.oneofs_by_name['commands'].fields.append(
_PYBULLETCOMMAND.fields_by_name['stepSimulationCommand'])
_PYBULLETCOMMAND.fields_by_name['stepSimulationCommand'].containing_oneof = _PYBULLETCOMMAND.oneofs_by_name['commands']
_PYBULLETSTATUS.fields_by_name['urdfStatus'].message_type = _LOADURDFSTATUS
_PYBULLETSTATUS.oneofs_by_name['status'].fields.append(
_PYBULLETSTATUS.fields_by_name['urdfStatus'])
_PYBULLETSTATUS.fields_by_name['urdfStatus'].containing_oneof = _PYBULLETSTATUS.oneofs_by_name['status']
DESCRIPTOR.message_types_by_name['vec3'] = _VEC3
DESCRIPTOR.message_types_by_name['quat4'] = _QUAT4
DESCRIPTOR.message_types_by_name['TerminateServerCommand'] = _TERMINATESERVERCOMMAND
DESCRIPTOR.message_types_by_name['StepSimulationCommand'] = _STEPSIMULATIONCOMMAND
DESCRIPTOR.message_types_by_name['LoadUrdfCommand'] = _LOADURDFCOMMAND
DESCRIPTOR.message_types_by_name['LoadUrdfStatus'] = _LOADURDFSTATUS
DESCRIPTOR.message_types_by_name['PyBulletCommand'] = _PYBULLETCOMMAND
DESCRIPTOR.message_types_by_name['PyBulletStatus'] = _PYBULLETSTATUS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
vec3 = _reflection.GeneratedProtocolMessageType('vec3', (_message.Message,), dict(
DESCRIPTOR = _VEC3,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.vec3)
))
_sym_db.RegisterMessage(vec3)
quat4 = _reflection.GeneratedProtocolMessageType('quat4', (_message.Message,), dict(
DESCRIPTOR = _QUAT4,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.quat4)
))
_sym_db.RegisterMessage(quat4)
TerminateServerCommand = _reflection.GeneratedProtocolMessageType('TerminateServerCommand', (_message.Message,), dict(
DESCRIPTOR = _TERMINATESERVERCOMMAND,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.TerminateServerCommand)
))
_sym_db.RegisterMessage(TerminateServerCommand)
StepSimulationCommand = _reflection.GeneratedProtocolMessageType('StepSimulationCommand', (_message.Message,), dict(
DESCRIPTOR = _STEPSIMULATIONCOMMAND,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.StepSimulationCommand)
))
_sym_db.RegisterMessage(StepSimulationCommand)
LoadUrdfCommand = _reflection.GeneratedProtocolMessageType('LoadUrdfCommand', (_message.Message,), dict(
DESCRIPTOR = _LOADURDFCOMMAND,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.LoadUrdfCommand)
))
_sym_db.RegisterMessage(LoadUrdfCommand)
LoadUrdfStatus = _reflection.GeneratedProtocolMessageType('LoadUrdfStatus', (_message.Message,), dict(
DESCRIPTOR = _LOADURDFSTATUS,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.LoadUrdfStatus)
))
_sym_db.RegisterMessage(LoadUrdfStatus)
PyBulletCommand = _reflection.GeneratedProtocolMessageType('PyBulletCommand', (_message.Message,), dict(
DESCRIPTOR = _PYBULLETCOMMAND,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.PyBulletCommand)
))
_sym_db.RegisterMessage(PyBulletCommand)
PyBulletStatus = _reflection.GeneratedProtocolMessageType('PyBulletStatus', (_message.Message,), dict(
DESCRIPTOR = _PYBULLETSTATUS,
__module__ = 'pybullet_pb2'
# @@protoc_insertion_point(class_scope:pybullet_grpc.PyBulletStatus)
))
_sym_db.RegisterMessage(PyBulletStatus)
DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\025io.grpc.pybullet_grpcB\rPyBulletProtoP\001\242\002\003PBG'))
_PYBULLETAPI = _descriptor.ServiceDescriptor(
name='PyBulletAPI',
full_name='pybullet_grpc.PyBulletAPI',
file=DESCRIPTOR,
index=0,
options=None,
serialized_start=885,
serialized_end=980,
methods=[
_descriptor.MethodDescriptor(
name='SubmitCommand',
full_name='pybullet_grpc.PyBulletAPI.SubmitCommand',
index=0,
containing_service=None,
input_type=_PYBULLETCOMMAND,
output_type=_PYBULLETSTATUS,
options=None,
),
])
_sym_db.RegisterServiceDescriptor(_PYBULLETAPI)
DESCRIPTOR.services_by_name['PyBulletAPI'] = _PYBULLETAPI
# @@protoc_insertion_point(module_scope)