# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

import mjc_message_pb2 as mjc__message__pb2

GRPC_GENERATED_VERSION = '1.66.1'
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},'
        + f' but the generated code in mjc_message_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 GrpcServiceStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.SetSimulationState = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetSimulationState',
                request_serializer=mjc__message__pb2.SetSimulationStateRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetSimulationStateResponse.FromString,
                _registered_method=True)
        self.LoadInitialFrame = channel.unary_unary(
                '/MujocoMessage.GrpcService/LoadInitialFrame',
                request_serializer=mjc__message__pb2.LoadInitialFrameRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.LoadInitialFrameResponse.FromString,
                _registered_method=True)
        self.LoadKeyFrame = channel.unary_unary(
                '/MujocoMessage.GrpcService/LoadKeyFrame',
                request_serializer=mjc__message__pb2.LoadKeyFrameRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.LoadKeyFrameResponse.FromString,
                _registered_method=True)
        self.UpdateLocalEnv = channel.unary_unary(
                '/MujocoMessage.GrpcService/UpdateLocalEnv',
                request_serializer=mjc__message__pb2.UpdateLocalEnvRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.UpdateLocalEnvResponse.FromString,
                _registered_method=True)
        self.LoadLocalEnv = channel.unary_unary(
                '/MujocoMessage.GrpcService/LoadLocalEnv',
                request_serializer=mjc__message__pb2.LoadLocalEnvRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.LoadLocalEnvResponse.FromString,
                _registered_method=True)
        self.LoadContentFile = channel.unary_unary(
                '/MujocoMessage.GrpcService/LoadContentFile',
                request_serializer=mjc__message__pb2.LoadContentFileRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.LoadContentFileResponse.FromString,
                _registered_method=True)
        self.AddActor = channel.unary_unary(
                '/MujocoMessage.GrpcService/AddActor',
                request_serializer=mjc__message__pb2.AddActorRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.AddActorResponse.FromString,
                _registered_method=True)
        self.PublishScene = channel.unary_unary(
                '/MujocoMessage.GrpcService/PublishScene',
                request_serializer=mjc__message__pb2.PublishSceneRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.PublishSceneResponse.FromString,
                _registered_method=True)
        self.SetLightInfo = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetLightInfo',
                request_serializer=mjc__message__pb2.SetLightInfoRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetLightInfoResponse.FromString,
                _registered_method=True)
        self.SetCameraSensorInfo = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetCameraSensorInfo',
                request_serializer=mjc__message__pb2.SetCameraSensorInfoRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetCameraSensorInfoResponse.FromString,
                _registered_method=True)
        self.MakeCameraViewportActive = channel.unary_unary(
                '/MujocoMessage.GrpcService/MakeCameraViewportActive',
                request_serializer=mjc__message__pb2.MakeCameraViewportActiveRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.MakeCameraViewportActiveResponse.FromString,
                _registered_method=True)
        self.SetMaterialInfo = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetMaterialInfo',
                request_serializer=mjc__message__pb2.SetMaterialInfoRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetMaterialInfoResponse.FromString,
                _registered_method=True)
        self.BeginSaveMp4File = channel.unary_unary(
                '/MujocoMessage.GrpcService/BeginSaveMp4File',
                request_serializer=mjc__message__pb2.BeginSaveMp4FileRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.BeginSaveMp4FileResponse.FromString,
                _registered_method=True)
        self.StopSaveMp4File = channel.unary_unary(
                '/MujocoMessage.GrpcService/StopSaveMp4File',
                request_serializer=mjc__message__pb2.StopSaveMp4FileRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.StopSaveMp4FileResponse.FromString,
                _registered_method=True)
        self.GetCurrentFrameIndex = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetCurrentFrameIndex',
                request_serializer=mjc__message__pb2.GetCurrentFrameIndexRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetCurrentFrameIndexResponse.FromString,
                _registered_method=True)
        self.GetTimeStamp = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetTimeStamp',
                request_serializer=mjc__message__pb2.GetTimeStampRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetTimeStampResponse.FromString,
                _registered_method=True)
        self.GetCameraFramePNG = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetCameraFramePNG',
                request_serializer=mjc__message__pb2.GetCameraFramePNGRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetCameraFramePNGResponse.FromString,
                _registered_method=True)
        self.GetKeyPressedEvents = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetKeyPressedEvents',
                request_serializer=mjc__message__pb2.GetKeyPressedEventsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetKeyPressedEventsResponse.FromString,
                _registered_method=True)
        self.GetMouseMovementEvents = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetMouseMovementEvents',
                request_serializer=mjc__message__pb2.GetMouseMovementEventsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetMouseMovementEventsResponse.FromString,
                _registered_method=True)
        self.GetBodyManipulationAnchored = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetBodyManipulationAnchored',
                request_serializer=mjc__message__pb2.GetBodyManipulationAnchoredRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetBodyManipulationAnchoredResponse.FromString,
                _registered_method=True)
        self.GetBodyManipulationMovement = channel.unary_unary(
                '/MujocoMessage.GrpcService/GetBodyManipulationMovement',
                request_serializer=mjc__message__pb2.GetBodyManipulationMovementRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.GetBodyManipulationMovementResponse.FromString,
                _registered_method=True)
        self.SetActorAnimParamNumber = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetActorAnimParamNumber',
                request_serializer=mjc__message__pb2.SetActorAnimParamNumberRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetActorAnimParamNumberResponse.FromString,
                _registered_method=True)
        self.SetActorAnimParamBool = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetActorAnimParamBool',
                request_serializer=mjc__message__pb2.SetActorAnimParamBoolRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetActorAnimParamBoolResponse.FromString,
                _registered_method=True)
        self.SetActorAnimParamString = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetActorAnimParamString',
                request_serializer=mjc__message__pb2.SetActorAnimParamStringRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetActorAnimParamStringResponse.FromString,
                _registered_method=True)
        self.QueryModelInfo = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryModelInfo',
                request_serializer=mjc__message__pb2.QueryModelInfoRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryModelInfoResponse.FromString,
                _registered_method=True)
        self.QueryOptConfig = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryOptConfig',
                request_serializer=mjc__message__pb2.QueryOptConfigRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryOptConfigResponse.FromString,
                _registered_method=True)
        self.SetOptTimestep = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetOptTimestep',
                request_serializer=mjc__message__pb2.SetOptTimestepRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetOptTimestepResponse.FromString,
                _registered_method=True)
        self.SetOptConfig = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetOptConfig',
                request_serializer=mjc__message__pb2.SetOptConfigRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetOptConfigResponse.FromString,
                _registered_method=True)
        self.QueryAllBodies = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllBodies',
                request_serializer=mjc__message__pb2.QueryAllBodiesRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllBodiesResponse.FromString,
                _registered_method=True)
        self.QueryAllJoints = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllJoints',
                request_serializer=mjc__message__pb2.QueryAllJointsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllJointsResponse.FromString,
                _registered_method=True)
        self.QueryAllActuators = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllActuators',
                request_serializer=mjc__message__pb2.QueryAllActuatorsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllActuatorsResponse.FromString,
                _registered_method=True)
        self.QueryAllGeoms = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllGeoms',
                request_serializer=mjc__message__pb2.QueryAllGeomsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllGeomsResponse.FromString,
                _registered_method=True)
        self.QueryAllMocapBodies = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllMocapBodies',
                request_serializer=mjc__message__pb2.QueryAllMocapBodiesRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllMocapBodiesResponse.FromString,
                _registered_method=True)
        self.QueryAllEqualityConstraints = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllEqualityConstraints',
                request_serializer=mjc__message__pb2.QueryAllEqualityConstraintsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllEqualityConstraintsResponse.FromString,
                _registered_method=True)
        self.QueryAllSites = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllSites',
                request_serializer=mjc__message__pb2.QueryAllSitesRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllSitesResponse.FromString,
                _registered_method=True)
        self.QueryAllQposQvelQacc = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryAllQposQvelQacc',
                request_serializer=mjc__message__pb2.QueryAllQposQvelQaccRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryAllQposQvelQaccResponse.FromString,
                _registered_method=True)
        self.QueryContact = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryContact',
                request_serializer=mjc__message__pb2.QueryContactRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryContactResponse.FromString,
                _registered_method=True)
        self.QueryContactSimple = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryContactSimple',
                request_serializer=mjc__message__pb2.QueryContactSimpleRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryContactSimpleResponse.FromString,
                _registered_method=True)
        self.QueryQfrcInverse = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryQfrcInverse',
                request_serializer=mjc__message__pb2.QueryQfrcInverseRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryQfrcInverseResponse.FromString,
                _registered_method=True)
        self.QueryActuatorMoment = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryActuatorMoment',
                request_serializer=mjc__message__pb2.QueryActuatorMomentRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryActuatorMomentResponse.FromString,
                _registered_method=True)
        self.QueryQfrcActuator = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryQfrcActuator',
                request_serializer=mjc__message__pb2.QueryQfrcActuatorRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryQfrcActuatorResponse.FromString,
                _registered_method=True)
        self.QueryCfrcExt = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryCfrcExt',
                request_serializer=mjc__message__pb2.QueryCfrcExtRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryCfrcExtResponse.FromString,
                _registered_method=True)
        self.QueryActuatorForce = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryActuatorForce',
                request_serializer=mjc__message__pb2.QueryActuatorForceRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryActuatorForceResponse.FromString,
                _registered_method=True)
        self.QueryBodyVelocities = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryBodyVelocities',
                request_serializer=mjc__message__pb2.QueryBodyVelocitiesRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryBodyVelocitiesResponse.FromString,
                _registered_method=True)
        self.QueryQfrcBias = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryQfrcBias',
                request_serializer=mjc__message__pb2.QueryQfrcBiasRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryQfrcBiasResponse.FromString,
                _registered_method=True)
        self.QuerySubtreeCom = channel.unary_unary(
                '/MujocoMessage.GrpcService/QuerySubtreeCom',
                request_serializer=mjc__message__pb2.QuerySubtreeComRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QuerySubtreeComResponse.FromString,
                _registered_method=True)
        self.QuerySensorData = channel.unary_unary(
                '/MujocoMessage.GrpcService/QuerySensorData',
                request_serializer=mjc__message__pb2.QuerySensorDataRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QuerySensorDataResponse.FromString,
                _registered_method=True)
        self.SetQpos = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetQpos',
                request_serializer=mjc__message__pb2.SetQposRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetQposResponse.FromString,
                _registered_method=True)
        self.SetQacc = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetQacc',
                request_serializer=mjc__message__pb2.SetQaccRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetQaccResponse.FromString,
                _registered_method=True)
        self.SetCtrl = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetCtrl',
                request_serializer=mjc__message__pb2.SetCtrlRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetCtrlResponse.FromString,
                _registered_method=True)
        self.SetQvel = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetQvel',
                request_serializer=mjc__message__pb2.SetQvelRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetQvelResponse.FromString,
                _registered_method=True)
        self.QueryJointNames = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryJointNames',
                request_serializer=mjc__message__pb2.QueryJointNamesRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryJointNamesResponse.FromString,
                _registered_method=True)
        self.QueryJointDofadr = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryJointDofadr',
                request_serializer=mjc__message__pb2.QueryJointDofadrRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryJointDofadrResponse.FromString,
                _registered_method=True)
        self.QueryChildBody = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryChildBody',
                request_serializer=mjc__message__pb2.QueryChildBodyRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryChildBodyResponse.FromString,
                _registered_method=True)
        self.QueryBodyQpos = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryBodyQpos',
                request_serializer=mjc__message__pb2.QueryBodyQposRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryBodyQposResponse.FromString,
                _registered_method=True)
        self.QueryBodyQvel = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryBodyQvel',
                request_serializer=mjc__message__pb2.QueryBodyQvelRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryBodyQvelResponse.FromString,
                _registered_method=True)
        self.QueryJointQpos = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryJointQpos',
                request_serializer=mjc__message__pb2.QueryJointQposRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryJointQposResponse.FromString,
                _registered_method=True)
        self.QueryJointQvel = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryJointQvel',
                request_serializer=mjc__message__pb2.QueryJointQvelRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryJointQvelResponse.FromString,
                _registered_method=True)
        self.QueryBodySubtreeMassByName = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryBodySubtreeMassByName',
                request_serializer=mjc__message__pb2.QueryBodySubtreeMassByNameRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryBodySubtreeMassByNameResponse.FromString,
                _registered_method=True)
        self.QueryJointLimits = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryJointLimits',
                request_serializer=mjc__message__pb2.QueryJointLimitsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryJointLimitsResponse.FromString,
                _registered_method=True)
        self.QueryActuatorGainPrm = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryActuatorGainPrm',
                request_serializer=mjc__message__pb2.QueryActuatorGainPrmRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryActuatorGainPrmResponse.FromString,
                _registered_method=True)
        self.QueryActuatorBiasPrm = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryActuatorBiasPrm',
                request_serializer=mjc__message__pb2.QueryActuatorBiasPrmRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryActuatorBiasPrmResponse.FromString,
                _registered_method=True)
        self.QuerySitePosAndMat = channel.unary_unary(
                '/MujocoMessage.GrpcService/QuerySitePosAndMat',
                request_serializer=mjc__message__pb2.QuerySitePosAndMatRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QuerySitePosAndMatResponse.FromString,
                _registered_method=True)
        self.QuerySiteJac = channel.unary_unary(
                '/MujocoMessage.GrpcService/QuerySiteJac',
                request_serializer=mjc__message__pb2.QuerySiteJacRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QuerySiteJacResponse.FromString,
                _registered_method=True)
        self.QueryBodyComPosMat = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryBodyComPosMat',
                request_serializer=mjc__message__pb2.QueryBodyComPosMatRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryBodyComPosMatResponse.FromString,
                _registered_method=True)
        self.QueryBodyPosMatQuat = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryBodyPosMatQuat',
                request_serializer=mjc__message__pb2.QueryBodyPosMatQuatRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryBodyPosMatQuatResponse.FromString,
                _registered_method=True)
        self.QueryGeomPosMat = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryGeomPosMat',
                request_serializer=mjc__message__pb2.QueryGeomPosMatRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryGeomPosMatResponse.FromString,
                _registered_method=True)
        self.QueryContactForce = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryContactForce',
                request_serializer=mjc__message__pb2.QueryContactForceRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryContactForceResponse.FromString,
                _registered_method=True)
        self.QueryJointOffsets = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryJointOffsets',
                request_serializer=mjc__message__pb2.QueryJointOffsetsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryJointOffsetsResponse.FromString,
                _registered_method=True)
        self.SetControlInput = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetControlInput',
                request_serializer=mjc__message__pb2.SetControlInputRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetControlInputResponse.FromString,
                _registered_method=True)
        self.SetJointQpos = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetJointQpos',
                request_serializer=mjc__message__pb2.SetJointQposRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetJointQposResponse.FromString,
                _registered_method=True)
        self.SetActuatorGainPrm = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetActuatorGainPrm',
                request_serializer=mjc__message__pb2.SetActuatorGainPrmRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetActuatorGainPrmResponse.FromString,
                _registered_method=True)
        self.SetActuatorBiasPrm = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetActuatorBiasPrm',
                request_serializer=mjc__message__pb2.SetActuatorBiasPrmRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetActuatorBiasPrmResponse.FromString,
                _registered_method=True)
        self.QueryMocapPosAndQuat = channel.unary_unary(
                '/MujocoMessage.GrpcService/QueryMocapPosAndQuat',
                request_serializer=mjc__message__pb2.QueryMocapPosAndQuatRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.QueryMocapPosAndQuatResponse.FromString,
                _registered_method=True)
        self.SetMocapPosAndQuat = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetMocapPosAndQuat',
                request_serializer=mjc__message__pb2.SetMocapPosAndQuatRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetMocapPosAndQuatResponse.FromString,
                _registered_method=True)
        self.UpdateEqualityConstraints = channel.unary_unary(
                '/MujocoMessage.GrpcService/UpdateEqualityConstraints',
                request_serializer=mjc__message__pb2.UpdateEqualityConstraintsRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.UpdateEqualityConstraintsResponse.FromString,
                _registered_method=True)
        self.SetGeomFriction = channel.unary_unary(
                '/MujocoMessage.GrpcService/SetGeomFriction',
                request_serializer=mjc__message__pb2.SetGeomFrictionRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.SetGeomFrictionResponse.FromString,
                _registered_method=True)
        self.MJ_Forward = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_Forward',
                request_serializer=mjc__message__pb2.MJ_ForwardRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.MJ_ForwardResponse.FromString,
                _registered_method=True)
        self.MJ_Inverse = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_Inverse',
                request_serializer=mjc__message__pb2.MJ_InverseRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.MJ_InverseResponse.FromString,
                _registered_method=True)
        self.MJ_Step = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_Step',
                request_serializer=mjc__message__pb2.MJ_StepRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.MJ_StepResponse.FromString,
                _registered_method=True)
        self.CalculateStateDifference = channel.unary_unary(
                '/MujocoMessage.GrpcService/CalculateStateDifference',
                request_serializer=mjc__message__pb2.CalculateStateDifferenceRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.CalculateStateDifferenceResponse.FromString,
                _registered_method=True)
        self.MJ_DifferentiatePos = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_DifferentiatePos',
                request_serializer=mjc__message__pb2.DifferentiatePosRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.DifferentiatePosResponse.FromString,
                _registered_method=True)
        self.MJD_TransitionFD = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJD_TransitionFD',
                request_serializer=mjc__message__pb2.TransitionFDRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.TransitionFDResponse.FromString,
                _registered_method=True)
        self.MJ_JacSubtreeCom = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_JacSubtreeCom',
                request_serializer=mjc__message__pb2.JacSubtreeComRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.JacSubtreeComResponse.FromString,
                _registered_method=True)
        self.MJ_JacBodyCom = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_JacBodyCom',
                request_serializer=mjc__message__pb2.JacBodyComRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.JacBodyComResponse.FromString,
                _registered_method=True)
        self.MJ_Jac = channel.unary_unary(
                '/MujocoMessage.GrpcService/MJ_Jac',
                request_serializer=mjc__message__pb2.MJ_JacRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.MJ_JacResponse.FromString,
                _registered_method=True)
        self.CalcFullMassMatrix = channel.unary_unary(
                '/MujocoMessage.GrpcService/CalcFullMassMatrix',
                request_serializer=mjc__message__pb2.CalcFullMassMatrixRequest.SerializeToString,
                response_deserializer=mjc__message__pb2.CalcFullMassMatrixResponse.FromString,
                _registered_method=True)


class GrpcServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

    def SetSimulationState(self, request, context):
        """全局控制
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LoadInitialFrame(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 LoadKeyFrame(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 UpdateLocalEnv(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 LoadLocalEnv(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 LoadContentFile(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 AddActor(self, request, context):
        """场景控制
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PublishScene(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 SetLightInfo(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 SetCameraSensorInfo(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 MakeCameraViewportActive(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 SetMaterialInfo(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 BeginSaveMp4File(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 StopSaveMp4File(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 GetCurrentFrameIndex(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 GetTimeStamp(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 GetCameraFramePNG(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 GetKeyPressedEvents(self, request, context):
        """键鼠操作
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetMouseMovementEvents(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 GetBodyManipulationAnchored(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 GetBodyManipulationMovement(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 SetActorAnimParamNumber(self, request, context):
        """动画控制
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetActorAnimParamBool(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 SetActorAnimParamString(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 QueryModelInfo(self, request, context):
        """配置查询
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def QueryOptConfig(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 SetOptTimestep(self, request, context):
        """配置设置
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetOptConfig(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 QueryAllBodies(self, request, context):
        """Model 查询
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def QueryAllJoints(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 QueryAllActuators(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 QueryAllGeoms(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 QueryAllMocapBodies(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 QueryAllEqualityConstraints(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 QueryAllSites(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 QueryAllQposQvelQacc(self, request, context):
        """Data 查询
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def QueryContact(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 QueryContactSimple(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 QueryQfrcInverse(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 QueryActuatorMoment(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 QueryQfrcActuator(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 QueryCfrcExt(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 QueryActuatorForce(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 QueryBodyVelocities(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 QueryQfrcBias(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 QuerySubtreeCom(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 QuerySensorData(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 SetQpos(self, request, context):
        """全量数据覆盖写入
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetQacc(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 SetCtrl(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 SetQvel(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 QueryJointNames(self, request, context):
        """元素查询
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def QueryJointDofadr(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 QueryChildBody(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 QueryBodyQpos(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 QueryBodyQvel(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 QueryJointQpos(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 QueryJointQvel(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 QueryBodySubtreeMassByName(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 QueryJointLimits(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 QueryActuatorGainPrm(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 QueryActuatorBiasPrm(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 QuerySitePosAndMat(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 QuerySiteJac(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 QueryBodyComPosMat(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 QueryBodyPosMatQuat(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 QueryGeomPosMat(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 QueryContactForce(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 QueryJointOffsets(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 SetControlInput(self, request, context):
        """元素设置
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetJointQpos(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 SetActuatorGainPrm(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 SetActuatorBiasPrm(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 QueryMocapPosAndQuat(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 SetMocapPosAndQuat(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 UpdateEqualityConstraints(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 SetGeomFriction(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 MJ_Forward(self, request, context):
        """动力学计算
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MJ_Inverse(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 MJ_Step(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 CalculateStateDifference(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 MJ_DifferentiatePos(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 MJD_TransitionFD(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 MJ_JacSubtreeCom(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 MJ_JacBodyCom(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 MJ_Jac(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 CalcFullMassMatrix(self, request, context):
        """计算全局的质量矩阵，不只包含机器人本体，还有其他有关节的物品
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_GrpcServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SetSimulationState': grpc.unary_unary_rpc_method_handler(
                    servicer.SetSimulationState,
                    request_deserializer=mjc__message__pb2.SetSimulationStateRequest.FromString,
                    response_serializer=mjc__message__pb2.SetSimulationStateResponse.SerializeToString,
            ),
            'LoadInitialFrame': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadInitialFrame,
                    request_deserializer=mjc__message__pb2.LoadInitialFrameRequest.FromString,
                    response_serializer=mjc__message__pb2.LoadInitialFrameResponse.SerializeToString,
            ),
            'LoadKeyFrame': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadKeyFrame,
                    request_deserializer=mjc__message__pb2.LoadKeyFrameRequest.FromString,
                    response_serializer=mjc__message__pb2.LoadKeyFrameResponse.SerializeToString,
            ),
            'UpdateLocalEnv': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateLocalEnv,
                    request_deserializer=mjc__message__pb2.UpdateLocalEnvRequest.FromString,
                    response_serializer=mjc__message__pb2.UpdateLocalEnvResponse.SerializeToString,
            ),
            'LoadLocalEnv': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadLocalEnv,
                    request_deserializer=mjc__message__pb2.LoadLocalEnvRequest.FromString,
                    response_serializer=mjc__message__pb2.LoadLocalEnvResponse.SerializeToString,
            ),
            'LoadContentFile': grpc.unary_unary_rpc_method_handler(
                    servicer.LoadContentFile,
                    request_deserializer=mjc__message__pb2.LoadContentFileRequest.FromString,
                    response_serializer=mjc__message__pb2.LoadContentFileResponse.SerializeToString,
            ),
            'AddActor': grpc.unary_unary_rpc_method_handler(
                    servicer.AddActor,
                    request_deserializer=mjc__message__pb2.AddActorRequest.FromString,
                    response_serializer=mjc__message__pb2.AddActorResponse.SerializeToString,
            ),
            'PublishScene': grpc.unary_unary_rpc_method_handler(
                    servicer.PublishScene,
                    request_deserializer=mjc__message__pb2.PublishSceneRequest.FromString,
                    response_serializer=mjc__message__pb2.PublishSceneResponse.SerializeToString,
            ),
            'SetLightInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.SetLightInfo,
                    request_deserializer=mjc__message__pb2.SetLightInfoRequest.FromString,
                    response_serializer=mjc__message__pb2.SetLightInfoResponse.SerializeToString,
            ),
            'SetCameraSensorInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.SetCameraSensorInfo,
                    request_deserializer=mjc__message__pb2.SetCameraSensorInfoRequest.FromString,
                    response_serializer=mjc__message__pb2.SetCameraSensorInfoResponse.SerializeToString,
            ),
            'MakeCameraViewportActive': grpc.unary_unary_rpc_method_handler(
                    servicer.MakeCameraViewportActive,
                    request_deserializer=mjc__message__pb2.MakeCameraViewportActiveRequest.FromString,
                    response_serializer=mjc__message__pb2.MakeCameraViewportActiveResponse.SerializeToString,
            ),
            'SetMaterialInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.SetMaterialInfo,
                    request_deserializer=mjc__message__pb2.SetMaterialInfoRequest.FromString,
                    response_serializer=mjc__message__pb2.SetMaterialInfoResponse.SerializeToString,
            ),
            'BeginSaveMp4File': grpc.unary_unary_rpc_method_handler(
                    servicer.BeginSaveMp4File,
                    request_deserializer=mjc__message__pb2.BeginSaveMp4FileRequest.FromString,
                    response_serializer=mjc__message__pb2.BeginSaveMp4FileResponse.SerializeToString,
            ),
            'StopSaveMp4File': grpc.unary_unary_rpc_method_handler(
                    servicer.StopSaveMp4File,
                    request_deserializer=mjc__message__pb2.StopSaveMp4FileRequest.FromString,
                    response_serializer=mjc__message__pb2.StopSaveMp4FileResponse.SerializeToString,
            ),
            'GetCurrentFrameIndex': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCurrentFrameIndex,
                    request_deserializer=mjc__message__pb2.GetCurrentFrameIndexRequest.FromString,
                    response_serializer=mjc__message__pb2.GetCurrentFrameIndexResponse.SerializeToString,
            ),
            'GetTimeStamp': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTimeStamp,
                    request_deserializer=mjc__message__pb2.GetTimeStampRequest.FromString,
                    response_serializer=mjc__message__pb2.GetTimeStampResponse.SerializeToString,
            ),
            'GetCameraFramePNG': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCameraFramePNG,
                    request_deserializer=mjc__message__pb2.GetCameraFramePNGRequest.FromString,
                    response_serializer=mjc__message__pb2.GetCameraFramePNGResponse.SerializeToString,
            ),
            'GetKeyPressedEvents': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeyPressedEvents,
                    request_deserializer=mjc__message__pb2.GetKeyPressedEventsRequest.FromString,
                    response_serializer=mjc__message__pb2.GetKeyPressedEventsResponse.SerializeToString,
            ),
            'GetMouseMovementEvents': grpc.unary_unary_rpc_method_handler(
                    servicer.GetMouseMovementEvents,
                    request_deserializer=mjc__message__pb2.GetMouseMovementEventsRequest.FromString,
                    response_serializer=mjc__message__pb2.GetMouseMovementEventsResponse.SerializeToString,
            ),
            'GetBodyManipulationAnchored': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBodyManipulationAnchored,
                    request_deserializer=mjc__message__pb2.GetBodyManipulationAnchoredRequest.FromString,
                    response_serializer=mjc__message__pb2.GetBodyManipulationAnchoredResponse.SerializeToString,
            ),
            'GetBodyManipulationMovement': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBodyManipulationMovement,
                    request_deserializer=mjc__message__pb2.GetBodyManipulationMovementRequest.FromString,
                    response_serializer=mjc__message__pb2.GetBodyManipulationMovementResponse.SerializeToString,
            ),
            'SetActorAnimParamNumber': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActorAnimParamNumber,
                    request_deserializer=mjc__message__pb2.SetActorAnimParamNumberRequest.FromString,
                    response_serializer=mjc__message__pb2.SetActorAnimParamNumberResponse.SerializeToString,
            ),
            'SetActorAnimParamBool': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActorAnimParamBool,
                    request_deserializer=mjc__message__pb2.SetActorAnimParamBoolRequest.FromString,
                    response_serializer=mjc__message__pb2.SetActorAnimParamBoolResponse.SerializeToString,
            ),
            'SetActorAnimParamString': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActorAnimParamString,
                    request_deserializer=mjc__message__pb2.SetActorAnimParamStringRequest.FromString,
                    response_serializer=mjc__message__pb2.SetActorAnimParamStringResponse.SerializeToString,
            ),
            'QueryModelInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryModelInfo,
                    request_deserializer=mjc__message__pb2.QueryModelInfoRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryModelInfoResponse.SerializeToString,
            ),
            'QueryOptConfig': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryOptConfig,
                    request_deserializer=mjc__message__pb2.QueryOptConfigRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryOptConfigResponse.SerializeToString,
            ),
            'SetOptTimestep': grpc.unary_unary_rpc_method_handler(
                    servicer.SetOptTimestep,
                    request_deserializer=mjc__message__pb2.SetOptTimestepRequest.FromString,
                    response_serializer=mjc__message__pb2.SetOptTimestepResponse.SerializeToString,
            ),
            'SetOptConfig': grpc.unary_unary_rpc_method_handler(
                    servicer.SetOptConfig,
                    request_deserializer=mjc__message__pb2.SetOptConfigRequest.FromString,
                    response_serializer=mjc__message__pb2.SetOptConfigResponse.SerializeToString,
            ),
            'QueryAllBodies': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllBodies,
                    request_deserializer=mjc__message__pb2.QueryAllBodiesRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllBodiesResponse.SerializeToString,
            ),
            'QueryAllJoints': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllJoints,
                    request_deserializer=mjc__message__pb2.QueryAllJointsRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllJointsResponse.SerializeToString,
            ),
            'QueryAllActuators': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllActuators,
                    request_deserializer=mjc__message__pb2.QueryAllActuatorsRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllActuatorsResponse.SerializeToString,
            ),
            'QueryAllGeoms': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllGeoms,
                    request_deserializer=mjc__message__pb2.QueryAllGeomsRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllGeomsResponse.SerializeToString,
            ),
            'QueryAllMocapBodies': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllMocapBodies,
                    request_deserializer=mjc__message__pb2.QueryAllMocapBodiesRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllMocapBodiesResponse.SerializeToString,
            ),
            'QueryAllEqualityConstraints': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllEqualityConstraints,
                    request_deserializer=mjc__message__pb2.QueryAllEqualityConstraintsRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllEqualityConstraintsResponse.SerializeToString,
            ),
            'QueryAllSites': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllSites,
                    request_deserializer=mjc__message__pb2.QueryAllSitesRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllSitesResponse.SerializeToString,
            ),
            'QueryAllQposQvelQacc': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryAllQposQvelQacc,
                    request_deserializer=mjc__message__pb2.QueryAllQposQvelQaccRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryAllQposQvelQaccResponse.SerializeToString,
            ),
            'QueryContact': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryContact,
                    request_deserializer=mjc__message__pb2.QueryContactRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryContactResponse.SerializeToString,
            ),
            'QueryContactSimple': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryContactSimple,
                    request_deserializer=mjc__message__pb2.QueryContactSimpleRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryContactSimpleResponse.SerializeToString,
            ),
            'QueryQfrcInverse': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryQfrcInverse,
                    request_deserializer=mjc__message__pb2.QueryQfrcInverseRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryQfrcInverseResponse.SerializeToString,
            ),
            'QueryActuatorMoment': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryActuatorMoment,
                    request_deserializer=mjc__message__pb2.QueryActuatorMomentRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryActuatorMomentResponse.SerializeToString,
            ),
            'QueryQfrcActuator': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryQfrcActuator,
                    request_deserializer=mjc__message__pb2.QueryQfrcActuatorRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryQfrcActuatorResponse.SerializeToString,
            ),
            'QueryCfrcExt': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryCfrcExt,
                    request_deserializer=mjc__message__pb2.QueryCfrcExtRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryCfrcExtResponse.SerializeToString,
            ),
            'QueryActuatorForce': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryActuatorForce,
                    request_deserializer=mjc__message__pb2.QueryActuatorForceRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryActuatorForceResponse.SerializeToString,
            ),
            'QueryBodyVelocities': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryBodyVelocities,
                    request_deserializer=mjc__message__pb2.QueryBodyVelocitiesRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryBodyVelocitiesResponse.SerializeToString,
            ),
            'QueryQfrcBias': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryQfrcBias,
                    request_deserializer=mjc__message__pb2.QueryQfrcBiasRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryQfrcBiasResponse.SerializeToString,
            ),
            'QuerySubtreeCom': grpc.unary_unary_rpc_method_handler(
                    servicer.QuerySubtreeCom,
                    request_deserializer=mjc__message__pb2.QuerySubtreeComRequest.FromString,
                    response_serializer=mjc__message__pb2.QuerySubtreeComResponse.SerializeToString,
            ),
            'QuerySensorData': grpc.unary_unary_rpc_method_handler(
                    servicer.QuerySensorData,
                    request_deserializer=mjc__message__pb2.QuerySensorDataRequest.FromString,
                    response_serializer=mjc__message__pb2.QuerySensorDataResponse.SerializeToString,
            ),
            'SetQpos': grpc.unary_unary_rpc_method_handler(
                    servicer.SetQpos,
                    request_deserializer=mjc__message__pb2.SetQposRequest.FromString,
                    response_serializer=mjc__message__pb2.SetQposResponse.SerializeToString,
            ),
            'SetQacc': grpc.unary_unary_rpc_method_handler(
                    servicer.SetQacc,
                    request_deserializer=mjc__message__pb2.SetQaccRequest.FromString,
                    response_serializer=mjc__message__pb2.SetQaccResponse.SerializeToString,
            ),
            'SetCtrl': grpc.unary_unary_rpc_method_handler(
                    servicer.SetCtrl,
                    request_deserializer=mjc__message__pb2.SetCtrlRequest.FromString,
                    response_serializer=mjc__message__pb2.SetCtrlResponse.SerializeToString,
            ),
            'SetQvel': grpc.unary_unary_rpc_method_handler(
                    servicer.SetQvel,
                    request_deserializer=mjc__message__pb2.SetQvelRequest.FromString,
                    response_serializer=mjc__message__pb2.SetQvelResponse.SerializeToString,
            ),
            'QueryJointNames': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryJointNames,
                    request_deserializer=mjc__message__pb2.QueryJointNamesRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryJointNamesResponse.SerializeToString,
            ),
            'QueryJointDofadr': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryJointDofadr,
                    request_deserializer=mjc__message__pb2.QueryJointDofadrRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryJointDofadrResponse.SerializeToString,
            ),
            'QueryChildBody': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryChildBody,
                    request_deserializer=mjc__message__pb2.QueryChildBodyRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryChildBodyResponse.SerializeToString,
            ),
            'QueryBodyQpos': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryBodyQpos,
                    request_deserializer=mjc__message__pb2.QueryBodyQposRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryBodyQposResponse.SerializeToString,
            ),
            'QueryBodyQvel': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryBodyQvel,
                    request_deserializer=mjc__message__pb2.QueryBodyQvelRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryBodyQvelResponse.SerializeToString,
            ),
            'QueryJointQpos': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryJointQpos,
                    request_deserializer=mjc__message__pb2.QueryJointQposRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryJointQposResponse.SerializeToString,
            ),
            'QueryJointQvel': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryJointQvel,
                    request_deserializer=mjc__message__pb2.QueryJointQvelRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryJointQvelResponse.SerializeToString,
            ),
            'QueryBodySubtreeMassByName': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryBodySubtreeMassByName,
                    request_deserializer=mjc__message__pb2.QueryBodySubtreeMassByNameRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryBodySubtreeMassByNameResponse.SerializeToString,
            ),
            'QueryJointLimits': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryJointLimits,
                    request_deserializer=mjc__message__pb2.QueryJointLimitsRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryJointLimitsResponse.SerializeToString,
            ),
            'QueryActuatorGainPrm': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryActuatorGainPrm,
                    request_deserializer=mjc__message__pb2.QueryActuatorGainPrmRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryActuatorGainPrmResponse.SerializeToString,
            ),
            'QueryActuatorBiasPrm': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryActuatorBiasPrm,
                    request_deserializer=mjc__message__pb2.QueryActuatorBiasPrmRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryActuatorBiasPrmResponse.SerializeToString,
            ),
            'QuerySitePosAndMat': grpc.unary_unary_rpc_method_handler(
                    servicer.QuerySitePosAndMat,
                    request_deserializer=mjc__message__pb2.QuerySitePosAndMatRequest.FromString,
                    response_serializer=mjc__message__pb2.QuerySitePosAndMatResponse.SerializeToString,
            ),
            'QuerySiteJac': grpc.unary_unary_rpc_method_handler(
                    servicer.QuerySiteJac,
                    request_deserializer=mjc__message__pb2.QuerySiteJacRequest.FromString,
                    response_serializer=mjc__message__pb2.QuerySiteJacResponse.SerializeToString,
            ),
            'QueryBodyComPosMat': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryBodyComPosMat,
                    request_deserializer=mjc__message__pb2.QueryBodyComPosMatRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryBodyComPosMatResponse.SerializeToString,
            ),
            'QueryBodyPosMatQuat': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryBodyPosMatQuat,
                    request_deserializer=mjc__message__pb2.QueryBodyPosMatQuatRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryBodyPosMatQuatResponse.SerializeToString,
            ),
            'QueryGeomPosMat': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryGeomPosMat,
                    request_deserializer=mjc__message__pb2.QueryGeomPosMatRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryGeomPosMatResponse.SerializeToString,
            ),
            'QueryContactForce': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryContactForce,
                    request_deserializer=mjc__message__pb2.QueryContactForceRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryContactForceResponse.SerializeToString,
            ),
            'QueryJointOffsets': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryJointOffsets,
                    request_deserializer=mjc__message__pb2.QueryJointOffsetsRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryJointOffsetsResponse.SerializeToString,
            ),
            'SetControlInput': grpc.unary_unary_rpc_method_handler(
                    servicer.SetControlInput,
                    request_deserializer=mjc__message__pb2.SetControlInputRequest.FromString,
                    response_serializer=mjc__message__pb2.SetControlInputResponse.SerializeToString,
            ),
            'SetJointQpos': grpc.unary_unary_rpc_method_handler(
                    servicer.SetJointQpos,
                    request_deserializer=mjc__message__pb2.SetJointQposRequest.FromString,
                    response_serializer=mjc__message__pb2.SetJointQposResponse.SerializeToString,
            ),
            'SetActuatorGainPrm': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActuatorGainPrm,
                    request_deserializer=mjc__message__pb2.SetActuatorGainPrmRequest.FromString,
                    response_serializer=mjc__message__pb2.SetActuatorGainPrmResponse.SerializeToString,
            ),
            'SetActuatorBiasPrm': grpc.unary_unary_rpc_method_handler(
                    servicer.SetActuatorBiasPrm,
                    request_deserializer=mjc__message__pb2.SetActuatorBiasPrmRequest.FromString,
                    response_serializer=mjc__message__pb2.SetActuatorBiasPrmResponse.SerializeToString,
            ),
            'QueryMocapPosAndQuat': grpc.unary_unary_rpc_method_handler(
                    servicer.QueryMocapPosAndQuat,
                    request_deserializer=mjc__message__pb2.QueryMocapPosAndQuatRequest.FromString,
                    response_serializer=mjc__message__pb2.QueryMocapPosAndQuatResponse.SerializeToString,
            ),
            'SetMocapPosAndQuat': grpc.unary_unary_rpc_method_handler(
                    servicer.SetMocapPosAndQuat,
                    request_deserializer=mjc__message__pb2.SetMocapPosAndQuatRequest.FromString,
                    response_serializer=mjc__message__pb2.SetMocapPosAndQuatResponse.SerializeToString,
            ),
            'UpdateEqualityConstraints': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateEqualityConstraints,
                    request_deserializer=mjc__message__pb2.UpdateEqualityConstraintsRequest.FromString,
                    response_serializer=mjc__message__pb2.UpdateEqualityConstraintsResponse.SerializeToString,
            ),
            'SetGeomFriction': grpc.unary_unary_rpc_method_handler(
                    servicer.SetGeomFriction,
                    request_deserializer=mjc__message__pb2.SetGeomFrictionRequest.FromString,
                    response_serializer=mjc__message__pb2.SetGeomFrictionResponse.SerializeToString,
            ),
            'MJ_Forward': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_Forward,
                    request_deserializer=mjc__message__pb2.MJ_ForwardRequest.FromString,
                    response_serializer=mjc__message__pb2.MJ_ForwardResponse.SerializeToString,
            ),
            'MJ_Inverse': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_Inverse,
                    request_deserializer=mjc__message__pb2.MJ_InverseRequest.FromString,
                    response_serializer=mjc__message__pb2.MJ_InverseResponse.SerializeToString,
            ),
            'MJ_Step': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_Step,
                    request_deserializer=mjc__message__pb2.MJ_StepRequest.FromString,
                    response_serializer=mjc__message__pb2.MJ_StepResponse.SerializeToString,
            ),
            'CalculateStateDifference': grpc.unary_unary_rpc_method_handler(
                    servicer.CalculateStateDifference,
                    request_deserializer=mjc__message__pb2.CalculateStateDifferenceRequest.FromString,
                    response_serializer=mjc__message__pb2.CalculateStateDifferenceResponse.SerializeToString,
            ),
            'MJ_DifferentiatePos': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_DifferentiatePos,
                    request_deserializer=mjc__message__pb2.DifferentiatePosRequest.FromString,
                    response_serializer=mjc__message__pb2.DifferentiatePosResponse.SerializeToString,
            ),
            'MJD_TransitionFD': grpc.unary_unary_rpc_method_handler(
                    servicer.MJD_TransitionFD,
                    request_deserializer=mjc__message__pb2.TransitionFDRequest.FromString,
                    response_serializer=mjc__message__pb2.TransitionFDResponse.SerializeToString,
            ),
            'MJ_JacSubtreeCom': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_JacSubtreeCom,
                    request_deserializer=mjc__message__pb2.JacSubtreeComRequest.FromString,
                    response_serializer=mjc__message__pb2.JacSubtreeComResponse.SerializeToString,
            ),
            'MJ_JacBodyCom': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_JacBodyCom,
                    request_deserializer=mjc__message__pb2.JacBodyComRequest.FromString,
                    response_serializer=mjc__message__pb2.JacBodyComResponse.SerializeToString,
            ),
            'MJ_Jac': grpc.unary_unary_rpc_method_handler(
                    servicer.MJ_Jac,
                    request_deserializer=mjc__message__pb2.MJ_JacRequest.FromString,
                    response_serializer=mjc__message__pb2.MJ_JacResponse.SerializeToString,
            ),
            'CalcFullMassMatrix': grpc.unary_unary_rpc_method_handler(
                    servicer.CalcFullMassMatrix,
                    request_deserializer=mjc__message__pb2.CalcFullMassMatrixRequest.FromString,
                    response_serializer=mjc__message__pb2.CalcFullMassMatrixResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'MujocoMessage.GrpcService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('MujocoMessage.GrpcService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class GrpcService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def SetSimulationState(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,
            '/MujocoMessage.GrpcService/SetSimulationState',
            mjc__message__pb2.SetSimulationStateRequest.SerializeToString,
            mjc__message__pb2.SetSimulationStateResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LoadInitialFrame(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,
            '/MujocoMessage.GrpcService/LoadInitialFrame',
            mjc__message__pb2.LoadInitialFrameRequest.SerializeToString,
            mjc__message__pb2.LoadInitialFrameResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LoadKeyFrame(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,
            '/MujocoMessage.GrpcService/LoadKeyFrame',
            mjc__message__pb2.LoadKeyFrameRequest.SerializeToString,
            mjc__message__pb2.LoadKeyFrameResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UpdateLocalEnv(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,
            '/MujocoMessage.GrpcService/UpdateLocalEnv',
            mjc__message__pb2.UpdateLocalEnvRequest.SerializeToString,
            mjc__message__pb2.UpdateLocalEnvResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LoadLocalEnv(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,
            '/MujocoMessage.GrpcService/LoadLocalEnv',
            mjc__message__pb2.LoadLocalEnvRequest.SerializeToString,
            mjc__message__pb2.LoadLocalEnvResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LoadContentFile(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,
            '/MujocoMessage.GrpcService/LoadContentFile',
            mjc__message__pb2.LoadContentFileRequest.SerializeToString,
            mjc__message__pb2.LoadContentFileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AddActor(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,
            '/MujocoMessage.GrpcService/AddActor',
            mjc__message__pb2.AddActorRequest.SerializeToString,
            mjc__message__pb2.AddActorResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PublishScene(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,
            '/MujocoMessage.GrpcService/PublishScene',
            mjc__message__pb2.PublishSceneRequest.SerializeToString,
            mjc__message__pb2.PublishSceneResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetLightInfo(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,
            '/MujocoMessage.GrpcService/SetLightInfo',
            mjc__message__pb2.SetLightInfoRequest.SerializeToString,
            mjc__message__pb2.SetLightInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetCameraSensorInfo(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,
            '/MujocoMessage.GrpcService/SetCameraSensorInfo',
            mjc__message__pb2.SetCameraSensorInfoRequest.SerializeToString,
            mjc__message__pb2.SetCameraSensorInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MakeCameraViewportActive(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,
            '/MujocoMessage.GrpcService/MakeCameraViewportActive',
            mjc__message__pb2.MakeCameraViewportActiveRequest.SerializeToString,
            mjc__message__pb2.MakeCameraViewportActiveResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetMaterialInfo(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,
            '/MujocoMessage.GrpcService/SetMaterialInfo',
            mjc__message__pb2.SetMaterialInfoRequest.SerializeToString,
            mjc__message__pb2.SetMaterialInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BeginSaveMp4File(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,
            '/MujocoMessage.GrpcService/BeginSaveMp4File',
            mjc__message__pb2.BeginSaveMp4FileRequest.SerializeToString,
            mjc__message__pb2.BeginSaveMp4FileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StopSaveMp4File(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,
            '/MujocoMessage.GrpcService/StopSaveMp4File',
            mjc__message__pb2.StopSaveMp4FileRequest.SerializeToString,
            mjc__message__pb2.StopSaveMp4FileResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetCurrentFrameIndex(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,
            '/MujocoMessage.GrpcService/GetCurrentFrameIndex',
            mjc__message__pb2.GetCurrentFrameIndexRequest.SerializeToString,
            mjc__message__pb2.GetCurrentFrameIndexResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetTimeStamp(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,
            '/MujocoMessage.GrpcService/GetTimeStamp',
            mjc__message__pb2.GetTimeStampRequest.SerializeToString,
            mjc__message__pb2.GetTimeStampResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetCameraFramePNG(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,
            '/MujocoMessage.GrpcService/GetCameraFramePNG',
            mjc__message__pb2.GetCameraFramePNGRequest.SerializeToString,
            mjc__message__pb2.GetCameraFramePNGResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetKeyPressedEvents(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,
            '/MujocoMessage.GrpcService/GetKeyPressedEvents',
            mjc__message__pb2.GetKeyPressedEventsRequest.SerializeToString,
            mjc__message__pb2.GetKeyPressedEventsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetMouseMovementEvents(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,
            '/MujocoMessage.GrpcService/GetMouseMovementEvents',
            mjc__message__pb2.GetMouseMovementEventsRequest.SerializeToString,
            mjc__message__pb2.GetMouseMovementEventsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBodyManipulationAnchored(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,
            '/MujocoMessage.GrpcService/GetBodyManipulationAnchored',
            mjc__message__pb2.GetBodyManipulationAnchoredRequest.SerializeToString,
            mjc__message__pb2.GetBodyManipulationAnchoredResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBodyManipulationMovement(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,
            '/MujocoMessage.GrpcService/GetBodyManipulationMovement',
            mjc__message__pb2.GetBodyManipulationMovementRequest.SerializeToString,
            mjc__message__pb2.GetBodyManipulationMovementResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActorAnimParamNumber(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,
            '/MujocoMessage.GrpcService/SetActorAnimParamNumber',
            mjc__message__pb2.SetActorAnimParamNumberRequest.SerializeToString,
            mjc__message__pb2.SetActorAnimParamNumberResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActorAnimParamBool(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,
            '/MujocoMessage.GrpcService/SetActorAnimParamBool',
            mjc__message__pb2.SetActorAnimParamBoolRequest.SerializeToString,
            mjc__message__pb2.SetActorAnimParamBoolResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActorAnimParamString(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,
            '/MujocoMessage.GrpcService/SetActorAnimParamString',
            mjc__message__pb2.SetActorAnimParamStringRequest.SerializeToString,
            mjc__message__pb2.SetActorAnimParamStringResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryModelInfo(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,
            '/MujocoMessage.GrpcService/QueryModelInfo',
            mjc__message__pb2.QueryModelInfoRequest.SerializeToString,
            mjc__message__pb2.QueryModelInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryOptConfig(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,
            '/MujocoMessage.GrpcService/QueryOptConfig',
            mjc__message__pb2.QueryOptConfigRequest.SerializeToString,
            mjc__message__pb2.QueryOptConfigResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetOptTimestep(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,
            '/MujocoMessage.GrpcService/SetOptTimestep',
            mjc__message__pb2.SetOptTimestepRequest.SerializeToString,
            mjc__message__pb2.SetOptTimestepResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetOptConfig(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,
            '/MujocoMessage.GrpcService/SetOptConfig',
            mjc__message__pb2.SetOptConfigRequest.SerializeToString,
            mjc__message__pb2.SetOptConfigResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllBodies(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,
            '/MujocoMessage.GrpcService/QueryAllBodies',
            mjc__message__pb2.QueryAllBodiesRequest.SerializeToString,
            mjc__message__pb2.QueryAllBodiesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllJoints(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,
            '/MujocoMessage.GrpcService/QueryAllJoints',
            mjc__message__pb2.QueryAllJointsRequest.SerializeToString,
            mjc__message__pb2.QueryAllJointsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllActuators(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,
            '/MujocoMessage.GrpcService/QueryAllActuators',
            mjc__message__pb2.QueryAllActuatorsRequest.SerializeToString,
            mjc__message__pb2.QueryAllActuatorsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllGeoms(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,
            '/MujocoMessage.GrpcService/QueryAllGeoms',
            mjc__message__pb2.QueryAllGeomsRequest.SerializeToString,
            mjc__message__pb2.QueryAllGeomsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllMocapBodies(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,
            '/MujocoMessage.GrpcService/QueryAllMocapBodies',
            mjc__message__pb2.QueryAllMocapBodiesRequest.SerializeToString,
            mjc__message__pb2.QueryAllMocapBodiesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllEqualityConstraints(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,
            '/MujocoMessage.GrpcService/QueryAllEqualityConstraints',
            mjc__message__pb2.QueryAllEqualityConstraintsRequest.SerializeToString,
            mjc__message__pb2.QueryAllEqualityConstraintsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllSites(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,
            '/MujocoMessage.GrpcService/QueryAllSites',
            mjc__message__pb2.QueryAllSitesRequest.SerializeToString,
            mjc__message__pb2.QueryAllSitesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryAllQposQvelQacc(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,
            '/MujocoMessage.GrpcService/QueryAllQposQvelQacc',
            mjc__message__pb2.QueryAllQposQvelQaccRequest.SerializeToString,
            mjc__message__pb2.QueryAllQposQvelQaccResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryContact(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,
            '/MujocoMessage.GrpcService/QueryContact',
            mjc__message__pb2.QueryContactRequest.SerializeToString,
            mjc__message__pb2.QueryContactResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryContactSimple(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,
            '/MujocoMessage.GrpcService/QueryContactSimple',
            mjc__message__pb2.QueryContactSimpleRequest.SerializeToString,
            mjc__message__pb2.QueryContactSimpleResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryQfrcInverse(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,
            '/MujocoMessage.GrpcService/QueryQfrcInverse',
            mjc__message__pb2.QueryQfrcInverseRequest.SerializeToString,
            mjc__message__pb2.QueryQfrcInverseResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryActuatorMoment(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,
            '/MujocoMessage.GrpcService/QueryActuatorMoment',
            mjc__message__pb2.QueryActuatorMomentRequest.SerializeToString,
            mjc__message__pb2.QueryActuatorMomentResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryQfrcActuator(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,
            '/MujocoMessage.GrpcService/QueryQfrcActuator',
            mjc__message__pb2.QueryQfrcActuatorRequest.SerializeToString,
            mjc__message__pb2.QueryQfrcActuatorResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryCfrcExt(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,
            '/MujocoMessage.GrpcService/QueryCfrcExt',
            mjc__message__pb2.QueryCfrcExtRequest.SerializeToString,
            mjc__message__pb2.QueryCfrcExtResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryActuatorForce(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,
            '/MujocoMessage.GrpcService/QueryActuatorForce',
            mjc__message__pb2.QueryActuatorForceRequest.SerializeToString,
            mjc__message__pb2.QueryActuatorForceResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryBodyVelocities(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,
            '/MujocoMessage.GrpcService/QueryBodyVelocities',
            mjc__message__pb2.QueryBodyVelocitiesRequest.SerializeToString,
            mjc__message__pb2.QueryBodyVelocitiesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryQfrcBias(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,
            '/MujocoMessage.GrpcService/QueryQfrcBias',
            mjc__message__pb2.QueryQfrcBiasRequest.SerializeToString,
            mjc__message__pb2.QueryQfrcBiasResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QuerySubtreeCom(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,
            '/MujocoMessage.GrpcService/QuerySubtreeCom',
            mjc__message__pb2.QuerySubtreeComRequest.SerializeToString,
            mjc__message__pb2.QuerySubtreeComResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QuerySensorData(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,
            '/MujocoMessage.GrpcService/QuerySensorData',
            mjc__message__pb2.QuerySensorDataRequest.SerializeToString,
            mjc__message__pb2.QuerySensorDataResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetQpos(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,
            '/MujocoMessage.GrpcService/SetQpos',
            mjc__message__pb2.SetQposRequest.SerializeToString,
            mjc__message__pb2.SetQposResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetQacc(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,
            '/MujocoMessage.GrpcService/SetQacc',
            mjc__message__pb2.SetQaccRequest.SerializeToString,
            mjc__message__pb2.SetQaccResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetCtrl(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,
            '/MujocoMessage.GrpcService/SetCtrl',
            mjc__message__pb2.SetCtrlRequest.SerializeToString,
            mjc__message__pb2.SetCtrlResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetQvel(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,
            '/MujocoMessage.GrpcService/SetQvel',
            mjc__message__pb2.SetQvelRequest.SerializeToString,
            mjc__message__pb2.SetQvelResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryJointNames(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,
            '/MujocoMessage.GrpcService/QueryJointNames',
            mjc__message__pb2.QueryJointNamesRequest.SerializeToString,
            mjc__message__pb2.QueryJointNamesResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryJointDofadr(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,
            '/MujocoMessage.GrpcService/QueryJointDofadr',
            mjc__message__pb2.QueryJointDofadrRequest.SerializeToString,
            mjc__message__pb2.QueryJointDofadrResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryChildBody(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,
            '/MujocoMessage.GrpcService/QueryChildBody',
            mjc__message__pb2.QueryChildBodyRequest.SerializeToString,
            mjc__message__pb2.QueryChildBodyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryBodyQpos(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,
            '/MujocoMessage.GrpcService/QueryBodyQpos',
            mjc__message__pb2.QueryBodyQposRequest.SerializeToString,
            mjc__message__pb2.QueryBodyQposResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryBodyQvel(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,
            '/MujocoMessage.GrpcService/QueryBodyQvel',
            mjc__message__pb2.QueryBodyQvelRequest.SerializeToString,
            mjc__message__pb2.QueryBodyQvelResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryJointQpos(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,
            '/MujocoMessage.GrpcService/QueryJointQpos',
            mjc__message__pb2.QueryJointQposRequest.SerializeToString,
            mjc__message__pb2.QueryJointQposResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryJointQvel(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,
            '/MujocoMessage.GrpcService/QueryJointQvel',
            mjc__message__pb2.QueryJointQvelRequest.SerializeToString,
            mjc__message__pb2.QueryJointQvelResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryBodySubtreeMassByName(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,
            '/MujocoMessage.GrpcService/QueryBodySubtreeMassByName',
            mjc__message__pb2.QueryBodySubtreeMassByNameRequest.SerializeToString,
            mjc__message__pb2.QueryBodySubtreeMassByNameResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryJointLimits(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,
            '/MujocoMessage.GrpcService/QueryJointLimits',
            mjc__message__pb2.QueryJointLimitsRequest.SerializeToString,
            mjc__message__pb2.QueryJointLimitsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryActuatorGainPrm(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,
            '/MujocoMessage.GrpcService/QueryActuatorGainPrm',
            mjc__message__pb2.QueryActuatorGainPrmRequest.SerializeToString,
            mjc__message__pb2.QueryActuatorGainPrmResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryActuatorBiasPrm(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,
            '/MujocoMessage.GrpcService/QueryActuatorBiasPrm',
            mjc__message__pb2.QueryActuatorBiasPrmRequest.SerializeToString,
            mjc__message__pb2.QueryActuatorBiasPrmResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QuerySitePosAndMat(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,
            '/MujocoMessage.GrpcService/QuerySitePosAndMat',
            mjc__message__pb2.QuerySitePosAndMatRequest.SerializeToString,
            mjc__message__pb2.QuerySitePosAndMatResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QuerySiteJac(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,
            '/MujocoMessage.GrpcService/QuerySiteJac',
            mjc__message__pb2.QuerySiteJacRequest.SerializeToString,
            mjc__message__pb2.QuerySiteJacResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryBodyComPosMat(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,
            '/MujocoMessage.GrpcService/QueryBodyComPosMat',
            mjc__message__pb2.QueryBodyComPosMatRequest.SerializeToString,
            mjc__message__pb2.QueryBodyComPosMatResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryBodyPosMatQuat(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,
            '/MujocoMessage.GrpcService/QueryBodyPosMatQuat',
            mjc__message__pb2.QueryBodyPosMatQuatRequest.SerializeToString,
            mjc__message__pb2.QueryBodyPosMatQuatResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryGeomPosMat(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,
            '/MujocoMessage.GrpcService/QueryGeomPosMat',
            mjc__message__pb2.QueryGeomPosMatRequest.SerializeToString,
            mjc__message__pb2.QueryGeomPosMatResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryContactForce(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,
            '/MujocoMessage.GrpcService/QueryContactForce',
            mjc__message__pb2.QueryContactForceRequest.SerializeToString,
            mjc__message__pb2.QueryContactForceResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryJointOffsets(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,
            '/MujocoMessage.GrpcService/QueryJointOffsets',
            mjc__message__pb2.QueryJointOffsetsRequest.SerializeToString,
            mjc__message__pb2.QueryJointOffsetsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetControlInput(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,
            '/MujocoMessage.GrpcService/SetControlInput',
            mjc__message__pb2.SetControlInputRequest.SerializeToString,
            mjc__message__pb2.SetControlInputResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetJointQpos(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,
            '/MujocoMessage.GrpcService/SetJointQpos',
            mjc__message__pb2.SetJointQposRequest.SerializeToString,
            mjc__message__pb2.SetJointQposResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActuatorGainPrm(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,
            '/MujocoMessage.GrpcService/SetActuatorGainPrm',
            mjc__message__pb2.SetActuatorGainPrmRequest.SerializeToString,
            mjc__message__pb2.SetActuatorGainPrmResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetActuatorBiasPrm(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,
            '/MujocoMessage.GrpcService/SetActuatorBiasPrm',
            mjc__message__pb2.SetActuatorBiasPrmRequest.SerializeToString,
            mjc__message__pb2.SetActuatorBiasPrmResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def QueryMocapPosAndQuat(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,
            '/MujocoMessage.GrpcService/QueryMocapPosAndQuat',
            mjc__message__pb2.QueryMocapPosAndQuatRequest.SerializeToString,
            mjc__message__pb2.QueryMocapPosAndQuatResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetMocapPosAndQuat(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,
            '/MujocoMessage.GrpcService/SetMocapPosAndQuat',
            mjc__message__pb2.SetMocapPosAndQuatRequest.SerializeToString,
            mjc__message__pb2.SetMocapPosAndQuatResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UpdateEqualityConstraints(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,
            '/MujocoMessage.GrpcService/UpdateEqualityConstraints',
            mjc__message__pb2.UpdateEqualityConstraintsRequest.SerializeToString,
            mjc__message__pb2.UpdateEqualityConstraintsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetGeomFriction(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,
            '/MujocoMessage.GrpcService/SetGeomFriction',
            mjc__message__pb2.SetGeomFrictionRequest.SerializeToString,
            mjc__message__pb2.SetGeomFrictionResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_Forward(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,
            '/MujocoMessage.GrpcService/MJ_Forward',
            mjc__message__pb2.MJ_ForwardRequest.SerializeToString,
            mjc__message__pb2.MJ_ForwardResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_Inverse(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,
            '/MujocoMessage.GrpcService/MJ_Inverse',
            mjc__message__pb2.MJ_InverseRequest.SerializeToString,
            mjc__message__pb2.MJ_InverseResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_Step(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,
            '/MujocoMessage.GrpcService/MJ_Step',
            mjc__message__pb2.MJ_StepRequest.SerializeToString,
            mjc__message__pb2.MJ_StepResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CalculateStateDifference(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,
            '/MujocoMessage.GrpcService/CalculateStateDifference',
            mjc__message__pb2.CalculateStateDifferenceRequest.SerializeToString,
            mjc__message__pb2.CalculateStateDifferenceResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_DifferentiatePos(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,
            '/MujocoMessage.GrpcService/MJ_DifferentiatePos',
            mjc__message__pb2.DifferentiatePosRequest.SerializeToString,
            mjc__message__pb2.DifferentiatePosResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJD_TransitionFD(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,
            '/MujocoMessage.GrpcService/MJD_TransitionFD',
            mjc__message__pb2.TransitionFDRequest.SerializeToString,
            mjc__message__pb2.TransitionFDResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_JacSubtreeCom(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,
            '/MujocoMessage.GrpcService/MJ_JacSubtreeCom',
            mjc__message__pb2.JacSubtreeComRequest.SerializeToString,
            mjc__message__pb2.JacSubtreeComResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_JacBodyCom(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,
            '/MujocoMessage.GrpcService/MJ_JacBodyCom',
            mjc__message__pb2.JacBodyComRequest.SerializeToString,
            mjc__message__pb2.JacBodyComResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def MJ_Jac(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,
            '/MujocoMessage.GrpcService/MJ_Jac',
            mjc__message__pb2.MJ_JacRequest.SerializeToString,
            mjc__message__pb2.MJ_JacResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CalcFullMassMatrix(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,
            '/MujocoMessage.GrpcService/CalcFullMassMatrix',
            mjc__message__pb2.CalcFullMassMatrixRequest.SerializeToString,
            mjc__message__pb2.CalcFullMassMatrixResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
