diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml index a9019594..e52575b5 100644 --- a/unilabos/registry/devices/liquid_handler.yaml +++ b/unilabos/registry/devices/liquid_handler.yaml @@ -155,7 +155,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array reagent_sources: @@ -194,7 +194,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -208,12 +208,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -230,7 +230,7 @@ liquid_handler: - pose - config - data - title: Resource + title: reagent_sources type: object type: array spread: @@ -271,7 +271,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -285,12 +285,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -307,7 +307,7 @@ liquid_handler: - pose - config - data - title: Resource + title: targets type: object type: array use_channels: @@ -436,7 +436,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array resources: @@ -475,7 +475,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -489,12 +489,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -511,7 +511,7 @@ liquid_handler: - pose - config - data - title: Resource + title: resources type: object type: array spread: @@ -826,7 +826,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array resources: @@ -865,7 +865,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -879,12 +879,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -901,7 +901,7 @@ liquid_handler: - pose - config - data - title: Resource + title: resources type: object type: array spread: @@ -1005,7 +1005,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array tip_spots: @@ -1044,7 +1044,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1058,12 +1058,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1080,7 +1080,7 @@ liquid_handler: - pose - config - data - title: Resource + title: tip_spots type: object type: array use_channels: @@ -1171,7 +1171,7 @@ liquid_handler: - x - y - z - title: Point + title: offset type: object tip_rack: properties: @@ -1208,7 +1208,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1222,12 +1222,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1244,7 +1244,7 @@ liquid_handler: - pose - config - data - title: Resource + title: tip_rack type: object required: - tip_rack @@ -1350,7 +1350,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array targets: @@ -1389,7 +1389,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1403,12 +1403,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1425,7 +1425,7 @@ liquid_handler: - pose - config - data - title: Resource + title: targets type: object type: array required: @@ -1550,7 +1550,7 @@ liquid_handler: - x - y - z - title: Point + title: destination_offset type: object drop_direction: type: string @@ -1569,7 +1569,7 @@ liquid_handler: - x - y - z - title: Point + title: intermediate_locations type: object type: array lid: @@ -1607,7 +1607,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1621,12 +1621,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1643,7 +1643,7 @@ liquid_handler: - pose - config - data - title: Resource + title: lid type: object pickup_direction: type: string @@ -1663,7 +1663,7 @@ liquid_handler: - x - y - z - title: Point + title: resource_offset type: object to: properties: @@ -1700,7 +1700,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1714,12 +1714,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1736,7 +1736,7 @@ liquid_handler: - pose - config - data - title: Resource + title: to type: object required: - lid @@ -1867,7 +1867,7 @@ liquid_handler: - x - y - z - title: Point + title: destination_offset type: object drop_direction: type: string @@ -1886,7 +1886,7 @@ liquid_handler: - x - y - z - title: Point + title: intermediate_locations type: object type: array pickup_direction: @@ -1905,7 +1905,7 @@ liquid_handler: - x - y - z - title: Point + title: pickup_offset type: object plate: properties: @@ -1942,7 +1942,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1956,12 +1956,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1978,7 +1978,7 @@ liquid_handler: - pose - config - data - title: Resource + title: plate type: object put_direction: type: string @@ -1994,7 +1994,7 @@ liquid_handler: - x - y - z - title: Point + title: resource_offset type: object to: properties: @@ -2031,7 +2031,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2045,12 +2045,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2067,7 +2067,7 @@ liquid_handler: - pose - config - data - title: Resource + title: to type: object required: - plate @@ -2179,7 +2179,7 @@ liquid_handler: - x - y - z - title: Point + title: destination_offset type: object drop_direction: type: string @@ -2198,7 +2198,7 @@ liquid_handler: - x - y - z - title: Point + title: intermediate_locations type: object type: array pickup_direction: @@ -2242,7 +2242,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2256,12 +2256,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2278,7 +2278,7 @@ liquid_handler: - pose - config - data - title: Resource + title: resource type: object resource_offset: properties: @@ -2292,7 +2292,7 @@ liquid_handler: - x - y - z - title: Point + title: resource_offset type: object to: properties: @@ -2306,7 +2306,7 @@ liquid_handler: - x - y - z - title: Point + title: to type: object required: - resource @@ -2419,7 +2419,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2433,12 +2433,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2455,7 +2455,7 @@ liquid_handler: - pose - config - data - title: Resource + title: well type: object required: - well @@ -2538,7 +2538,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array tip_spots: @@ -2577,7 +2577,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2591,12 +2591,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2613,7 +2613,7 @@ liquid_handler: - pose - config - data - title: Resource + title: tip_spots type: object type: array use_channels: @@ -2699,7 +2699,7 @@ liquid_handler: - x - y - z - title: Point + title: offset type: object tip_rack: properties: @@ -2736,7 +2736,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2750,12 +2750,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2772,7 +2772,7 @@ liquid_handler: - pose - config - data - title: Resource + title: tip_rack type: object required: - tip_rack @@ -2923,7 +2923,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array sources: @@ -2962,7 +2962,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2976,12 +2976,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2998,7 +2998,7 @@ liquid_handler: - pose - config - data - title: Resource + title: sources type: object type: array spread: @@ -3052,7 +3052,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3066,12 +3066,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3088,7 +3088,7 @@ liquid_handler: - pose - config - data - title: Resource + title: waste_liquid type: object required: - vols @@ -3253,7 +3253,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array sources: @@ -3292,7 +3292,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3306,12 +3306,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3328,7 +3328,7 @@ liquid_handler: - pose - config - data - title: Resource + title: sources type: object type: array spread: @@ -3382,7 +3382,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3396,12 +3396,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3418,7 +3418,7 @@ liquid_handler: - pose - config - data - title: Resource + title: waste_liquid type: object required: - vols @@ -3648,7 +3648,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3662,12 +3662,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3684,7 +3684,7 @@ liquid_handler: - pose - config - data - title: Resource + title: source type: object target: properties: @@ -3721,7 +3721,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3735,12 +3735,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3757,7 +3757,7 @@ liquid_handler: - pose - config - data - title: Resource + title: target type: object volume: type: number @@ -4078,7 +4078,7 @@ liquid_handler: - x - y - z - title: Point + title: offsets type: object type: array sources: @@ -4117,7 +4117,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4131,12 +4131,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4153,7 +4153,7 @@ liquid_handler: - pose - config - data - title: Resource + title: sources type: object type: array spread: @@ -4194,7 +4194,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4208,12 +4208,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4230,7 +4230,7 @@ liquid_handler: - pose - config - data - title: Resource + title: targets type: object type: array tip_racks: @@ -4269,7 +4269,7 @@ liquid_handler: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4283,12 +4283,12 @@ liquid_handler: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4305,7 +4305,7 @@ liquid_handler: - pose - config - data - title: Resource + title: tip_racks type: object type: array touch_tip: @@ -5084,7 +5084,7 @@ liquid_handler.biomek: - x - y - z - title: Point + title: offsets type: object type: array sources: @@ -5123,7 +5123,7 @@ liquid_handler.biomek: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5137,12 +5137,12 @@ liquid_handler.biomek: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5159,7 +5159,7 @@ liquid_handler.biomek: - pose - config - data - title: Resource + title: sources type: object type: array spread: @@ -5200,7 +5200,7 @@ liquid_handler.biomek: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5214,12 +5214,12 @@ liquid_handler.biomek: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5236,7 +5236,7 @@ liquid_handler.biomek: - pose - config - data - title: Resource + title: targets type: object type: array tip_racks: @@ -5275,7 +5275,7 @@ liquid_handler.biomek: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5289,12 +5289,12 @@ liquid_handler.biomek: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5311,7 +5311,7 @@ liquid_handler.biomek: - pose - config - data - title: Resource + title: tip_racks type: object type: array touch_tip: @@ -5540,7 +5540,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array reagent_sources: @@ -5579,7 +5579,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5593,12 +5593,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5615,7 +5615,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: reagent_sources type: object type: array spread: @@ -5656,7 +5656,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5670,12 +5670,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5692,7 +5692,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: targets type: object type: array use_channels: @@ -5822,7 +5822,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array resources: @@ -5861,7 +5861,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5875,12 +5875,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5897,7 +5897,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: resources type: object type: array spread: @@ -6225,7 +6225,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array resources: @@ -6264,7 +6264,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -6278,12 +6278,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -6300,7 +6300,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: resources type: object type: array spread: @@ -6399,7 +6399,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array tip_spots: @@ -6438,7 +6438,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -6452,12 +6452,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -6474,7 +6474,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: tip_spots type: object type: array use_channels: @@ -6590,7 +6590,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array targets: @@ -6629,7 +6629,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -6643,12 +6643,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -6665,7 +6665,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: targets type: object type: array required: @@ -6754,7 +6754,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array tip_spots: @@ -6793,7 +6793,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -6807,12 +6807,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -6829,7 +6829,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: tip_spots type: object type: array use_channels: @@ -6991,7 +6991,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array sources: @@ -7030,7 +7030,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7044,12 +7044,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7066,7 +7066,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: sources type: object type: array spread: @@ -7120,7 +7120,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7134,12 +7134,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7156,7 +7156,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: waste_liquid type: object required: - vols @@ -7279,7 +7279,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7293,12 +7293,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7315,7 +7315,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: wells type: object type: array required: @@ -7412,7 +7412,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7426,12 +7426,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7448,7 +7448,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: tip_racks type: object type: array required: @@ -7764,7 +7764,7 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: offsets type: object type: array sources: @@ -7803,7 +7803,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7817,12 +7817,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7839,7 +7839,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: sources type: object type: array spread: @@ -7880,7 +7880,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7894,12 +7894,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7916,7 +7916,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: targets type: object type: array tip_racks: @@ -7955,7 +7955,7 @@ liquid_handler.prcxi: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -7969,12 +7969,12 @@ liquid_handler.prcxi: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -7991,7 +7991,7 @@ liquid_handler.prcxi: - pose - config - data - title: Resource + title: tip_racks type: object type: array touch_tip: @@ -8184,7 +8184,7 @@ liquid_handler.revvity: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -8198,12 +8198,12 @@ liquid_handler.revvity: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -8220,7 +8220,7 @@ liquid_handler.revvity: - pose - config - data - title: Resource + title: resource type: object wf_name: type: string diff --git a/unilabos/registry/devices/organic_miscellaneous.yaml b/unilabos/registry/devices/organic_miscellaneous.yaml index c3e4aa27..a830b219 100644 --- a/unilabos/registry/devices/organic_miscellaneous.yaml +++ b/unilabos/registry/devices/organic_miscellaneous.yaml @@ -336,7 +336,7 @@ separator.homemade: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -350,12 +350,12 @@ separator.homemade: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -372,7 +372,7 @@ separator.homemade: - pose - config - data - title: Resource + title: vessel type: object required: - vessel diff --git a/unilabos/registry/devices/robot_gripper.yaml b/unilabos/registry/devices/robot_gripper.yaml index 2a2ccce1..5a8f62ee 100644 --- a/unilabos/registry/devices/robot_gripper.yaml +++ b/unilabos/registry/devices/robot_gripper.yaml @@ -533,7 +533,7 @@ gripper.mock: required: - position - max_effort - title: GripperCommand + title: command type: object required: - command diff --git a/unilabos/registry/devices/robot_linear_motion.yaml b/unilabos/registry/devices/robot_linear_motion.yaml index 3ca4e9ad..9035af30 100644 --- a/unilabos/registry/devices/robot_linear_motion.yaml +++ b/unilabos/registry/devices/robot_linear_motion.yaml @@ -139,12 +139,12 @@ linear_motion.grbl: required: - sec - nanosec - title: Time + title: stamp type: object required: - stamp - frame_id - title: Header + title: header type: object pose: properties: @@ -163,7 +163,7 @@ linear_motion.grbl: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -177,17 +177,17 @@ linear_motion.grbl: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object required: - header - pose - title: PoseStamped + title: current_pose type: object distance_remaining: type: number @@ -204,7 +204,7 @@ linear_motion.grbl: required: - sec - nanosec - title: Duration + title: estimated_time_remaining type: object navigation_time: properties: @@ -219,7 +219,7 @@ linear_motion.grbl: required: - sec - nanosec - title: Duration + title: navigation_time type: object number_of_poses_remaining: maximum: 32767 @@ -262,12 +262,12 @@ linear_motion.grbl: required: - sec - nanosec - title: Time + title: stamp type: object required: - stamp - frame_id - title: Header + title: header type: object pose: properties: @@ -286,7 +286,7 @@ linear_motion.grbl: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -300,17 +300,17 @@ linear_motion.grbl: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object required: - header - pose - title: PoseStamped + title: poses type: object type: array required: @@ -323,7 +323,7 @@ linear_motion.grbl: result: properties: {} required: [] - title: Empty + title: result type: object required: - result @@ -371,12 +371,12 @@ linear_motion.grbl: required: - sec - nanosec - title: Time + title: stamp type: object required: - stamp - frame_id - title: Header + title: header type: object position: type: number @@ -406,7 +406,7 @@ linear_motion.grbl: required: - sec - nanosec - title: Duration + title: min_duration type: object position: type: number diff --git a/unilabos/registry/devices/temperature.yaml b/unilabos/registry/devices/temperature.yaml index 95bdeed5..70f8586b 100644 --- a/unilabos/registry/devices/temperature.yaml +++ b/unilabos/registry/devices/temperature.yaml @@ -362,7 +362,7 @@ heaterstirrer.dalong: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -376,12 +376,12 @@ heaterstirrer.dalong: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -398,7 +398,7 @@ heaterstirrer.dalong: - pose - config - data - title: Resource + title: vessel type: object required: - vessel diff --git a/unilabos/registry/devices/virtual_device.yaml b/unilabos/registry/devices/virtual_device.yaml index fa4d057c..b32a253d 100644 --- a/unilabos/registry/devices/virtual_device.yaml +++ b/unilabos/registry/devices/virtual_device.yaml @@ -145,7 +145,7 @@ virtual_centrifuge: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -159,12 +159,12 @@ virtual_centrifuge: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -181,7 +181,7 @@ virtual_centrifuge: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -446,7 +446,7 @@ virtual_column: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -460,12 +460,12 @@ virtual_column: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -482,7 +482,7 @@ virtual_column: - pose - config - data - title: Resource + title: from_vessel type: object pct1: type: string @@ -531,7 +531,7 @@ virtual_column: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -545,12 +545,12 @@ virtual_column: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -567,7 +567,7 @@ virtual_column: - pose - config - data - title: Resource + title: to_vessel type: object required: - from_vessel @@ -850,7 +850,7 @@ virtual_filter: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -864,12 +864,12 @@ virtual_filter: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -886,7 +886,7 @@ virtual_filter: - pose - config - data - title: Resource + title: filtrate_vessel type: object stir: type: boolean @@ -929,7 +929,7 @@ virtual_filter: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -943,12 +943,12 @@ virtual_filter: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -965,7 +965,7 @@ virtual_filter: - pose - config - data - title: Resource + title: vessel type: object volume: type: number @@ -1071,8 +1071,8 @@ virtual_filter: - status - progress - current_temp - - filtered_volume - current_status + - filtered_volume - message - max_temp - max_stir_speed @@ -1455,7 +1455,7 @@ virtual_heatchill: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1469,12 +1469,12 @@ virtual_heatchill: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1491,7 +1491,7 @@ virtual_heatchill: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -1610,7 +1610,7 @@ virtual_heatchill: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1624,12 +1624,12 @@ virtual_heatchill: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1646,7 +1646,7 @@ virtual_heatchill: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -1747,7 +1747,7 @@ virtual_heatchill: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1761,12 +1761,12 @@ virtual_heatchill: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1783,7 +1783,7 @@ virtual_heatchill: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -2923,7 +2923,7 @@ virtual_rotavap: required: - sec - nanosec - title: Duration + title: time_remaining type: object time_spent: properties: @@ -2938,7 +2938,7 @@ virtual_rotavap: required: - sec - nanosec - title: Duration + title: time_spent type: object required: - status @@ -2994,7 +2994,7 @@ virtual_rotavap: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3008,12 +3008,12 @@ virtual_rotavap: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3030,7 +3030,7 @@ virtual_rotavap: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -3415,7 +3415,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3429,12 +3429,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3451,7 +3451,7 @@ virtual_separator: - pose - config - data - title: Resource + title: from_vessel type: object product_phase: type: string @@ -3490,7 +3490,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3504,12 +3504,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3526,7 +3526,7 @@ virtual_separator: - pose - config - data - title: Resource + title: product_vessel type: object purpose: type: string @@ -3569,7 +3569,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3583,12 +3583,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3605,7 +3605,7 @@ virtual_separator: - pose - config - data - title: Resource + title: separation_vessel type: object settling_time: type: number @@ -3654,7 +3654,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3668,12 +3668,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3690,7 +3690,7 @@ virtual_separator: - pose - config - data - title: Resource + title: to_vessel type: object vessel: properties: @@ -3727,7 +3727,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3741,12 +3741,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3763,7 +3763,7 @@ virtual_separator: - pose - config - data - title: Resource + title: vessel type: object volume: type: string @@ -3802,7 +3802,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3816,12 +3816,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3838,7 +3838,7 @@ virtual_separator: - pose - config - data - title: Resource + title: waste_phase_to_vessel type: object waste_vessel: properties: @@ -3875,7 +3875,7 @@ virtual_separator: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3889,12 +3889,12 @@ virtual_separator: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3911,7 +3911,7 @@ virtual_separator: - pose - config - data - title: Resource + title: waste_vessel type: object required: - vessel @@ -4489,7 +4489,7 @@ virtual_solid_dispenser: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4503,12 +4503,12 @@ virtual_solid_dispenser: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4525,7 +4525,7 @@ virtual_solid_dispenser: - pose - config - data - title: Resource + title: vessel type: object viscous: type: boolean @@ -4874,7 +4874,7 @@ virtual_stirrer: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4888,12 +4888,12 @@ virtual_stirrer: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4910,7 +4910,7 @@ virtual_stirrer: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -5034,7 +5034,7 @@ virtual_stirrer: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5048,12 +5048,12 @@ virtual_stirrer: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5070,7 +5070,7 @@ virtual_stirrer: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -5181,7 +5181,7 @@ virtual_stirrer: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5195,12 +5195,12 @@ virtual_stirrer: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5217,7 +5217,7 @@ virtual_stirrer: - pose - config - data - title: Resource + title: vessel type: object required: - vessel diff --git a/unilabos/registry/devices/work_station.yaml b/unilabos/registry/devices/work_station.yaml index c1cc5aa4..5f20f450 100644 --- a/unilabos/registry/devices/work_station.yaml +++ b/unilabos/registry/devices/work_station.yaml @@ -53,7 +53,7 @@ workstation: sample_id: '' type: '' to_repo_position: '' - handles: [] + handles: {} result: {} schema: description: '' @@ -103,7 +103,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -117,12 +117,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -139,7 +139,7 @@ workstation: - pose - config - data - title: Resource + title: from_repo type: object from_repo_position: type: string @@ -178,7 +178,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -192,12 +192,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -214,7 +214,7 @@ workstation: - pose - config - data - title: Resource + title: to_repo type: object to_repo_position: type: string @@ -390,7 +390,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -404,12 +404,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -426,7 +426,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object viscous: type: boolean @@ -579,7 +579,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -593,12 +593,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -615,7 +615,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -752,7 +752,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -766,12 +766,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -788,7 +788,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -892,7 +892,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_remaining type: object time_spent: properties: @@ -907,7 +907,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_spent type: object required: - status @@ -961,7 +961,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -975,12 +975,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -997,7 +997,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: number @@ -1138,7 +1138,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1152,12 +1152,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1174,7 +1174,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: number @@ -1262,6 +1262,11 @@ workstation: data_type: resource handler_key: solvent label: Solvent + - data_key: reagent + data_source: handle + data_type: resource + handler_key: reagent + label: Reagent output: - data_key: vessel data_source: executor @@ -1340,7 +1345,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1354,12 +1359,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1376,7 +1381,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: string @@ -1509,7 +1514,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1523,12 +1528,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1545,7 +1550,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - compound @@ -1636,7 +1641,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_remaining type: object time_spent: properties: @@ -1651,7 +1656,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_spent type: object required: - status @@ -1699,7 +1704,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1713,12 +1718,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1735,7 +1740,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -1798,13 +1803,18 @@ workstation: - data_key: vessel data_source: handle data_type: resource - handler_key: vessel + handler_key: Vessel label: Evaporation Vessel + - data_key: solvent + data_source: handle + data_type: resource + handler_key: solvent + label: Eluting Solvent output: - data_key: vessel data_source: handle data_type: resource - handler_key: vessel_out + handler_key: VesselOut label: Evaporation Vessel placeholder_keys: vessel: unilabos_nodes @@ -1831,7 +1841,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_remaining type: object time_spent: properties: @@ -1846,7 +1856,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_spent type: object required: - status @@ -1902,7 +1912,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -1916,12 +1926,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -1938,7 +1948,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -2031,7 +2041,7 @@ workstation: - data_key: filtrate_vessel data_source: handle data_type: resource - handler_key: filtrate_vessel + handler_key: FiltrateVessel label: Filtrate Vessel output: - data_key: vessel @@ -2042,7 +2052,7 @@ workstation: - data_key: filtrate_vessel data_source: executor data_type: resource - handler_key: filtrate_out + handler_key: FiltrateOut label: Filtrate Vessel placeholder_keys: filtrate_vessel: unilabos_resources @@ -2107,7 +2117,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2121,12 +2131,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2143,7 +2153,7 @@ workstation: - pose - config - data - title: Resource + title: filtrate_vessel type: object stir: type: boolean @@ -2186,7 +2196,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2200,12 +2210,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2222,7 +2232,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: number @@ -2421,7 +2431,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2435,12 +2445,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2457,7 +2467,7 @@ workstation: - pose - config - data - title: Resource + title: filter_through type: object from_vessel: properties: @@ -2494,7 +2504,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2508,12 +2518,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2530,7 +2540,7 @@ workstation: - pose - config - data - title: Resource + title: from_vessel type: object residence_time: type: number @@ -2569,7 +2579,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2583,12 +2593,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2605,7 +2615,7 @@ workstation: - pose - config - data - title: Resource + title: to_vessel type: object required: - from_vessel @@ -2761,7 +2771,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2775,12 +2785,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2797,7 +2807,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -2928,7 +2938,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -2942,12 +2952,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -2964,7 +2974,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -3077,7 +3087,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3091,12 +3101,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3113,7 +3123,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -3235,7 +3245,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3249,12 +3259,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3271,7 +3281,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - temp @@ -3424,7 +3434,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_remaining type: object time_spent: properties: @@ -3439,7 +3449,7 @@ workstation: required: - sec - nanosec - title: Duration + title: time_spent type: object required: - status @@ -3491,7 +3501,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3505,12 +3515,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3527,7 +3537,7 @@ workstation: - pose - config - data - title: Resource + title: from_vessel type: object rate_spec: type: string @@ -3580,7 +3590,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3594,12 +3604,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3616,7 +3626,7 @@ workstation: - pose - config - data - title: Resource + title: to_vessel type: object transfer_flowrate: type: number @@ -3774,7 +3784,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3788,12 +3798,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3810,7 +3820,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: string @@ -3929,7 +3939,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -3943,12 +3953,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -3965,7 +3975,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - solvent @@ -4126,7 +4136,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4140,12 +4150,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4162,7 +4172,7 @@ workstation: - pose - config - data - title: Resource + title: from_vessel type: object pct1: type: string @@ -4211,7 +4221,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4225,12 +4235,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4247,7 +4257,7 @@ workstation: - pose - config - data - title: Resource + title: to_vessel type: object required: - from_vessel @@ -4532,7 +4542,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4546,12 +4556,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4568,7 +4578,7 @@ workstation: - pose - config - data - title: Resource + title: from_vessel type: object product_phase: type: string @@ -4607,7 +4617,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4621,12 +4631,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4643,7 +4653,7 @@ workstation: - pose - config - data - title: Resource + title: product_vessel type: object purpose: type: string @@ -4686,7 +4696,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4700,12 +4710,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4722,7 +4732,7 @@ workstation: - pose - config - data - title: Resource + title: separation_vessel type: object settling_time: type: number @@ -4771,7 +4781,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4785,12 +4795,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4807,7 +4817,7 @@ workstation: - pose - config - data - title: Resource + title: to_vessel type: object vessel: properties: @@ -4844,7 +4854,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4858,12 +4868,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4880,7 +4890,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: string @@ -4919,7 +4929,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -4933,12 +4943,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -4955,7 +4965,7 @@ workstation: - pose - config - data - title: Resource + title: waste_phase_to_vessel type: object waste_vessel: properties: @@ -4992,7 +5002,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5006,12 +5016,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5028,7 +5038,7 @@ workstation: - pose - config - data - title: Resource + title: waste_vessel type: object required: - vessel @@ -5172,7 +5182,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5186,12 +5196,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5208,7 +5218,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -5348,7 +5358,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5362,12 +5372,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5384,7 +5394,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -5507,7 +5517,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5521,12 +5531,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5543,7 +5553,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object required: - vessel @@ -5846,7 +5856,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5860,12 +5870,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5882,7 +5892,7 @@ workstation: - pose - config - data - title: Resource + title: filtrate_vessel type: object mass: type: string @@ -5937,7 +5947,7 @@ workstation: - y - z - w - title: Quaternion + title: orientation type: object position: properties: @@ -5951,12 +5961,12 @@ workstation: - x - y - z - title: Point + title: position type: object required: - position - orientation - title: Pose + title: pose type: object sample_id: type: string @@ -5973,7 +5983,7 @@ workstation: - pose - config - data - title: Resource + title: vessel type: object volume: type: string @@ -6020,7 +6030,7 @@ workstation: goal_default: action_name: null action_value_mapping: null - handles: [] + handles: {} result: {} schema: description: create_ros_action_server的参数schema @@ -6049,7 +6059,7 @@ workstation: action_kwargs: null action_name: null device_id: null - handles: [] + handles: {} result: {} schema: description: execute_single_action的参数schema @@ -6080,7 +6090,7 @@ workstation: goal_default: device_config: null device_id: null - handles: [] + handles: {} result: {} schema: description: initialize_device的参数schema @@ -6131,3 +6141,145 @@ workstation: required: [] type: object version: 1.0.0 +workstation.example: + category: + - work_station + class: + action_value_mappings: + auto-create_resource: + feedback: {} + goal: {} + goal_default: + bind_location: null + bind_parent_id: null + liquid_input_slot: null + liquid_type: null + liquid_volume: null + resource_tracker: null + resources: null + slot_on_deck: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + bind_location: + type: object + bind_parent_id: + type: string + liquid_input_slot: + type: array + liquid_type: + type: array + liquid_volume: + type: array + resource_tracker: + type: string + resources: + type: array + slot_on_deck: + type: integer + required: + - resource_tracker + - resources + - bind_parent_id + - bind_location + - liquid_input_slot + - liquid_type + - liquid_volume + - slot_on_deck + type: object + result: {} + required: + - goal + title: create_resource参数 + type: object + type: UniLabJsonCommand + auto-transfer_bottle: + feedback: {} + goal: {} + goal_default: + base_plate: null + tip_rack: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + base_plate: + type: string + tip_rack: + type: string + required: + - tip_rack + - base_plate + type: object + result: {} + required: + - goal + title: transfer_bottle参数 + type: object + type: UniLabJsonCommand + auto-trigger_resource_update: + feedback: {} + goal: {} + goal_default: + from_plate: null + to_base_plate: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + from_plate: + type: string + to_base_plate: + type: string + required: + - from_plate + - to_base_plate + type: object + result: {} + required: + - goal + title: trigger_resource_update参数 + type: object + type: UniLabJsonCommand + module: unilabos.ros.nodes.presets.workstation:WorkStationExample + status_types: {} + type: ros2 + config_info: [] + description: '' + handles: [] + icon: '' + init_param_schema: + config: + properties: + children: + type: object + device_id: + type: string + protocol_type: + type: string + resource_tracker: + type: string + required: + - device_id + - children + - protocol_type + - resource_tracker + type: object + data: + properties: {} + required: [] + type: object + version: 1.0.0 diff --git a/unilabos/registry/registry.py b/unilabos/registry/registry.py index e1736524..7ca71ea9 100644 --- a/unilabos/registry/registry.py +++ b/unilabos/registry/registry.py @@ -24,12 +24,11 @@ DEFAULT_PATHS = [Path(__file__).absolute().parent] class Registry: def __init__(self, registry_paths=None): import ctypes + try: import unilabos_msgs except ImportError: - logger.error( - "[UniLab Registry] unilabos_msgs模块未找到,请确保已根据官方文档安装unilabos_msgs包。" - ) + logger.error("[UniLab Registry] unilabos_msgs模块未找到,请确保已根据官方文档安装unilabos_msgs包。") sys.exit(1) try: ctypes.CDLL(str(Path(unilabos_msgs.__file__).parent / "unilabos_msgs_s__rosidl_typesupport_c.pyd")) @@ -53,7 +52,7 @@ class Registry: # 其他状态变量 # self.is_host_mode = False # 移至BasicConfig中 - def setup(self, complete_registry=False): + def setup(self, complete_registry=False, upload_registry=False): # 检查是否已调用过setup if self._setup_called: logger.critical("[UniLab Registry] setup方法已被调用过,不允许多次调用") @@ -152,22 +151,22 @@ class Registry: } } ) - logger.debug(f"[UniLab Registry] ----------Setup----------") + logger.trace(f"[UniLab Registry] ----------Setup----------") self.registry_paths = [Path(path).absolute() for path in self.registry_paths] for i, path in enumerate(self.registry_paths): sys_path = path.parent - logger.debug(f"[UniLab Registry] Path {i+1}/{len(self.registry_paths)}: {sys_path}") + logger.trace(f"[UniLab Registry] Path {i+1}/{len(self.registry_paths)}: {sys_path}") sys.path.append(str(sys_path)) self.load_device_types(path, complete_registry) if BasicConfig.enable_resource_load: - self.load_resource_types(path, complete_registry) + self.load_resource_types(path, complete_registry, upload_registry) else: logger.warning("跳过了资源注册表加载!") logger.info("[UniLab Registry] 注册表设置完成") # 标记setup已被调用 self._setup_called = True - def load_resource_types(self, path: os.PathLike, complete_registry: bool): + def load_resource_types(self, path: os.PathLike, complete_registry: bool, upload_registry: bool): abs_path = Path(path).absolute() resource_path = abs_path / "resources" files = list(resource_path.glob("*/*.yaml")) @@ -194,7 +193,12 @@ class Registry: resource_info["handles"] = [] if "init_param_schema" not in resource_info: resource_info["init_param_schema"] = {} - if complete_registry: + if "config_info" in resource_info: + del resource_info["config_info"] + if "file_path" in resource_info: + del resource_info["file_path"] + complete_data[resource_id] = copy.deepcopy(dict(sorted(resource_info.items()))) + if upload_registry: class_info = resource_info.get("class", {}) if len(class_info) and "module" in class_info: if class_info.get("type") == "pylabrobot": @@ -205,7 +209,6 @@ class Registry: res_instance = res_class(res_class.__name__) res_ulr = tree_to_list([resource_plr_to_ulab(res_instance)]) resource_info["config_info"] = res_ulr - complete_data[resource_id] = copy.deepcopy(dict(sorted(resource_info.items()))) # 稍后dump到文件 resource_info["registry_type"] = "resource" resource_info["file_path"] = str(file.absolute()).replace("\\", "/") complete_data = dict(sorted(complete_data.items())) @@ -215,7 +218,7 @@ class Registry: yaml.dump(complete_data, f, allow_unicode=True, default_flow_style=False, Dumper=NoAliasDumper) self.resource_type_registry.update(data) - logger.debug( + logger.trace( # type: ignore f"[UniLab Registry] Resource-{current_resource_number} File-{i+1}/{len(files)} " + f"Add {list(data.keys())}" ) @@ -402,7 +405,7 @@ class Registry: devices_path = abs_path / "devices" device_comms_path = abs_path / "device_comms" files = list(devices_path.glob("*.yaml")) + list(device_comms_path.glob("*.yaml")) - logger.debug( + logger.trace( # type: ignore f"[UniLab Registry] devices: {devices_path.exists()}, device_comms: {device_comms_path.exists()}, " + f"total: {len(files)}" ) @@ -447,6 +450,8 @@ class Registry: if complete_registry: device_config["class"]["status_types"].clear() enhanced_info = get_enhanced_class_info(device_config["class"]["module"], use_dynamic=True) + if not enhanced_info.get("dynamic_import_success", False): + continue device_config["class"]["status_types"].update( {k: v["return_type"] for k, v in enhanced_info["status_methods"].items()} ) @@ -517,6 +522,12 @@ class Registry: for action_name, action_config in device_config["class"]["action_value_mappings"].items(): if "handles" not in action_config: action_config["handles"] = {} + elif isinstance(action_config["handles"], list): + if len(action_config["handles"]): + logger.error(f"设备{device_id} {action_name} 的handles配置错误,应该是字典类型") + continue + else: + action_config["handles"] = {} if "type" in action_config: action_type_str: str = action_config["type"] # 通过Json发放指令,而不是通过特殊的ros action进行处理 @@ -565,7 +576,7 @@ class Registry: } device_config["file_path"] = str(file.absolute()).replace("\\", "/") device_config["registry_type"] = "device" - logger.debug( + logger.trace( f"[UniLab Registry] Device-{current_device_number} File-{i+1}/{len(files)} Add {device_id} " + f"[{data[device_id].get('name', '未命名设备')}]" ) @@ -627,7 +638,7 @@ class Registry: lab_registry = Registry() -def build_registry(registry_paths=None, complete_registry=False): +def build_registry(registry_paths=None, complete_registry=False, upload_registry=False): """ 构建或获取Registry单例实例 @@ -651,6 +662,6 @@ def build_registry(registry_paths=None, complete_registry=False): lab_registry.registry_paths.append(path) # 初始化注册表 - lab_registry.setup(complete_registry) + lab_registry.setup(complete_registry, upload_registry) return lab_registry diff --git a/unilabos/registry/resources/organic/workstation.yaml b/unilabos/registry/resources/organic/workstation.yaml new file mode 100644 index 00000000..5250dfc9 --- /dev/null +++ b/unilabos/registry/resources/organic/workstation.yaml @@ -0,0 +1,12 @@ +#get_workstation_plate_resource: +# category: +# - workstation +# class: +# module: unilabos.devices.workstation.workstation_base:get_workstation_plate_resource +# type: pylabrobot +# description: workstation example resource +# handles: [] +# icon: '' +# init_param_schema: {} +# registry_type: resource +# version: 1.0.0 diff --git a/unilabos/ros/msgs/message_converter.py b/unilabos/ros/msgs/message_converter.py index b0716aab..ae8d80ee 100644 --- a/unilabos/ros/msgs/message_converter.py +++ b/unilabos/ros/msgs/message_converter.py @@ -508,7 +508,7 @@ def convert_from_ros_msg_with_mapping(ros_msg: Any, value_mapping: Dict[str, str Python字典 """ data: Dict[str, Any] = {} - + # # 🔧 添加调试信息 # print(f"🔍 convert_from_ros_msg_with_mapping 开始") # print(f"🔍 ros_msg 类型: {type(ros_msg)}") @@ -517,14 +517,14 @@ def convert_from_ros_msg_with_mapping(ros_msg: Any, value_mapping: Dict[str, str # print("-" * 60) for msg_name, attr_name in value_mapping.items(): - # print(f"🔍 处理映射: {msg_name} -> {attr_name}") - + # print(f"🔍 处理映射: {msg_name} -> {attr_name}") + msg_path = msg_name.split(".") current = ros_msg - + # print(f"🔍 msg_path: {msg_path}") # print(f"🔍 current 初始值: {current} (类型: {type(current)})") - + try: if not attr_name.endswith("[]"): # 处理单值映射 @@ -537,7 +537,7 @@ def convert_from_ros_msg_with_mapping(ros_msg: Any, value_mapping: Dict[str, str else: # print(f"❌ 属性 '{name}' 不存在于 {type(current)}") break - + converted_value = convert_from_ros_msg(current) # print(f"🔍 转换后的值: {converted_value} (类型: {type(converted_value)})") data[attr_name] = converted_value @@ -585,13 +585,13 @@ def convert_from_ros_msg_with_mapping(ros_msg: Any, value_mapping: Dict[str, str # print(f"❌ 映射转换错误 {msg_name} -> {attr_name}: {e}") logger.debug(f"Mapping conversion error for {msg_name} -> {attr_name}") continue - + # print(f"🔍 当前 data 状态: {data}") # print("-" * 40) - #print(f"🔍 convert_from_ros_msg_with_mapping 结束") - #print(f"🔍 最终 data: {data}") - #print("=" * 60) + # print(f"🔍 convert_from_ros_msg_with_mapping 结束") + # print(f"🔍 最终 data: {data}") + # print("=" * 60) return data @@ -646,25 +646,28 @@ basic_type_map = { } -def ros_field_type_to_json_schema(type_info: Type | str, slot_type: str = None) -> Dict[str, Any]: +def ros_field_type_to_json_schema( + type_info: Type | str, field_name: str +) -> Dict[str, Any]: """ 将 ROS 字段类型转换为 JSON Schema 类型定义 Args: type_info: ROS 类型 slot_type: ROS 类型 + field_name: 字段名,用于设置复杂类型的title Returns: 对应的 JSON Schema 类型定义 """ if isinstance(type_info, UnboundedSequence): - return {"type": "array", "items": ros_field_type_to_json_schema(type_info.value_type)} + return {"type": "array", "items": ros_field_type_to_json_schema(type_info.value_type, field_name)} # type: ignore if isinstance(type_info, NamespacedType): cls_name = ".".join(type_info.namespaces) + ":" + type_info.name type_class = msg_converter_manager.get_class(cls_name) - return ros_field_type_to_json_schema(type_class) + return ros_field_type_to_json_schema(type_class, field_name) elif isinstance(type_info, BasicType): - return ros_field_type_to_json_schema(type_info.typename) + return ros_field_type_to_json_schema(type_info.typename, field_name) elif isinstance(type_info, UnboundedString): return basic_type_map["string"] elif isinstance(type_info, str): @@ -681,8 +684,9 @@ def ros_field_type_to_json_schema(type_info: Type | str, slot_type: str = None) }, "required": ["sec", "nanosec"], } + return {} else: - return ros_message_to_json_schema(type_info) + return ros_message_to_json_schema(type_info, field_name) # # 处理数组类型 # if field_type.endswith('[]'): # item_type = field_type[:-2] @@ -706,28 +710,28 @@ def ros_field_type_to_json_schema(type_info: Type | str, slot_type: str = None) # return {'type': 'object', 'description': f'未知类型: {field_type}'} -def ros_message_to_json_schema(msg_class: Any) -> Dict[str, Any]: +def ros_message_to_json_schema(msg_class: Any, field_name: str) -> Dict[str, Any]: """ 将 ROS 消息类转换为 JSON Schema Args: msg_class: ROS 消息类 + field_name: 字段名,用于设置schema的title,如果为None则使用类名 Returns: 对应的 JSON Schema 定义 """ schema = {"type": "object", "properties": {}, "required": []} - # 获取类名作为标题 - if hasattr(msg_class, "__name__"): - schema["title"] = msg_class.__name__ + # 优先使用字段名作为标题,否则使用类名 + schema["title"] = field_name # 获取消息的字段和字段类型 try: for ind, slot_info in enumerate(msg_class._fields_and_field_types.items()): slot_name, slot_type = slot_info type_info = msg_class.SLOT_TYPES[ind] - field_schema = ros_field_type_to_json_schema(type_info, slot_type) + field_schema = ros_field_type_to_json_schema(type_info, slot_name) schema["properties"][slot_name] = field_schema schema["required"].append(slot_name) # if hasattr(msg_class, 'get_fields_and_field_types'): @@ -786,15 +790,15 @@ def ros_action_to_json_schema(action_class: Any, description="") -> Dict[str, An "properties": { "goal": { # 'description': 'Action 目标 - 从客户端发送到服务器', - **ros_message_to_json_schema(action_class.Goal) + **ros_message_to_json_schema(action_class.Goal, action_class.Goal.__name__) }, "feedback": { # 'description': 'Action 反馈 - 执行过程中从服务器发送到客户端', - **ros_message_to_json_schema(action_class.Feedback) + **ros_message_to_json_schema(action_class.Feedback, action_class.Feedback.__name__) }, "result": { # 'description': 'Action 结果 - 完成后从服务器发送到客户端', - **ros_message_to_json_schema(action_class.Result) + **ros_message_to_json_schema(action_class.Result, action_class.Result.__name__) }, }, "required": ["goal"],