[{"data":1,"prerenderedAt":385},["ShallowReactive",2],{"method-zhou2021planeadjust":3},{"method":4,"reference":60,"equipment":81,"figures":108,"results":109},{"id":5,"label":6,"shortName":7,"title":8,"year":9,"era":10,"cluster":11,"scope":12,"keyIdeaZh":13,"keyIdeaEn":14,"fulltextStatus":15,"publicationStatus":16,"recommendation":17,"constructionRelevance":18,"validationEnvironment":19,"strengths":22,"limitations":29,"sensors":35,"platform":37,"estimator":39,"association":40,"timeModel":41,"deskew":42,"loopClosure":43,"globalOptimization":44,"mapRepresentation":45,"prior":46,"outputGeometry":47,"compute":48,"codeUrl":49,"codeLicense":50,"relatedVersions":51},"zhou2021planeadjust","Zhou et al., 2021","Plane-adjustment LiDAR SLAM (indoor)","LiDAR SLAM With Plane Adjustment for Indoor Environment",2021,"recent","C04","full_slam_with_global_correction","這個方法以平面作為室內 LiDAR SLAM 的地標，類比視覺 SLAM 的光束法平差，聯合最佳化關鍵影格位姿與平面參數，作者稱為平面平差。定位執行緒以前向 ICP 流把上一幀的平面點追蹤到目前幀，直接得到局部對全域平面的對應，並在配準中逐點內插掃描內運動；局部建圖在 8 個關鍵影格的滑動視窗內做平面平差，全域建圖則在舊平面被再次觀測時觸發全域平差，不必回到原地即可修正漂移。平面法向量一律指向感測器，用以區分牆與門的兩個表面，避免最近鄰搜尋把兩面混在一起。","Indoor LiDAR SLAM with planes as landmarks: forward ICP flow tracks plane points scan to scan for real-time registration to global planes with in-scan interpolation, local plane adjustment over an 8-keyframe window, and global plane adjustment triggered when planes (not places) are revisited; sensor-facing normals separate the two sides of walls and doors.","full_text_reviewed","peer_reviewed_published","main_body","論文以 NavVis M6 在四個室內場景蒐集資料，並以 NavVis 結合其他 LiDAR、IMU、WiFi 訊號與人工地面控制點經數小時離線融合的軌跡作為參考，屬既有建築室內環境。它以平面為地標聯合最佳化平面與位姿，並能分開重建牆與門的兩個表面，直接對應室內點雲中牆面重影與厚度的問題；但施工中未完成的牆體、臨時構件與堆料會破壞平面假設，論文沒有驗證，屬推論。",[20,21],"completed_building","independent_reference",[23,24,25,26,27,28],"Keyframe ATE of 0.033-0.048 m on four indoor datasets, versus 0.082-0.16 m for pi-LSAM and 0.21-0.34 m for BALM (Table I)","LeGO-LOAM failed on three of four sequences and BALM on one, with large rotations; the proposed method completed all (Table I; Fig. 10)","Local and global plane adjustment each reduce ATE substantially relative to the variants without them (Table I; Fig. 9)","Loop correction can happen when a wall is revisited from a remote place, before returning to the start (Sec. I; Fig. 2; Fig. 9)","Separates the two sides of walls and doors, whereas BALM mixed them on dataset B (Fig. 8; Fig. 11)","Localization runs in about 42-46 ms per 100 ms scan and local plane adjustment is 32 to 37 times faster than direct minimization (Sec. VIII-B)",[30,31,32,33,34],"Designed for indoor environments where planes are abundant (title; Sec. I) (inference that plane-poor scenes are not covered)","Evaluated on four own indoor datasets from one device; ground truth is the NavVis trajectory fused offline (Sec. VIII-A)","Global plane adjustment time has a large standard deviation because it is triggered at different places (Sec. VIII-B)","Assumes the LiDAR starts from a stationary state (Sec. V-A)","No public code (not stated in the paper; none found)",[36],"3D LiDAR only (Velodyne VLP-16 data recorded by a NavVis M6 device)",[38],"NavVis M6 mobile mapping device (carrying mode not described)","three threads in an ORB-SLAM-like structure: real-time scan-to-global-plane registration linearized to first order and iterated up to 5 times (threshold 0.5 deg) with bisquare weights; local plane adjustment (LM) over a sliding window of 8 keyframes and their planes with older poses fixed; global plane adjustment (LM) over all keyframe poses and planes; all with point-to-plane costs (Sec. V-C; Sec. VI; Sec. VII)","forward ICP flow tracks each plane's points from scan k-1 into scan k (2 nearest neighbours, RANSAC plane fit, expansion within 5 cm, at least 30 points, normal change below 15 deg); new planes matched to global planes by normal angle below 10 deg and mean point distance below 5 cm, plus a geometric consistency check; plane normals oriented toward the sensor to separate the two sides of walls and doors (Sec. IV-2; Sec. V; Sec. VI-A)","discrete keyframe poses; within a scan the relative motion is linearly interpolated per point (scaled angle-axis rotation and translation) (Sec. IV-1; Sec. V-C)","per-point linear interpolation of the relative pose inside the registration cost; new keyframe scans are undistorted before plane detection; the first frame is assumed static (Sec. V-A; Sec. V-C; Sec. VI-A)","plane-revisit criterion: global plane adjustment is triggered when previously mapped planes are re-associated, which can happen far from where they were first seen, instead of when a place is revisited (Sec. I; Sec. VI; Sec. VII; Fig. 2)","global plane adjustment jointly refining all keyframe poses and plane parameters (closest-point parameterization) with point-to-plane residuals, solved with the authors' efficient planar bundle adjustment method; per-plane integrated cost matrices updated afterwards (Sec. VII)","global plane landmarks (closest-point parameterization) with their supporting points and keyframe poses; a 4 x 4 integrated cost matrix per plane summarizes observations outside the sliding window (Sec. IV-2; Sec. VI-E; Sec. VI-F)","none (assumes the LiDAR starts stationary)","keyframe trajectory and plane-segmented point map in which both sides of planar objects such as walls and doors are reconstructed separately (Fig. 8)","3.1 GHz Intel i7 CPU with 16 GB memory; localization about 42.1 ms and 45.5 ms per scan on datasets B and C (VLP-16 scan period 100 ms), local mapping about 25 ms, global plane adjustment 395.6 +\u002F- 301.9 ms and 420.2 +\u002F- 330.2 ms (Sec. VIII-B; Table II)",null,"not_applicable (no public code found)",[52,56],{"relation":53,"title":54,"doi_or_url":55},"accepted_manuscript","Author copy on the Kaess lab publication page (RA-L preprint version, accepted June 2021)","https:\u002F\u002Fwww.cs.cmu.edu\u002F~kaess\u002Fpub\u002FZhou21ral2.pdf",{"relation":57,"title":58,"doi_or_url":59},"predecessor_method","pi-LSAM: LiDAR Smoothing and Mapping With Planes (L. Zhou, S. Wang, M. Kaess; ICRA 2021); compared in Table I; not read","https:\u002F\u002Fdoi.org\u002F10.1109\u002FICRA48506.2021.9561933",{"id":5,"kind":61,"shortName":7,"title":8,"authors":62,"year":9,"venue":66,"venueType":67,"publisher":68,"volumeIssuePages":69,"doi":70,"arxivId":49,"url":71,"firstPublicDate":72,"publicationStatus":16,"metadataStatus":73,"fulltextStatus":15,"era":10,"classicReason":74,"codeUrl":49,"cluster":11,"topics":75,"mdpi":76,"verification":77,"label":6,"fulltextRoute":78,"versionRead":79,"addedByCensus":80},"method",[63,64,65],"Lipu Zhou","Daniel Koppel","Michael Kaess","IEEE Robotics and Automation Letters","journal","IEEE","6(4):7073-7080","10.1109\u002Flra.2021.3092274","https:\u002F\u002Fdoi.org\u002F10.1109\u002FLRA.2021.3092274","2021-06-24","metadata_verified","not_applicable",[11],false,"corrected","author copy","accepted manuscript (IEEE RA-L preprint version, 'Accepted June, 2021') from the Kaess lab publication page; IEEE version of record not read",true,[82,89,95,98,102],{"category":83,"model":84,"canonical":84,"role":85,"dataset":86,"specs":87,"locator":88},"lidar","Velodyne VLP-16","method input","own indoor datasets A-D (NavVis M6)","on the NavVis M6; the only data used by the evaluated algorithms; scan period 100 ms","Sec. VIII-A; Sec. VIII-B",{"category":90,"model":91,"canonical":91,"role":92,"dataset":86,"specs":93,"locator":94},"mobile_scanner_device","NavVis M6","reference or ground truth","trajectory estimated by the NavVis system through hours of offline fusion is used as ground truth","Sec. VIII-A",{"category":83,"model":96,"canonical":96,"role":92,"dataset":86,"specs":97,"locator":94},"Hokuyo single-layer LiDARs (three units; model not reported)","part of the NavVis M6; used by NavVis for its reference trajectory",{"category":99,"model":100,"canonical":100,"role":92,"dataset":86,"specs":101,"locator":94},"imu","NavVis M6 IMU (model not reported)","used by NavVis for its reference trajectory",{"category":103,"model":104,"canonical":104,"role":105,"dataset":49,"specs":106,"locator":107},"compute","Intel i7 CPU at 3.1 GHz (model not reported)","compute for runtime","16 GB memory","Sec. VIII-B",[],{"totalRows":110,"groupCount":111,"groups":112,"others":384},38,3,[113,243,326],{"slug":114,"group":115,"sourceId":5,"sourceLabel":6,"table":116,"selfRows":117,"metrics":118,"seqs":157,"entrants":163,"cells":182,"outcomes":236,"locators":237,"hardware":238,"wordings":240,"notes":241},"zhou2021planeadjust-table-ii","zhou2021planeadjust:Table II","Table II",18,[119,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155],{"label":120,"unit":121,"statistic":122,"alignment":74},"Localization: Forward ICP Flow runtime (mean, std 5.1)","ms","mean",{"label":124,"unit":121,"statistic":122,"alignment":74},"Localization: Pose Estimation runtime (mean, std 4.2)",{"label":126,"unit":121,"statistic":122,"alignment":74},"Localization: Keyframe Decision runtime (mean, std 0.031)",{"label":128,"unit":121,"statistic":122,"alignment":74},"Local Mapping: Detect Planes runtime (mean, std 2.9)",{"label":130,"unit":121,"statistic":122,"alignment":74},"Local Mapping: Match Planes runtime (mean, std 3.1)",{"label":132,"unit":121,"statistic":122,"alignment":74},"Local Mapping: GCC runtime (mean, std 0.36)",{"label":134,"unit":121,"statistic":122,"alignment":74},"Local Mapping: LPA runtime (mean, std 3.5)",{"label":136,"unit":121,"statistic":122,"alignment":74},"Global Mapping: GPA runtime (mean, std 301.9)",{"label":138,"unit":121,"statistic":122,"alignment":74},"Global Mapping: Update ICM runtime (mean, std 1.3)",{"label":140,"unit":121,"statistic":122,"alignment":74},"Localization: Forward ICP Flow runtime (mean, std 5.8)",{"label":142,"unit":121,"statistic":122,"alignment":74},"Localization: Pose Estimation runtime (mean, std 4.8)",{"label":144,"unit":121,"statistic":122,"alignment":74},"Localization: Keyframe Decision runtime (mean, std 0.029)",{"label":146,"unit":121,"statistic":122,"alignment":74},"Local Mapping: Detect Planes runtime (mean, std 2.6)",{"label":148,"unit":121,"statistic":122,"alignment":74},"Local Mapping: Match Planes runtime (mean, std 3.2)",{"label":150,"unit":121,"statistic":122,"alignment":74},"Local Mapping: GCC runtime (mean, std 0.35)",{"label":152,"unit":121,"statistic":122,"alignment":74},"Local Mapping: LPA runtime (mean, std 2.9)",{"label":154,"unit":121,"statistic":122,"alignment":74},"Global Mapping: GPA runtime (mean, std 330.2)",{"label":156,"unit":121,"statistic":122,"alignment":74},"Global Mapping: Update ICM runtime (mean, std 1.6)",[158,161],{"dataset":86,"sequence":159,"environment":160},"B (294.0 m)","building interior",{"dataset":86,"sequence":162,"environment":160},"C (391.7 m)",[164,166,168,170,172,174,176,178,180],{"name":165,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Localization: Forward ICP Flow",{"name":167,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Localization: Pose Estimation",{"name":169,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Localization: Keyframe Decision",{"name":171,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Local Mapping: Detect Planes",{"name":173,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Local Mapping: Match Planes",{"name":175,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Local Mapping: GCC",{"name":177,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Local Mapping: LPA",{"name":179,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Global Mapping: GPA",{"name":181,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, Global Mapping: Update ICM",[183,187,190,193,195,198,201,204,207,210,213,216,219,222,224,227,230,233],[184,184,184,185,186,184,184,186,184],0,25.6,-1,[188,188,184,189,186,184,184,186,184],1,16.5,[191,191,184,192,186,184,184,186,184],2,0.076,[111,111,184,194,186,184,184,186,184],10.1,[196,196,184,197,186,184,184,186,184],4,5.7,[199,199,184,200,186,184,184,186,184],5,0.65,[202,202,184,203,186,184,184,186,184],6,8.6,[205,205,184,206,186,184,184,186,184],7,395.6,[208,208,184,209,186,184,184,186,184],8,1.5,[184,211,188,212,186,184,184,186,184],9,28.2,[188,214,188,215,186,184,184,186,184],10,17.3,[191,217,188,218,186,184,184,186,184],11,0.074,[111,220,188,221,186,184,184,186,184],12,9.8,[196,223,188,202,186,184,184,186,184],13,[199,225,188,226,186,184,184,186,184],14,0.67,[202,228,188,229,186,184,184,186,184],15,9.1,[205,231,188,232,186,184,184,186,184],16,420.2,[208,234,188,235,186,184,184,186,184],17,1.7,[],[116],[239],"3.1 GHz Intel i7 CPU, 16 GB memory",[],[242],"Runtime (ms, mean +\u002F- std) of components on datasets B and C",{"slug":244,"group":245,"sourceId":5,"sourceLabel":6,"table":246,"selfRows":220,"metrics":247,"seqs":253,"entrants":261,"cells":276,"outcomes":319,"locators":321,"hardware":322,"wordings":323,"notes":324},"zhou2021planeadjust-table-i","zhou2021planeadjust:Table I","Table I",[248],{"label":249,"unit":250,"statistic":251,"alignment":252},"keyframe ATE (m), median of 5 runs","m","median","not_reported",[254,257,258,259],{"dataset":86,"sequence":255,"environment":256},"A (261.9 m)","building interior, mobile mapping device",{"dataset":86,"sequence":159,"environment":256},{"dataset":86,"sequence":162,"environment":256},{"dataset":86,"sequence":260,"environment":256},"D (139.7 m)",[262,265,268,270,272,274],{"name":263,"methodId":264,"linkable":80,"proposed":76,"self":76},"LeGO-LOAM [8]","legoloam2018",{"name":266,"methodId":267,"linkable":80,"proposed":76,"self":76},"BALM [29]","balm2021",{"name":269,"methodId":49,"linkable":76,"proposed":76,"self":76},"pi-LSAM [22]",{"name":271,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours - LPA - GPA",{"name":273,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours - GPA",{"name":275,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours",[277,278,280,281,282,284,286,287,289,291,293,295,297,299,301,303,305,307,309,310,311,313,315,317],[184,184,184,49,184,184,186,186,184],[184,184,188,279,186,184,186,186,184],1.33,[184,184,191,49,184,184,186,186,184],[184,184,111,49,184,184,186,186,184],[188,184,184,283,186,184,186,186,184],0.34,[188,184,188,285,186,184,186,186,184],0.21,[188,184,191,49,184,184,186,186,184],[188,184,111,288,186,184,186,186,184],0.23,[191,184,184,290,186,184,186,186,184],0.082,[191,184,188,292,186,184,186,186,184],0.16,[191,184,191,294,186,184,186,186,184],0.13,[191,184,111,296,186,184,186,186,184],0.11,[111,184,184,298,186,184,186,186,184],0.29,[111,184,188,300,186,184,186,186,184],0.25,[111,184,191,302,186,184,186,186,184],0.24,[111,184,111,304,186,184,186,186,184],0.46,[196,184,184,306,186,184,186,186,184],0.18,[196,184,188,308,186,184,186,186,184],0.14,[196,184,191,296,186,184,186,186,184],[196,184,111,292,186,184,186,186,184],[199,184,184,312,186,184,186,186,184],0.039,[199,184,188,314,186,184,186,186,184],0.042,[199,184,191,316,186,184,186,186,184],0.033,[199,184,111,318,186,184,186,186,184],0.048,[320],"failed (did not complete the sequence)",[246],[],[],[325],"Keyframe ATE (m), median of 5 runs, on four indoor NavVis M6 datasets (VLP-16 data only) with large rotations; ground truth = offline fused NavVis trajectory; '-' = failed to complete",{"slug":327,"group":328,"sourceId":5,"sourceLabel":6,"table":329,"selfRows":208,"metrics":330,"seqs":344,"entrants":347,"cells":358,"outcomes":378,"locators":379,"hardware":380,"wordings":381,"notes":382},"zhou2021planeadjust-text-sec-viii-b","zhou2021planeadjust:Text Sec. VIII-B","Text Sec. VIII-B",[331,333,335,337,340,342],{"label":332,"unit":121,"statistic":122,"alignment":74},"average runtime of the localization component",{"label":334,"unit":121,"statistic":122,"alignment":74},"plane extraction from scratch (std 5.6)",{"label":336,"unit":121,"statistic":122,"alignment":74},"local mapping runtime (std 5.8)",{"label":338,"unit":339,"statistic":252,"alignment":74},"LPA speed-up versus directly minimizing Eq. (14)","x (factor)",{"label":341,"unit":121,"statistic":122,"alignment":74},"plane extraction from scratch (std 6.1)",{"label":343,"unit":121,"statistic":122,"alignment":74},"local mapping runtime (std 6.3)",[345,346],{"dataset":86,"sequence":159,"environment":160},{"dataset":86,"sequence":162,"environment":160},[348,350,352,354,356],{"name":349,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, localization",{"name":351,"methodId":49,"linkable":76,"proposed":76,"self":76},"pi-LSAM [22], localization",{"name":353,"methodId":5,"linkable":80,"proposed":80,"self":80},"plane extraction of Sec. V-A (instead of plane tracking)",{"name":355,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, local mapping",{"name":357,"methodId":5,"linkable":80,"proposed":80,"self":80},"Ours, LPA with reduced residuals",[359,361,363,365,367,369,371,373,375,376],[184,184,184,360,186,184,184,186,184],42.1,[188,184,184,362,186,184,184,186,184],62.3,[191,188,184,364,186,184,184,186,184],71.3,[111,191,184,366,186,184,184,186,184],25.1,[196,111,184,368,186,184,184,186,184],32,[184,184,188,370,186,184,184,186,184],45.5,[188,184,188,372,186,184,184,186,184],60.7,[191,196,188,374,186,184,184,186,184],73.2,[111,199,188,185,186,184,184,186,184],[196,111,188,377,186,184,184,186,184],37,[],[107],[239],[],[383],"Runtime statements in text for datasets B and C",[],1790510665622]