from cmvr.config import joint_limits_config_pb2 as _joint_limits_config_pb2
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class PinocchioDlsIKConfig(_message.Message):
    __slots__ = ("urdf_path", "base_frame_name", "flange_frame_name", "tcp_frame_name", "max_iters", "pos_eps", "rot_eps", "damping", "joint_limit_avoidance", "joint_limits")
    URDF_PATH_FIELD_NUMBER: _ClassVar[int]
    BASE_FRAME_NAME_FIELD_NUMBER: _ClassVar[int]
    FLANGE_FRAME_NAME_FIELD_NUMBER: _ClassVar[int]
    TCP_FRAME_NAME_FIELD_NUMBER: _ClassVar[int]
    MAX_ITERS_FIELD_NUMBER: _ClassVar[int]
    POS_EPS_FIELD_NUMBER: _ClassVar[int]
    ROT_EPS_FIELD_NUMBER: _ClassVar[int]
    DAMPING_FIELD_NUMBER: _ClassVar[int]
    JOINT_LIMIT_AVOIDANCE_FIELD_NUMBER: _ClassVar[int]
    JOINT_LIMITS_FIELD_NUMBER: _ClassVar[int]
    urdf_path: str
    base_frame_name: str
    flange_frame_name: str
    tcp_frame_name: str
    max_iters: int
    pos_eps: float
    rot_eps: float
    damping: float
    joint_limit_avoidance: JointLimitAvoidanceConfig
    joint_limits: _joint_limits_config_pb2.JointLimitsConfig
    def __init__(self, urdf_path: _Optional[str] = ..., base_frame_name: _Optional[str] = ..., flange_frame_name: _Optional[str] = ..., tcp_frame_name: _Optional[str] = ..., max_iters: _Optional[int] = ..., pos_eps: _Optional[float] = ..., rot_eps: _Optional[float] = ..., damping: _Optional[float] = ..., joint_limit_avoidance: _Optional[_Union[JointLimitAvoidanceConfig, _Mapping]] = ..., joint_limits: _Optional[_Union[_joint_limits_config_pb2.JointLimitsConfig, _Mapping]] = ...) -> None: ...

class JointLimitAvoidanceConfig(_message.Message):
    __slots__ = ("enable", "gain", "margin_ratio", "max_push")
    ENABLE_FIELD_NUMBER: _ClassVar[int]
    GAIN_FIELD_NUMBER: _ClassVar[int]
    MARGIN_RATIO_FIELD_NUMBER: _ClassVar[int]
    MAX_PUSH_FIELD_NUMBER: _ClassVar[int]
    enable: bool
    gain: float
    margin_ratio: float
    max_push: float
    def __init__(self, enable: _Optional[bool] = ..., gain: _Optional[float] = ..., margin_ratio: _Optional[float] = ..., max_push: _Optional[float] = ...) -> None: ...
