diff --git a/data/robot/robot.json b/data/robot/robot.json index 4b90a63..49b8b6c 100644 --- a/data/robot/robot.json +++ b/data/robot/robot.json @@ -21,7 +21,7 @@ "cameraPosition__3": [-200, -900, 200], "cameraPosition__4": [1200, 200, 300], "cameraPosition_a":[-300, -800,500], - "cameraPosition":[300, -800,550], + "cameraPosition":[300, -500,1450], "cameraPosition_c":[600, -500,600], "cameraTarget": [210, -200, 180], "cameraUpVector": [0, 0, 1], @@ -39,7 +39,7 @@ "lensDirt": true, "lensDirtStrength": 0.08, "dofEnabled": true, - "dofFStop": 16, + "dofFStop": 11, "arucoDust": false, "arucoDustStrength": 0.00005, "localizedBlur": false, @@ -214,7 +214,68 @@ {"id":206,"position":[650, -10, 0.3], "normal":[0,0,1]}, {"id":205,"position":[750, -90, 0.3], "normal":[0,0,1]}, {"id":207,"position":[750, -10, 0.3], "normal":[0,0,1]}, - {"id":217,"position":[650, -90, 0.3], "normal":[0,0,1]} + {"id":217,"position":[650, -90, 0.3], "normal":[0,0,1]}, + + {"id": 46, "position": [536.71, 185.44, -27.3], "normal": [0, 0, 1], "spin": 90, "info": "is placed on a white paper, A0_60Arucos_25mm_Seet223.pdf, with the following marker placements:"}, + {"id": 47, "position": [344.23, -286.54, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 48, "position": [688.69, -320.72, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 49, "position": [1006.0, 158.33, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 50, "position": [573.41, 211.86, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 51, "position": [167.8, -172.08, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 52, "position": [94.68, 208.66, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 53, "position": [486.25, 212.24, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 54, "position": [342.27, -330.59, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 55, "position": [283.72, -262.58, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 56, "position": [498.68, 168.67, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 57, "position": [602.86, -364.05, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 58, "position": [50.09, -218.11, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 59, "position": [626.21, -278.75, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 60, "position": [434.36, 283.81, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 61, "position": [-22.42, 335.83, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 62, "position": [404.7, -175.1, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 63, "position": [777.4, -236.15, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 64, "position": [-21.27, -188.23, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 65, "position": [803.39, -297.37, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 66, "position": [209.75, -363.23, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 67, "position": [523.07, 267.04, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 68, "position": [573.73, 170.64, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 69, "position": [7.61, -281.21, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 70, "position": [601.87, 300.33, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 71, "position": [749.75, -284.01, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 72, "position": [440.99, 194.32, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 73, "position": [221.73, 333.11, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 74, "position": [93.78, 144.5, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 75, "position": [-25.7, 194.58, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 76, "position": [685.21, 166.8, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 77, "position": [18.19, 191.57, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 78, "position": [823.11, -344.38, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 79, "position": [312.3, -159.11, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 80, "position": [863.59, -335.92, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 81, "position": [132.14, 169.03, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 82, "position": [219.16, 297.24, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 83, "position": [44.16, 339.22, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 84, "position": [407.49, 258.42, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 85, "position": [504.58, -312.75, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 86, "position": [362.89, 292.01, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 87, "position": [943.63, -245.76, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 88, "position": [765.87, 316.04, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 89, "position": [988.02, -369.14, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 90, "position": [643.17, 316.43, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 91, "position": [723.35, 328.05, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 92, "position": [645.09, -184.84, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 93, "position": [934.88, 143.6, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 94, "position": [875.7, 173.65, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 95, "position": [186.04, -274.07, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 96, "position": [369.77, -186.49, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 97, "position": [304.35, -359.67, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 98, "position": [575.27, 315.06, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 99, "position": [959.16, -321.55, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 100, "position": [803.25, 172.36, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 101, "position": [117.7, 298.66, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 102, "position": [649.69, -223.0, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 103, "position": [105.71, -187.71, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 104, "position": [826.71, 239.16, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 105, "position": [524.84, -266.25, -27.3], "normal": [0, 0, 1], "spin": 90} ], "model": [ { @@ -423,8 +484,8 @@ {"id":122, "name": "aruco_122", "position":[-35,-112,0], "normal":[-1,0,0]}, {"id":218, "name": "aruco_218", "position":[35,-112,0], "normal":[1,0,0]}, {"id":113, "name": "aruco_113", "position":[0, -182, 30],"normal":[0,0,1]}, - {"id":101, "name": "aruco_101", "position":[ 24.75, -182, -24.75],"normal":[ 1,0,-1]}, - {"id":102, "name": "aruco_102", "position":[-24.75, -182, -24.75],"normal":[-1,0,-1]}, + {"id":114, "name": "aruco_114", "position":[ 24.75, -182, -24.75],"normal":[ 1,0,-1]}, + {"id":115, "name": "aruco_115", "position":[-24.75, -182, -24.75],"normal":[-1,0,-1]}, {"id":124, "name": "aruco_124", "position":[-35,-219,0], "normal":[-1,0,0]}, {"id":219, "name": "aruco_219", "position":[35,-219,0], "normal":[1,0,0]} diff --git a/data/simulation/debug/markers.json b/data/simulation/debug/markers.json index 9775064..f7ac0e7 100644 --- a/data/simulation/debug/markers.json +++ b/data/simulation/debug/markers.json @@ -233,6 +233,1566 @@ 1.0 ] }, + { + "name": "Board_marker_46", + "id": 46, + "link": "Board", + "position_m": [ + 0.5367100238800049, + 0.18544000387191772, + -0.02680000104010105 + ], + "position_mm": [ + 536.7100238800049, + 185.44000387191772, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_47", + "id": 47, + "link": "Board", + "position_m": [ + 0.3442299962043762, + -0.2865400016307831, + -0.02680000104010105 + ], + "position_mm": [ + 344.2299962043762, + -286.5400016307831, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_48", + "id": 48, + "link": "Board", + "position_m": [ + 0.6886900067329407, + -0.32071998715400696, + -0.02680000104010105 + ], + "position_mm": [ + 688.6900067329407, + -320.71998715400696, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_49", + "id": 49, + "link": "Board", + "position_m": [ + 1.00600004196167, + 0.15832999348640442, + -0.02680000104010105 + ], + "position_mm": [ + 1006.0000419616699, + 158.32999348640442, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_50", + "id": 50, + "link": "Board", + "position_m": [ + 0.5734099745750427, + 0.21186000108718872, + -0.02680000104010105 + ], + "position_mm": [ + 573.4099745750427, + 211.86000108718872, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_51", + "id": 51, + "link": "Board", + "position_m": [ + 0.16779999434947968, + -0.17207999527454376, + -0.02680000104010105 + ], + "position_mm": [ + 167.79999434947968, + -172.07999527454376, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_52", + "id": 52, + "link": "Board", + "position_m": [ + 0.09467999637126923, + 0.20866000652313232, + -0.02680000104010105 + ], + "position_mm": [ + 94.67999637126923, + 208.66000652313232, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_53", + "id": 53, + "link": "Board", + "position_m": [ + 0.48625001311302185, + 0.21223999559879303, + -0.02680000104010105 + ], + "position_mm": [ + 486.25001311302185, + 212.23999559879303, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_54", + "id": 54, + "link": "Board", + "position_m": [ + 0.34226998686790466, + -0.33059000968933105, + -0.02680000104010105 + ], + "position_mm": [ + 342.26998686790466, + -330.59000968933105, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_55", + "id": 55, + "link": "Board", + "position_m": [ + 0.2837199866771698, + -0.262580007314682, + -0.02680000104010105 + ], + "position_mm": [ + 283.7199866771698, + -262.580007314682, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_56", + "id": 56, + "link": "Board", + "position_m": [ + 0.4986799955368042, + 0.16866999864578247, + -0.02680000104010105 + ], + "position_mm": [ + 498.6799955368042, + 168.66999864578247, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_57", + "id": 57, + "link": "Board", + "position_m": [ + 0.6028599739074707, + -0.3640500009059906, + -0.02680000104010105 + ], + "position_mm": [ + 602.8599739074707, + -364.0500009059906, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_58", + "id": 58, + "link": "Board", + "position_m": [ + 0.0500900000333786, + -0.21810999512672424, + -0.02680000104010105 + ], + "position_mm": [ + 50.0900000333786, + -218.10999512672424, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_59", + "id": 59, + "link": "Board", + "position_m": [ + 0.6262099742889404, + -0.2787500023841858, + -0.02680000104010105 + ], + "position_mm": [ + 626.2099742889404, + -278.7500023841858, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_60", + "id": 60, + "link": "Board", + "position_m": [ + 0.43435999751091003, + 0.28380998969078064, + -0.02680000104010105 + ], + "position_mm": [ + 434.35999751091003, + 283.80998969078064, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_61", + "id": 61, + "link": "Board", + "position_m": [ + -0.022420000284910202, + 0.3358300030231476, + -0.02680000104010105 + ], + "position_mm": [ + -22.420000284910202, + 335.8300030231476, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_62", + "id": 62, + "link": "Board", + "position_m": [ + 0.40470001101493835, + -0.17509999871253967, + -0.02680000104010105 + ], + "position_mm": [ + 404.70001101493835, + -175.09999871253967, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_63", + "id": 63, + "link": "Board", + "position_m": [ + 0.777400016784668, + -0.23614999651908875, + -0.02680000104010105 + ], + "position_mm": [ + 777.400016784668, + -236.14999651908875, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_64", + "id": 64, + "link": "Board", + "position_m": [ + -0.02126999944448471, + -0.1882299929857254, + -0.02680000104010105 + ], + "position_mm": [ + -21.26999944448471, + -188.2299929857254, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_65", + "id": 65, + "link": "Board", + "position_m": [ + 0.8033900260925293, + -0.29736998677253723, + -0.02680000104010105 + ], + "position_mm": [ + 803.3900260925293, + -297.36998677253723, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_66", + "id": 66, + "link": "Board", + "position_m": [ + 0.2097499966621399, + -0.36322999000549316, + -0.02680000104010105 + ], + "position_mm": [ + 209.7499966621399, + -363.22999000549316, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_67", + "id": 67, + "link": "Board", + "position_m": [ + 0.5230699777603149, + 0.2670400142669678, + -0.02680000104010105 + ], + "position_mm": [ + 523.0699777603149, + 267.0400142669678, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_68", + "id": 68, + "link": "Board", + "position_m": [ + 0.5737299919128418, + 0.1706400066614151, + -0.02680000104010105 + ], + "position_mm": [ + 573.7299919128418, + 170.6400066614151, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_69", + "id": 69, + "link": "Board", + "position_m": [ + 0.00761000020429492, + -0.2812100052833557, + -0.02680000104010105 + ], + "position_mm": [ + 7.61000020429492, + -281.2100052833557, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_70", + "id": 70, + "link": "Board", + "position_m": [ + 0.6018700003623962, + 0.3003300130367279, + -0.02680000104010105 + ], + "position_mm": [ + 601.8700003623962, + 300.3300130367279, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_71", + "id": 71, + "link": "Board", + "position_m": [ + 0.749750018119812, + -0.28400999307632446, + -0.02680000104010105 + ], + "position_mm": [ + 749.750018119812, + -284.00999307632446, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_72", + "id": 72, + "link": "Board", + "position_m": [ + 0.44099000096321106, + 0.19431999325752258, + -0.02680000104010105 + ], + "position_mm": [ + 440.99000096321106, + 194.31999325752258, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_73", + "id": 73, + "link": "Board", + "position_m": [ + 0.22172999382019043, + 0.3331100046634674, + -0.02680000104010105 + ], + "position_mm": [ + 221.72999382019043, + 333.1100046634674, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_74", + "id": 74, + "link": "Board", + "position_m": [ + 0.09378000348806381, + 0.1445000022649765, + -0.02680000104010105 + ], + "position_mm": [ + 93.78000348806381, + 144.5000022649765, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_75", + "id": 75, + "link": "Board", + "position_m": [ + -0.025699999183416367, + 0.19458000361919403, + -0.02680000104010105 + ], + "position_mm": [ + -25.699999183416367, + 194.58000361919403, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_76", + "id": 76, + "link": "Board", + "position_m": [ + 0.6852099895477295, + 0.16680000722408295, + -0.02680000104010105 + ], + "position_mm": [ + 685.2099895477295, + 166.80000722408295, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_77", + "id": 77, + "link": "Board", + "position_m": [ + 0.01819000020623207, + 0.1915699988603592, + -0.02680000104010105 + ], + "position_mm": [ + 18.19000020623207, + 191.5699988603592, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_78", + "id": 78, + "link": "Board", + "position_m": [ + 0.8231099843978882, + -0.3443799912929535, + -0.02680000104010105 + ], + "position_mm": [ + 823.1099843978882, + -344.3799912929535, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_79", + "id": 79, + "link": "Board", + "position_m": [ + 0.3122999966144562, + -0.15910999476909637, + -0.02680000104010105 + ], + "position_mm": [ + 312.2999966144562, + -159.10999476909637, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_80", + "id": 80, + "link": "Board", + "position_m": [ + 0.8635900020599365, + -0.3359200060367584, + -0.02680000104010105 + ], + "position_mm": [ + 863.5900020599365, + -335.9200060367584, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_81", + "id": 81, + "link": "Board", + "position_m": [ + 0.13213999569416046, + 0.16902999579906464, + -0.02680000104010105 + ], + "position_mm": [ + 132.13999569416046, + 169.02999579906464, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_82", + "id": 82, + "link": "Board", + "position_m": [ + 0.21916000545024872, + 0.2972399890422821, + -0.02680000104010105 + ], + "position_mm": [ + 219.16000545024872, + 297.2399890422821, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_83", + "id": 83, + "link": "Board", + "position_m": [ + 0.04416000097990036, + 0.33921998739242554, + -0.02680000104010105 + ], + "position_mm": [ + 44.16000097990036, + 339.21998739242554, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_84", + "id": 84, + "link": "Board", + "position_m": [ + 0.40748998522758484, + 0.2584199905395508, + -0.02680000104010105 + ], + "position_mm": [ + 407.48998522758484, + 258.4199905395508, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_85", + "id": 85, + "link": "Board", + "position_m": [ + 0.504580020904541, + -0.3127500116825104, + -0.02680000104010105 + ], + "position_mm": [ + 504.580020904541, + -312.7500116825104, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_86", + "id": 86, + "link": "Board", + "position_m": [ + 0.36289000511169434, + 0.29201000928878784, + -0.02680000104010105 + ], + "position_mm": [ + 362.89000511169434, + 292.01000928878784, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_87", + "id": 87, + "link": "Board", + "position_m": [ + 0.9436299800872803, + -0.2457599937915802, + -0.02680000104010105 + ], + "position_mm": [ + 943.6299800872803, + -245.7599937915802, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_88", + "id": 88, + "link": "Board", + "position_m": [ + 0.7658699750900269, + 0.3160400092601776, + -0.02680000104010105 + ], + "position_mm": [ + 765.8699750900269, + 316.0400092601776, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_89", + "id": 89, + "link": "Board", + "position_m": [ + 0.9880200028419495, + -0.36913999915122986, + -0.02680000104010105 + ], + "position_mm": [ + 988.0200028419495, + -369.13999915122986, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_90", + "id": 90, + "link": "Board", + "position_m": [ + 0.6431699991226196, + 0.316430002450943, + -0.02680000104010105 + ], + "position_mm": [ + 643.1699991226196, + 316.430002450943, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_91", + "id": 91, + "link": "Board", + "position_m": [ + 0.7233499884605408, + 0.32804998755455017, + -0.02680000104010105 + ], + "position_mm": [ + 723.3499884605408, + 328.04998755455017, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_92", + "id": 92, + "link": "Board", + "position_m": [ + 0.6450899839401245, + -0.18483999371528625, + -0.02680000104010105 + ], + "position_mm": [ + 645.0899839401245, + -184.83999371528625, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_93", + "id": 93, + "link": "Board", + "position_m": [ + 0.9348800182342529, + 0.1436000019311905, + -0.02680000104010105 + ], + "position_mm": [ + 934.8800182342529, + 143.6000019311905, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_94", + "id": 94, + "link": "Board", + "position_m": [ + 0.8756999969482422, + 0.17364999651908875, + -0.02680000104010105 + ], + "position_mm": [ + 875.6999969482422, + 173.64999651908875, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_95", + "id": 95, + "link": "Board", + "position_m": [ + 0.186039999127388, + -0.27406999468803406, + -0.02680000104010105 + ], + "position_mm": [ + 186.039999127388, + -274.06999468803406, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_96", + "id": 96, + "link": "Board", + "position_m": [ + 0.36976999044418335, + -0.186489999294281, + -0.02680000104010105 + ], + "position_mm": [ + 369.76999044418335, + -186.489999294281, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_97", + "id": 97, + "link": "Board", + "position_m": [ + 0.30434998869895935, + -0.3596700131893158, + -0.02680000104010105 + ], + "position_mm": [ + 304.34998869895935, + -359.6700131893158, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_98", + "id": 98, + "link": "Board", + "position_m": [ + 0.5752699971199036, + 0.31505998969078064, + -0.02680000104010105 + ], + "position_mm": [ + 575.2699971199036, + 315.05998969078064, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_99", + "id": 99, + "link": "Board", + "position_m": [ + 0.9591599702835083, + -0.32155001163482666, + -0.02680000104010105 + ], + "position_mm": [ + 959.1599702835083, + -321.55001163482666, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_100", + "id": 100, + "link": "Board", + "position_m": [ + 0.8032500147819519, + 0.17236000299453735, + -0.02680000104010105 + ], + "position_mm": [ + 803.2500147819519, + 172.36000299453735, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_101", + "id": 101, + "link": "Board", + "position_m": [ + 0.1177000030875206, + 0.298660010099411, + -0.02680000104010105 + ], + "position_mm": [ + 117.7000030875206, + 298.660010099411, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_102", + "id": 102, + "link": "Board", + "position_m": [ + 0.6496899724006653, + -0.22300000488758087, + -0.02680000104010105 + ], + "position_mm": [ + 649.6899724006653, + -223.00000488758087, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_103", + "id": 103, + "link": "Board", + "position_m": [ + 0.1057099997997284, + -0.1877100020647049, + -0.02680000104010105 + ], + "position_mm": [ + 105.7099997997284, + -187.7100020647049, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_104", + "id": 104, + "link": "Board", + "position_m": [ + 0.8267099857330322, + 0.23916000127792358, + -0.02680000104010105 + ], + "position_mm": [ + 826.7099857330322, + 239.16000127792358, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "Board_marker_105", + "id": 105, + "link": "Board", + "position_m": [ + 0.5248399972915649, + -0.26625001430511475, + -0.02680000104010105 + ], + "position_mm": [ + 524.8399972915649, + -266.25001430511475, + -26.80000104010105 + ], + "rotation_quaternion": [ + 0.7071067690849304, + 0.0, + 0.0, + 0.7071067690849304 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + }, { "name": "aruco_198", "id": 198, @@ -546,8 +2106,8 @@ ] }, { - "name": "aruco_101", - "id": 101, + "name": "aruco_114", + "id": 114, "link": "Arm2", "position_m": [ 0.37081149220466614, @@ -572,8 +2132,8 @@ ] }, { - "name": "aruco_102", - "id": 102, + "name": "aruco_115", + "id": 115, "link": "Arm2", "position_m": [ 0.3457079231739044, diff --git a/data/simulation/debug/render.png b/data/simulation/debug/render.png index daccf25..b658fba 100644 Binary files a/data/simulation/debug/render.png and b/data/simulation/debug/render.png differ diff --git a/setup/generateTabletopPDF/A0_46Arucos_25mm_Seet223.json b/setup/generateTabletopPDF/A0_46Arucos_25mm_Seet223.json new file mode 100644 index 0000000..694bb0c --- /dev/null +++ b/setup/generateTabletopPDF/A0_46Arucos_25mm_Seet223.json @@ -0,0 +1,69 @@ +{ + "page_format": "A0", + "orientation": "portrait", + "page_size_mm": { + "width": 841.0, + "height": 1189.0 + }, + "seed": 223, + "num_arucos": 46, + "aruco_size_mm": 25.0, + "aruco_dictionary": "DICT_4X4_250", + "aruco_start_id": 103, + "page_border_margin_mm": 50.0, + "forbidden_rectangle_mm": { + "x": 318.5, + "y": 94.5, + "w": 204.0, + "h": 1000.0 + }, + "forbidden_rectangle_margin_mm": 30.0, + "placements": [ + {"id": 103, "position": [536.71, 185.44, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 104, "position": [344.23, -286.54, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 105, "position": [688.69, -320.72, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 106, "position": [1006.0, 158.33, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 107, "position": [573.41, 211.86, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 108, "position": [167.8, -172.08, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 109, "position": [94.68, 208.66, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 110, "position": [486.25, 212.24, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 111, "position": [342.27, -330.59, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 112, "position": [283.72, -262.58, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 113, "position": [498.68, 168.67, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 114, "position": [602.86, -364.05, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 115, "position": [50.09, -218.11, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 116, "position": [626.21, -278.75, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 117, "position": [434.36, 283.81, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 118, "position": [-22.42, 335.83, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 119, "position": [404.7, -175.1, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 120, "position": [777.4, -236.15, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 121, "position": [-21.27, -188.23, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 122, "position": [803.39, -297.37, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 123, "position": [209.75, -363.23, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 124, "position": [523.07, 267.04, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 125, "position": [573.73, 170.64, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 126, "position": [7.61, -281.21, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 127, "position": [601.87, 300.33, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 128, "position": [749.75, -284.01, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 129, "position": [440.99, 194.32, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 130, "position": [221.73, 333.11, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 131, "position": [93.78, 144.5, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 132, "position": [-25.7, 194.58, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 133, "position": [685.21, 166.8, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 134, "position": [18.19, 191.57, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 135, "position": [823.11, -344.38, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 136, "position": [312.3, -159.11, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 137, "position": [863.59, -335.92, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 138, "position": [132.14, 169.03, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 139, "position": [219.16, 297.24, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 140, "position": [44.16, 339.22, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 141, "position": [407.49, 258.42, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 142, "position": [504.58, -312.75, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 143, "position": [362.89, 292.01, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 144, "position": [943.63, -245.76, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 145, "position": [765.87, 316.04, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 146, "position": [988.02, -369.14, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 147, "position": [643.17, 316.43, -19], "normal": [0, 0, 1], "spin": 90}, + {"id": 148, "position": [723.35, 328.05, -19], "normal": [0, 0, 1], "spin": 90} + ] +} diff --git a/setup/generateTabletopPDF/A0_46Arucos_25mm_Seet223.pdf b/setup/generateTabletopPDF/A0_46Arucos_25mm_Seet223.pdf new file mode 100644 index 0000000..e85eae2 --- /dev/null +++ b/setup/generateTabletopPDF/A0_46Arucos_25mm_Seet223.pdf @@ -0,0 +1,74 @@ +%PDF-1.3 +%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com +1 0 obj +<< +/F1 2 0 R /F2 3 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 8 0 R /MediaBox [ 0 0 2383.937 3370.394 ] /Parent 7 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +5 0 obj +<< +/PageMode /UseNone /Pages 7 0 R /Type /Catalog +>> +endobj +6 0 obj +<< +/Author (OpenAI) /CreationDate (D:20260530160920+02'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20260530160920+02'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (A0 poster with random ArUco placement) /Title (A0_46Arucos_25mm_Seet223) /Trapped /False +>> +endobj +7 0 obj +<< +/Count 1 /Kids [ 4 0 R ] /Type /Pages +>> +endobj +8 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 9345 +>> +stream +GasbabH6f6=kP_G7!be!K]`o"T;Fs*stGq>B9VcTh>KqP=&bp#f,NTmhIhlfXmhr?aals8DW*If%TE"Of]`.63rQB+>bYifTTDt1kZ/Y_cTA2r(UOLpa62iu1=ah>)PJ@+c^SO0mgF;;$euYL,Un!`8^\a)_l7n5X55ujWr@`ZiF(Ni!/+OT=Uth#I)56-^PDu1gDI%`CVMM:8LAgXKdPa.Q"2S.N"D`;if(;^O@rdE()@4nN&?KSJ3NP9P-:tG=JRGsA*buU0;&U;F\L\S>2[>)nZc3.PmCDaT3o?_r[u1\pRbgmrV?+6`W,LkIOI`O1d>.?XccG%?WNDO1K/+L8T#_`;64klUK3D?5.\/AZ.e74:9gCC,U>!1b_lSL$2X+[PV:P(1'Kim*&=Lkobei?bleuiLgL9310*JuW/49rQ+ib;6YaoSfO*&-\=@+KD7XQP,IGn,-D*]rjm%Zl,#J6C2!Z^q824U:>uF3k7F`1BcHgC6-G.`sN]Ku6kDjY[\=G,o[nsk*=QbDH(oMlP9F^l!U3eOA$E(48;0+YXT^:7_;^%0Y&[i\n(l8$pCEbgqe9;n\Wm]ib7?s<7a,h&F9"3bI$HQXR@0af`q2l"/MLQXP*O1$l&%L>=j4(;FPHI9mPM'\VSCp2p*.B88_4)*BO^[7Wq3aWJLH-ikV(Q-o6F,V(+b<\h_EWtakSZm*=&.L#s^(^S]%+BXPQ?nDT,H47K@I!ciYGp?G?9.L(F[<7oNF:!MB&243db^"fJ))'[RQ#gUDZjk40PfNKN$A2p>'XIm%(]qVfGt(3mMHdaa+.:IK?kO0R`[M/6bqN/NuoD;OE>0\(!>q]eq04nLnW0*c'V\c[G(RT>`R!!>7F`4#:Ic;a/,\C=8AmI'%?*F/1l,G`sR.YdCXOeD'4U92W%Y093ngJd-G;;eZjlr,pf>)^p&G<*@OR`'is-c0`*L8DPWrg,_fKsKrRRX7-K+c#_(%V$j7'JGF.6$E_G]457$*lW,WM^"bN_BOLbMF24kW0nEM$-Wl:n?nDSu&n>,@)g@o2;cliI\\?rm8-_5f^,_>T"gn:BQG+Fg:`50^LIIn^KH:q`Q5+/3aHf0D\'>hu!/@\*eQQZV?(Rm3sL;E(^S]%+B\5i=nbtb=e:i^K&'EmTI(J]0"4GCGl2[XWX=?cWZYE%JRE[1"DTXkQ?dD2T'g[`FI@FKngXR.d*cdU2[X-H4+rh.!0^cTrTqj>WS](XIY?/I-m8*&-\=&?OtYB^d"I4J86Xicks#oc,[O3C*;'"(j\$XMJt>kKIt87mUcmtH(gbVO++Xj*cbTXCnffrkAbf5D)9*K3OZ+F>Gb5B2!DVLW'!UNIC"US-I5Q[!(3%:)<`$2G3ZhL).;#N^o1gp;9Js6ScLIo1RMGhfhQt)qnf<-_Pm9^W;FH.]!"!Q$2E!d^ZlT@Q2sBZ/M>T'l3+7LO7TnV/S7]Y;63EPESXltS&%`!Ap7Vc\f2*0mRDh+cN'V_*qa2BUR&!U%=%Krgq'XAi:R8(gofB,j):RdOudZc4I"o,.!A"hQg1k/L6[OWV+\35]/_XJ`;j"LqO?8Emjl'7JqiG=?2D+W0$4'l?13/5e*i=[pMc:lIViUt)/3a^g;pM!auptHX;!*Nf?CL6a:POo)E`eKhc.qjlmrCcH4H>8*$G.$!OJ@"f&/P^rGUVBjS"=2pBK<;?\0IH>u^cN18g)rJ2q<_]8MTCpXYAV=oVB:U`?=)Rd!^V?bM:%>k#a"Fp;7")+efrb](e)K#e67\1.MqF=4.D;=*gmQa`Q%d6Y;,74dY7MiA)*l[rJ6G*e3q!BEN%`8d,iE]K6[r]N1=^nXf*g857:=\^!jeI#f'>?;T<:bg9FdH_*$G.$!OM2'CN+3dr0iknGf-V0KC$c#B"a3ZlT"q\p>.s0/MU"G"PE0sIkD23;7@Ro>tCcP"2h&eU\>`Ya(>WA23'8/Hcph8CmEbEmcVKlD2!;\#p`WrTu7"eB:]4A=q1[N3=r:R5d6OV_0QU^J9N(.]t@e)]j]Lb@b14p6fr[HpF6uc?>`nRaS![VZ`X>8Y+_['gMr\sDj-Q2]pSJ=_lU==b^'bL`NO"Ig>.PPkHjp>8RG-Mf$[.U=_CO;E;jGiUWrln'Un[%9r642Df$DH$RmE^N"LOn`T?:IP&?KG.YSI;V=pbCJ0gPGtK/UU,kH^F5Ji+"!I;'P_hLg]b$\Gd6$.e`8p8)u!&<@pB?C;D,kp9GI%g6\)+T(^VcfF]mea-9P"D^"/XQ;^OQ34s,%Y2OI$t?B#6lF@k]Z64#(TujFigOaY+boi=Et9/FL6>-:pE6q^NZB>qH%_jC\\`$F@\lCYl]!E=`utD`kP&eY!_+aEN*6DsF^)B*m7K4uj#d:-/V5ie"Dc!_eg_KBScVdWN^7d-o/&_A7^-Ka@*KU%h&9/Y[O,2?H0!pA9X#97_4!7*\i$5;D,&1AkK/$fNF:!L_-.9]XMo]mNrcJpQVTZQpQDKPjd+`Gs',aU^Z'Om=E6&sa,'gam[3at#/R2,%-7drLAgkq#/Sm_4DbXG.j;AjZ*,->\oo-lEknd>J6C2!ZgJ:.05n7OG+:tidYh8[Mcm5BbdoaS^:^ihb4/O3W]/.J%[_BWR!!>/I7o3O[92SJB&fGW-=k[2efZcZsjnc[fIU#D0?'#hHX#XEg9;D-?#X#hHX#XEc$mX(-ah*!k,9=;,OijuF!SBcu'1@ASdg/@0^AG3@&Q4(!`uhAFhVjc$W!Z[ZhE4PC25>T3rdsHAXXF%jdH\:[cL,&!S?k&][0!@;'L@NCeZ7cZs>h>Xl>E7H=]JO$IlN4@F]sq>!X34P(gK(uZ@b13]f%U[F?Yp%SSc`BjqueV0QDbb)N9i2-LD#&E,>7BgY18U#spp@df/I=,6'2pSGCM;=6,T'fMPj>srLupZa\rKG"W4p7lPUd807"`264TWcQ"ISij+R@Prl>oXnc:]eg\B]*%kD2HZ*R@T7$p1(+rtooBkMfqDRMjRF#o8/"grIsEScVA5"H6Lg#^'@]d-XFQLTfb("kUo$]+Qf5C7/O*Y$;,dSpFKl(8A!AjdPJtm5$m/K&'F]=dMbqCN=3Q_;VqWh//9_bo4Ee21i6U!*P?`TLA6,qK'>lM6$BKGH5)ga&,4TD4ta)]&W;MXs-[A;7B\?fVPJd%uMB)*9ajoLPIt%ZnY>fMnJ96+=F_ZTarMp\AI5'A0tD,`6!)2n?#n=dBKNgH?44@7Lj[N'W2ho:E'SYYuaYB!a;SmMPT<"RI4C0bCG*5d2"+_-.87ob`L*G7=>tFklHG-'r"6/nSBA;=9aN:O_J&P[5"+CXt3*Ef"hGgg1(D9Qug1;(GU6a7C*6Dn-!dGnI.>7Bk>W0^C.fQ?^G2iZh=Cb[l!QlYE\V;M._A.22&uS!,HNO?jr,[Mc(RLF@>E]Y^q"P$P10X!cTB]o?Kn'NtnK/M>p0&?M]nYa,@,=pbCJ.1kj06I-gKp$Gra_3tFWI2%VQ(0FaXV%W,nWf3Za"IhdFg*Kk%?%TJs#hGLXm,MpH%+=auZK@*Rbo+?$]-UQPJRC&5^_5B&kRHX:Qr=iKib42+'1__;o^U$agH-M7+!_.Jk_]V&bpDTO/-[[X[$Bde#hJnY9e0#:`%RYEH(-1EYFRMis0Ak&G*NF8lG$.`Pc/9+QQ?FRj-CT-XR'sOM&kLk6R6?]I;4>3J>`l!+#(WFOAGa-1P@t`DmFKSGdU0-fed`>\((.4:'rqJqQ'a)9U$j=1P+AdssZQ93GY/Sa\BZH1.Y8AtZ)MiE._e=UZ\@PR1`M/l>YRPI2nNVm.k5d5Dp&F>F.5V32aH45=8Ss%R):i77e59uTqGRSjDYiN:)QHf\%A>"KVD`>h_JQG3D*sf+uI2X*Y:\gCk5=Fpt4>V^8uR^o2s;;9Js6*W\_^!A%U`+9S,8Y!+?NZW=.9(r0iFSebp$"+iD@KSD(&TH2-]m=8THFtr=6#hH'h)Rd&12Aq!I,?V!(K!cFLlS/sP`;j$&!3?#g]N1:\hn7.a66VmNg1L;JQt2k\tjpr;`b592%9\()HrAk$\j"4"2S/H&?OtdYi^pQc!/M&JBouO0#:`%UB^@1C.F"U9+7THGVNsd@alS]UVm^ADAr%+mpt\950qHp;SP/U^/nBNS?nj6=j-bMs2hKV>jFTl[&tOHC^TQ$X>8]^Tr(5OQ@Q?*50iK./-1@Y#nZ;qJ3`Q+#]M.VTU(*brd-g6OT<48>6MOf&u_dplgLEBK'RqP[fQUg"Z&=5:kDp>3T2XR50G!K&,)mkVbo'GP``&SH)"HLR;7_FZMIXc2A[FkG"SGp.81Sc^6h49JbBdBo6;pP>8]a0#PgP@J.LB1://"8rd?Arm5ag/V`p8*&-\=@+KAF'-q_,"f>OVolB_aal@9m()]Rn0oW\GLq;.g6_SMVh06=3JotRjF_@(aCRB6_7F`3YTG##95"(:XobC/eO;.h?>rM&juGtsdu'K3,SqU0@X@@$)5,VB@#DA5`.64p0O.`R8Y3p!nTI`.mP*\CHjd-\U3L+gUC"ku6gbs+\B5=Wm^7a4.e\,WItfUQh4jr]f\lS5u#IFEUaNXMd:.?*!La6OVi-faZ?curRGIbX,=3sDf!J](K6Y$Q*)U2fN#(#3t+2]+JAic2YCic&]O#ZbM"ti3sXU'[%+&6=q1tQF!+T.JRQ#H7Y>tZH3=]PXS(YtYbhH-Xs*,sCeb%$9`[Xf5gc^XcJOM\JhcSV7^2$6@*KU`f=WusTBnC>H?g`;CV6&-*!k,9+BZefYfnJ[p%1%-pKlT;iquu.?"?d$ogua'0TWEKF0%-q/X^+<$u0S:=;ct(<]P?C:jV/(km3KEEm:hS6Q;^@?]2[>+BZg\Q?)lWDf]%a"EoE<@KgRSNGB3Ed%pdSgdFD_H.'][1G$,)*l\giDR-8h2),J"^qHdlO&Gg[fkOF!,NiqE=o:o-!4q=R!!14\_ES@`rJ"F[RNWg('DBV$j:?#@+Jg1b.V:5\u9n*NJsJH./&LK@\4Jcp5+?/G79QZQKICes/IM2!['Z_M<`^@S<`3uG9(9E4k;YX.kb0>V/L#a[`Y.8rsQ_&\[1O08qn@,B@@C-$p1;Rk\""Ph(cu8B0>YCCG?C%`B^XC"2UE`K&,!M$U(%>?8cR%CN9a4j:^gFX33iTHh3[-N*n76uXQ,2&_(S(^S]%+BXPQ?nDSu')Na9QFPO%n>3%a4Du##f+CG,Y.i49m7#ePV^n+`Shj%H2NR$O:kC:b3Q%(h>C+RK-!6_020>KaYb"4IRQ\rKIcZ)_cN1AD"(p@.B&-[PTcPRJ^WONsQTK6/a#RP2*&-\=@+O'7B&+Dme+(9EdDI8MJgVQLab1Y]O;d5&O/+3ABgFJRT^>'`3-MoPSSn?Jr6M.,g.nbo=PaF\K&%#DV%p0]$s_H=1,dS2Z2YhACE_A(^1.@*Mo@bPll-[F[.L=q1tQF(!Xk"2jOH(iMKkej;Ei>jXN_XQ@7%3sUMr3ABgF!O9T+VfY]lRR?LPHdYpm\KE?c^@"$b20[17+=rA@2%p#UoN.ST$UKp*@j/XQUq66b-ii@;8F!cpcs7/r*QP;kA?s<)Sp<,%(^csL>=RaRsYU6iGX*dAg7]jriC18o4>'1nNH.'Ba-!4)=Ye(eZe63^*=pfd+3a!?cMSc3f*:*EMG9?]gMtQo5rr>8d3Ht~>endstream +endobj +xref +0 9 +0000000000 65535 f +0000000073 00000 n +0000000114 00000 n +0000000221 00000 n +0000000330 00000 n +0000000533 00000 n +0000000601 00000 n +0000000936 00000 n +0000000995 00000 n +trailer +<< +/ID +[<12f852667d2e532994a89123bd0b8698><12f852667d2e532994a89123bd0b8698>] +% ReportLab generated PDF document -- digest (http://www.reportlab.com) + +/Info 6 0 R +/Root 5 0 R +/Size 9 +>> +startxref +10431 +%%EOF diff --git a/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.json b/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.json index 508df9b..d8fc77b 100644 --- a/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.json +++ b/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.json @@ -9,7 +9,7 @@ "num_arucos": 60, "aruco_size_mm": 25.0, "aruco_dictionary": "DICT_4X4_250", - "aruco_start_id": 103, + "aruco_start_id": 46, "page_border_margin_mm": 50.0, "forbidden_rectangle_mm": { "x": 318.5, @@ -19,845 +19,65 @@ }, "forbidden_rectangle_margin_mm": 30.0, "placements": [ - { - "id": 103, - "position": [ - -536.71, - -185.44, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 104, - "position": [ - -344.23, - 286.54, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 105, - "position": [ - -688.69, - 320.72, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 106, - "position": [ - -1006.0, - -158.33, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 107, - "position": [ - -573.41, - -211.86, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 108, - "position": [ - -167.8, - 172.08, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 109, - "position": [ - -94.68, - -208.66, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 110, - "position": [ - -486.25, - -212.24, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 111, - "position": [ - -342.27, - 330.59, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 112, - "position": [ - -283.72, - 262.58, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 113, - "position": [ - -498.68, - -168.67, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 114, - "position": [ - -602.86, - 364.05, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 115, - "position": [ - -50.09, - 218.11, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 116, - "position": [ - -626.21, - 278.75, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 117, - "position": [ - -434.36, - -283.81, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 118, - "position": [ - 22.42, - -335.83, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 119, - "position": [ - -404.7, - 175.1, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 120, - "position": [ - -777.4, - 236.15, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 121, - "position": [ - 21.27, - 188.23, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 122, - "position": [ - -803.39, - 297.37, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 123, - "position": [ - -209.75, - 363.23, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 124, - "position": [ - -523.07, - -267.04, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 125, - "position": [ - -573.73, - -170.64, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 126, - "position": [ - -7.61, - 281.21, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 127, - "position": [ - -601.87, - -300.33, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 128, - "position": [ - -749.75, - 284.01, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 129, - "position": [ - -440.99, - -194.32, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 130, - "position": [ - -221.73, - -333.11, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 131, - "position": [ - -93.78, - -144.5, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 132, - "position": [ - 25.7, - -194.58, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 133, - "position": [ - -685.21, - -166.8, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 134, - "position": [ - -18.19, - -191.57, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 135, - "position": [ - -823.11, - 344.38, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 136, - "position": [ - -312.3, - 159.11, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 137, - "position": [ - -863.59, - 335.92, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 138, - "position": [ - -132.14, - -169.03, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 139, - "position": [ - -219.16, - -297.24, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 140, - "position": [ - -44.16, - -339.22, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 141, - "position": [ - -407.49, - -258.42, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 142, - "position": [ - -504.58, - 312.75, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 143, - "position": [ - -362.89, - -292.01, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 144, - "position": [ - -943.63, - 245.76, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 145, - "position": [ - -765.87, - -316.04, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 146, - "position": [ - -988.02, - 369.14, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 147, - "position": [ - -643.17, - -316.43, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 148, - "position": [ - -723.35, - -328.05, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 149, - "position": [ - -645.09, - 184.84, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 150, - "position": [ - -934.88, - -143.6, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 151, - "position": [ - -875.7, - -173.65, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 152, - "position": [ - -186.04, - 274.07, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 153, - "position": [ - -369.77, - 186.49, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 154, - "position": [ - -304.35, - 359.67, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 155, - "position": [ - -575.27, - -315.06, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 156, - "position": [ - -959.16, - 321.55, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 157, - "position": [ - -803.25, - -172.36, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 158, - "position": [ - -117.7, - -298.66, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 159, - "position": [ - -649.69, - 223.0, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 160, - "position": [ - -105.71, - 187.71, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 161, - "position": [ - -826.71, - -239.16, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - }, - { - "id": 162, - "position": [ - -524.84, - 266.25, - -19 - ], - "normal": [ - 0, - 0, - 1 - ], - "spin": 90 - } + {"id": 46, "position": [536.71, 185.44, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 47, "position": [344.23, -286.54, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 48, "position": [688.69, -320.72, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 49, "position": [1006.0, 158.33, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 50, "position": [573.41, 211.86, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 51, "position": [167.8, -172.08, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 52, "position": [94.68, 208.66, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 53, "position": [486.25, 212.24, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 54, "position": [342.27, -330.59, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 55, "position": [283.72, -262.58, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 56, "position": [498.68, 168.67, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 57, "position": [602.86, -364.05, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 58, "position": [50.09, -218.11, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 59, "position": [626.21, -278.75, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 60, "position": [434.36, 283.81, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 61, "position": [-22.42, 335.83, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 62, "position": [404.7, -175.1, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 63, "position": [777.4, -236.15, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 64, "position": [-21.27, -188.23, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 65, "position": [803.39, -297.37, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 66, "position": [209.75, -363.23, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 67, "position": [523.07, 267.04, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 68, "position": [573.73, 170.64, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 69, "position": [7.61, -281.21, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 70, "position": [601.87, 300.33, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 71, "position": [749.75, -284.01, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 72, "position": [440.99, 194.32, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 73, "position": [221.73, 333.11, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 74, "position": [93.78, 144.5, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 75, "position": [-25.7, 194.58, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 76, "position": [685.21, 166.8, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 77, "position": [18.19, 191.57, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 78, "position": [823.11, -344.38, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 79, "position": [312.3, -159.11, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 80, "position": [863.59, -335.92, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 81, "position": [132.14, 169.03, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 82, "position": [219.16, 297.24, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 83, "position": [44.16, 339.22, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 84, "position": [407.49, 258.42, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 85, "position": [504.58, -312.75, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 86, "position": [362.89, 292.01, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 87, "position": [943.63, -245.76, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 88, "position": [765.87, 316.04, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 89, "position": [988.02, -369.14, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 90, "position": [643.17, 316.43, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 91, "position": [723.35, 328.05, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 92, "position": [645.09, -184.84, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 93, "position": [934.88, 143.6, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 94, "position": [875.7, 173.65, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 95, "position": [186.04, -274.07, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 96, "position": [369.77, -186.49, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 97, "position": [304.35, -359.67, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 98, "position": [575.27, 315.06, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 99, "position": [959.16, -321.55, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 100, "position": [803.25, 172.36, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 101, "position": [117.7, 298.66, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 102, "position": [649.69, -223.0, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 103, "position": [105.71, -187.71, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 104, "position": [826.71, 239.16, -27.3], "normal": [0, 0, 1], "spin": 90}, + {"id": 105, "position": [524.84, -266.25, -27.3], "normal": [0, 0, 1], "spin": 90} ] -} \ No newline at end of file +} diff --git a/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.pdf b/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.pdf index 7f4f21e..9cf665e 100644 --- a/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.pdf +++ b/setup/generateTabletopPDF/A0_60Arucos_25mm_Seet223.pdf @@ -2,7 +2,7 @@ %“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com 1 0 obj << -/F1 2 0 R +/F1 2 0 R /F2 3 0 R >> endobj 2 0 obj @@ -12,7 +12,12 @@ endobj endobj 3 0 obj << -/Contents 7 0 R /MediaBox [ 0 0 2383.937 3370.394 ] /Parent 6 0 R /Resources << +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 8 0 R /MediaBox [ 0 0 2383.937 3370.394 ] /Parent 7 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -20,49 +25,50 @@ endobj /Type /Page >> endobj -4 0 obj -<< -/PageMode /UseNone /Pages 6 0 R /Type /Catalog ->> -endobj 5 0 obj << -/Author (OpenAI) /CreationDate (D:20260530154505+02'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20260530154505+02'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (A0 poster with random ArUco placement) /Title (A0_60Arucos_25mm_Seet223) /Trapped /False +/PageMode /UseNone /Pages 7 0 R /Type /Catalog >> endobj 6 0 obj << -/Count 1 /Kids [ 3 0 R ] /Type /Pages +/Author (OpenAI) /CreationDate (D:20260530163305+02'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20260530163305+02'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (A0 poster with random ArUco placement) /Title (A0_60Arucos_25mm_Seet223) /Trapped /False >> endobj 7 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 10717 +/Count 1 /Kids [ 4 0 R ] /Type /Pages +>> +endobj +8 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 11520 >> stream -Gasba^!\2i;M>#;.ZTK3>5saY"Q3\(h>tIP!!WqB:K=#cZm%C;*\Ph2g@_$H9G$bPf1nMNp9UClMrdp=alV=M7ju6*ZP>I]Boj24Z-3ZU_RsR+_.5(ZC?]6N^j0%:r(WTW/HrTba@G(86N7\l'Ws@L]$?91NV1:+p.=MSQ<#56Moc?oE%UClt39.oi3(dN7#S4c7FcWG$L:@-c:je,#kB\YH>l3*,J26[P1/gRcp%"3>_F*42\0[n#tN"([H40H3#[2KHTLjFFp4%XJRin%D4$O?IX"Cug-"a8rW0"83KjkV[I19kESnr[Cmo4VI*%Tudl1Is@PYS456n*;=1nN!tH_m#5a'&saVU?BL"2e:P$u7jWXQ@7%Q35$.%eAr74-p&e=q1sV3A@Pr^p'+,_cdOjdp(kdj,4lof"<`=H"0tJ`j"T"l9t%g[pE.lYleJlD0%Knk)d/%R(TZK&BTj?@ELptU%dYFBIA>PpMCZ/C[$e89<&`M>CW-5^+W5ZQV('DHX$k-o+@!7F63P%Da,nK67hH7&6kMTII'^11]J9k$$Q@Q*jf2Y>/,+Lb`R04q!90H9\>fuO3#OTT.c>U;Q0qKkgfGb2u`H48?2o^t/ZY,A2F3Af(3hQ[7#QCZ/[[NJ]:a$/tEK!8iAXSelc6*K_n"2S.L$u.LNXMquZ('A'k@jiYR!]lM\"(j\#!d/8]ldc?PDQU@3l[AV[>Jk:@-!8blBQ1YeVqpe>A1nb*;/W"?G0o]b*&-\Y9VC7j$.e,_=HA$<<`5MVh\=/V!ArZ%[_Bm1;!A,(h1e8>9]Oe?>'F_8,(!'Rhm-_@".7O,#&iK`!J[uf(tLHMfO"mmC+0^1`/s'r1;G]j@N\d6JRCVFK!cF$e76:1`),O?1r1um@N\d6JRCVFJou"!%<(o$%?T"'YZ;JAl>eTuEgtk'm[oN6.L=V+Jm^_GK!cF$e74#FdC4&j"g:$m"si/%@%Ku)X&?P&FfuS_P4U4;@jA9A`F._n53FFac^hi'3fcpaG7LiNfjA=s@I\6'@hCoo*+FE=kjbDV=GO#(Ha65>qKYo!`%0b_BHF*Yj7ZW!U[;%TmZ1+MW9d0JYXr2KF?7OTT45)qGSW7/8q-P4=:[n-7R`)ePk*0cN,<[QV4tM=-'?[jTOLC!tlj:ZL(ORH;`!kI?.:\PBpc_H\F.tqS`8'r`ll77`eThXE@$juCuJmoAVOaq%krMFX(5d6g\_0Q@ilRe*N''V(PXfSL`<$OC-a*0M__E*Weeo",M[`>cP=Ic/nf9q63;lmYbK/(r:O[@Q%+,b-`'SpN)rR(=icBXV%X=_e`F"au*t/A_fEW;8WP&0bCEj_e`F"au*s4rjYbd$>Te1ed0iBQs`&]bXN#&Ps>4icaO>Dp\!;4PipQ*HVUejrjq7q>P>7I:9Z>M]&s4NCFXa2m#aZ[BjSP;+$!^eEklMPJD'Drfu%$pWS^eGL0i)Y?HbmP@5bbap@-X[Wn40<;/_h]*&&>g0H8jkH[$Jc?+3]pWWJog!250u\^J2U"cmUW)rY6aS7+<*!j`I@A:)EI2sD>9h+@7Q5>n[R8p`P+[5@R1A_91E?\N"1qS&S1f_'XXQsi,_h'Ma.5>pQ-Yats5H4C)Dh?_]GXbla6$?$(5h?_]G&ZjS=_0QRolT+_6$jYu^'nfQ19BT\Yi^pRh-2=A+!]*u@6FjIoc+7gF!+T2!OG-MCu'KPjt]lK53#)Kgg`.=-lC:+cn-04K1qq!@I'J79;$QXkMHmR,([=(^43)A#V[28?oC?%lsU?i)rC3=qK$K[i=3-P%C>"&Z:>@62KHSO+pVEFE*_%Ej8dk#""lMhkaI.iqYNV^Atpt$Hg&H1L0e.YE*[sCkf%B%`GDn%a<#1'Z]P?#X+#3gQ[Tt%rE1"=hotBjXUM7K\og^__s5ua?'@^]9h#NZ*j&,HQG_/&)Y]r.kJ4/(?#_/Tn+WD2,ri951d!lTn-Ub4V4^XMqRShPj@1poVhA(,E;1^YhjO/eoMs9cN1A7"(q.LdXKLHB_+CHkCO$phkL3+\m"CfaT*16,LuNr!/QqRV>QnmJ5L`-3@S#AJ;=Ea2b*q:N"#2,cs0^I;o"LlsSRG"7OBKJ;=MnrWK5Jj1=;epYQ9Z$p/qdB&@kISWr%ek]M0Ce)`#de3h$MB7S@5KaTb>3am5>#NVSD@BC.rlY;hs?*6$Bp"XGF;(P+r@c_VIpRUn""bO-3_edC?MKQJ38tYI!DmZsoY\oG.h&=+U@t8C6J;_rpieq]mg=iJmPc-&QiUF6J@^S6UYg\X8AF+BWQD"D]_'E]o/bF>$iN#0_g,Ji1)l"IHa^6#l@3]3:/>SO#*4%&4jE7P+X/lI+.Y$S&1c_ngW!]'QceJkCdB;[2rL@uH;nF[7=kat7VsOhhGVpR!j#`?%&3$-mNREklMPJD&!EZ]P?%,6u:23K+EmP!/GH2Y:H:oKr8u],kqZlqq\gNI&KYjFGq)!OImjA<.^R!=-pl)DE*K+<)6idh6miB2sL[Y6g/67:=V$^o0a'dIK-iOfnZ1f*Bn4V;tV)ciFZp%_7)RT.oVrCKuW+%(kTsdXF*jk!tMW[fW:/Md[A=IGG.e*Ws6)$j>lN&?Np&fnb2-f4%kYc&u"`;&9Vfd#(IRWEVS;hVZ%nWL1)&gTsegY$6p@^p)B$(tPE-=LZ;7CY$XlT'K;8_]$A&21fsd"Dc8:?m>lsf%'HgXT$o?rM/]=@Hts7%,.LUSFr6a!YpPR%goH0"=l7k,g[l^qRRM#'$sf7pWg2n!7==;URhHT4TULf!n`ed0];Jn&HQL](rJotj^?M?A:Oe1M@ZVeI?lZrjHY'7^W2a]616SH9e?:';/Q$^dY:*4Mi"RC@Of%M"Z>!$4rbCO'-c99eDIX5bK"86r%/+T5pa0="1h^N.G4%FUpJhcUqhe?0q]>XY0I;LiT*[3_BY:`%bNZK*plOKK>;p6D(g67@"@WRT(qH;%4P*37+*aV0A;Ijt";*D;BT(;JRCVEK(Tf`el*^D?OER(N#(ZH!ePOu"T)+OCYE0EXHuP`^J^osZ6$6eh.i9a]lj_5o-.:\7^,*i>Gh\^2hQ3b"RF>=f%VdmH3sf@.6oeP7o-1VT;",\bB<`P-%i!,a=4RIV"8I@[.`!nk1DRjHO@geSYVQ3emlcY4lAE/a$?jE"+bb,"R@cRXN*T1*^c'J"+7Fu%0Yu8#hCk4\a7+eBJ5][^"as$./:+6F[<77JRDd$O=(D1>jKXn@',h/W*:KKY@<+V(be$UGn7E1=%D(ZV8"$A4TpLKV#raDk1D[mmi3feq`6LOlFeOj_NjFAoUP(:S(A5S_0QLmCG?C!a+2j!JLK,[(cD!PB=B)ib_?=r>h:ZV@N-R^/R1tq[L`mP\5[[[VKpQ6S20hfV76Ht;%!Nmf)rim$j>iM?oDK0m#^B+en]!X.s)i\"MUQBll*WgR:(0rq7G6.Au@9BIeP'5=C(:kmKH3rYScZ8Iu-?e^o3$=;9o6:&HP?a!A)"fOFBV%=,rW)=YEgIe)80"8.2bd!Pu?P6A*CNB`$\^*>#=(/nW!>_7DKjK3;Dl8)M3&_0W3qXN,kELk/qs#(iuJG[Bc9T.F8HE9;G0BAW%rgLi"^i7P<`UQ6IN>u+Z#k[E+LhYdp5eoT4*&AVH6SccfT%Ku)X&?P%[Yats5H4IN1!]^)5F!+T:5d7Db5A>aS\n`EjY7#sTHjSB;&ZgrB%nBlcEYg>qKZt1JA'TqSHD0Y@LbG&arRW<]\,s?U-?IFG@EqVSfX#K:Zb"hrlP1^hi(^fuO3#OTT2?#L%K(HENXnL>KkP-OdK>p3]eliC&8W3$CcK=K=Mns"CXQe*0!ICL@5bc,2S%Zi8bagborB/o#=nu6\TL:oO2n\lluEo<\85V#/32qo>Z4a/JmUW;1AC!QK7jN;:Mis77)8J%k6?)V792-\YFtpG$F_rm6'SmaIoC(ZE\$.`<(_0QHUeK3ha^nU&,HQ=,AT&0\e'YE\C^k-!m4MGrh"i]Wo0!M#$ZI3QAdq^u-Sq7[s-uM%!XQ;^OSccm!2b&FHbBcJVq#'^+QXO/%Aj\r5]ob8\(j,un%09IQ0Y1U*?GW"g8g@G^7^-cid-KQ"DG,*;GT>QGef-8S,6rhn*!k,:J8BM2oE'rrXD<,1nbr7F-G@2u34;I5YZ6](dL5E$A(Qq0kSu,IYcJ(i19BZcotY.CmacD$=O2P+4U6R]DZoC_UsZXP(=S^2Jp"a0lh*`OmYtW1Rp;b#JebTRNF9HV#hJY]XQu,j"^8!D&hrT.JPd5A;:F7\J[t4i.*n2fbo"?e1PW:q`ip3\_9+0/EmQVGV5FY9Cs/Jtf?CM+9+5@A9..\XNnl`HVGV0O3\.(Kj]W'u3oS\G8u-u7%frGs!CXg@0%F4k;J<9Mh$%1E'G0Ap"C5FFG3nk2#hJ)MXLB(kL,G]1Z_e,I_+pZ[BF*1!+BX\U?p+_<7LV\qh\`@Gc.l^YcsI1qqhp#7Ikadd0*[0=(^N%g,*/8gKJU0lm-ESMle2nu)o8aQSgX@^%,9lhU8ui^G09DE^GRe5OrDn)I10mGaKOp?DjooF&?No;YT0H3#[2KHTLGf+?B)c(5#af.e@R#Q-!8``!#kf>VcXsgk/FUoQu6uHNkQEel=d&-NqF7cG6'E5"2T9l"R@cRXEu0opGT_nSgeR\lZrlgob+@lS_llf<5&M$)@4nO/Eq4^pYIne&?I`r!d2$VlZ0IV4"#8uCfO05DN/&;3=r:25bK/#AG$,iIb+GH?+ssGrH5P51=DI`*6%(9SZp#9AUc)o0W_)I:=s"-?G7(r#hF'1qNPdIQ[kY0_cdNYCH4)MGpCu2VGH;hs#VK6e.k5*"R)V0h!Vh;(Ih[16plLu+6Mrk)O64Xf88VKe(psa<5Wo.(b)LkG-=bW'8$@I-`Qsi3^5Q24r5TF'r+nJRL,8L:&!TRp5bb5qGCo\:IQ/?C:f69N,R_6?)?LSk=Mp93(3]2uq+j60bFZ0O.DQg$9^#i>\Q[*2@BXU1"CqlF+,X_WsjKd#(](-]GVgLk[KdWnFD5r"1u+o;@+H>lms-CWLN:hDZqXC`1g@-.pR;PjENqsGSJ^!H#4EgpOEr(,]j1MDng[]3ljg="LB$lHG;Q6MU#jtZMsju?9i4?[IN\H6TKdt)oJKK_Pl5+;Vfn$DEGdM,u>CNYc\bJ+a8E[5,)cmZYkafh&=,@2+"HKX,gN+pJ"fH)Sqk"#.6Mu_cdHWCGAX(StsDpk9llN&?L4'=SG:hm]AWZiJ_)p[;$p_[mmT>NF:RG043O/[1TKC,>a_"YV(.L[sUXs7_R)$l=)L5>'5E>R,%%;$.dW>XAo@RH4(s":B@c4U9VIGb3Qp`G(#dYli,To3*(c(U4ZpQgr8A1k?&ThXK%b@'V(HmehMs1&WL:Z:DI+^Y`%j3lYuH#2,cR@lEnsCug->7LjdBl]1!q$kSC4&:0!0dDu<^&HP4>f.H0XnNG#-]L!L^:>\j="C&0jnJB6s.a7$WH)Sg_MaG$t#%c<%YTC]/rXF*6A2,d>`PA]BCCFt/#hH,kBB=Z16Y;-YV,?VGKSuVsZn63@*lfIER3YO('[E'391_?a(cuX'lH_#foL:(c+=M$7)p/f3AC,%F/.VZ']l)X'P?ush`F;cCAc=\Dn$pq3[!NL*PeZVK2A+fc><]Oq2_q$3diaO$4O+C`a)oJ+'7dn[XGk;Sp4l43O;XCmH..emR@9p#ERri-kVCEG6j>,r&-7IHH0lkO-N:NQdh-VS3&ZjS&_u=+Q:lBm5/I'4``R(F(eZMia,6ibm(`;r_"+sbc$u7S*[cp:3[8skVOE'YY2uSi5ZbdTgc;[j,fXB88$chPchtj]hfI8\J4,$-4\j+2WQpM=jDV!nF'&B;G`!!qNF]f:hsO!G3PYa<&V\)qM6JnCEJq+mTQC;/)+To\smYDqE6rD\qo:(UAf#>]+3l]'8eYl3RoeNQ`Mlkf)Y:i73mg;,Jh>]5QFefhC+$Tr9!R*.*h-W"*->])lU10_!OImjA.NUG%<#?9Gge8EmR-`q$e[lL/iPV#s89V"?tb)Wd<72_HEi4O.iiObES33W2X2-cTbk"ihGN/hLK+/iCt&W!NuThm3FFac+>bY*03tTdNFfF__*)@LfpOCD&<>'')qppEe<4JRD1R7RP%=B,bn,N7j:cY[5-KCXrd%DJd-%LcK7<%;Q+4(GEUN$j:?#@!(i*5'@Wa<^clk3_k*ERgR2NGlUi0QW['#Y:TU^97H<',)<$tHBZ]P=*RTr12bLJ-<^=51h&?Jq9_-08=W&_b/3.!=:lU'o69C-1uP?oG?K(XL/f%M"Z=q1sV3FK9XP#_K&;Gb19>ih*nOrboAZ-lRuj$>,;(-P0O6"G_+?@L:W9'!,(NJU3RnXJ\=f*lD+DXKIA1?p+^G[292!@j"m7JRCWqod"r;7E%NrY(9tdK-&M5gkXI`JRH/@#hH#-5eSWQemj5Hn%)AgG-t!=]b:,+m*q$`#0/@PFDc-cf$311q;.2RO7(6#3B$3NYn+ep3RlsP%OMG)7LkMCo\smYDu74g@5M@Ml2n7]?!oS'@1D14r*Bsi)DE*K+F@dhhcETIF$Sr_!1"N)QB!e?O-N'5Atq(g2Au[.O,C_h`.2"8iLMSWL[OVZ?[3qX][LEtA%S>-H.2n-_\Zq&(hA[G_lTa9;&KOeQ_Vj#1Bkht47rA%n"eV7?!>@SqtVk2UtGTN;Fn(S?$f)`[2>q3qfU_L2I^&rMh,81/lSjnD:3XWM=QT.K(X4'p*Z2h?uil$a4@tr8E/kHXNP2-T3Oj;adkI3omVFKb9^8/k7%6Ob=F=t\nE9pQQ:idL:)b'Y\oG/Xk"?_(B[-2[;GiRm^3/Z^"YIE"P[c4ItF6"NBb63gW#jnGPchh@bAaf2s(,Sl9,Br7Lkdp]pNrU6[-nf:M4mb"RC@?f'@oqh&F1b\(omuH2!%rDeB1lH8-@bbI]C!dt$,uJD&:GhZa$bAseSOJD'FHfkqrqq;Zr*&G*4<~>endstream +Gasba]<3csEJ="0MEeH_[!BE^#&GZIm.1F9A\dd`:nlQca)n(@Js9O+7$Y>pG\:g?1-[?d/$;lR0)hNF"fVO%]K-5=pN?@j>H/s_d+:fa*+:55-]f^of>;l?6`'6reIClPYL0FEH5le;@OULUKAKr[cOP\N"k$IZkH?TZD#Qcbq^[d)"t@g6!%_.]0^"0$Z/G@Of+5=$ALDI"D\q0PXhNhp(H_tQU"7t_4'05Y8Som0#:`%V-Z;!c3Al+2@uh;0YpqN,ZqARYkL4'I>5H[k1/H]ea-N09i*-L1/Zp@L]J!A5RDo/So_V]/9f:H>JuAfW\\?9h.E.SmF>s)eQeF&?P[mYiZ&(RLb4.SS&7M8aJlP8*/ttqiB#YaU>_VXKTDl"7ahbOCl4i%_aZd6bPgcSO)@#3,53bGm?/Hlk=%==4*^$&XGN*A>js)W\t5-]*3plQ]!`2?@=+>T9N&'A@FV;XN-&uY;OP8%lcKA6!k_SVeYf(ZC;Alp"1taZ!k5I%.m4h>G6n[kl7>&"%J]!"4/,*7HDm9Gs\Qo^oHL7kYgNN68JcE0Bk3AW5(l/iFT5bE/?+V7W*Mgo"7_\qE\\UKoHNNg7+IC`L'7&D^5cS.?%?@Un&eQXQ4el&J4p%T-Lb_le;qfG,@CY'OU1jTECQ+69&fs9t/npt4NC^dpb9DqJZE3V.aMN)&2?A;a3A%bL[S6gqUH5UnV"iIK$afrqn`8XPtXbU+iPTlU0FImr,rp5u`%'me#0.T?Pj*2f/+T=b=Q+'@],V*fmRM3`aa%NFA/YJp"W;?h$+5EOc4`C5lXR1kN-^0^GF?HDTXEB%'DWVO([b04nL.c1:SS<)jL.aX,U4:b\u)L05%h6l@Bm`sEM"JQf/fXP#kCAcol<%=lFRlq$B+Qt.Jumpm4b@E@9V$F9F*^#a8bfr$:O]NF:QI;=dI]#TkbdZ!l5V@b140dkX>PoO?DE@b13]f(I2T6&'fX?Hd_B^oZk@XQpFo9Sob+@6#D0A9#e_!X$s/Er/@T*+X?@=%C,QX)Kgs-hTlld9p)Q/H7^+C"#$moWm&FKK>rEgk(ja4"8f[Ai:Y2#KkP+4u]fd;@qJdNHbfSJdDo)o506[_Q@oL-GQlMUY<>()T[6`EW;QS=Acg.%rd7"k9(q0/hgtQ0B]e2#)FTL/I2U$J`=G+Y[_H"nI]3Z;@FWW='5!X;_!OM1rf&/`F+i!".!nht:XS[NNpAqR(Cq*`./^,QViUjGGfEg&;,?Tj5ZX1ZTCH`jVp>Icr>7sH9_YXqOr92!jBido*`n<@DnalBdPrc'E!lq`pNLD7pL:OEt$C+1KdB=f4XYM8ckr2VBHQ[Bs0TLK1h#kli>)9an>cObt1=\q9nUT-kJZ`0!ckR?d/Ms_3933KE&&hn*\#,Ba_0P],<;>1'`Gd"&fk`7pt.]bpPrS#3>FN*1/\X`D0bHP/O6P@G^$mX"jYs$0q9ofuBXNWDrT#+l;R:Ps>35+I,Y,i]mhJNE`>qJN?//GIsl9+7BA_b6[m&Djn[5qgM'cNj`@afJmo*u"dNF4=rbZ_,'XMmYBYh3JgG2>!g`J.O!$\Ge=#hEH0oNH&d4K[fF&0;e,>.n@qI3;Y`JRH_-^_1:PjPbP5B&0NbXpt=lq\8.71E\mDJSoO`C)[rh'+QX59OH6ZOm2p?Sa7(FAnd(_Y;^*@IfM&gR%7`b]ENn9,f"4(H45:DCn+SOJRc#S/\N=(f6r`Fh)iLk+!A2[`N8CE)I.1gc^$>`/g.c?^u`.^17hctN+\N#]o_((%V@j^XMJD1n\c\?K;_:pd&l7leDl,^4KMMSrL-DbR.\6;]2]_\h$)$6%=j-qVs`2`-&*ShL++/?')9ea*:)gOs#$]ZRoPP@34%4Mf*[o)Z2#(UL7\Z`[B,+6SdL<\A!t>aYYa7t"TXQurk*FUccPc_J4V/hlVY%(!)QZ_geF=to5_]``,s&A_Od"Dd["YiZ$snHVSKg0TW)/`b1C;88.Sbc,r&V=Yp@drG<>T0gp'_3nf.IXrmeS+R.Wjk-;7+<&:$r;t@aG4T/'.i_Uq2BN4UoFe7iL$Y\Ga!VT1UR,@_"(X>"g1lZV"Bul[XD*4OVIASk@EO;jlmmkOs&>0o54VR!OFD0.!J7E&CYXtB6/W3XYCBg2$V9NBLKB]2#1cEJ)rJo&9S#`eFi^8dqIq"->kEORTP/!CC/Qq(hVS-^u@!4:/l:-e3&`dmBV0^"d(2.*AGc&Y'I,B/fjsJ?mOCWhpE:WVYL]=$+@cr^dt[e?`?eXh0`o73[WS86A)4,##Pm>U)k+;\$0V\o!.FreVdT)!4-PEB&*X7\dabWHmnfja-G()2U&a=bdq-%DL,ktduUQ%>J4IrA&GD")eRn2bdn=Hh0b;mf0$4#DE_IZIDDr]J6DUIZgIp'nY*]sQUK)@pTEkkT1;stMH;>aDOr;NZoU&lkqE4[Q?%,M7Y\&4WZuM")p`^=L)o5e-OacS`.6;/G\dLuYn=(V7^*XI_62G1*%1uOeM4ro*uK1cAQ[DC3_HI5H3ncF"iILS?s&>H?nF;8*d(5oj092t`C@'I)o5]o"Db8V(>j0?*fl:gXdp'*q*;1H"2UE:LkYeJXm)*QR\pR/5EG@lM.:9=FdZDlq1ZlZSA`ffRhRAm[*UgV9"-7u'Sb.t:Au"tHT\@@`S21]o;pVn+BWECR!$)1\P$kmO.YfeaE2^IYU_Vd?1!teQOa475!Tl2qsF!?fO^:PT49YDqj:'ek+-M+B([17jLG&WELpQ.\a#a2SR?*BnssbAZRLh`hAPJ_<^2"S/i:$\WpLqrb6e]b*ZARucnK7/@0muYkgBmb.4;3O1$bN!Fpebc()iKHTuhCRk)?2MT8//(QV4PU/g8'm8eV9:A^+N)DK7IIEj5b6g[FI=.!$PH:CfqN",(P-5h$c5PJm1_[,fb`Iqudqf<6DPZb2VT[3@F+F,m2%h[?"m[_I#f1$j/Rg1&_1?9*bnHacHj-(#.i(UnHL.1_DG/Mr'eclhYJ&]Iped]u>%[qMgNK!irJlZ.hk9s42na-l!8QXHrH#hE_lZ5so]ljBk0?[Ou@BPIiqM1qmB,mlN/g(1[Qa\f)BL:+MsFu:t.2%q+u/c_."@/02"iH`0hVRBiu36dP!I!KVAC*`W3i8H.tbD86&+pm4*Eb>K!iB"f&U:`dlRW@3-Wi%=`]p;>q]_I]kr?oFuOn*l`jmLA&GCg#2(T:g;/c]>AT]"fJ)W;+hQtj(#8HIO#t1(CmanJ0^JCd=n_s$plLPC$1UP#Yrt9pUU?_LHr;@jm+o:..iaU,MrXVJpH9GugI/aS%E!@gELi:Km#]f";fdPM6([@',6Um3Z9cfL*`#CHTb4A[L09j9Pl&VJ;g/S=5EN!V$.atS\k#Vb5bP1#0^;h]WCpu%f/O8O^"kHF`C7#3EXC;A,Ka;ckm,Dl!.>67?nF3e[Eo31l5-dE"(6sQ7QnL!23I6Qk0j4k+eq0"hD6Fl08'>n0?Gta::!cu?LAd$lU;([3hI9/a(?2J-(Qn)XFsmNTNLeo%X94j`Q#,T"2VR'%WC$A%0UGb0^BVq]FE3@"2VPQU0Q0?cYbddEn5=2nIo$Tbt5gB3Q4j$?C'1A(WN-/U@O]V!kk'.Pg*<)d9d;Y!.aPU+QG4\phDSZ-T%th(F::].iPcM/nqfSN\#LAo+T(@*Mo-2&chPCr!.,5a8lscl!WjZ"Gs+XG'-J()gdJ1nrb?RSGt2eiX>"@',.iencI2ZN7CM"(6rrJGn<+X(A1+G-U;t1jPD/Y&7FiSQ+c7J\&O"qL"1&j!sVSUtDj81<8Yh6`"b'hCp3.98\.'OOs13kH.,f)8VaCJpeBtEE[JRIFSG9RU625C'jT6gX6ha)>U+p@'(^dXJmMu=)ACJ#05u1FpZ_6&F?G?&!3W5o8@!N/]!mb"Db,o@*Jkj&kC&JHR5P6ollm7cemIkoa]XR8OFiA)(Z]KO*";^`MS%IAfq<&or9fgD!>"-M.>kaUnr%3fheIRJAoSE)M+=[Ji*j;ROhQKZuQK(b.Y"@4g+ul<=l63"i6X6Ji14r?NI5^Y,WU@$]SOG1kN-^#hD6Gom?+NcPN]jA__^9&_)l3_L0-D9J$*g_44'+!/=%C7[R.+e)lGqgD-HT/X*FU^aLVBO:OI$/*B21d^!"M:6I!k#&DXP3_WB$-G^L!mfW2<4S7qbZk44pO[e)4NJEk@#RedGBYN@.hnGSVIf`>n[k+#f17bL-%%9TjcX$;?"X2/nSBA_4"Uq_icN[6]_l8CBCgpQXEN?Tjc'.EF_7Wa54lCej:T`X#8+IBLKB][+rr2MmcM,C5&Md2?7TC&ZkdsYiZa6^"Esu\H#`@Uo!8;DMe+MTQfYkl_&t"TW=i8Ep2UOT1J'D4Y)6;I\kC>[*:,bX,9/4\;%_s#]uq*M=E'c7Jj_A(0?4m(E,*g/;\33BMu?rB=o8TOhFbFJdD#,uOr30l`&46Ht&nhgHtV.Y02U"DS:>9g-+'Yce2@`"M8H9;!V4*gUHN&CFkkG,Ze7V3XA@X`OZIT2.9rCC,*>-.&R3'&\Y)5V4JM#Y-s`7:gU,Yfd%K>n.G0irB*4#7ucZ'u\!oSZ\mAnZFA>49j4)]%nVHl(3s6XEn0]Rh2Z[lD#]bA69`#c'C@jL@nh:QnYU`pf4X#0s(86jH\;WR>>*$AmGLN?%_"+G><$i<<5t#$&H/pLq6X#40KV[agtiHFU=Em%D!8*cDd#O0S20q"D`;if(J7:$UD=S69e&W!e?$baNgkGj.Rm,^7]c_GC/JD]729BsIm!aAcSm1&IZ.J.(q',nC@MB?O6pJeHSlPJ4ha#;=EiO?dDe`^oSJEYU5^`@![I^7fni!/B8%I@`,9+*.g$i#hFAGoI_4B!GP!3d(_aum.,^8bm/u/4tu?o!O5=MJG;b'R^VMK4QG$J=.+S/l)WqE,%Kd,3%Pb0EoP_$_s3CF[`Pbb(60Eob,o]c=;^^;F_(G&%B[ZMcltU#=CO-<[0M;kQ;4[H"(6u'Y-#>Lots^RP+[d&1D!Q8?i":r%m!"fc'H>kaKaI$(:)_h>Dk8W:>K,R-oONM>?&.R*ugB78W>,Uk9GOdQNX>D,sdShK63Td]+k.RbHNUc.!Ne`'B1.(^tWfVf&U;kjV$Z-\Q,MLUgXgW!P$YPqhrZ`_6JKrMdWY5&?H%)Yh$lMlRi1'3!M,..oDLbLM)gopc8U6P7.N4PNFNKjJdJ!A4DS2dei@f0Pm$2?]UO.CmX!cfoMUthPbhGck4m+nH>?4V==\Xf;8!?>N:(P*l0bJL0S's"RA5[q,9>&XP1h9XI%\jQ&Z7BRqJ+2%@D8I/R7DIq0CG>=kA1,f21PE3UUS;1gnll@+I2GH-hUVO12QX=kAR7DsNe`[Z4Mb!O2>+Md2Ue4)OkBqMk@EYpte2dWV$Eb'UII$$<[qD5UJVeA]8/pFpi4XH(sAL[&]O7ZK>FL:h&X$'&6lJXQ^n2$s4A+3[7u:m4/K-DqkWnb@k"(oie[`=XTo0?qg`%ma@b`%F[$>A`P0YF`P+N$QMA0HrUqhJ9:rk?4o@DQ&2c8HmOQK/.@,%$egS5NPTNb=lW;]/D[\/e>0%[FUXZq/2.BTUW`&GR@blef64O-Pm/qGX_(cAQdWM['r2fhYACJ=i)/c_5Q!h/b[9/B1MkGq%%.K?foY?[SV=>"?qg`%Y%d)q2Ao*hB$E,d28+YIe(a:Y3L!d)Y(f<*X5+>cKnZ@,<:rft7"p=tQU$dN)Tn8tLsgfVo9MYd>_9?f7^-J,@%!/5GU959M62"%2T+-YY7rV&$TeRK2KI[H)7.PeFhNK;jcpL$T-M6GN=QZPpPpF+/!"A'M.=ebQ>\@6$Q(`70Y0B^Ufi4FEr_tI5Y[;O-7ja+[018c$.ea7n5KYO/V0?qJi1(ACN@mKrkOakYZ>XX=$,jqonH,DJuAfW\\C:"NC++%`qb#2)]Q0%VuEU?6GUDY"[NXr"BJ?!u7L!jh:s?stF`q=7jK\mRUkS4`D9fn*?!nq#.OH>.=XBA\Lsbj/R8@p&Pt8XJ`[2WlU3"G:0A?@Kth,eQ1_?a&\?CSehk6;?L4(X`cm>#d:%!G[$i$g9=p)[Ff"eN5#)6Eg&ZirphqnK!/$ISBG/_J*.lN-1X-c2>%>Z;cH0TB#M]Ac6W0PS\[VV&i9ZY9($>os^Y0\#-KuU>I1e-m?9kJO:l\MPuL4)F!cm>#d9lAeFE[9=q2(iHTB_GSe<]!9h"dhJ^q*%*@<933L`BWpK:e!1ohJ_>)_c)p7M75*\db)4]-$e)\IFr!cnOdZ@Fdc_W/%8'^lLEjC[?FpcVYTW1-jU"-,Cggc'lP?hp!G:-jbaJn>`>?U]\eOGH<9d7L=MMRihAaDnZVPrAo9YD_K/gndZE*l"+bH9Z%WRBnHGQfA/Bk>E_f*kk#5=g*$J=sj?Ln3(*ZJY!fJ)Wr@1=8^ePs&VDK@'pHBdQQ19"?NFJ*3YGGm0=<1c#OXX<9f\ut/f6rbTlZk;Yjo]/'fJ)Wr@Fer+H9F07CE@QJD<4*-.lZ:J$-ie"\d$5n)Do4bER;>J)eQe^6?^h9bB:LeL[I.eh=P1-og3i&$dDM&muh(aLe&hrS`$JscY'oZ:>N*n4oJmG&^E\4YWp+T]YM"F.=8M^@0(-X!Fn4/SnMca>'n_S*\oRK/eRHTsj4$Q'ZOH8QlFjL$5aZDt7F*#fu0nI>beRoa(U8_Gp0qTT[\702H:b2NmpQERPBZ6%[p%sS4mJ#MohDrK?$,EXm!5krh@+_pu(j)026tS&bDgFTcl=pWKW?oof(8J$545P5=j(WXj=d))bCD+","PYh/!bT.!&?Jk7_6/YVP+HBdiY%,MH29(cA]<26duUXZ;$7e$c,=YSJ(lY%C%oAcff;$\2gZU:3YOHdq-@i-q7/WDul#kmT$N*GqC:8F=!LYArpU"D=98Vri8Oc:9"c"\hWK3B$/NTn-Z3+8YSKJ<9h/=+JXl5^U7U0SVl:PCUi!%H[QR_DDJ@\mEHqmUFaW_\tYGr-j!%b(]1_DL0'H0qMh)+!Ae=^Q@:L`N8q:=IaYOoHdAS?1#>$5mmCtQUB$1\&Aan'UIboHVMbt\&Ao[RX&h0+]pVnhK4?P]`>"ggL:Fh;i0bI(d`i/+QMZqZh@9/\J6Rrq/Pi3g]PW8*amRK@L4Bj:JDFN1r1FKm#lnH9g[HRo&hfBX#4A;-/`6<6IRLUa/@H6@+HA)K!iUKfrZSTCGl/,n"S1Sj\],k)Ni4t\U5DT)!sW]PsCuhTu^GBGF:7P7^+5+@:-R(KI'^k?FOFUB5`h6CN:r=pPp@p?.Z@QFk)\@lk.ui4(KqZV=Vo6%pqV&TS4j!SL[e?Ar'Mn90g$2/c+ko0%4(O*oH&(`;cYendstream endobj xref -0 8 +0 9 0000000000 65535 f 0000000073 00000 n -0000000104 00000 n -0000000211 00000 n -0000000414 00000 n -0000000482 00000 n -0000000817 00000 n -0000000876 00000 n +0000000114 00000 n +0000000221 00000 n +0000000330 00000 n +0000000533 00000 n +0000000601 00000 n +0000000936 00000 n +0000000995 00000 n trailer << /ID -[<98463e78e9d8130117e49a2c824febd5><98463e78e9d8130117e49a2c824febd5>] +[] % ReportLab generated PDF document -- digest (http://www.reportlab.com) -/Info 5 0 R -/Root 4 0 R -/Size 8 +/Info 6 0 R +/Root 5 0 R +/Size 9 >> startxref -11685 +12607 %%EOF diff --git a/setup/generateTabletopPDF/a0_aruco.py b/setup/generateTabletopPDF/a0_aruco.py index 9ef222d..00c6473 100644 --- a/setup/generateTabletopPDF/a0_aruco.py +++ b/setup/generateTabletopPDF/a0_aruco.py @@ -9,6 +9,7 @@ from typing import List, Tuple from reportlab.pdfgen import canvas from reportlab.lib.units import mm +from reportlab.pdfbase import pdfmetrics try: import cv2 @@ -27,7 +28,7 @@ ORIENTATION = "portrait" # "portrait" oder "landscape" NUM_ARUCOS = 60 ARUCO_SIZE_MM = 25.0 -ARUCO_START_ID = 103 # erster Marker aus DICT_4X4_250 +ARUCO_START_ID = 46 # erster Marker aus DICT_4X4_250 SEED = 223 # Zufalls-Seed für reproduzierbare Verteilung PAGE_BORDER_MARGIN_MM = 50.0 # Abstand aller Marker vom Seitenrand @@ -37,6 +38,9 @@ FORBIDDEN_RECT_H_MM = 1000.0 FORBIDDEN_RECT_MARGIN_MM = 30.0 # keine ArUcos innerhalb dieses Abstands LINE_WIDTH_MM = 1.0 # Linienstärke des Rechtecks +TEXT_FONT = "Times-Roman" +TEXT_SIZE_PT = 8 +TEXT_GAP_MM = 4.0 OUTPUT_BASENAME = f"A0_{NUM_ARUCOS}Arucos_{int(ARUCO_SIZE_MM)}mm_Seet{SEED}" @@ -151,7 +155,8 @@ def draw_aruco_vector( for col in range(modules): if pattern[r][col] == 1: cell_x_mm = x_mm + col * cell_mm - cell_y_mm = y_mm + (modules - 1 - r) * cell_mm + #cell_y_mm = y_mm + (modules - 1 - r) * cell_mm + cell_y_mm = y_mm + r * cell_mm c.rect( mm_to_pt(cell_x_mm), mm_to_pt(page_h_mm - cell_y_mm - cell_mm), @@ -162,6 +167,24 @@ def draw_aruco_vector( ) +def draw_aruco_label( + c: canvas.Canvas, + x_mm: float, + y_mm: float, + size_mm: float, + page_h_mm: float, + marker_id: int, +) -> None: + c.setFont(TEXT_FONT, TEXT_SIZE_PT) + text = str(marker_id) + text_width_pt = pdfmetrics.stringWidth(text, TEXT_FONT, TEXT_SIZE_PT) + text_x_pt = mm_to_pt(x_mm + size_mm / 2.0) - text_width_pt / 2.0 + font = pdfmetrics.getFont(TEXT_FONT) + ascent_mm = (font.face.ascent / 1000.0) * TEXT_SIZE_PT * 0.352777777777778 + text_baseline_y_mm = y_mm + size_mm + TEXT_GAP_MM + ascent_mm + c.drawString(text_x_pt, mm_to_pt(page_h_mm - text_baseline_y_mm), text) + + def place_markers( page_w_mm: float, page_h_mm: float, @@ -295,27 +318,27 @@ def main() -> None: mm_to_pt(page_h_mm - (origin_y_mm + ARROW_LEN_MM - 4)), ) - # Y-Achse (grün, nach links) + # Y-Achse (grün, nach rechts) c.setStrokeColorRGB(0, 0.7, 0) c.line( mm_to_pt(origin_x_mm), mm_to_pt(page_h_mm - origin_y_mm), - mm_to_pt(origin_x_mm - ARROW_LEN_MM), + mm_to_pt(origin_x_mm + ARROW_LEN_MM), mm_to_pt(page_h_mm - origin_y_mm), ) # Pfeilspitze c.line( - mm_to_pt(origin_x_mm - ARROW_LEN_MM), + mm_to_pt(origin_x_mm + ARROW_LEN_MM), mm_to_pt(page_h_mm - origin_y_mm), - mm_to_pt(origin_x_mm - ARROW_LEN_MM + 4), + mm_to_pt(origin_x_mm + ARROW_LEN_MM - 4), mm_to_pt(page_h_mm - origin_y_mm - 4), ) c.line( - mm_to_pt(origin_x_mm - ARROW_LEN_MM), + mm_to_pt(origin_x_mm + ARROW_LEN_MM), mm_to_pt(page_h_mm - origin_y_mm), - mm_to_pt(origin_x_mm - ARROW_LEN_MM + 4), + mm_to_pt(origin_x_mm + ARROW_LEN_MM - 4), mm_to_pt(page_h_mm - origin_y_mm + 4), ) @@ -332,39 +355,59 @@ def main() -> None: marker_id=item["id"], page_h_mm=page_h_mm, ) + draw_aruco_label( + c=c, + x_mm=item["x_mm"], + y_mm=item["y_mm"], + size_mm=item["size_mm"], + page_h_mm=page_h_mm, + marker_id=item["id"], + ) c.showPage() c.save() # JSON mit Positionen with json_path.open("w", encoding="utf-8") as f: - json.dump( - { - "page_format": PAGE_FORMAT, - "orientation": ORIENTATION, - "page_size_mm": {"width": page_w_mm, "height": page_h_mm}, - "seed": SEED, - "num_arucos": NUM_ARUCOS, - "aruco_size_mm": ARUCO_SIZE_MM, - "aruco_dictionary": "DICT_4X4_250", - "aruco_start_id": ARUCO_START_ID, - "page_border_margin_mm": PAGE_BORDER_MARGIN_MM, - "forbidden_rectangle_mm": { - "x": round(forbidden_rect.x, 2), - "y": round(forbidden_rect.y, 2), - "w": forbidden_rect.w, - "h": forbidden_rect.h, - }, - "forbidden_rectangle_margin_mm": FORBIDDEN_RECT_MARGIN_MM, - "placements": [ - {"id": p["id"],"position": [-1*round((p["y_mm"] + ARUCO_SIZE_MM / 2) - origin_y_mm, 2), round(origin_x_mm - (p["x_mm"] + ARUCO_SIZE_MM / 2), 2),-19],"normal": [0, 0, 1],"spin": 90} - for p in placements - ], + meta = { + "page_format": PAGE_FORMAT, + "orientation": ORIENTATION, + "page_size_mm": {"width": page_w_mm, "height": page_h_mm}, + "seed": SEED, + "num_arucos": NUM_ARUCOS, + "aruco_size_mm": ARUCO_SIZE_MM, + "aruco_dictionary": "DICT_4X4_250", + "aruco_start_id": ARUCO_START_ID, + "page_border_margin_mm": PAGE_BORDER_MARGIN_MM, + "forbidden_rectangle_mm": { + "x": round(forbidden_rect.x, 2), + "y": round(forbidden_rect.y, 2), + "w": forbidden_rect.w, + "h": forbidden_rect.h, }, - f, - indent=2, - ensure_ascii=False, - ) + "forbidden_rectangle_margin_mm": FORBIDDEN_RECT_MARGIN_MM, + } + + f.write(json.dumps(meta, indent=2, ensure_ascii=False)[:-2]) + f.write(',\n "placements": [\n') + + for index, p in enumerate(placements): + item = { + "id": p["id"], + "position": [ + round((p["y_mm"] + ARUCO_SIZE_MM / 2) - origin_y_mm, 2), + -1*round(origin_x_mm - (p["x_mm"] + ARUCO_SIZE_MM / 2), 2), + -27.3, + ], + "normal": [0, 0, 1], + "spin": 90, + } + line = json.dumps(item, ensure_ascii=False) + if index < len(placements) - 1: + line += "," + f.write(f" {line}\n") + + f.write(" ]\n}\n") print(f"PDF geschrieben: {pdf_path.resolve()}") print(f"JSON geschrieben: {json_path.resolve()}")