Skip to content

Instantly share code, notes, and snippets.

@PierrickKoch
Created November 18, 2014 09:33
Show Gist options
  • Save PierrickKoch/6bbcb287aaf23358fe0a to your computer and use it in GitHub Desktop.
Save PierrickKoch/6bbcb287aaf23358fe0a to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="4">
<DB class_id="0" tracking_level="1" version="0" object_id="_0">
<distLSB_>0.2</distLSB_>
<position_ class_id="1" tracking_level="0" version="0">
<xyz>
<count>3</count>
<item>0</item>
<item>0</item>
<item>0</item>
</xyz>
</position_>
<orientation_ class_id="2" tracking_level="0" version="0">
<rpy>
<count>3</count>
<item>0</item>
<item>0</item>
<item>0</item>
</rpy>
</orientation_>
<colors_ class_id="3" tracking_level="0" version="0">
<count>64</count>
<item_version>0</item_version>
<item class_id="4" tracking_level="0" version="0">
<rgb>
<count>3</count>
<item>0.84018773</item>
<item>0.39438292</item>
<item>0.78309923</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.840177</item>
<item>0.77233541</item>
<item>0.39436942</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.08879225</item>
<item>0.8096742</item>
<item>0.71766233</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.70946825</item>
<item>0.40906385</item>
<item>0.82345313</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.5796597</item>
<item>0.9642939</item>
<item>0.064805068</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.32542917</item>
<item>0.69379723</item>
<item>1</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.96250856</item>
<item>0.7900511</item>
<item>0.13542382</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.91102463</item>
<item>0.34070343</item>
<item>0.050705731</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.35276073</item>
<item>0.78958958</item>
<item>0.90582585</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.20696545</item>
<item>0.6995154</item>
<item>0.20343073</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.085374229</item>
<item>0.94720376</item>
<item>0.88781565</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.98643476</item>
<item>0.97503626</item>
<item>0.034851607</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.7856003</item>
<item>0.44017774</item>
<item>0.11511882</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.63264316</item>
<item>0.34141558</item>
<item>0.9041099</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.94122225</item>
<item>0.072755016</item>
<item>0.85761809</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.95754939</item>
<item>0.9211719</item>
<item>0.21469444</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.94947737</item>
<item>0.55008775</item>
<item>0.44551766</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.89275962</item>
<item>0.85084307</item>
<item>0.01608301</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.91799802</item>
<item>0.49231708</item>
<item>0.78014803</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.55109483</item>
<item>0.75539786</item>
<item>0.21551843</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.14881226</item>
<item>0.7401194</item>
<item>0.53116983</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.93394369</item>
<item>0.39975587</item>
<item>0.67215991</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.86502695</item>
<item>0.56639397</item>
<item>0.63385367</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.50551611</item>
<item>0.94326693</item>
<item>0.48421454</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.087714233</item>
<item>0.89877903</item>
<item>0.2479341</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.93935621</item>
<item>0.80573922</item>
<item>0.04233218</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.09033341</item>
<item>0.87373161</item>
<item>0.9662928</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.13539331</item>
<item>0.65983063</item>
<item>0.28789195</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.96635383</item>
<item>0.28834975</item>
<item>0.057038225</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.600824</item>
<item>0.96617073</item>
<item>0.10191501</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.90740824</item>
<item>0.95980775</item>
<item>0.95391774</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.59211904</item>
<item>0.78711683</item>
<item>0.86269605</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.028625926</item>
<item>0.98828107</item>
<item>0.30778974</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.59491873</item>
<item>0.35182726</item>
<item>0.87454033</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.7464866</item>
<item>0.51860839</item>
<item>0.8450141</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.32484931</item>
<item>0.38410011</item>
<item>0.86562908</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.96064699</item>
<item>0.052674145</item>
<item>0.67904174</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.31248951</item>
<item>0.92227054</item>
<item>0.48648813</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.054489966</item>
<item>0.95574886</item>
<item>0.28729686</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.95848018</item>
<item>0.93113601</item>
<item>0.10840009</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.95097274</item>
<item>0.94096285</item>
<item>0.32806897</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.9619745</item>
<item>0.034027617</item>
<item>0.78579384</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.94944686</item>
<item>0.82970929</item>
<item>0.037186235</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.97222859</item>
<item>0.62723738</item>
<item>0.065781645</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.92346072</item>
<item>0.96305794</item>
<item>0.93403524</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.98861676</item>
<item>0</item>
<item>0.76792556</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.26213473</item>
<item>0.95156789</item>
<item>0.94323641</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.41365683</item>
<item>0.97004652</item>
<item>0.078889146</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.85752654</item>
<item>0.1990692</item>
<item>0.22206454</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.053299762</item>
<item>0.93763638</item>
<item>0.99444574</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.8943212</item>
<item>0.62864298</item>
<item>0.10409617</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.76058036</item>
<item>0.048754983</item>
<item>0.91462308</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.83480585</item>
<item>0.70650798</item>
<item>0.51032275</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.89080644</item>
<item>0.12384222</item>
<item>0.26840618</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.32953385</item>
<item>0.81698328</item>
<item>0.51252002</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.39465934</item>
<item>0.75048447</item>
<item>0.75953305</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.92498666</item>
<item>0.94149691</item>
<item>0.12957962</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.91115069</item>
<item>0.52652103</item>
<item>0.73026121</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.76655</item>
<item>0.93766737</item>
<item>0.031084489</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.12669764</item>
<item>0.85318863</item>
<item>0.33537352</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.9853164</item>
<item>0.26496059</item>
<item>0.13821837</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.84317338</item>
<item>0.17844476</item>
<item>0.94212615</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.69955063</item>
<item>0.59048992</item>
<item>0.74391818</item>
</rgb>
</item>
<item>
<rgb>
<count>3</count>
<item>0.67139697</item>
<item>0.87832457</item>
<item>0.69022661</item>
</rgb>
</item>
</colors_>
<enabled_>
<count>64</count>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
</enabled_>
<intensity_>
<count>64</count>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
<item>1</item>
</intensity_>
<minIntensity_>
<count>64</count>
<item_version>0</item_version>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
</minIntensity_>
<maxIntensity_>
<count>64</count>
<item_version>0</item_version>
<item>215</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>245</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>245</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>245</item>
<item>250</item>
<item>250</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>250</item>
<item>255</item>
<item>250</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>245</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
<item>255</item>
</maxIntensity_>
<points_ class_id="7" tracking_level="0" version="0">
<count>64</count>
<item_version>1</item_version>
<item class_id="8" tracking_level="0" version="1">
<px class_id="9" tracking_level="1" version="1" object_id="_1">
<id_>0</id_>
<rotCorrection_>-6.1628823</rotCorrection_>
<vertCorrection_>-6.675746</vertCorrection_>
<distCorrection_>130.64798</distCorrection_>
<distCorrectionX_>135.78352</distCorrectionX_>
<distCorrectionY_>131.66008</distCorrectionY_>
<vertOffsetCorrection_>21.498915</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1100</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_2">
<id_>1</id_>
<rotCorrection_>-4.0365748</rotCorrection_>
<vertCorrection_>-6.412178</vertCorrection_>
<distCorrection_>144.33894</distCorrection_>
<distCorrectionX_>145.74084</distCorrectionX_>
<distCorrectionY_>144.20798</distCorrectionY_>
<vertOffsetCorrection_>21.465403</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1400</focalDistance_>
<focalSlope_>1.8</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_3">
<id_>2</id_>
<rotCorrection_>1.6446072</rotCorrection_>
<vertCorrection_>0.63033801</vertCorrection_>
<distCorrection_>139.36067</distCorrection_>
<distCorrectionX_>140.66003</distCorrectionX_>
<distCorrectionY_>143.54825</distCorrectionY_>
<vertOffsetCorrection_>20.578203</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1100</focalDistance_>
<focalSlope_>1.8</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_4">
<id_>3</id_>
<rotCorrection_>3.8947546</rotCorrection_>
<vertCorrection_>0.98397303</vertCorrection_>
<distCorrection_>143.27403</distCorrection_>
<distCorrectionX_>145.69838</distCorrectionX_>
<distCorrectionY_>150.34117</distCorrectionY_>
<vertOffsetCorrection_>20.533813</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1350</focalDistance_>
<focalSlope_>1.75</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_5">
<id_>4</id_>
<rotCorrection_>-1.8268774</rotCorrection_>
<vertCorrection_>-6.0556989</vertCorrection_>
<distCorrection_>134.41879</distCorrection_>
<distCorrectionX_>138.8304</distCorrectionX_>
<distCorrectionY_>136.21695</distCorrectionY_>
<vertOffsetCorrection_>21.420132</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_6">
<id_>5</id_>
<rotCorrection_>0.45356721</rotCorrection_>
<vertCorrection_>-5.7265792</vertCorrection_>
<distCorrection_>143.36311</distCorrection_>
<distCorrectionX_>145.49699</distCorrectionX_>
<distCorrectionY_>144.13365</distCorrectionY_>
<vertOffsetCorrection_>21.378387</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_7">
<id_>6</id_>
<rotCorrection_>-2.6034126</rotCorrection_>
<vertCorrection_>-8.0740986</vertCorrection_>
<distCorrection_>138.89859</distCorrection_>
<distCorrectionX_>141.00848</distCorrectionX_>
<distCorrectionY_>139.16016</distCorrectionY_>
<vertOffsetCorrection_>21.677355</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_8">
<id_>7</id_>
<rotCorrection_>-0.3563897</rotCorrection_>
<vertCorrection_>-7.6971741</vertCorrection_>
<distCorrection_>152.22441</distCorrection_>
<distCorrectionX_>152.15636</distCorrectionX_>
<distCorrectionY_>151.65552</distCorrectionY_>
<vertOffsetCorrection_>21.629143</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>750</focalDistance_>
<focalSlope_>1.5</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_9">
<id_>8</id_>
<rotCorrection_>2.4295316</rotCorrection_>
<vertCorrection_>-5.6755552</vertCorrection_>
<distCorrection_>130.44359</distCorrection_>
<distCorrectionX_>132.74942</distCorrectionX_>
<distCorrectionY_>132.7494</distCorrectionY_>
<vertOffsetCorrection_>21.37192</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_10">
<id_>9</id_>
<rotCorrection_>4.6727281</rotCorrection_>
<vertCorrection_>-5.0556011</vertCorrection_>
<distCorrection_>148.59485</distCorrection_>
<distCorrectionX_>151.19534</distCorrectionX_>
<distCorrectionY_>152.96985</distCorrectionY_>
<vertOffsetCorrection_>21.29343</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1450</focalDistance_>
<focalSlope_>1.72</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_11">
<id_>10</id_>
<rotCorrection_>1.6355786</rotCorrection_>
<vertCorrection_>-7.4416761</vertCorrection_>
<distCorrection_>129.5433</distCorrection_>
<distCorrectionX_>133.21266</distCorrectionX_>
<distCorrectionY_>128.33463</distCorrectionY_>
<vertOffsetCorrection_>21.596512</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1470</focalDistance_>
<focalSlope_>1.7</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_12">
<id_>11</id_>
<rotCorrection_>3.89238</rotCorrection_>
<vertCorrection_>-7.1097779</vertCorrection_>
<distCorrection_>137.51305</distCorrection_>
<distCorrectionX_>141.882</distCorrectionX_>
<distCorrectionY_>144.88338</distCorrectionY_>
<vertOffsetCorrection_>21.55418</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1750</focalDistance_>
<focalSlope_>1.2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_13">
<id_>12</id_>
<rotCorrection_>-6.129766</rotCorrection_>
<vertCorrection_>-2.712595</vertCorrection_>
<distCorrection_>133.56738</distCorrection_>
<distCorrectionX_>138.56422</distCorrectionX_>
<distCorrectionY_>135.33232</distCorrectionY_>
<vertOffsetCorrection_>20.997992</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_14">
<id_>13</id_>
<rotCorrection_>-3.8754315</rotCorrection_>
<vertCorrection_>-2.2894249</vertCorrection_>
<distCorrection_>145.58334</distCorrection_>
<distCorrectionX_>150.31116</distCorrectionX_>
<distCorrectionY_>149.35709</distCorrectionY_>
<vertOffsetCorrection_>20.944782</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1500</focalDistance_>
<focalSlope_>1.6</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_15">
<id_>14</id_>
<rotCorrection_>-6.8951654</rotCorrection_>
<vertCorrection_>-4.7044559</vertCorrection_>
<distCorrection_>140.89328</distCorrection_>
<distCorrectionX_>144.78519</distCorrectionX_>
<distCorrectionY_>139.74185</distCorrectionY_>
<vertOffsetCorrection_>21.249041</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_16">
<id_>15</id_>
<rotCorrection_>-4.6610165</rotCorrection_>
<vertCorrection_>-4.3552842</vertCorrection_>
<distCorrection_>145.01523</distCorrection_>
<distCorrectionX_>146.85515</distCorrectionX_>
<distCorrectionY_>146.5018</distCorrectionY_>
<vertOffsetCorrection_>21.204945</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1325</focalDistance_>
<focalSlope_>1.925</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_17">
<id_>16</id_>
<rotCorrection_>-1.8648802</rotCorrection_>
<vertCorrection_>-2.0461609</vertCorrection_>
<distCorrection_>136.47121</distCorrection_>
<distCorrectionX_>140.83087</distCorrectionX_>
<distCorrectionY_>137.86198</distCorrectionY_>
<vertOffsetCorrection_>20.914209</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1220</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_18">
<id_>17</id_>
<rotCorrection_>0.39032799</rotCorrection_>
<vertCorrection_>-1.664747</vertCorrection_>
<distCorrection_>143.00824</distCorrection_>
<distCorrectionX_>147.40718</distCorrectionX_>
<distCorrectionY_>147.49557</distCorrectionY_>
<vertOffsetCorrection_>20.866293</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_19">
<id_>18</id_>
<rotCorrection_>-2.6386495</rotCorrection_>
<vertCorrection_>-4.0710511</vertCorrection_>
<distCorrection_>141.04369</distCorrection_>
<distCorrectionX_>145.56398</distCorrectionX_>
<distCorrectionY_>140.15085</distCorrectionY_>
<vertOffsetCorrection_>21.169081</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1240</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_20">
<id_>19</id_>
<rotCorrection_>-0.39268669</rotCorrection_>
<vertCorrection_>-3.716645</vertCorrection_>
<distCorrection_>146.27475</distCorrection_>
<distCorrectionX_>149.12708</distCorrectionX_>
<distCorrectionY_>148.924</distCorrectionY_>
<vertOffsetCorrection_>21.124397</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1380</focalDistance_>
<focalSlope_>1.8</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_21">
<id_>20</id_>
<rotCorrection_>2.3688586</rotCorrection_>
<vertCorrection_>-1.411948</vertCorrection_>
<distCorrection_>135.37781</distCorrection_>
<distCorrectionX_>134.85094</distCorrectionX_>
<distCorrectionY_>135.4254</distCorrectionY_>
<vertOffsetCorrection_>20.834543</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>1.95</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_22">
<id_>21</id_>
<rotCorrection_>4.5974364</rotCorrection_>
<vertCorrection_>-0.98581398</vertCorrection_>
<distCorrection_>141.64417</distCorrection_>
<distCorrectionX_>144.93146</distCorrectionX_>
<distCorrectionY_>146.92064</distCorrectionY_>
<vertOffsetCorrection_>20.781042</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>1.95</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_23">
<id_>22</id_>
<rotCorrection_>1.5896569</rotCorrection_>
<vertCorrection_>-3.4086399</vertCorrection_>
<distCorrection_>141.61916</distCorrection_>
<distCorrectionX_>146.32117</distCorrectionX_>
<distCorrectionY_>142.43164</distCorrectionY_>
<vertOffsetCorrection_>21.085594</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1420</focalDistance_>
<focalSlope_>1.75</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_24">
<id_>23</id_>
<rotCorrection_>3.8439119</rotCorrection_>
<vertCorrection_>-3.058394</vertCorrection_>
<distCorrection_>147.45349</distCorrection_>
<distCorrectionX_>150.52728</distCorrectionX_>
<distCorrectionY_>152.74864</distCorrectionY_>
<vertOffsetCorrection_>21.041498</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1750</focalDistance_>
<focalSlope_>1.3</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_25">
<id_>24</id_>
<rotCorrection_>-6.1752615</rotCorrection_>
<vertCorrection_>1.349239</vertCorrection_>
<distCorrection_>135.02173</distCorrection_>
<distCorrectionX_>141.0809</distCorrectionX_>
<distCorrectionY_>138.608</distCorrectionY_>
<vertOffsetCorrection_>20.487953</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1350</focalDistance_>
<focalSlope_>1.9</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_26">
<id_>25</id_>
<rotCorrection_>-3.9114578</rotCorrection_>
<vertCorrection_>1.6746089</vertCorrection_>
<distCorrection_>139.10507</distCorrection_>
<distCorrectionX_>142.77341</distCorrectionX_>
<distCorrectionY_>140.99947</distCorrectionY_>
<vertOffsetCorrection_>20.447092</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>1.95</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_27">
<id_>26</id_>
<rotCorrection_>-6.9450464</rotCorrection_>
<vertCorrection_>-0.67433798</vertCorrection_>
<distCorrection_>144.81393</distCorrection_>
<distCorrectionX_>148.12817</distCorrectionX_>
<distCorrectionY_>145.36897</distCorrectionY_>
<vertOffsetCorrection_>20.741943</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1290</focalDistance_>
<focalSlope_>1.9</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_28">
<id_>27</id_>
<rotCorrection_>-4.7096062</rotCorrection_>
<vertCorrection_>-0.315974</vertCorrection_>
<distCorrection_>148.67117</distCorrection_>
<distCorrectionX_>149.5425</distCorrectionX_>
<distCorrectionY_>150.51804</distCorrectionY_>
<vertOffsetCorrection_>20.696966</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1400</focalDistance_>
<focalSlope_>1.8</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_29">
<id_>28</id_>
<rotCorrection_>-1.9268099</rotCorrection_>
<vertCorrection_>1.9975311</vertCorrection_>
<distCorrection_>144.15395</distCorrection_>
<distCorrectionX_>145.14111</distCorrectionX_>
<distCorrectionY_>145.54582</distCorrectionY_>
<vertOffsetCorrection_>20.406525</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_30">
<id_>29</id_>
<rotCorrection_>0.34235871</rotCorrection_>
<vertCorrection_>2.339035</vertCorrection_>
<distCorrection_>148.48108</distCorrection_>
<distCorrectionX_>151.02328</distCorrectionX_>
<distCorrectionY_>154.3588</distCorrectionY_>
<vertOffsetCorrection_>20.363605</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1050</focalDistance_>
<focalSlope_>1.8</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_31">
<id_>30</id_>
<rotCorrection_>-2.6993399</rotCorrection_>
<vertCorrection_>-0.020831</vertCorrection_>
<distCorrection_>143.20978</distCorrection_>
<distCorrectionX_>144.70515</distCorrectionX_>
<distCorrectionY_>142.39938</distCorrectionY_>
<vertOffsetCorrection_>20.659925</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_32">
<id_>31</id_>
<rotCorrection_>-0.45347229</rotCorrection_>
<vertCorrection_>0.31178999</vertCorrection_>
<distCorrection_>147.05473</distCorrection_>
<distCorrectionX_>146.6516</distCorrectionX_>
<distCorrectionY_>148.40781</distCorrectionY_>
<vertOffsetCorrection_>20.618183</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1220</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_33">
<id_>32</id_>
<rotCorrection_>-8.9595737</rotCorrection_>
<vertCorrection_>-22.168926</vertCorrection_>
<distCorrection_>137.78574</distCorrection_>
<distCorrectionX_>141.93742</distCorrectionX_>
<distCorrectionY_>138.39674</distCorrectionY_>
<vertOffsetCorrection_>15.946907</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1200</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_34">
<id_>33</id_>
<rotCorrection_>-5.4555283</rotCorrection_>
<vertCorrection_>-21.814474</vertCorrection_>
<distCorrection_>133.71429</distCorrection_>
<distCorrectionX_>135.74365</distCorrectionX_>
<distCorrectionY_>136.76787</distCorrectionY_>
<vertOffsetCorrection_>15.902196</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>550</focalDistance_>
<focalSlope_>1</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_35">
<id_>34</id_>
<rotCorrection_>3.2860825</rotCorrection_>
<vertCorrection_>-11.353779</vertCorrection_>
<distCorrection_>147.88222</distCorrection_>
<distCorrectionX_>148.16196</distCorrectionX_>
<distCorrectionY_>151.92261</distCorrectionY_>
<vertOffsetCorrection_>14.662727</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>400</focalDistance_>
<focalSlope_>0.98000002</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_36">
<id_>35</id_>
<rotCorrection_>6.5976887</rotCorrection_>
<vertCorrection_>-10.597523</vertCorrection_>
<distCorrection_>135.63132</distCorrection_>
<distCorrectionX_>135.47861</distCorrectionX_>
<distCorrectionY_>138.1499</distCorrectionY_>
<vertOffsetCorrection_>14.577623</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>950</focalDistance_>
<focalSlope_>1.55</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_37">
<id_>36</id_>
<rotCorrection_>-2.0624895</rotCorrection_>
<vertCorrection_>-21.421726</vertCorrection_>
<distCorrection_>136.22774</distCorrection_>
<distCorrectionX_>140.22018</distCorrectionX_>
<distCorrectionY_>138.04373</distCorrectionY_>
<vertOffsetCorrection_>15.852912</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>825</focalDistance_>
<focalSlope_>1.5</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_38">
<id_>37</id_>
<rotCorrection_>1.417644</rotCorrection_>
<vertCorrection_>-20.883858</vertCorrection_>
<distCorrection_>127.75196</distCorrection_>
<distCorrectionX_>132.14107</distCorrectionX_>
<distCorrectionY_>132.81682</distCorrectionY_>
<vertOffsetCorrection_>15.785845</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>950</focalDistance_>
<focalSlope_>1.3</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_39">
<id_>38</id_>
<rotCorrection_>-3.3800297</rotCorrection_>
<vertCorrection_>-24.359039</vertCorrection_>
<distCorrection_>144.52171</distCorrection_>
<distCorrectionX_>144.5022</distCorrectionX_>
<distCorrectionY_>140.80573</distCorrectionY_>
<vertOffsetCorrection_>16.228386</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1100</focalDistance_>
<focalSlope_>1.45</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_40">
<id_>39</id_>
<rotCorrection_>0.1682495</rotCorrection_>
<vertCorrection_>-23.910357</vertCorrection_>
<distCorrection_>132.58339</distCorrection_>
<distCorrectionX_>131.52637</distCorrectionX_>
<distCorrectionY_>133.92464</distCorrectionY_>
<vertOffsetCorrection_>16.169956</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>800</focalDistance_>
<focalSlope_>1</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_41">
<id_>40</id_>
<rotCorrection_>4.792532</rotCorrection_>
<vertCorrection_>-20.315331</vertCorrection_>
<distCorrection_>138.44342</distCorrection_>
<distCorrectionX_>144.90091</distCorrectionX_>
<distCorrectionY_>142.35472</distCorrectionY_>
<vertOffsetCorrection_>15.715476</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>850</focalDistance_>
<focalSlope_>1.35</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_42">
<id_>41</id_>
<rotCorrection_>8.2238483</rotCorrection_>
<vertCorrection_>-19.576414</vertCorrection_>
<distCorrection_>125.86684</distCorrection_>
<distCorrectionX_>127.04109</distCorrectionX_>
<distCorrectionY_>129.35956</distCorrectionY_>
<vertOffsetCorrection_>15.624783</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>950</focalDistance_>
<focalSlope_>1.5</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_43">
<id_>42</id_>
<rotCorrection_>3.5976267</rotCorrection_>
<vertCorrection_>-23.32436</vertCorrection_>
<distCorrection_>145.04929</distCorrection_>
<distCorrectionX_>144.97621</distCorrectionX_>
<distCorrectionY_>144.74654</distCorrectionY_>
<vertOffsetCorrection_>16.094252</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>600</focalDistance_>
<focalSlope_>0.92500001</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_44">
<id_>43</id_>
<rotCorrection_>7.1938958</rotCorrection_>
<vertCorrection_>-22.637434</vertCorrection_>
<distCorrection_>130.5688</distCorrection_>
<distCorrectionX_>128.3174</distCorrectionX_>
<distCorrectionY_>130.97116</distCorrectionY_>
<vertOffsetCorrection_>16.006353</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>950</focalDistance_>
<focalSlope_>1.7</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_45">
<id_>44</id_>
<rotCorrection_>-8.7593851</rotCorrection_>
<vertCorrection_>-16.165829</vertCorrection_>
<distCorrection_>145.82303</distCorrection_>
<distCorrectionX_>149.57414</distCorrectionX_>
<distCorrectionY_>147.02496</distCorrectionY_>
<vertOffsetCorrection_>15.216284</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1250</focalDistance_>
<focalSlope_>1.9</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_46">
<id_>45</id_>
<rotCorrection_>-5.3320074</rotCorrection_>
<vertCorrection_>-15.78696</vertCorrection_>
<distCorrection_>135.756</distCorrection_>
<distCorrectionX_>139.69862</distCorrectionX_>
<distCorrectionY_>137.29816</distCorrectionY_>
<vertOffsetCorrection_>15.171827</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>950</focalDistance_>
<focalSlope_>1.425</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_47">
<id_>46</id_>
<rotCorrection_>-10.148769</rotCorrection_>
<vertCorrection_>-19.163635</vertCorrection_>
<distCorrection_>145.04597</distCorrection_>
<distCorrectionX_>150.03922</distCorrectionX_>
<distCorrectionY_>146.155</distCorrectionY_>
<vertOffsetCorrection_>15.574482</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1125</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_48">
<id_>47</id_>
<rotCorrection_>-6.6244941</rotCorrection_>
<vertCorrection_>-18.776081</vertCorrection_>
<distCorrection_>132.19124</distCorrection_>
<distCorrectionX_>135.32909</distCorrectionX_>
<distCorrectionY_>135.60452</distCorrectionY_>
<vertOffsetCorrection_>15.527485</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>650</focalDistance_>
<focalSlope_>1.15</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_49">
<id_>48</id_>
<rotCorrection_>-2.0772009</rotCorrection_>
<vertCorrection_>-15.341337</vertCorrection_>
<distCorrection_>139.60289</distCorrection_>
<distCorrectionX_>144.731</distCorrectionX_>
<distCorrectionY_>142.65448</distCorrectionY_>
<vertOffsetCorrection_>15.119748</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1225</focalDistance_>
<focalSlope_>1.875</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_50">
<id_>49</id_>
<rotCorrection_>1.2786788</rotCorrection_>
<vertCorrection_>-14.773414</vertCorrection_>
<distCorrection_>128.58607</distCorrection_>
<distCorrectionX_>131.0304</distCorrectionX_>
<distCorrectionY_>134.02426</distCorrectionY_>
<vertOffsetCorrection_>15.053697</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1280</focalDistance_>
<focalSlope_>1.85</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_51">
<id_>50</id_>
<rotCorrection_>-3.3361282</rotCorrection_>
<vertCorrection_>-18.367748</vertCorrection_>
<distCorrection_>122.6365</distCorrection_>
<distCorrectionX_>128.2841</distCorrectionX_>
<distCorrectionY_>122.23908</distCorrectionY_>
<vertOffsetCorrection_>15.478201</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>1.9</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_52">
<id_>51</id_>
<rotCorrection_>0.1291665</rotCorrection_>
<vertCorrection_>-17.840813</vertCorrection_>
<distCorrection_>129.87787</distCorrection_>
<distCorrectionX_>133.20433</distCorrectionX_>
<distCorrectionY_>132.92165</distCorrectionY_>
<vertOffsetCorrection_>15.414944</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1350</focalDistance_>
<focalSlope_>1.9</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_53">
<id_>52</id_>
<rotCorrection_>4.547976</rotCorrection_>
<vertCorrection_>-14.248727</vertCorrection_>
<distCorrection_>140.88155</distCorrection_>
<distCorrectionX_>145.97</distCorrectionX_>
<distCorrectionY_>144.04863</distCorrectionY_>
<vertOffsetCorrection_>14.992981</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>900</focalDistance_>
<focalSlope_>1.425</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_54">
<id_>53</id_>
<rotCorrection_>7.9451284</rotCorrection_>
<vertCorrection_>-13.540177</vertCorrection_>
<distCorrection_>131.41243</distCorrection_>
<distCorrectionX_>130.3044</distCorrectionX_>
<distCorrectionY_>134.70674</distCorrectionY_>
<vertOffsetCorrection_>14.911434</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1200</focalDistance_>
<focalSlope_>1.95</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_55">
<id_>54</id_>
<rotCorrection_>3.4268777</rotCorrection_>
<vertCorrection_>-17.278706</vertCorrection_>
<distCorrection_>141.53767</distCorrection_>
<distCorrectionX_>146.0564</distCorrectionX_>
<distCorrectionY_>144.50267</distCorrectionY_>
<vertOffsetCorrection_>15.347877</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1280</focalDistance_>
<focalSlope_>1.75</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_56">
<id_>55</id_>
<rotCorrection_>6.8046985</rotCorrection_>
<vertCorrection_>-16.657265</vertCorrection_>
<distCorrection_>132.71455</distCorrection_>
<distCorrectionX_>134.90912</distCorrectionX_>
<distCorrectionY_>136.89883</distCorrectionY_>
<vertOffsetCorrection_>15.274205</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>1.7</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_57">
<id_>56</id_>
<rotCorrection_>-8.6048508</rotCorrection_>
<vertCorrection_>-10.053406</vertCorrection_>
<distCorrection_>148.2408</distCorrection_>
<distCorrectionX_>149.01433</distCorrectionX_>
<distCorrectionY_>148.19493</distCorrectionY_>
<vertOffsetCorrection_>14.516654</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>975</focalDistance_>
<focalSlope_>1.7</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_58">
<id_>57</id_>
<rotCorrection_>-5.2579379</rotCorrection_>
<vertCorrection_>-9.6759777</vertCorrection_>
<distCorrection_>134.42645</distCorrection_>
<distCorrectionX_>134.96899</distCorrectionX_>
<distCorrectionY_>138.08817</distCorrectionY_>
<vertOffsetCorrection_>14.474483</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>100</focalDistance_>
<focalSlope_>0.89999998</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_59">
<id_>58</id_>
<rotCorrection_>-9.8759251</rotCorrection_>
<vertCorrection_>-13.109887</vertCorrection_>
<distCorrection_>143.73077</distCorrection_>
<distCorrectionX_>144.91365</distCorrectionX_>
<distCorrectionY_>143.74796</distCorrectionY_>
<vertOffsetCorrection_>14.86215</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1200</focalDistance_>
<focalSlope_>2</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_60">
<id_>59</id_>
<rotCorrection_>-6.5025382</rotCorrection_>
<vertCorrection_>-12.651329</vertCorrection_>
<distCorrection_>135.76625</distCorrection_>
<distCorrectionX_>139.61551</distCorrectionX_>
<distCorrectionY_>139.86836</distCorrectionY_>
<vertOffsetCorrection_>14.809817</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>850</focalDistance_>
<focalSlope_>1.4</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_61">
<id_>60</id_>
<rotCorrection_>-2.0821309</rotCorrection_>
<vertCorrection_>-9.2224007</vertCorrection_>
<distCorrection_>143.49657</distCorrection_>
<distCorrectionX_>145.40167</distCorrectionX_>
<distCorrectionY_>145.56778</distCorrectionY_>
<vertOffsetCorrection_>14.423928</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1150</focalDistance_>
<focalSlope_>1.7</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_62">
<id_>61</id_>
<rotCorrection_>1.1466331</rotCorrection_>
<vertCorrection_>-8.6944246</vertCorrection_>
<distCorrection_>134.29178</distCorrection_>
<distCorrectionX_>137.56415</distCorrectionX_>
<distCorrectionY_>138.40834</distCorrectionY_>
<vertOffsetCorrection_>14.365245</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>850</focalDistance_>
<focalSlope_>1.55</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_63">
<id_>62</id_>
<rotCorrection_>-3.2980843</rotCorrection_>
<vertCorrection_>-12.168736</vertCorrection_>
<distCorrection_>148.51079</distCorrection_>
<distCorrectionX_>149.26416</distCorrectionX_>
<distCorrectionY_>150.12695</distCorrectionY_>
<vertOffsetCorrection_>14.754944</vertOffsetCorrection_>
<horizOffsetCorrection_>2.5999999</horizOffsetCorrection_>
<focalDistance_>1300</focalDistance_>
<focalSlope_>1.6799999</focalSlope_>
</px>
</item>
<item>
<px class_id_reference="9" object_id="_64">
<id_>63</id_>
<rotCorrection_>0.027596099</rotCorrection_>
<vertCorrection_>-11.751758</vertCorrection_>
<distCorrection_>137.4386</distCorrection_>
<distCorrectionX_>137.58916</distCorrectionX_>
<distCorrectionY_>138.66365</distCorrectionY_>
<vertOffsetCorrection_>14.707693</vertOffsetCorrection_>
<horizOffsetCorrection_>-2.5999999</horizOffsetCorrection_>
<focalDistance_>1225</focalDistance_>
<focalSlope_>1.825</focalSlope_>
</px>
</item>
</points_>
</DB>
</boost_serialization>
//
// The following are some example C++ snippets that show how to parse a packet
// from the Velodyne Lidar Scanner and convert the data time of flight distance
// information into a 3D position.
//
//
// Various constants used in the example code:
//
const guint VLS_PORT = 2368; // UDP port for broadcast of packets from scanner
const guint VLS_PKT_LEN = 1248; // Total length of a lidar packet
const guint VLS_DATA_LEN_V1 = 1216; // Payload size of old lidar packet (not used anymore)
const guint VLS_DATA_LEN_V2 = 1214; // Payload size of new lidar packet
const guint VLS_TRAILER_LEN = 6; // Length of trailer data
const guint VLS_LINK_HDR_LEN = 14; // Length of ethernet header
const guint VLS_IP_VERSION = 4; // IPv4
const guint VLS_IP_PROTO = 17; // UDP
const guint VLS_HDR_LEN = 42; // Length of lidar packet headers (before payload)
const guint VLS_FIRING_PER_PKT = 12; // Number of firings per packet
const guint VLS_LASER_PER_FIRING = 32; // Number of lasers in a firing
const guint VLS_MAX_NUM_LASERS = 64; // Total number of lasers
const guint VLS_NUM_ROT_ANGLES = 36000; // Number of rotation values (0 through 35999(
const guint VLS_NUM_BLOCKS = 2; // Number of "firing blocks" (lasers 0-31 and 32-63)
// Enum for the "select" value used to descriminate between firing blocks
enum LaserBlockSelect {
BLOCK_0_TO_31 = 0xeeff,
BLOCK_32_TO_63 = 0xddff
};
//
// Data structures for data within a packet's payload. The payload for a packet
// consists of VLS_FIRING_PER_PKT number of vls_firing structs which contain
// the firing data.
//
/** Laser data point. */
typedef struct vls_point {
guint16 distance;
guint8 intensity;
} __attribute__((packed)) vls_point_t;
/** Firing data from a set of lasers. */
typedef struct vls_firing {
guint16 select; // which firing block this is from, block 0 (lasers 0-31) has a value
// of 0xeeff while block 1 (lasers 32-63) has a value of 0xddff
guint16 position;
vls_point_t points[VLS_LASER_PER_FIRING];
} __attribute__((packed)) vls_firing_t;
//
// Function to sanity check a packet header to make sure it is valid. These
// checks are overly paranoid and can probably be omitted, but are good for
// validating new code. This also shows what the each packet header is comprised
// of and at the end a pointer is returned which points to the data payload.
//
guchar *
sanityCheckPacket(boost::shared_ptr<PcapData> pkt) throw (VlsException)
{
// Check that the packet size is expected
if (pkt->getPktLen() != VLS_PKT_LEN || pkt->getPktCapLen() != VLS_PKT_LEN) {
std::stringstream errStr;
errStr << "Packet is incorrect size " << pkt->getPktLen();
throw VlsException(errStr.str());
}
// Advance the buffer pointer past the link level header
guchar *ptr = pkt->getPktData().get() + VLS_LINK_HDR_LEN;
// Check that IP header makes sense
struct ip *ip_hdr = (struct ip *)ptr;
if (ip_hdr->ip_v != VLS_IP_VERSION) // check IP version
throw VlsException("Invalid IP version");
if (ip_hdr->ip_p != VLS_IP_PROTO) // check that the protocol is UDP
throw VlsException("Invalid protocol");
// Advance the buffer pointer past the IP header
ptr += 4 * ip_hdr->ip_hl;
// Check that UDP header makes sense
struct udphdr *udp_hdr = (struct udphdr *)ptr;
if (ntohs(udp_hdr->dest) != VLS_PORT)
throw VlsException("Invalid UDP destination port");
guint16 len = ntohs(udp_hdr->len);
if (len != VLS_DATA_LEN_V1 && len != VLS_DATA_LEN_V2) {
std::stringstream errStr;
errStr << "Invalid data payload length " << ntohs(udp_hdr->len);
throw VlsException(errStr.str());
}
// Advance the buffer pointer past the UDP header
ptr += sizeof(struct udphdr);
return ptr;
}
//
// Function to add individual packets to a scan structure and determine the
// boundary between scans. In this code the notion of a scan is all packets
// within one rotation (from 0 to 359 degrees), although this is an arbitrary
// boundary.
//
void
ScanBuilder::addPkt(boost::shared_ptr<PcapData> pkt, const fpos_t &pos) throw (VlsException)
{
// First check that this isn't out of order
if (pkt->getPktTimestamp() < lastTimestamp_) {
std::stringstream errStr;
errStr << "New packet is out of order: last " << lastTimestamp_ << " cur " << pkt->getPktTimestamp();
throw VlsException(errStr.str());
}
// Sanity check the packet
guchar *ptr = sanityCheckPacket(pkt); // can throw
// Process the laser samples
guint numFirings = 0;
for (guint i=0; i < VLS_FIRING_PER_PKT; i++, numFirings++) {
// Map the firing structure into the packet
vls_firing_t *hdr = (vls_firing_t *)ptr;
// Check the position to see if we have wrapped around
if (hdr->position < lastPosition_) {
// Push the current packet into the scan if it isn't first sample
if (numFirings != 0)
curScan_->addPacket(pkt, pos, numFirings);
// Emit constructed last Packet
if (!curScan_->empty())
newScanSignal_.emit(curScan_);
// Create a new scan structure, increase index
numFirings = 0;
curScan_ = boost::shared_ptr<Scan>(new Scan(pcap_, db_));
}
// Advance pointer after checking for wrap around
ptr += sizeof(vls_firing_t);
// Update our position
lastPosition_ = hdr->position;
}
// Push the packet into the current Scan
if (numFirings != 0)
curScan_->addPacket(pkt, pos, numFirings);
// Don't forget to update the timestamp
lastTimestamp_ = pkt->getPktTimestamp();
}
//
// Function to convert time of flight information into 3D position. This isn't
// particularly optimized, for clarity sake, other than that most sine and cosine values have been
// precomputed. The "db" object holds the calibration data for each laser
// and the "pos" object holds the current 3D position of the scanner (i.e. from GPS).
// This code doesn't factor in orientation of the scanner (roll, pitch, yaw), but it is
// fairly straightforward to factor these values in. The physical offsets between the two laser blocks
// is not currently taken into account, but adding these corrections is fairly straightforward. Please
// note that this code is structured try and make it clear about how the various corrections are applied
// and is not the most efficient implementation.
//
// The following correction values are used:
//
// distLSB - the CM value for the lsb of a time of flight distance reading
// vertCorrection - the elevation angle for each laser (positive rotates the beam towards the top of the scanner)
// rotCorrection - the azimuth angle offset for each laser (offset from the current rotation angle, positive rotates the beam counter-clockwise)
// distCorrection - a CM distance offset applied to the time of flight distance given by laser
// horizOffsetCorrection - a horizontal parallax correction (orthogonal to laser beam)
// vertOffsetCorrection - a vertical parallax correction (orthogonal to laser beam)
//
// *Note: If the beam were initially pointed directly along +y axis of the world frame, a positive horizontal offset
// correction would shift the beam to the left (-x) and a positive vertial offset correction correction
// whould shift the beam up (+z)
//
// In these computations the positive Y-axis is at rotational degree zero and the scanner
// rotates clockwise around the Z-axis.
//
void
firingData::computeCoords(guint16 laserNum, boost::shared_ptr<CalibrationDB> db, GLpos_t &pos)
{
guint16 idx = laserNum % VLS_LASER_PER_FIRING;
boost::shared_ptr<CalibrationPoint> cal = db->getCalibration(laserNum);
if (data->points[idx].distance == 0) {
coords[idx].setX(0.0);
coords[idx].setY(0.0);
coords[idx].setZ(0.0);
return;
}
float distance = (db->getDistLSB() * (float)data->points[idx].distance) + cal->getDistCorrection();
float cosVertAngle = cal->getCosVertCorrection();
float sinVertAngle = cal->getSinVertCorrection();
float cosRotCorrection = cal->getCosRotCorrection();
float sinRotCorrection = cal->getSinRotCorrection();
// cos(a-b) = cos(a)*cos(b) + sin(a)*sin(b)
// sin(a-b) = sin(a)*cos(b) - cos(a)*sin(b)
float cosRotAngle = rotCosTable[data->position]*cosRotCorrection + rotSinTable[data->position]*sinRotCorrection;
float sinRotAngle = rotSinTable[data->position]*cosRotCorrection - rotCosTable[data->position]*sinRotCorrection;
distance /= VLS_DIM_SCALE;
// The offset corrections are to be applied in planes orthogonal to the rotatation corrected beam
float hOffsetCorr = cal->getHorizOffsetCorrection()/VLS_DIM_SCALE;
float vOffsetCorr = cal->getVertOffsetCorrection()/VLS_DIM_SCALE;
// / (distance, shifted by vertical offset)
// z ^ /
// | /
// --> y / distance
// / / / vertOffsetCorrection
// v x / / +-----------+
// / / | ^ |
// / / | | |
// vertOffset/ / |<----o | horizOffsetCorrection
// \ / | |
// \ 90deg / | |
// \ / xyDist +-----------+
// 90-theta \ / theta | Note: the "o" represents the beam pointing into the screen
// ------------------------ if the beam were aligned with +y in the world frame
// ^ | ^ then vertOffset would be aligned with +z and hoizOffset
// | distance*cos(theta) would be aligned with -x
// vertOffset*cos(90-theta) = vertOffset*sin(theta)
//
// Note: theta = vertCorrection angle
//
// / (x,y)
// /
// y /
// ^ / xyDist
// | / | /
// -->x \ |theta/
// \ | /
// horizOff \ | /
// ----/-------- xyDist*sin(theta)
//
// Note: theta = rotCorrection angle
// Compute the distance in the xy plane (without accounting for rotation)
float xyDistance = distance * cosVertAngle - vOffsetCorr * sinVertAngle;
// pos is the position of the scanner, factor in rotation angle and horizontal offset
coords[idx].setX(xyDistance * sinRotAngle - hOffsetCorr * cosRotAngle + pos.getX()/VLS_DIM_SCALE);
coords[idx].setY(xyDistance * cosRotAngle + hOffsetCorr * sinRotAngle + pos.getY()/VLS_DIM_SCALE);
coords[idx].setZ(distance * sinVertAngle + vOffsetCorr * cosVertAngle + pos.getZ()/VLS_DIM_SCALE);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment