linear_motion.grbl:
  category:
  - robot_linear_motion
  class:
    action_value_mappings:
      auto-initialize:
        feedback: {}
        goal: {}
        goal_default: {}
        handles: []
        result: {}
        schema:
          description: CNC设备初始化函数。执行Grbl CNC的完整初始化流程，包括归零操作、轴校准和状态复位。该函数将所有轴移动到原点位置(0,0,0)，确保设备处于已知的参考状态。初始化完成后设备进入空闲状态，可接收后续的运动指令。
          properties:
            feedback: {}
            goal:
              properties: {}
              required: []
              type: object
            result: {}
          required:
          - goal
          title: initialize参数
          type: object
        type: UniLabJsonCommand
      auto-set_position:
        feedback: {}
        goal: {}
        goal_default:
          position: null
        handles: []
        result: {}
        schema:
          description: CNC绝对位置设定函数。控制CNC设备移动到指定的三维坐标位置(x,y,z)。该函数支持安全限位检查，防止超出设备工作范围。移动过程中会监控设备状态，确保安全到达目标位置。适用于精确定位和轨迹控制操作。
          properties:
            feedback: {}
            goal:
              properties:
                position:
                  type: string
              required:
              - position
              type: object
            result: {}
          required:
          - goal
          title: set_position参数
          type: object
        type: UniLabJsonCommand
      auto-stop_operation:
        feedback: {}
        goal: {}
        goal_default: {}
        handles: []
        result: {}
        schema:
          description: CNC操作停止函数。立即停止当前正在执行的所有CNC运动，包括轴移动和主轴旋转。该函数用于紧急停止或任务中断，确保设备和工件的安全。停止后设备将保持当前位置，等待新的指令。
          properties:
            feedback: {}
            goal:
              properties: {}
              required: []
              type: object
            result: {}
          required:
          - goal
          title: stop_operation参数
          type: object
        type: UniLabJsonCommand
      auto-wait_error:
        feedback: {}
        goal: {}
        goal_default: {}
        handles: []
        result: {}
        schema:
          description: wait_error的参数schema
          properties:
            feedback: {}
            goal:
              properties: {}
              required: []
              type: object
            result: {}
          required:
          - goal
          title: wait_error参数
          type: object
        type: UniLabJsonCommandAsync
      move_through_points:
        feedback:
          current_pose.pose.position: position
          estimated_time_remaining.sec: time_remaining
          navigation_time.sec: time_spent
          number_of_poses_remaining: pose_number_remaining
        goal:
          poses[].pose.position: positions[]
        goal_default:
          behavior_tree: ''
          poses:
          - header:
              frame_id: ''
              stamp:
                nanosec: 0
                sec: 0
            pose:
              orientation:
                w: 1.0
                x: 0.0
                y: 0.0
                z: 0.0
              position:
                x: 0.0
                y: 0.0
                z: 0.0
        handles: []
        result: {}
        schema:
          description: ''
          properties:
            feedback:
              properties:
                current_pose:
                  properties:
                    header:
                      properties:
                        frame_id:
                          type: string
                        stamp:
                          properties:
                            nanosec:
                              maximum: 4294967295
                              minimum: 0
                              type: integer
                            sec:
                              maximum: 2147483647
                              minimum: -2147483648
                              type: integer
                          required:
                          - sec
                          - nanosec
                          title: Time
                          type: object
                      required:
                      - stamp
                      - frame_id
                      title: Header
                      type: object
                    pose:
                      properties:
                        orientation:
                          properties:
                            w:
                              type: number
                            x:
                              type: number
                            y:
                              type: number
                            z:
                              type: number
                          required:
                          - x
                          - y
                          - z
                          - w
                          title: Quaternion
                          type: object
                        position:
                          properties:
                            x:
                              type: number
                            y:
                              type: number
                            z:
                              type: number
                          required:
                          - x
                          - y
                          - z
                          title: Point
                          type: object
                      required:
                      - position
                      - orientation
                      title: Pose
                      type: object
                  required:
                  - header
                  - pose
                  title: PoseStamped
                  type: object
                distance_remaining:
                  type: number
                estimated_time_remaining:
                  properties:
                    nanosec:
                      maximum: 4294967295
                      minimum: 0
                      type: integer
                    sec:
                      maximum: 2147483647
                      minimum: -2147483648
                      type: integer
                  required:
                  - sec
                  - nanosec
                  title: Duration
                  type: object
                navigation_time:
                  properties:
                    nanosec:
                      maximum: 4294967295
                      minimum: 0
                      type: integer
                    sec:
                      maximum: 2147483647
                      minimum: -2147483648
                      type: integer
                  required:
                  - sec
                  - nanosec
                  title: Duration
                  type: object
                number_of_poses_remaining:
                  maximum: 32767
                  minimum: -32768
                  type: integer
                number_of_recoveries:
                  maximum: 32767
                  minimum: -32768
                  type: integer
              required:
              - current_pose
              - navigation_time
              - estimated_time_remaining
              - number_of_recoveries
              - distance_remaining
              - number_of_poses_remaining
              title: NavigateThroughPoses_Feedback
              type: object
            goal:
              properties:
                behavior_tree:
                  type: string
                poses:
                  items:
                    properties:
                      header:
                        properties:
                          frame_id:
                            type: string
                          stamp:
                            properties:
                              nanosec:
                                maximum: 4294967295
                                minimum: 0
                                type: integer
                              sec:
                                maximum: 2147483647
                                minimum: -2147483648
                                type: integer
                            required:
                            - sec
                            - nanosec
                            title: Time
                            type: object
                        required:
                        - stamp
                        - frame_id
                        title: Header
                        type: object
                      pose:
                        properties:
                          orientation:
                            properties:
                              w:
                                type: number
                              x:
                                type: number
                              y:
                                type: number
                              z:
                                type: number
                            required:
                            - x
                            - y
                            - z
                            - w
                            title: Quaternion
                            type: object
                          position:
                            properties:
                              x:
                                type: number
                              y:
                                type: number
                              z:
                                type: number
                            required:
                            - x
                            - y
                            - z
                            title: Point
                            type: object
                        required:
                        - position
                        - orientation
                        title: Pose
                        type: object
                    required:
                    - header
                    - pose
                    title: PoseStamped
                    type: object
                  type: array
              required:
              - poses
              - behavior_tree
              title: NavigateThroughPoses_Goal
              type: object
            result:
              properties:
                result:
                  properties: {}
                  required: []
                  title: Empty
                  type: object
              required:
              - result
              title: NavigateThroughPoses_Result
              type: object
          required:
          - goal
          title: NavigateThroughPoses
          type: object
        type: NavigateThroughPoses
      set_spindle_speed:
        feedback:
          position: spindle_speed
        goal:
          position: spindle_speed
        goal_default:
          max_velocity: 0.0
          min_duration:
            nanosec: 0
            sec: 0
          position: 0.0
        handles: []
        result: {}
        schema:
          description: ''
          properties:
            feedback:
              properties:
                error:
                  type: number
                header:
                  properties:
                    frame_id:
                      type: string
                    stamp:
                      properties:
                        nanosec:
                          maximum: 4294967295
                          minimum: 0
                          type: integer
                        sec:
                          maximum: 2147483647
                          minimum: -2147483648
                          type: integer
                      required:
                      - sec
                      - nanosec
                      title: Time
                      type: object
                  required:
                  - stamp
                  - frame_id
                  title: Header
                  type: object
                position:
                  type: number
                velocity:
                  type: number
              required:
              - header
              - position
              - velocity
              - error
              title: SingleJointPosition_Feedback
              type: object
            goal:
              properties:
                max_velocity:
                  type: number
                min_duration:
                  properties:
                    nanosec:
                      maximum: 4294967295
                      minimum: 0
                      type: integer
                    sec:
                      maximum: 2147483647
                      minimum: -2147483648
                      type: integer
                  required:
                  - sec
                  - nanosec
                  title: Duration
                  type: object
                position:
                  type: number
              required:
              - position
              - min_duration
              - max_velocity
              title: SingleJointPosition_Goal
              type: object
            result:
              properties: {}
              required: []
              title: SingleJointPosition_Result
              type: object
          required:
          - goal
          title: SingleJointPosition
          type: object
        type: SingleJointPosition
    module: unilabos.devices.cnc.grbl_sync:GrblCNC
    status_types:
      position: unilabos.messages:Point3D
      spindle_speed: float
      status: str
    type: python
  config_info: []
  description: Grbl数控机床（CNC）设备，用于实验室精密加工和三轴定位操作。该设备基于Grbl固件，通过串口通信控制步进电机实现X、Y、Z三轴的精确运动。支持绝对定位、轨迹规划、主轴控制和实时状态监控。具备安全限位保护和运动平滑控制功能。适用于精密钻孔、铣削、雕刻、样品制备等需要高精度定位和加工的实验室应用场景。
  handles: []
  icon: ''
  init_param_schema:
    config:
      properties:
        address:
          default: '1'
          type: string
        limits:
          default:
          - -150
          - 150
          - -200
          - 0
          - -80
          - 0
          type: array
        port:
          type: string
      required:
      - port
      type: object
    data:
      properties:
        position:
          type: string
        spindle_speed:
          type: number
        status:
          type: string
      required:
      - status
      - position
      - spindle_speed
      type: object
  version: 1.0.0
linear_motion.toyo_xyz.sim:
  category:
  - robot_linear_motion
  class:
    action_value_mappings:
      auto-check_tf_update_actions:
        feedback: {}
        goal: {}
        goal_default: {}
        handles: []
        result: {}
        schema:
          description: check_tf_update_actions的参数schema
          properties:
            feedback: {}
            goal:
              properties: {}
              required: []
              type: object
            result: {}
          required:
          - goal
          title: check_tf_update_actions参数
          type: object
        type: UniLabJsonCommand
      auto-moveit_joint_task:
        feedback: {}
        goal: {}
        goal_default:
          joint_names: null
          joint_positions: null
          move_group: null
          retry: 10
          speed: 1
        handles: []
        result: {}
        schema:
          description: moveit_joint_task的参数schema
          properties:
            feedback: {}
            goal:
              properties:
                joint_names:
                  type: string
                joint_positions:
                  type: string
                move_group:
                  type: string
                retry:
                  default: 10
                  type: string
                speed:
                  default: 1
                  type: string
              required:
              - move_group
              - joint_positions
              type: object
            result: {}
          required:
          - goal
          title: moveit_joint_task参数
          type: object
        type: UniLabJsonCommand
      auto-moveit_task:
        feedback: {}
        goal: {}
        goal_default:
          cartesian: false
          move_group: null
          offsets:
          - 0
          - 0
          - 0
          position: null
          quaternion: null
          retry: 10
          speed: 1
          target_link: null
        handles: []
        result: {}
        schema:
          description: moveit_task的参数schema
          properties:
            feedback: {}
            goal:
              properties:
                cartesian:
                  default: false
                  type: string
                move_group:
                  type: string
                offsets:
                  default:
                  - 0
                  - 0
                  - 0
                  type: string
                position:
                  type: string
                quaternion:
                  type: string
                retry:
                  default: 10
                  type: string
                speed:
                  default: 1
                  type: string
                target_link:
                  type: string
              required:
              - move_group
              - position
              - quaternion
              type: object
            result: {}
          required:
          - goal
          title: moveit_task参数
          type: object
        type: UniLabJsonCommand
      auto-post_init:
        feedback: {}
        goal: {}
        goal_default:
          ros_node: null
        handles: []
        result: {}
        schema:
          description: post_init的参数schema
          properties:
            feedback: {}
            goal:
              properties:
                ros_node:
                  type: string
              required:
              - ros_node
              type: object
            result: {}
          required:
          - goal
          title: post_init参数
          type: object
        type: UniLabJsonCommand
      auto-resource_manager:
        feedback: {}
        goal: {}
        goal_default:
          parent_link: null
          resource: null
        handles: []
        result: {}
        schema:
          description: resource_manager的参数schema
          properties:
            feedback: {}
            goal:
              properties:
                parent_link:
                  type: string
                resource:
                  type: string
              required:
              - resource
              - parent_link
              type: object
            result: {}
          required:
          - goal
          title: resource_manager参数
          type: object
        type: UniLabJsonCommand
      auto-wait_for_resource_action:
        feedback: {}
        goal: {}
        goal_default: {}
        handles: []
        result: {}
        schema:
          description: wait_for_resource_action的参数schema
          properties:
            feedback: {}
            goal:
              properties: {}
              required: []
              type: object
            result: {}
          required:
          - goal
          title: wait_for_resource_action参数
          type: object
        type: UniLabJsonCommand
      pick_and_place:
        feedback: {}
        goal:
          command: command
        goal_default:
          command: ''
        handles: []
        result: {}
        schema:
          description: ''
          properties:
            feedback:
              properties:
                status:
                  type: string
              required:
              - status
              title: SendCmd_Feedback
              type: object
            goal:
              properties:
                command:
                  type: string
              required:
              - command
              title: SendCmd_Goal
              type: object
            result:
              properties:
                return_info:
                  type: string
                success:
                  type: boolean
              required:
              - return_info
              - success
              title: SendCmd_Result
              type: object
          required:
          - goal
          title: SendCmd
          type: object
        type: SendCmd
      set_position:
        feedback: {}
        goal:
          command: command
        goal_default:
          command: ''
        handles: []
        result: {}
        schema:
          description: ''
          properties:
            feedback:
              properties:
                status:
                  type: string
              required:
              - status
              title: SendCmd_Feedback
              type: object
            goal:
              properties:
                command:
                  type: string
              required:
              - command
              title: SendCmd_Goal
              type: object
            result:
              properties:
                return_info:
                  type: string
                success:
                  type: boolean
              required:
              - return_info
              - success
              title: SendCmd_Result
              type: object
          required:
          - goal
          title: SendCmd
          type: object
        type: SendCmd
      set_status:
        feedback: {}
        goal:
          command: command
        goal_default:
          command: ''
        handles: []
        result: {}
        schema:
          description: ''
          properties:
            feedback:
              properties:
                status:
                  type: string
              required:
              - status
              title: SendCmd_Feedback
              type: object
            goal:
              properties:
                command:
                  type: string
              required:
              - command
              title: SendCmd_Goal
              type: object
            result:
              properties:
                return_info:
                  type: string
                success:
                  type: boolean
              required:
              - return_info
              - success
              title: SendCmd_Result
              type: object
          required:
          - goal
          title: SendCmd
          type: object
        type: SendCmd
    module: unilabos.devices.ros_dev.moveit_interface:MoveitInterface
    status_types: {}
    type: python
  config_info: []
  description: 东洋XYZ三轴运动平台，基于MoveIt2运动规划框架的精密定位设备。该设备通过ROS2和MoveIt2实现三维空间的精确运动控制，支持复杂轨迹规划、多点定位、速度控制等功能。具备高精度定位、平稳运动、实时轨迹监控等特性。适用于精密加工、样品定位、检测扫描、自动化装配等需要高精度三维运动控制的实验室和工业应用场景。
  handles: []
  icon: ''
  init_param_schema:
    config:
      properties:
        device_config:
          type: string
        joint_poses:
          type: string
        moveit_type:
          type: string
        rotation:
          type: string
      required:
      - moveit_type
      - joint_poses
      type: object
    data:
      properties: {}
      required: []
      type: object
  model:
    mesh: toyo_xyz
    type: device
  version: 1.0.0
