-
-
Save WestsideRobotics/5e42fd30aa8ba737fa7e76309fbe5160 to your computer and use it in GitHub Desktop.
This FTC Blocks OpMode demonstrates MultiPortalView with 3 webcams.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<xml xmlns="https://developers.google.com/blockly/xml"> | |
<variables> | |
<variable id="kn(}Qq/F(%5o98c-^9RV">myPortalsList</variable> | |
<variable id="l)/,LjA`jR!1Nc@Z:`l!">myAprilTagDetections_1</variable> | |
<variable id="#-fO4*%%y)1L#4aoBjaQ">myAprilTagDetections_2</variable> | |
<variable id="gKb]O2H[9HgH6GB,LAf8">myAprilTagDetections_3</variable> | |
<variable id="KU}sO+c6etmmKt$BH;l9">Portal 1 View ID</variable> | |
<variable id="3.)/eLHm(iRl1^Qsq;Hb">USE_WEBCAM_1</variable> | |
<variable type="AprilTagProcessor.Builder" id="NYqOu)Ei(Q{C!f;y!a^O">myAprilTagProcessorBuilder</variable> | |
<variable type="VisionPortal.Builder" id="wx@xgbnS_]b0DQL.08Qg">myVisionPortalBuilder</variable> | |
<variable id="C8uw7?2|6A@3Qmz_@NWv">Portal 2 View ID</variable> | |
<variable id="dP0MCE~zG8MZ2;t(?.f[">USE_WEBCAM_2</variable> | |
<variable id="?.?jAjDXaP~!^(jq/Ls_">myAprilTagProcessor_1</variable> | |
<variable id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</variable> | |
<variable id="R845[Ju$~:kO{$^,NIfo">myAprilTagProcessor_2</variable> | |
<variable id="=(^@|Tz:xjvrbiC~Y964">myAprilTagProcessor_3</variable> | |
<variable id="s8utLt2j=?bZT+FGQPpk">Portal 3 View ID</variable> | |
<variable id="@KC#O?,#5lKLUS5$uZs=">USE_WEBCAM_3</variable> | |
<variable id="Xk!_{IPng0#/P|7dx?3N">myVisionPortal_1</variable> | |
<variable id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</variable> | |
<variable id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</variable> | |
<variable id=".a=1R-U9w)m)V6CRWoD}">myVisionPortal_2</variable> | |
<variable id="ytNpDf^72tW_b6:(p~5*">myVisionPortal_3</variable> | |
</variables> | |
<block type="procedures_defnoreturn" id="hTRENc6W!`^FC-(Wey@," x="552" y="-65"> | |
<field name="NAME">initMultiPortals</field> | |
<comment pinned="false" h="80" w="160">Describe this function...</comment> | |
<statement name="STACK"> | |
<block type="variables_set" id="T0z+-eY(gM#ldBd^C+GD"> | |
<field name="VAR" id="kn(}Qq/F(%5o98c-^9RV">myPortalsList</field> | |
<value name="VALUE"> | |
<block type="visionPortal_makeMultiPortalView" id="Df@Kn17::s{c/DvQ$V6$"> | |
<value name="NUM_PORTALS"> | |
<shadow type="math_number" id="c}B|!~eCj!ci08}1OQ%D"> | |
<field name="NUM">3</field> | |
</shadow> | |
</value> | |
<value name="MULTI_PORTAL_LAYOUT"> | |
<shadow type="visionPortal_typedEnum_multiPortalLayout" id="dTmsi_8L}Mi[I!Xfnl@y"> | |
<field name="MULTI_PORTAL_LAYOUT">HORIZONTAL</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="variables_set" id="bY3N_KHzc4gRP9N7i3yd"> | |
<field name="VAR" id="KU}sO+c6etmmKt$BH;l9">Portal 1 View ID</field> | |
<value name="VALUE"> | |
<block type="lists_getIndex" id="a%n$f3#i^_FL{#c+(KPJ"> | |
<mutation statement="false" at="true"/> | |
<field name="MODE">GET</field> | |
<field name="WHERE">FROM_START</field> | |
<value name="VALUE"> | |
<block type="variables_get" id="|[kJq@*(~MRE@CDRA]Z8"> | |
<field name="VAR" id="kn(}Qq/F(%5o98c-^9RV">myPortalsList</field> | |
</block> | |
</value> | |
<value name="AT"> | |
<block type="math_number" id="6^[:B~uMAuWyhb^K4o_q"> | |
<field name="NUM">1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="variables_set" id="el~3{v|omZYFi~-fVZQ!"> | |
<field name="VAR" id="C8uw7?2|6A@3Qmz_@NWv">Portal 2 View ID</field> | |
<value name="VALUE"> | |
<block type="lists_getIndex" id="Km.nz9w[+nCgyKdNK!^3"> | |
<mutation statement="false" at="true"/> | |
<field name="MODE">GET</field> | |
<field name="WHERE">FROM_START</field> | |
<value name="VALUE"> | |
<block type="variables_get" id="!!_zLh?AGLxoxedzVMuJ"> | |
<field name="VAR" id="kn(}Qq/F(%5o98c-^9RV">myPortalsList</field> | |
</block> | |
</value> | |
<value name="AT"> | |
<block type="math_number" id="e@]hGg/.b|u%x+myW2A."> | |
<field name="NUM">2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="variables_set" id=")qixBFs?#Qvrdj4MV!^F"> | |
<field name="VAR" id="s8utLt2j=?bZT+FGQPpk">Portal 3 View ID</field> | |
<value name="VALUE"> | |
<block type="lists_getIndex" id="JHz=H6.qlQE6o}b8OT3n"> | |
<mutation statement="false" at="true"/> | |
<field name="MODE">GET</field> | |
<field name="WHERE">FROM_START</field> | |
<value name="VALUE"> | |
<block type="variables_get" id="[7Pm9X},woH`9ENKi/w}"> | |
<field name="VAR" id="kn(}Qq/F(%5o98c-^9RV">myPortalsList</field> | |
</block> | |
</value> | |
<value name="AT"> | |
<block type="math_number" id="Ea6!G[!dFo94DKTs]3Ai"> | |
<field name="NUM">3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addNumericData_Number" id="n;8v_@A`fO14?S$@`|V9"> | |
<value name="KEY"> | |
<shadow type="text" id="F/8b`~6W^gN`mgiXkkE)"> | |
<field name="TEXT">Portal 1 View ID (index 0 of myPortalsList)</field> | |
</shadow> | |
</value> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="k+KUHj?;`,Y,.(?5}7Tj"> | |
<field name="NUM">123</field> | |
</shadow> | |
<block type="variables_get" id="n}yrXqBs}VC7lIx.B?r."> | |
<field name="VAR" id="KU}sO+c6etmmKt$BH;l9">Portal 1 View ID</field> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addNumericData_Number" id="#NfArg4K%H4g+D?YoKQ?"> | |
<value name="KEY"> | |
<shadow type="text" id="S}kY*7si5g_7A}q]/[Sp"> | |
<field name="TEXT">Portal 2 View ID (index 1 of myPortalsList)</field> | |
</shadow> | |
</value> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="r1SWTft0}tv=3rq::Ix^"> | |
<field name="NUM">123</field> | |
</shadow> | |
<block type="variables_get" id="Os@FTR*5t6dD~`NS43?%"> | |
<field name="VAR" id="C8uw7?2|6A@3Qmz_@NWv">Portal 2 View ID</field> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addNumericData_Number" id="[io(f6FsH,*(Fg!c/a+Y"> | |
<value name="KEY"> | |
<shadow type="text" id="r(7~FmO{@27oIu?ymDwl"> | |
<field name="TEXT">Portal 3 View ID (index 2 of myPortalsList)</field> | |
</shadow> | |
</value> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">123</field> | |
</shadow> | |
<block type="variables_get" id="W`]C1ux0LklJ#OO/p6l#"> | |
<field name="VAR" id="s8utLt2j=?bZT+FGQPpk">Portal 3 View ID</field> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="/+Zg^8O!kspc[Ppwe7Ig"> | |
<value name="TEXT"> | |
<shadow type="text" id="e#uNl7i5F+wQRpk;zCu1"> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="hn8iarbkz7B-9?9j0H]y"> | |
<value name="TEXT"> | |
<shadow type="text" id="(=}ejM$(oYo^Z~Q1PiZs"> | |
<field name="TEXT">Press Y to continue</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_update" id="p9d+V=bFULgb*Ie:q,6z"> | |
<next> | |
<block type="controls_whileUntil" id="/6dK~.1AfQoC.lwdAA@Z"> | |
<field name="MODE">WHILE</field> | |
<value name="BOOL"> | |
<block type="logic_operation" id="#;sUgsw%mu%~!%tm!h$[" inline="false"> | |
<field name="OP">AND</field> | |
<value name="A"> | |
<block type="logic_negate" id="xsQ-hp:FxFWH2}QA`-=K"> | |
<value name="BOOL"> | |
<block type="gamepad_getProperty_Boolean" id="OsntEXqp#T,!@A%*[email protected]"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">Y</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="B"> | |
<block type="linearOpMode_opModeInInit" id="3FO?`[I~UA_eL0W}ey_+"/> | |
</value> | |
</block> | |
</value> | |
<statement name="DO"> | |
<block type="comment" id="3Db}D;GtbzjxU;*66unO"> | |
<field name="COMMENT">Loop until gamepad Y button is pressed.</field> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="WtpyD@tEu+EoY=P9iY,D" deletable="false" x="10" y="151"> | |
<field name="NAME">runOpMode</field> | |
<comment pinned="true" h="125" w="417.66668701171875">This Op Mode demonstrates MultiPortalView with 3 webcams. | |
The Dpad buttons can turn each camera stream on and off. | |
USB bandwidth is more restricted on an external USB hub, compared to the Control Hub.</comment> | |
<data>{"commentPositionLeft":-21,"commentPositionTop":-155}</data> | |
<statement name="STACK"> | |
<block type="comment" id="vG1;7$#*;crH,9)V$Lbq"> | |
<field name="COMMENT">This OpMode shows AprilTag recognition and pose estimation.</field> | |
<next> | |
<block type="variables_set" id="+WOa|3hz0c^Rah6+[;U4"> | |
<field name="VAR" id="3.)/eLHm(iRl1^Qsq;Hb">USE_WEBCAM_1</field> | |
<value name="VALUE"> | |
<block type="logic_boolean" id="C]dWgdzJ2YW[h}=7w5QN"> | |
<field name="BOOL">TRUE</field> | |
</block> | |
</value> | |
<next> | |
<block type="variables_set" id="FCFS4e[3x0E8kv3Xjfa~"> | |
<field name="VAR" id="dP0MCE~zG8MZ2;t(?.f[">USE_WEBCAM_2</field> | |
<value name="VALUE"> | |
<block type="logic_boolean" id="NUgNSX~wF*3]-J_T7Bih"> | |
<field name="BOOL">TRUE</field> | |
</block> | |
</value> | |
<next> | |
<block type="variables_set" id="=h}.ng[oH-wZbjM.ZciK"> | |
<field name="VAR" id="@KC#O?,#5lKLUS5$uZs=">USE_WEBCAM_3</field> | |
<value name="VALUE"> | |
<block type="logic_boolean" id="2Q2_U@qZ~%ksGD]EdTZ/"> | |
<field name="BOOL">TRUE</field> | |
</block> | |
</value> | |
<next> | |
<block type="procedures_callnoreturn" id="Bt8IZ20-|$=@:CZ+i~L_"> | |
<mutation name="initMultiPortals"/> | |
<next> | |
<block type="procedures_callnoreturn" id="f5VC4xOrYYZrGzpFY}@G"> | |
<mutation name="initAprilTag"/> | |
<comment pinned="false" h="60" w="270">Initialize AprilTag before waitForStart.</comment> | |
<next> | |
<block type="comment" id="/TX8,^RvHuP6X%R,Py^^"> | |
<field name="COMMENT">Wait for the Start button to be touched.</field> | |
<next> | |
<block type="telemetry_addTextData_All" id="Y/b(p3p_Ls7l_.)bQt%8"> | |
<value name="KEY"> | |
<shadow type="text" id="]K/@Q[7z:EBSoy.ggFCo"> | |
<field name="TEXT">DS preview on/off</field> | |
</shadow> | |
</value> | |
<value name="TEXT"> | |
<shadow type="text" id="eV-62@bA|1V9{)n7lim2"> | |
<field name="TEXT">3 dots, Camera Stream</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addTextData_All" id="/Zm[n8^)(`(S}Ab9j!;|"> | |
<value name="KEY"> | |
<shadow type="text" id="E)4aB(Zb2,Da/0v0AiN="> | |
<field name="TEXT">></field> | |
</shadow> | |
</value> | |
<value name="TEXT"> | |
<shadow type="text" id="^u5_oh+s(.Vs1Kk;$yw9"> | |
<field name="TEXT">Touch Play to start OpMode</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_update" id="CcM7+$syN,5p}u1NCi8q"> | |
<next> | |
<block type="linearOpMode_waitForStart" id=":`$wN_ci`O;o6P0~.(+g"> | |
<next> | |
<block type="controls_if" id="}Q?5mbxSO8Di;i!__6[y"> | |
<value name="IF0"> | |
<block type="linearOpMode_opModeIsActive" id=")o%YFX/#9kvv^sgXr4~5"/> | |
</value> | |
<statement name="DO0"> | |
<block type="controls_whileUntil" id="^0Kagy/e+Ea{rbZPv2G6"> | |
<field name="MODE">WHILE</field> | |
<value name="BOOL"> | |
<block type="linearOpMode_opModeIsActive" id="e)cr{!2VIET83s,JWC.="/> | |
</value> | |
<statement name="DO"> | |
<block type="procedures_callnoreturn" id="L1~6q-w9m`2ahlT|b!@A"> | |
<mutation name="AprilTag telemetry for Portal 1"/> | |
<next> | |
<block type="procedures_callnoreturn" id=".nE~$]5yWi@dvC{X413?"> | |
<mutation name="AprilTag telemetry for Portal 2"/> | |
<next> | |
<block type="procedures_callnoreturn" id="g[QYfMq91|B;=^DFuv7r"> | |
<mutation name="AprilTag telemetry for Portal 3"/> | |
<next> | |
<block type="procedures_callnoreturn" id="A~A;7W!jqa;{%%68qJYl"> | |
<mutation name="AprilTag telemetry legend"/> | |
<next> | |
<block type="procedures_callnoreturn" id="28f4}qE,|+0R9eRduR*U"> | |
<mutation name="Toggle camera streams"/> | |
<next> | |
<block type="telemetry_update" id="exvivmft-pX$n!1,8Ea$"> | |
<comment pinned="false" h="55" w="295">Push telemetry to the Driver Station.</comment> | |
<next> | |
<block type="linearOpMode_sleep_Number" id="jjoCwI:;J87CrtGs%}K7"> | |
<comment pinned="false" h="46" w="191">Share the CPU.</comment> | |
<value name="MILLISECONDS"> | |
<shadow type="math_number" id="w~.7$M*lJeh#@I/xsbHy"> | |
<field name="NUM">20</field> | |
</shadow> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id=":Un!nS!LS%^tq]:g4^?Z" x="1151" y="164"> | |
<field name="NAME">initAprilTag</field> | |
<comment pinned="false" h="80" w="160">Initialize AprilTag Detection.</comment> | |
<statement name="STACK"> | |
<block type="comment" id="Z#tr,B$;l$RV0)j4q0n."> | |
<field name="COMMENT">First, create an AprilTagProcessor.Builder.</field> | |
<next> | |
<block type="aprilTagProcessorBuilder_create_assign" id="]gR@^J/H_v)OY6f[`3z5"> | |
<field name="APRIL_TAG_PROCESSOR_BUILDER" id="NYqOu)Ei(Q{C!f;y!a^O" variabletype="AprilTagProcessor.Builder">myAprilTagProcessorBuilder</field> | |
<next> | |
<block type="comment" id="-dkxGvL2:a(h8n8Mok-i"> | |
<field name="COMMENT">Create each AprilTagProcessor by calling build.</field> | |
<next> | |
<block type="variables_set" id="$.wt,WCD1s5fSqROQT*("> | |
<field name="VAR" id="?.?jAjDXaP~!^(jq/Ls_">myAprilTagProcessor_1</field> | |
<value name="VALUE"> | |
<block type="aprilTagProcessorBuilder_build" id="3Vk~@]VGDELD;GHGgEgn"> | |
<field name="APRIL_TAG_PROCESSOR_BUILDER" id="NYqOu)Ei(Q{C!f;y!a^O" variabletype="AprilTagProcessor.Builder">myAprilTagProcessorBuilder</field> | |
</block> | |
</value> | |
<next> | |
<block type="aprilTagProcessorBuilder_create_assign" id="x$,jMZe-LH#jbqm,qAL}" disabled="true"> | |
<field name="APRIL_TAG_PROCESSOR_BUILDER" id="NYqOu)Ei(Q{C!f;y!a^O" variabletype="AprilTagProcessor.Builder">myAprilTagProcessorBuilder</field> | |
<comment pinned="true" h="82" w="159">Optional, seems not to decrease chance of crashing.</comment> | |
<data>{"commentPositionLeft":-220,"commentPositionTop":2}</data> | |
<next> | |
<block type="variables_set" id="7c+trNOMI#F%G`uOw!VR"> | |
<field name="VAR" id="R845[Ju$~:kO{$^,NIfo">myAprilTagProcessor_2</field> | |
<value name="VALUE"> | |
<block type="aprilTagProcessorBuilder_build" id="3q*$kto7+[%^gTcz6ANE"> | |
<field name="APRIL_TAG_PROCESSOR_BUILDER" id="NYqOu)Ei(Q{C!f;y!a^O" variabletype="AprilTagProcessor.Builder">myAprilTagProcessorBuilder</field> | |
</block> | |
</value> | |
<next> | |
<block type="variables_set" id="F1#:k69ssGCP++HIrqk`"> | |
<field name="VAR" id="=(^@|Tz:xjvrbiC~Y964">myAprilTagProcessor_3</field> | |
<value name="VALUE"> | |
<block type="aprilTagProcessorBuilder_build" id=")bPZT.?}syQNx?(/uPe."> | |
<field name="APRIL_TAG_PROCESSOR_BUILDER" id="NYqOu)Ei(Q{C!f;y!a^O" variabletype="AprilTagProcessor.Builder">myAprilTagProcessorBuilder</field> | |
</block> | |
</value> | |
<next> | |
<block type="procedures_callnoreturn" id="RIkutpx=T[e:d?67s*e)"> | |
<mutation name="Make first VisionPortal"/> | |
<next> | |
<block type="procedures_callnoreturn" id="=8K~[A{1UqUw/-Rp.=GJ"> | |
<mutation name="Make second VisionPortal"/> | |
<next> | |
<block type="procedures_callnoreturn" id="%!miV8U2OSE[3!9Qq(x4"> | |
<mutation name="Make third VisionPortal"/> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="Zv2gxly_VRD9c;ooprJK" x="1146" y="478"> | |
<field name="NAME">Make first VisionPortal</field> | |
<comment pinned="false" h="80" w="160">Describe this function...</comment> | |
<statement name="STACK"> | |
<block type="comment" id="w{nzs#L5ZbP.GKW2S`x_"> | |
<field name="COMMENT">Create a VisionPortal.Builder and set attributes related to the first camera.</field> | |
<next> | |
<block type="visionPortalBuilder_create_assign" id="s1^/ZS*LG[dC%CsYcl=%"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<next> | |
<block type="controls_if" id="T`t))DI)e(S6b*Xls7U="> | |
<mutation else="1"/> | |
<value name="IF0"> | |
<block type="variables_get" id="Zr+H]wQb_aiB|J+{-0:G"> | |
<field name="VAR" id="3.)/eLHm(iRl1^Qsq;Hb">USE_WEBCAM_1</field> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="visionPortalBuilder_setCamera" id="h;`Yd}]R=F.Fw89p`1N/"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="68" w="247">Use a webcam.</comment> | |
<value name="CAMERA"> | |
<shadow type="navigation_webcamName" id="b`AjugjMrzm855@U*q;W"> | |
<field name="WEBCAM_NAME">Webcam 1</field> | |
</shadow> | |
<block type="navigation_webcamName" id="-_ij?RQuVjOLDO[K*[nW"> | |
<field name="WEBCAM_NAME">Webcam 1</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<statement name="ELSE"> | |
<block type="visionPortalBuilder_setCamera" id="pm=N,.9EB)-Y)[HJlB;-"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="56" w="298">Use the device's back camera.</comment> | |
<value name="CAMERA"> | |
<shadow type="navigation_typedEnum_builtinCameraDirection" id="8u8O_}55dptgjBxmKq`9"> | |
<field name="CAMERA_DIRECTION">BACK</field> | |
</shadow> | |
</value> | |
</block> | |
</statement> | |
<next> | |
<block type="comment" id="DbdMBABkX(`Xc]t2}Xuv"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by adjusting resolution from default 640x480.</field> | |
<next> | |
<block type="visionPortalBuilder_setCameraResolution" id="bbsD4s}Bwx$enUn,h%q9" disabled="true"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the camera resolution.</comment> | |
<value name="CAMERA_WIDTH"> | |
<shadow type="math_number" id="~%d96O[kR.jBaLjs$1sQ"> | |
<field name="NUM">320</field> | |
</shadow> | |
</value> | |
<value name="CAMERA_HEIGHT"> | |
<shadow type="math_number" id="X*:F4M3pM?@f5b:9t[Kx"> | |
<field name="NUM">240</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="comment" id="I+p-_JaszFbSq28;uEAu"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by selecting Streaming Format.</field> | |
<next> | |
<block type="visionPortalBuilder_setStreamFormat" id="4RGPwN1bpgYAdNG$aRp("> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the stream format.</comment> | |
<data>{"commentPositionLeft":-81,"commentPositionTop":-175}</data> | |
<value name="STREAM_FORMAT"> | |
<shadow type="visionPortal_typedEnum_streamFormat" id="yc},8z#Ubqo^3n0M9#o,"> | |
<field name="STREAM_FORMAT">MJPEG</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="comment" id="-QJd~|I/HUP84GR.F=0N"> | |
<field name="COMMENT">Add myAprilTagProcessor to the VisionPortal.Builder.</field> | |
<next> | |
<block type="visionPortalBuilder_addProcessor" id="`A$k?7nl@kd=7y*v@/+-"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<value name="VISION_PROCESSOR"> | |
<block type="variables_get" id="HoXmAtlB7{ai0YF!ZyTl"> | |
<field name="VAR" id="?.?jAjDXaP~!^(jq/Ls_">myAprilTagProcessor_1</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="0*a@Z?!~c{N5i)z4/V`="> | |
<field name="COMMENT">Add the Portal View ID to the VisionPortal.Builder</field> | |
<next> | |
<block type="visionPortalBuilder_setCameraMonitorViewId" id="|=UJ|87n6E1BW!j!,s=_"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the camera monitor view id.</comment> | |
<data>{"commentPositionLeft":-81,"commentPositionTop":-175}</data> | |
<value name="VIEW_ID"> | |
<block type="variables_get" id="YNR^H^:(-s8nkv#MFd^d"> | |
<field name="VAR" id="KU}sO+c6etmmKt$BH;l9">Portal 1 View ID</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="6Q2EYFS^A(u/rVLX*nI}"> | |
<field name="COMMENT">Create a VisionPortal by calling build.</field> | |
<next> | |
<block type="variables_set" id="UggZXj@UuhBf97)(oA;m"> | |
<field name="VAR" id="Xk!_{IPng0#/P|7dx?3N">myVisionPortal_1</field> | |
<value name="VALUE"> | |
<block type="visionPortalBuilder_build" id="OBOV:tKH!^AaYsI{A$~x"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="=L4%[*x};aVlq^5PYHwL" x="1857" y="466"> | |
<field name="NAME">Make second VisionPortal</field> | |
<comment pinned="false" h="80" w="160">Describe this function...</comment> | |
<statement name="STACK"> | |
<block type="comment" id=":vQrkISfg^MzC-ZQN$d3" disabled="true"> | |
<field name="COMMENT">Create a VisionPortal.Builder (again) and set attributes related to the second camera.</field> | |
<next> | |
<block type="visionPortalBuilder_create_assign" id="(05c2T!Z9b)#V2Lt+~3W"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="true" h="85" w="150">Optional, but seems to decrease chance of crashing.</comment> | |
<data>{"commentPositionLeft":-213,"commentPositionTop":-78}</data> | |
<next> | |
<block type="controls_if" id=":035Wc9@%UF3HZ:v!ey$"> | |
<mutation else="1"/> | |
<value name="IF0"> | |
<block type="variables_get" id=":Zx)+xB{_lM]`OSi,bTu"> | |
<field name="VAR" id="dP0MCE~zG8MZ2;t(?.f[">USE_WEBCAM_2</field> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="visionPortalBuilder_setCamera" id="gTXDroUC)dFqKCUxm5Gp"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="68" w="247">Use a webcam.</comment> | |
<value name="CAMERA"> | |
<shadow type="navigation_webcamName" id="6!ARlE1_/RTH`o|dIY1|"> | |
<field name="WEBCAM_NAME">Webcam 2</field> | |
</shadow> | |
<block type="navigation_webcamName" id="j_xNjob;EW~2O[*y6Sv/"> | |
<field name="WEBCAM_NAME">Webcam 2</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<statement name="ELSE"> | |
<block type="visionPortalBuilder_setCamera" id="LMxXHS|,QLGQ.M$uG;vD"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="56" w="298">Use the device's back camera.</comment> | |
<value name="CAMERA"> | |
<shadow type="navigation_typedEnum_builtinCameraDirection" id="+PJd^UinSi4]zG3:=)EO"> | |
<field name="CAMERA_DIRECTION">BACK</field> | |
</shadow> | |
</value> | |
</block> | |
</statement> | |
<next> | |
<block type="comment" id="$t2U01*}6lH?|cB;ks;e"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by adjusting resolution from default 640x480.</field> | |
<next> | |
<block type="visionPortalBuilder_setCameraResolution" id="?7E1{+cv;Gis:SD@.#.w" disabled="true"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the camera resolution.</comment> | |
<value name="CAMERA_WIDTH"> | |
<shadow type="math_number" id="+{~V_O!2yWQ[2Y][kSDW"> | |
<field name="NUM">320</field> | |
</shadow> | |
</value> | |
<value name="CAMERA_HEIGHT"> | |
<shadow type="math_number" id="~+Q-:xc==*fY.@?LE/D["> | |
<field name="NUM">240</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="comment" id="S2VQlNT48]HHu[pCP*T@"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by selecting Streaming Format.</field> | |
<next> | |
<block type="visionPortalBuilder_setStreamFormat" id="/]2xvtxSr7ueR+)BLVh["> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the stream format.</comment> | |
<value name="STREAM_FORMAT"> | |
<shadow type="visionPortal_typedEnum_streamFormat" id="2tCZ_Ckf8]l}g.]qQ}=g"> | |
<field name="STREAM_FORMAT">MJPEG</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="comment" id="px_~#aY,Q@B9_Z$s?nWp"> | |
<field name="COMMENT">Add myAprilTagProcessor to the VisionPortal.Builder.</field> | |
<next> | |
<block type="visionPortalBuilder_addProcessor" id="(/{Ua?Miu@]!Hn;RUHGB"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<value name="VISION_PROCESSOR"> | |
<block type="variables_get" id="M$YCt1n?jPe9YJP7C(z@"> | |
<field name="VAR" id="R845[Ju$~:kO{$^,NIfo">myAprilTagProcessor_2</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="@E(A5OKfE10^xQM@Nk}3"> | |
<field name="COMMENT">Add the Portal View ID to the VisionPortal.Builder</field> | |
<next> | |
<block type="visionPortalBuilder_setCameraMonitorViewId" id="O/sq*OFa)fkf-}v$T1)k"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the camera monitor view id.</comment> | |
<data>{"commentPositionLeft":-81,"commentPositionTop":-175}</data> | |
<value name="VIEW_ID"> | |
<block type="variables_get" id="|hBy!-$43-Ta9=B4g#Q*"> | |
<field name="VAR" id="C8uw7?2|6A@3Qmz_@NWv">Portal 2 View ID</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="@T/}=c*y#{:QZqhf?32P"> | |
<field name="COMMENT">Create a VisionPortal by calling build.</field> | |
<next> | |
<block type="variables_set" id="gy*CGj`Nv_#v}mJW$LyG"> | |
<field name="VAR" id=".a=1R-U9w)m)V6CRWoD}">myVisionPortal_2</field> | |
<value name="VALUE"> | |
<block type="visionPortalBuilder_build" id="Etb=jIbjtCd`7xVDNSE1"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="AJ.}eAieT5heQm^e6K9{" x="2636" y="458"> | |
<field name="NAME">Make third VisionPortal</field> | |
<comment pinned="false" h="80" w="160">Describe this function...</comment> | |
<statement name="STACK"> | |
<block type="comment" id="|~zzNoH^D.ZRFMZual*K" disabled="true"> | |
<field name="COMMENT">Create a VisionPortal.Builder (again) and set attributes related to the second camera.</field> | |
<next> | |
<block type="visionPortalBuilder_create_assign" id="PdFMM.qyQRHWz~5[,6B["> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="true" h="85" w="150">Optional, but seems to decrease chance of crashing.</comment> | |
<data>{"commentPositionLeft":-213,"commentPositionTop":-78}</data> | |
<next> | |
<block type="controls_if" id="NtTIQrq@7h6~nxi*8l}K"> | |
<mutation else="1"/> | |
<value name="IF0"> | |
<block type="variables_get" id="Y]wO9%T[Y9FzjO6:p?o5"> | |
<field name="VAR" id="@KC#O?,#5lKLUS5$uZs=">USE_WEBCAM_3</field> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="visionPortalBuilder_setCamera" id="^5%+?vbZjHf`Cd)N74V@"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="68" w="247">Use a webcam.</comment> | |
<value name="CAMERA"> | |
<shadow type="navigation_webcamName"> | |
<field name="WEBCAM_NAME">Webcam 2</field> | |
</shadow> | |
<block type="navigation_webcamName" id="9V}+ZLQ7-up99[@S)3]4"> | |
<field name="WEBCAM_NAME">Webcam 3</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<statement name="ELSE"> | |
<block type="visionPortalBuilder_setCamera" id="#~CpeD6FnmA-o)9FWd!|"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="56" w="298">Use the device's back camera.</comment> | |
<value name="CAMERA"> | |
<shadow type="navigation_typedEnum_builtinCameraDirection" id="BrT8uJj[l:@;)Yl7~v0f"> | |
<field name="CAMERA_DIRECTION">BACK</field> | |
</shadow> | |
</value> | |
</block> | |
</statement> | |
<next> | |
<block type="comment" id="Rr|I,{FOVm}g]$i5dw`h"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by adjusting resolution from default 640x480.</field> | |
<next> | |
<block type="visionPortalBuilder_setCameraResolution" id="`e5q#{|d/~_4wR-I)qPR" disabled="true"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the camera resolution.</comment> | |
<value name="CAMERA_WIDTH"> | |
<shadow type="math_number" id="5w]e/u%[V[LaIA4alhc="> | |
<field name="NUM">320</field> | |
</shadow> | |
</value> | |
<value name="CAMERA_HEIGHT"> | |
<shadow type="math_number" id="1W+eM!LwNDV,c$so(0rb"> | |
<field name="NUM">240</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="comment" id="WWW%IQ8BetrY$-AV+D9U"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by selecting Streaming Format.</field> | |
<next> | |
<block type="visionPortalBuilder_setStreamFormat" id=".M5@eZ$e%,z|_v%HP]!G"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the stream format.</comment> | |
<value name="STREAM_FORMAT"> | |
<shadow type="visionPortal_typedEnum_streamFormat" id="o27tQ:dq3w:]]UWw1EnI"> | |
<field name="STREAM_FORMAT">MJPEG</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="comment" id="Hw|-HD*waECfQzho|Eg."> | |
<field name="COMMENT">Add myAprilTagProcessor to the VisionPortal.Builder.</field> | |
<next> | |
<block type="visionPortalBuilder_addProcessor" id="^Q)Wm_[34H_SHpW456Nv"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<value name="VISION_PROCESSOR"> | |
<block type="variables_get" id="1QC*[tM8[E%pyueKu?X?"> | |
<field name="VAR" id="=(^@|Tz:xjvrbiC~Y964">myAprilTagProcessor_3</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="]jQFm6jy2uB`Nq;12aHX"> | |
<field name="COMMENT">Add the Portal View ID to the VisionPortal.Builder</field> | |
<next> | |
<block type="visionPortalBuilder_setCameraMonitorViewId" id="fV%)rp^mz[zh)-Ke)/KQ"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
<comment pinned="false" h="150" w="325">Set the camera monitor view id.</comment> | |
<data>{"commentPositionLeft":-81,"commentPositionTop":-175}</data> | |
<value name="VIEW_ID"> | |
<block type="variables_get" id="-]aMD_9eM3Y(@u@WcTAr"> | |
<field name="VAR" id="s8utLt2j=?bZT+FGQPpk">Portal 3 View ID</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="qG=.N]/yohUBNQPGS6@S"> | |
<field name="COMMENT">Create a VisionPortal by calling build.</field> | |
<next> | |
<block type="variables_set" id="ptl%l^(%%d.l*2fwOrWD"> | |
<field name="VAR" id="ytNpDf^72tW_b6:(p~5*">myVisionPortal_3</field> | |
<value name="VALUE"> | |
<block type="visionPortalBuilder_build" id=",JG+=zGW/Vt[)8uXR1!A"> | |
<field name="VISION_PORTAL_BUILDER" id="wx@xgbnS_]b0DQL.08Qg" variabletype="VisionPortal.Builder">myVisionPortalBuilder</field> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="0qq4Mgt5,Tpch.4Sd-:*" x="551" y="643"> | |
<field name="NAME">Toggle camera streams</field> | |
<comment pinned="false" h="80" w="160">Describe this function...</comment> | |
<statement name="STACK"> | |
<block type="comment" id="{Dm;|45xiJw91sf:=klh"> | |
<field name="COMMENT">Manage USB bandwidth of three camera streams, by turning on or off.</field> | |
<next> | |
<block type="controls_if" id="!7_WSukNml?WxUrVW=}Y"> | |
<mutation elseif="1"/> | |
<value name="IF0"> | |
<block type="gamepad_getProperty_Boolean" id="nHP+eLQXZnMf$GP.l+2:"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">DpadDown</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="visionPortal_stopStreaming" id="WxT@T#Ky#v5b~U}F-piA"> | |
<comment pinned="false" h="150" w="325">Temporarily stop the streaming session. This can save CPU resources, with the ability to resume quickly when needed.</comment> | |
<value name="VISION_PORTAL"> | |
<block type="variables_get" id="+oda$..:Xa3Va0rMe{;L"> | |
<field name="VAR" id="Xk!_{IPng0#/P|7dx?3N">myVisionPortal_1</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<value name="IF1"> | |
<block type="gamepad_getProperty_Boolean" id="4p5t*;5@A|8*!R_$E^Fw"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">DpadUp</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
<statement name="DO1"> | |
<block type="visionPortal_resumeStreaming" id="TRp3/F9RhWFZnU3l.]ei"> | |
<comment pinned="false" h="150" w="325">Resume the streaming session if previously stopped.</comment> | |
<value name="VISION_PORTAL"> | |
<block type="variables_get" id="{Bzk]pC5=f5AS/,gp5T{"> | |
<field name="VAR" id="Xk!_{IPng0#/P|7dx?3N">myVisionPortal_1</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<next> | |
<block type="controls_if" id="|]F%BPYW#MDZ?J`J%)AE"> | |
<mutation elseif="1"/> | |
<value name="IF0"> | |
<block type="gamepad_getProperty_Boolean" id="5yv}|5w/I?^s4.$b;IUm"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">DpadLeft</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="visionPortal_stopStreaming" id="(H1CLsp;eG:Lghigj}k7"> | |
<comment pinned="false" h="150" w="325">Temporarily stop the streaming session. This can save CPU resources, with the ability to resume quickly when needed.</comment> | |
<value name="VISION_PORTAL"> | |
<block type="variables_get" id="kY}*9h+bR!$d1Qb~uvj-"> | |
<field name="VAR" id=".a=1R-U9w)m)V6CRWoD}">myVisionPortal_2</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<value name="IF1"> | |
<block type="gamepad_getProperty_Boolean" id="=.K{19)qu+/#0+v3#;}}"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">DpadRight</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
<statement name="DO1"> | |
<block type="visionPortal_resumeStreaming" id="W0ZV27+w(`pYc9Z490@%"> | |
<comment pinned="false" h="150" w="325">Resume the streaming session if previously stopped.</comment> | |
<value name="VISION_PORTAL"> | |
<block type="variables_get" id="5?*fMVs(5$@/FE5Y#D!Q"> | |
<field name="VAR" id=".a=1R-U9w)m)V6CRWoD}">myVisionPortal_2</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<next> | |
<block type="controls_if" id="CfZYVSd7bd~KLx:r.T~u"> | |
<mutation elseif="1"/> | |
<value name="IF0"> | |
<block type="gamepad_getProperty_Boolean" id="(iH2dQ_siCJOViZbn)i#"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">B</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="visionPortal_stopStreaming" id="caLSOuF6BVS:u9MpygeC"> | |
<comment pinned="false" h="150" w="325">Temporarily stop the streaming session. This can save CPU resources, with the ability to resume quickly when needed.</comment> | |
<value name="VISION_PORTAL"> | |
<block type="variables_get" id="-wUY9C82e;,0k06oo!(s"> | |
<field name="VAR" id="ytNpDf^72tW_b6:(p~5*">myVisionPortal_3</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
<value name="IF1"> | |
<block type="gamepad_getProperty_Boolean" id="@HUE:@O]E;cd0@}Y^d.@"> | |
<field name="IDENTIFIER">gamepad1</field> | |
<field name="PROP">A</field> | |
<data>{"IDENTIFIER":"gamepad1"}</data> | |
</block> | |
</value> | |
<statement name="DO1"> | |
<block type="visionPortal_resumeStreaming" id="5*Ru]NW(VfC(Vx39{-Kq"> | |
<comment pinned="false" h="150" w="325">Resume the streaming session if previously stopped.</comment> | |
<data>{"commentPositionLeft":-81,"commentPositionTop":-175}</data> | |
<value name="VISION_PORTAL"> | |
<block type="variables_get" id="4Yumy[%H9t_^bY~ZNd8["> | |
<field name="VAR" id="ytNpDf^72tW_b6:(p~5*">myVisionPortal_3</field> | |
</block> | |
</value> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="Eg%7GTPuhcoA]FCw9:]O" collapsed="true" x="6" y="914"> | |
<field name="NAME">AprilTag telemetry for Portal 1</field> | |
<comment pinned="false" h="80" w="160">Display info (using telemetry) for a recognized AprilTag.</comment> | |
<statement name="STACK"> | |
<block type="variables_set" id="c8~R@@~J_)0dhTTP,GP@"> | |
<field name="VAR" id="l)/,LjA`jR!1Nc@Z:`l!">myAprilTagDetections_1</field> | |
<comment pinned="false" h="80" w="160">Get a list of AprilTag detections.</comment> | |
<value name="VALUE"> | |
<block type="aprilTagProcessor_getDetections" id="^Sth`xX=n79Q8`P*Z#qt"> | |
<value name="APRIL_TAG_PROCESSOR"> | |
<block type="variables_get" id="Icn).;@XjTI7SR.j$UY#"> | |
<field name="VAR" id="?.?jAjDXaP~!^(jq/Ls_">myAprilTagProcessor_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addTextData_All" id="3m5}jTks8BeMJ]|.h*Kp"> | |
<value name="KEY"> | |
<shadow type="text" id="MNA3Pe{~9.uc1dSMmO=j"> | |
<field name="TEXT">Portal 1 - # AprilTags Detected</field> | |
</shadow> | |
</value> | |
<value name="TEXT"> | |
<shadow type="text" id="DRWu-r*O-0eJ4pG2n$_l"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="lists_length" id="q{bEB[P*p2XiVOMj*ku#"> | |
<value name="VALUE"> | |
<block type="variables_get" id="/5v#48C2W5M+l:4)g!zX"> | |
<field name="VAR" id="l)/,LjA`jR!1Nc@Z:`l!">myAprilTagDetections_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="controls_forEach" id="|@Y$y8D~],V(MRQ+Cyv{"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
<comment pinned="false" h="81" w="199">Iterate through list and call a function to display info for each recognized AprilTag.</comment> | |
<value name="LIST"> | |
<block type="variables_get" id="W,d1s!eFWeDT0X}~eq,n"> | |
<field name="VAR" id="l)/,LjA`jR!1Nc@Z:`l!">myAprilTagDetections_1</field> | |
</block> | |
</value> | |
<statement name="DO"> | |
<block type="comment" id="[email protected]"> | |
<field name="COMMENT">Display info about the detection.</field> | |
<next> | |
<block type="telemetry_addLine" id="qrKb?#/HMYJo.RhU8rW:"> | |
<value name="TEXT"> | |
<shadow type="text" id="3^Lv-r.jG6}7LV;(yIh."> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="controls_if" id="1KHSCf_sX!Qd~BKfG}QD"> | |
<mutation else="1"/> | |
<value name="IF0"> | |
<block type="aprilTagDetection_getProperty_IsNotNull" id=":^$lP:Ut!p3Z)E+vy^]D"> | |
<field name="PROP">metadata</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="9Lq*6VTlT$7uDRiB|mYe"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="telemetry_addLine" id="awB~K!HjEb=h6tM,%vLN"> | |
<value name="TEXT"> | |
<shadow type="text" id="?hM/$PX}4MN:|W`joKgn"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="0C_x2#T#t7yl!%45k{$?"> | |
<mutation items="4"/> | |
<value name="ADD0"> | |
<block type="text" id="buEo7p[-2T4:49=`uwK1"> | |
<field name="TEXT">==== (ID </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="aprilTagDetection_getProperty_Number" id="lifbVBMNn+.1j?y6v54X"> | |
<field name="PROP">id</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="w(63KWmGiZ83+qITBep;"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="=n-]].djPxb,OFyxcOQF"> | |
<field name="TEXT">) </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="aprilTagDetection_getProperty_String" id="=AvXMAjUic3u3lbFtEt4"> | |
<field name="PROP">metadata.name</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="zKHYs.Y87Qrl9%G~Oq^V"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id=";grqK`+-g7;g50c=|L0l"> | |
<value name="TEXT"> | |
<shadow type="text" id="!y]i-sUsabeyV/)u=6D5"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="4TtGi;Z(gbFaks}Eap^9"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="+]Cns+.i=%b0bFaT6;NI"> | |
<field name="TEXT">XYZ </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="df*#gw3iYx$kvL$9{Y?m"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="g`p?z|x@JeU%MJ4.tSFQ"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="jUN`u.6t[:O8`9Ncql]!"> | |
<field name="PROP">ftcPose.x</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="mb(6}~t}KLoi4`XT~d:H"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="k*}!VVn#l8HSq7E2i?#R"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="mh4H+`GE$Em,(iS4ZjPR"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="y34}1aACqw@S]sESt=A#"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="4Oj?ZaC$d#_1X}?b[T.|"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="2cGf/q9c-ZnJ}LB6C1i$"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="^ZxENE!MDi;z:vW0d@XL"> | |
<field name="PROP">ftcPose.y</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="bYyr?K,sa#Z.])=_ot.X"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="BQJxM*kkA=P:cx1$gjDj"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="$REh~]PUb9LYTO;OfzqZ"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="D7A3=:fGOVPSdci(UQtX"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="FCZL%yFs6[0x{rm0ps54"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="|j[Xf6X[,{Y~6k#Ow9ay"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="@o/Xx/]f-CWGv|Tr)2Nk"> | |
<field name="PROP">ftcPose.z</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="[9!-4|yF{X2|/{iSu:SC"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="ga,Viu`_|ozkv#5q3*@0"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="(E3-dHVlUbl(~6A~LN[p"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id=")9nfo^3]N$S,m~5}*3*="> | |
<field name="TEXT"> (inch)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="6W%[*9{;}.5Jl{VBB=*t"> | |
<value name="TEXT"> | |
<shadow type="text" id=";t?`r+|~SzTLUUHO=;M9"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="$$x)e|XJcO*g[Y8~M2/Q"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="CNSpY2iH=tR#]P,pi4u."> | |
<field name="TEXT">PRY </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="sht8%%Nn`h2}jwZ`-{x)"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="?pMQrP+klggGPQ})NZWJ"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="Iy|1o|tQ9/Xq~XhaEN$_"> | |
<field name="PROP">ftcPose.yaw</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="rVJim4c8+/ys[,t:o!0a"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="mHP*I^3G3|9rAiui`;?f"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="VxWPF,FgQz,lDodmj[WR"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="]dbZO?6z_PP)Na=ij|hW"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="!i;Ow5b5|tm]^:f=af8O"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="xsH[9W8/eLks@vlm]1*g"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="ShLjZCVXxN!~/4l*tkIW"> | |
<field name="PROP">ftcPose.pitch</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="OCoPF8gE#WFKctf6vd6f"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="DyJDDqNjyT?RD%Og91T/"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="M?Svc5)[b)Apn186A8Em"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="7-XP1=zX3p(TS(}va$9`"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id=":tQhsy?3wU|KpZT;GEux"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="v%b/#{Uh]xNL*jCpZAlp"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="rr^=wlJCB2_afebAXJ}Z"> | |
<field name="PROP">ftcPose.roll</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="vBZ8!}wPWKb}V3-g]Wle"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="mu5y,^`sp#UgVsrfnkbc"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="1a@0e%XGstoBjtg)K@p]"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="I*Wn1Gf}j+e`]CP5J0Cp"> | |
<field name="TEXT"> (deg)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="p~aY/Ief^l:6#%yF5mBb"> | |
<value name="TEXT"> | |
<shadow type="text" id="[:Q^{:f(MSqR]$h@YO_G"> | |
<field name="TEXT">text</field> | |
</shadow> | |
<block type="text_join" id="7AAW16ak[E;pRyJ50_pV"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="_D88fgJh36dZBe#kxQkh"> | |
<field name="TEXT">RBE </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="o=,mI,_W=C-(irqk:S^/"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="67$:0vchTm|ZAu?yf9Zs"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="V_e8w[RX[YJ6%2RfwTK4"> | |
<field name="PROP">ftcPose.range</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="5U:C0C|9gsGJwjwric-u"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="E}T84I!akJTmE1gb#KTc"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="UKUfpg-DJ~rM||Pp1;?~"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="/)!A!j+m`c^.RSzJfnW8"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="v,Ilg5bR5*;(#^l3B@-0"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="%)S}?+}8]#C5YOJMTtIz"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="}bh%9Kz6)u_zYo7,L]Iq"> | |
<field name="PROP">ftcPose.bearing</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="B6P^H@vWo+vyX@sYn_ik"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="5ti##om.fc`N4y~4C#;|"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="22o;=,7*otM:5h`-4L|A"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="Q|e}m1um|X;(#X^F`wb("> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="x-{*.Ghd4zinz}U9X3?V"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id=".MdJRQ6rUBU)RFzD8T%o"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="D(K1+O}E+Y7i_ek8}A?z"> | |
<field name="PROP">ftcPose.elevation</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="sv;lYz!5q^E[A|N14(.X"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="GU73O^@;SXL))%*l[8Me"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="4Nv)-M9MfCY%aAn:1SEF"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="x`,kpt}.uw,YSWON!D^j"> | |
<field name="TEXT"> (inch, deg, deg)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
<statement name="ELSE"> | |
<block type="telemetry_addLine" id=".k7)ZU|.JU[vLM%.9oWH"> | |
<value name="TEXT"> | |
<shadow type="text" id="hqwM9[:8R6P;nJWo`z$@"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="Q$XL59m.y(HLLD=Lb6bM"> | |
<mutation items="3"/> | |
<value name="ADD0"> | |
<block type="text" id="GO{s|1|cjZX5wm!s}6^U"> | |
<field name="TEXT">==== (ID </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="aprilTagDetection_getProperty_Number" id="YbKMT]1!N/1orH}f.`^%"> | |
<field name="PROP">id</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="*DZMa]u.xVDWo54-+9Xp"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="Ej2sUV*ZReT^:zwt~{Ar"> | |
<field name="TEXT">) Unknown</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="*wewMc^H[$Rs0;EK}Ow]"> | |
<value name="TEXT"> | |
<shadow type="text" id="2oq;P##KvH:(,WjrIe3!"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="DS^4mx0$o}XW[*EAx9g+"> | |
<mutation items="5"/> | |
<value name="ADD0"> | |
<block type="text" id="~aS!V+hMdY{-*4G3Ow%3"> | |
<field name="TEXT">Center </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="NWWJ-BvdUXyMBZ|RD`m}"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="WWZ1rIy[E-^rf4i5ES.w"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="Kns6PW?m}A;SO?@NVb#)"> | |
<field name="PROP">center.x</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="Ar)`$(G]w1~mg?c!0{v;"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="ZZ080[{./+Y}t=(P1DCR"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="sPPkrRLvHyLpl?+E}RhL"> | |
<field name="NUM">0</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="M[jW(z}Tg(pfF5o6v96v"> | |
<field name="TEXT"/> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="IGswFrO!Q%aCF}3x,SPE"> | |
<value name="NUMBER"> | |
<shadow type="math_number" id="iQ6P;:;Igrei}.mq2:.{"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="P2eT2TYX6nNBSYz7e^E)"> | |
<field name="PROP">center.y</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="ZmOVtYIkx|@b66VSAfd]"> | |
<field name="VAR" id="#N}rZbJ`OBBjBfneH(5M">thisDetection_1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="MQkYmiA}ms4pA[Ifr2gb"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="*L=(!sY,[nz~xV=Ke@]u"> | |
<field name="NUM">0</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="lH92feGire@JDBfwGTlN"> | |
<field name="TEXT"> (pixels)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="PiXmqEM*lcO9ZlW+_zh$" collapsed="true" x="91" y="983"> | |
<field name="NAME">AprilTag telemetry for Portal 2</field> | |
<comment pinned="false" h="80" w="160">Display info (using telemetry) for a recognized AprilTag.</comment> | |
<statement name="STACK"> | |
<block type="variables_set" id="DA}VCy252A_3,#,cMTk^"> | |
<field name="VAR" id="#-fO4*%%y)1L#4aoBjaQ">myAprilTagDetections_2</field> | |
<comment pinned="false" h="80" w="160">Get a list of AprilTag detections.</comment> | |
<value name="VALUE"> | |
<block type="aprilTagProcessor_getDetections" id="zVd1v{na@3HX0wLnNORh"> | |
<value name="APRIL_TAG_PROCESSOR"> | |
<block type="variables_get" id="jeuTx7w(Oxp9*IOEM@xr"> | |
<field name="VAR" id="R845[Ju$~:kO{$^,NIfo">myAprilTagProcessor_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id=",]h6ivYGPHtk{=He`7yT"> | |
<value name="TEXT"> | |
<shadow type="text" id="CY{8FF+XB;GP~RdfJ;!a"> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addTextData_All" id="y9[TlNm#f53kEfY,xE~%"> | |
<value name="KEY"> | |
<shadow type="text" id="qeH^YPq.MMDTbrg(z`sK"> | |
<field name="TEXT">Portal 2 - # AprilTags Detected</field> | |
</shadow> | |
</value> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="lists_length" id="T{O#OI]0^f.)x9jPtl85"> | |
<value name="VALUE"> | |
<block type="variables_get" id="z4ukeRBUJVYA0=tBAem0"> | |
<field name="VAR" id="#-fO4*%%y)1L#4aoBjaQ">myAprilTagDetections_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="controls_forEach" id="3MJ,rl-DNf.u4.CMVE)j"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
<comment pinned="false" h="81" w="199">Iterate through list and call a function to display info for each recognized AprilTag.</comment> | |
<value name="LIST"> | |
<block type="variables_get" id="+N^]KuU-}8BTDGRY[zUh"> | |
<field name="VAR" id="#-fO4*%%y)1L#4aoBjaQ">myAprilTagDetections_2</field> | |
</block> | |
</value> | |
<statement name="DO"> | |
<block type="comment" id="--h-(bQcy6c9DE~@D(tp"> | |
<field name="COMMENT">Display info about the detection.</field> | |
<next> | |
<block type="telemetry_addLine" id="j-zKjg,an9FIpmyJctrS"> | |
<value name="TEXT"> | |
<shadow type="text" id="kc91Z}dd1H!i(6pN{In^"> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="controls_if" id="b^?yBi[(5ib*iLEpCr7F"> | |
<mutation else="1"/> | |
<value name="IF0"> | |
<block type="aprilTagDetection_getProperty_IsNotNull" id="5FRBl*.8KyB?Ke}iKjH?"> | |
<field name="PROP">metadata</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="`tMK!YnrEd@mHAN|=a0k"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="telemetry_addLine" id="j].*_DI/li(fF=InXf/="> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="+or*L`H-h]qG#vZ=g24g"> | |
<mutation items="4"/> | |
<value name="ADD0"> | |
<block type="text" id="$IrOXTmtifm/k@0Bbp+|"> | |
<field name="TEXT">==== (ID </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="aprilTagDetection_getProperty_Number" id="eX9W^=nE[NL$,IY}*n,Q"> | |
<field name="PROP">id</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="gWu]^kNjcBSR_o)u[W!d"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="`bfuJ5xQ:bv`Wl}t|,nx"> | |
<field name="TEXT">) </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="aprilTagDetection_getProperty_String" id="[c=y^F^!fs,RU(|SI#I!"> | |
<field name="PROP">metadata.name</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="qzJ{j%F*LqY=70gy:u^4"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="?l42bu^rFF+!ZA[gu|T5"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="U.lB`85,6i[nlunh+|Q,"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="5*z_]JNRDh_VCaUa1!t$"> | |
<field name="TEXT">XYZ </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="=Z,-1CpGyI32na6),TPO"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="2dkyYdo0+?$HiV}+.Qbo"> | |
<field name="PROP">ftcPose.x</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="]XwumxfTtoX[texFZ=8#"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="aH{KmTn*hQ4I,C{[m53Z"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="tG{!;2oNlFBl[}bDAE4`"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="Tl;)ryF7L|f}muw@8NdD"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id=",3)Eluan#yaw(}KzSQ?a"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id=".;1-W6wgnv3:H@/%uKD|"> | |
<field name="PROP">ftcPose.y</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="cDue%g+}Y#`+V?H(BWr["> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="^E*~f-3^25(m^{E*QU:P"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="x^pUwm2u,+{px7kDP9xY"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="HvqfYcHnj6xAylnSP{}v"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="?/@Qq9xx/Z!9?jN[5+-%"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="L9OR,zM4HYOu*/4mK,+C"> | |
<field name="PROP">ftcPose.z</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="+k0piWr.K+8`yM36V$Jt"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="K/#b:$3t*!E~s(=(N!r$"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="]tAIAfwD1C0BF{YtFdP,"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="y9.G(wkx%DC/@JQZZDTi"> | |
<field name="TEXT"> (inch)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id=",xj4VC^AY*{OKGGMHuig"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="82apN$,S:Y}g8M@6gDuW"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="@qVBz-DN{$h(UpU*MfW)"> | |
<field name="TEXT">PRY </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="phjN,6Z[]8;:OQ7VdA7H"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="x=|vs((`bmn@caF{pT*d"> | |
<field name="PROP">ftcPose.yaw</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="Wn/10f0~3c,?0iAh!mEN"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="f)aJY,c,ee1O@sxXcXg["> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="S*}Xg},iKoeNX9^:t)BW"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="rP;vm6MTQOejszPz5qq*"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="vW0y,kfJ4$k~mn(9NH=E"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id=")b~(2)h9,,qDm$,]+5F3"> | |
<field name="PROP">ftcPose.pitch</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="F@W%AcCim1:j?(yWeQt:"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="Ww.9YO+mgu.3;Wg/WZez"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="KpT{4SGMOmS,NNFh%~_M"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="w@ePXswLn^-XT!p8evP$"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="ZPb.?ndpBsufMJ:,:id$"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="Yzp4vm,5g[VzP3.#(|jh"> | |
<field name="PROP">ftcPose.roll</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="$sC3K9Xm5EE[0d.xS53k"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="4:a*Ovn*B6}Dp}Mmn*_Q"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="H_-]7e*Bu!#~lS;Tw3(#"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="51z_Y^s9O@QpZpMn{]a+"> | |
<field name="TEXT"> (deg)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="yN=Lk==Q?1:#bG.s~Vi{"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">text</field> | |
</shadow> | |
<block type="text_join" id="eKWMc2V:ZE5?nGTl!_A8"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="^A}r;HCHPCj]EQ,N}~|("> | |
<field name="TEXT">RBE </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="?C8j:gwo%BgZ?O7^|rps"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="GQ_)NU*CA#?r*~y+PHmC"> | |
<field name="PROP">ftcPose.range</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="8eq)o+xN1[i*.k*es-dM"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="1)-1N;!0de~@S}qgGKC#"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="Njyh;/bOs{m/6Ch)`PVo"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="mDRVQno68b18BBK[H/$G"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id=")=xYAw7S~$^O(tuh*@*^"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="]ZG|=T|p1uP^VHS}8L}9"> | |
<field name="PROP">ftcPose.bearing</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="x$0Ax}bFZYk_F@XD,wY,"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="wMDM(L:R.^_Y9?Pp,$vn"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="k+U:^V8LW|)(l7(TTB%M"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="v=kVdY1[E:ct`L%@4c~O"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="$l+F2UR0JyWev!32ulg2"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="X?T}}G#n%*z1`UyK2w~]"> | |
<field name="PROP">ftcPose.elevation</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="|a1^4*[.Kf|ZQp[kQm3$"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="m!0^k/oW$|q18Iqhy;^f"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="bmU7[M$#d%u,5ytqaD[W"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="1D7[BYf4bK]$x/!^w(yS"> | |
<field name="TEXT"> (inch, deg, deg)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
<statement name="ELSE"> | |
<block type="telemetry_addLine" id="lZ3MU=#2#~]uaN}hVt2o"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="y@V1;c?q?e|!Xr6(%eF}"> | |
<mutation items="3"/> | |
<value name="ADD0"> | |
<block type="text" id="x-1MH?pNE|ql~hR[M8X}"> | |
<field name="TEXT">==== (ID </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="aprilTagDetection_getProperty_Number" id="*CzHk6}%nW#gJB^,f4J."> | |
<field name="PROP">id</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="^cQRp|hZG:|S4d3ah8=;"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="9KyX1O:A+aV[O[ik)#^5"> | |
<field name="TEXT">) Unknown</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="GmxN2XsIa3(d!GD2yYvU"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="DB[5|#sKwXY50MciHuwO"> | |
<mutation items="5"/> | |
<value name="ADD0"> | |
<block type="text" id="kU[D!6#]j~?wO_y={TLD"> | |
<field name="TEXT">Center </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="sdBI1~-0L{e1{k-$w0j*"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id=";o,O/*^4jG0[-E*5F_~H"> | |
<field name="PROP">center.x</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="}/K/,VnEc[MXICtLk}-o"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="LkLlYm.oV{s[q.^v|}R?"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="R@.;}Mg0h+A1p{{.p@pA"> | |
<field name="NUM">0</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="ll{YV+3HC!wtLQ)thc1K"> | |
<field name="TEXT"/> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="QYTB@h1TZLyYw%!sJx1g"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id=")wjxde#{Ar7lpS},p[^_"> | |
<field name="PROP">center.y</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="neD2mo|vByu?k6mD#{iY"> | |
<field name="VAR" id="vP~n9zf$lW%hYD/C.j_-">thisDetection_2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="F%,bq`Ha#n!wAhhbA,{x"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="Tu..WrltN89hBjvwH;%/"> | |
<field name="NUM">0</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="N8F{IAKp]!-?$#@+BTC7"> | |
<field name="TEXT"> (pixels)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="nv/?U1C{Q{J_-U:Rh$uJ" collapsed="true" x="166" y="1059"> | |
<field name="NAME">AprilTag telemetry for Portal 3</field> | |
<comment pinned="false" h="80" w="160">Display info (using telemetry) for a recognized AprilTag.</comment> | |
<statement name="STACK"> | |
<block type="variables_set" id="n,,~W_^-HH[nJI6;Mi[C"> | |
<field name="VAR" id="gKb]O2H[9HgH6GB,LAf8">myAprilTagDetections_3</field> | |
<comment pinned="false" h="80" w="160">Get a list of AprilTag detections.</comment> | |
<value name="VALUE"> | |
<block type="aprilTagProcessor_getDetections" id="s0T$~eGs~7/mLSr#5Yz+"> | |
<value name="APRIL_TAG_PROCESSOR"> | |
<block type="variables_get" id="Z;$Rol-dFnEx0+uD0*eP"> | |
<field name="VAR" id="=(^@|Tz:xjvrbiC~Y964">myAprilTagProcessor_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="HBJxqBzdE[)$z~3W~]Zf"> | |
<value name="TEXT"> | |
<shadow type="text" id="8rUU+/s2#sREWs,oObs:"> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addTextData_All" id="po,Ez$qppP.oL@_Y,t?g"> | |
<value name="KEY"> | |
<shadow type="text" id="H/^rz|fCex*-$PabaJBL"> | |
<field name="TEXT">Portal 3 - # AprilTags Detected</field> | |
</shadow> | |
</value> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="lists_length" id="KtC,vKMX}X+|u%Sj`xsM"> | |
<value name="VALUE"> | |
<block type="variables_get" id="}MAy)r/3jb_b}MO_UwMO"> | |
<field name="VAR" id="gKb]O2H[9HgH6GB,LAf8">myAprilTagDetections_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="controls_forEach" id="!lqX+%RKH(gCX+SW(]y2"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
<comment pinned="false" h="81" w="199">Iterate through list and call a function to display info for each recognized AprilTag.</comment> | |
<value name="LIST"> | |
<block type="variables_get" id="z##V1MfIl96/!}ZW/#XS"> | |
<field name="VAR" id="gKb]O2H[9HgH6GB,LAf8">myAprilTagDetections_3</field> | |
</block> | |
</value> | |
<statement name="DO"> | |
<block type="comment" id="OPTw?(Bm1UuO[4K;LkUI"> | |
<field name="COMMENT">Display info about the detection.</field> | |
<next> | |
<block type="telemetry_addLine" id="okH}OpHegZi)oeMvy5uE"> | |
<value name="TEXT"> | |
<shadow type="text" id="*v*Xv)9EzJ-{oyA}f4wt"> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="controls_if" id="u^][S#OpE,57,8XTa;we"> | |
<mutation else="1"/> | |
<value name="IF0"> | |
<block type="aprilTagDetection_getProperty_IsNotNull" id="YPvK!5Olbcn!QLuE$FYp"> | |
<field name="PROP">metadata</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="L0RI/,-J|b]#go9$6:aV"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="telemetry_addLine" id="FC*5/M$s:]!r|)3^hWuH"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="HK68qb;t%QhJVx+;_jFN"> | |
<mutation items="4"/> | |
<value name="ADD0"> | |
<block type="text" id=":W9iGt25_j22}u-%D=UE"> | |
<field name="TEXT">==== (ID </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="aprilTagDetection_getProperty_Number" id="r%,^N;b2.r)48~VfdD4s"> | |
<field name="PROP">id</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="[eYo5Ns1,J%dv!u-H:z2"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="=%])rAx_^r^l:5QdGdPW"> | |
<field name="TEXT">) </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="aprilTagDetection_getProperty_String" id="g0=B}.jdq%]vLqV`{$u|"> | |
<field name="PROP">metadata.name</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="nb3Q+Q`Da9TmgNyeX~QW"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="YB(wtpvmVL}tzhx]Yz}k"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="sTc^caBzW7WY}}gT}u_Y"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="E`GTdd$au@VuSEGp3b_%"> | |
<field name="TEXT">XYZ </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="D0%08~cmH{as=8E6c$G,"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="}b,1$L{{$bGn@LiLWgaq"> | |
<field name="PROP">ftcPose.x</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="Q9((6+^x}9qT|91f(?}l"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="Vo6#g~c=lm)Ly%j{Cyh?"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="n=F:gTs#nTinD-@RXSXn"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="qrIcKCj9+l/wu,r[C,u;"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="#`Nczb5,ww-=D{vLBw`W"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="4O0JDu@YqNaiIDfba:HM"> | |
<field name="PROP">ftcPose.y</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="*Pc4[$S`:pD[RgwYKttr"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="m*0p+Y_h#wg5L5uYv1^7"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="u{L:}e3,09S97{zRP9W~"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="Mwe0eL9))RQ34DSMy]?B"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="UV,+Hm#fx6U1,nxSLH+H"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="ZzxOj{~J~MHwrPPBR(.V"> | |
<field name="PROP">ftcPose.z</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="%l^:]W=+pCsBnva_8GuL"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="E${:N*$?0WX)K3W9G1iK"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="p0?xeH#q1gqfKmnILv[^"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id=",Pn8pQDVb:(gl|xkVaSP"> | |
<field name="TEXT"> (inch)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="s%X0+IRv|84Rqq6kLeA}"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id=":^|=[cizs6~wgfxWnO0+"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="0-!!9yoS/+8=kOw_VD5V"> | |
<field name="TEXT">PRY </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="d}.9T{`s!uRq@oHQH0[W"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="jz3g*]u4lIKR,?r[rn*h"> | |
<field name="PROP">ftcPose.yaw</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="yHW!QkR4+KNCE;KVFo`j"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="-hv2tr!PkGBC/zi.A1:2"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id=",sBXg/pHAE^S7h*B.rng"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="fnuQIa*i4rj1(vaTy.@s"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="L0hGCF9}m|SMw#jV{j`0"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="!eES5WaVE(sn$kqZ/DMU"> | |
<field name="PROP">ftcPose.pitch</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="N1v8!_Zcs^+Pl-}*e|iT"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="{nkkeR0av~:Nhu;@iH{q"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="y$|!=!R=PytqmeN}Fi-S"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="PdzQxonZFvtM14x]=nu:"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="$,Yrj.x)N?)E,JzV{DpI"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="BxYLF8xV;j[{//D=7,@E"> | |
<field name="PROP">ftcPose.roll</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="V5YP0;{+q4z8^u%~O@Dd"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="miixpz{:AGKtCuzTQpU}"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id=";_~QzopQT@%m$aA|2yyg"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="f{.._`D%Axn,M`~k_d}U"> | |
<field name="TEXT"> (deg)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="=r;JYC*WNFAJZxSqEJC`"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">text</field> | |
</shadow> | |
<block type="text_join" id="yR-(zy[2yX@Z@WsA25]I"> | |
<mutation items="7"/> | |
<value name="ADD0"> | |
<block type="text" id="#eUFBj7Yi=9Ia2nNr-e?"> | |
<field name="TEXT">RBE </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="f]K+24oFKVRx^(=F^JJC"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="bV?!+2:sVMt;TD]wzqTE"> | |
<field name="PROP">ftcPose.range</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="D(YjcR2#~nQkB{FrKbss"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id=".6CD0R/;0xHfoq6#jCDq"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="6gveE_OM+#$~uSGV{?gh"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="Ve2`H@Qbv:q+yFg5oV!J"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="/#)4lD_tUp?-Ch-6m%zF"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="|;wC2~!D]_Oj7~UBCLQY"> | |
<field name="PROP">ftcPose.bearing</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="/cB)3ni/)D(0]A6#}De;"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="@$VLg]u2y}aD$gvWJsUm"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="D;FZX/J}Rg=#7:q/d0mS"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="{se2d(U+A_RnHPtzXbIy"> | |
<field name="TEXT"> </field> | |
</block> | |
</value> | |
<value name="ADD5"> | |
<block type="misc_formatNumber_withWidth" id="X0_78Is8t}-PpnH.k+Hd"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="iz#Cx8fSDr(*os`{43Tw"> | |
<field name="PROP">ftcPose.elevation</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="(t;Ss:N}4*5oBI2%^jR/"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="OOO(gz5Y@8uX^iB@C(Q7"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="2(H=FU9{[nw;V1]U9{2@"> | |
<field name="NUM">1</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD6"> | |
<block type="text" id="gZO}-ATMX_y$ogD[,3%."> | |
<field name="TEXT"> (inch, deg, deg)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
<statement name="ELSE"> | |
<block type="telemetry_addLine" id="(5|?42J}kSumv@H/+?{V"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="w}O_^O!#otSYuV(Y0wr{"> | |
<mutation items="3"/> | |
<value name="ADD0"> | |
<block type="text" id="h)ESoU!MW2J=f37ZGB{:"> | |
<field name="TEXT">==== (ID </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="aprilTagDetection_getProperty_Number" id="Rb[Ziplt?+y^HODK^lHC"> | |
<field name="PROP">id</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="0=ruIsDd%h3[i*m[vmF^"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="_kd8M3*}xQHLF)*aL6_q"> | |
<field name="TEXT">) Unknown</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="#wUL7%RlL-OS;OQO$,gA"> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT"/> | |
</shadow> | |
<block type="text_join" id="Xx-ZrcJ~3hRi!aNEwG3k"> | |
<mutation items="5"/> | |
<value name="ADD0"> | |
<block type="text" id="y;-#8a_;O@gv:LOA`BzE"> | |
<field name="TEXT">Center </field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="misc_formatNumber_withWidth" id="kX+%L$%0Y$QUE]m2sHrs"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="MQ/slU#oo8e/^yr906}V"> | |
<field name="PROP">center.x</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="|Cp3dyF~1AtRVD,~fPl4"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="7A~Y8NLP+2.i4-*R,f/8"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="xR+Hz(mUFy61Q$PmW`c6"> | |
<field name="NUM">0</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="text" id="eb9Rg6^+JaLRu0)/XBHN"> | |
<field name="TEXT"/> | |
</block> | |
</value> | |
<value name="ADD3"> | |
<block type="misc_formatNumber_withWidth" id="/X$G`%nZo[a0~3OF`|ZG"> | |
<value name="NUMBER"> | |
<shadow type="math_number"> | |
<field name="NUM">3.14159265</field> | |
</shadow> | |
<block type="aprilTagDetection_getProperty_Number" id="lX#eA!=`CJ`hE9RX`M#A"> | |
<field name="PROP">center.y</field> | |
<value name="APRIL_TAG_DETECTION"> | |
<block type="variables_get" id="e?y`x8)TxGg,t1bImfUS"> | |
<field name="VAR" id="M[;eWz=hk$Aa_?=Id[gW">thisDetection_3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<value name="WIDTH"> | |
<shadow type="math_number" id="NKvXfo`PAwd*yFD*r|Na"> | |
<field name="NUM">6</field> | |
</shadow> | |
</value> | |
<value name="PRECISION"> | |
<shadow type="math_number" id="A0z~/|x=x,aOFqMGvZ6M"> | |
<field name="NUM">0</field> | |
</shadow> | |
</value> | |
</block> | |
</value> | |
<value name="ADD4"> | |
<block type="text" id="%}T9.#d8%Yt^b]SGHr9*"> | |
<field name="TEXT"> (pixels)</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="procedures_defnoreturn" id="kZY3mh[z77]eY#o88#s4" collapsed="true" x="261" y="1143"> | |
<field name="NAME">AprilTag telemetry legend</field> | |
<comment pinned="false" h="80" w="160">Describe this function...</comment> | |
<statement name="STACK"> | |
<block type="telemetry_addLine" id="3N{F`jhy%rx/{Xex;5zu"> | |
<value name="TEXT"> | |
<shadow type="text" id="ds{Hr}!u1tUZ{*]D~==j"> | |
<field name="TEXT"/> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="[:W.s1Ok!]MP)3.3IU{#"> | |
<value name="TEXT"> | |
<shadow type="text" id="Pzz,~#oj]g6(p8-kE+HJ"> | |
<field name="TEXT">key:</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="(z3|~vT*DZX[fOyQ2%S["> | |
<value name="TEXT"> | |
<shadow type="text" id="M=~-,X%t3PZW:?]x+FCV"> | |
<field name="TEXT">XYZ = X (Right), Y (Forward), Z (Up) dist.</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="M,AbdMv6W{1dFQc)zQt~"> | |
<value name="TEXT"> | |
<shadow type="text" id="`KTr5c!E2VUU.9*_77qL"> | |
<field name="TEXT">PRY = Pitch, Roll & Yaw (XYZ Rotation)</field> | |
</shadow> | |
</value> | |
<next> | |
<block type="telemetry_addLine" id="uuC6(PL0R.pO7.AFo]db"> | |
<value name="TEXT"> | |
<shadow type="text" id="^GlP*DEB!=^Mvq=zsRKv"> | |
<field name="TEXT">RBE = Range, Bearing & Elevation</field> | |
</shadow> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</xml> | |
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?> | |
<Extra> | |
<OpModeMeta flavor="TELEOP" group="" autoTransition="" /> | |
<Enabled value="true" /> | |
</Extra> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment