[{"data":1,"prerenderedAt":371},["ShallowReactive",2],{"method-zhang2018lvio":3},{"method":4,"reference":58,"equipment":78,"figures":145,"results":146},{"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":23,"limitations":29,"sensors":35,"platform":39,"estimator":45,"association":46,"timeModel":47,"deskew":48,"loopClosure":49,"globalOptimization":50,"mapRepresentation":51,"prior":52,"outputGeometry":53,"compute":54,"codeUrl":55,"codeLicense":56,"relatedVersions":57},"zhang2018lvio","Zhang & Singh, 2018","Zhang & Singh LVIO (JFR 2018)","Laser-visual-inertial odometry and mapping with high robustness and low drift",2018,"recent","C07","odometry_with_local_mapping","此研究以 3D 雷射掃描儀、相機與 IMU 建立多層次、依序執行的管線，由粗到細估計運動，而非卡爾曼濾波或因子圖：先以 IMU 機械編排（200 Hz）預測運動，再以關鍵影格式視覺慣性里程計（50 Hz）估計運動並為特徵點補上雷射深度，最後以掃描配準（5 Hz）精修位姿，並把點雲配準到以兩層體素管理的地圖。相機與雷射的結果回饋修正 IMU 的速度漂移與偏差；各模組以特徵值判斷退化方向，只在條件良好的方向更新，因此相機或雷射失效時可整段或部分略過該模組。論文另延伸到在既有地圖上定位。本文擴充自作者 2017 年的 ICRA 與 FSR 論文，並把 V-LOAM（ICRA 2015）當作另一個既有方法比較，兩者不是同一方法。","A coarse-to-fine multilayer pipeline (IMU prediction, visual-inertial estimation, LiDAR scan matching) with automatic reconfiguration around failed modules.","full_text_reviewed","peer_reviewed_published","background","未在施工工地測試。與營建相關的證據包括：以自製手持裝置 Contour 掃描四層住宅的外部與地下室至三樓室內（約 0.5 m\u002Fs，地圖品質僅目視檢查）、另一棟建物的室內地圖，以及 380 m 平滑隧道與機場跑道等雷射退化情境（掃描配準只更新部分自由度）。精度指標多為衛星影像比對或迴圈缺口得到的上限估計，沒有獨立參考量測。",[20,21,22],"underground_or_tunnel","completed_building","cross_site",[24,25,26,27,28],"Relative position error below 0.22% over 9.3 km of street driving, versus 0.39% for LOAM and 0.33% for V-LOAM on the same data (Tables 3 to 4, Fig. 18)","At doubled data speed (every other frame skipped) the complete pipeline degrades only from 0.22% to 0.26%, while visual-inertial only and IMU plus scan matching reach 1.47% and 0.89% (Table 3)","Keeps operating in night driving, on open ground, on a flat runway and in a 380 m smooth tunnel by bypassing the camera or the degenerate lidar directions (Sec. 10.1.2, Figs. 20 to 23)","Handles angular rates above 250 deg\u002Fs handheld, up to 370 deg\u002Fs with Contour, and linear speed up to 33 m\u002Fs (Secs. 10.1.3, 10.2)","Localization on a prior map with estimated error below 2 cm across summer and winter forest runs, and air-ground map sharing with a drone (Sec. 10.3)",[30,31,32,33,34],"Accuracy values are upper bounds from satellite-image overlays, loop gaps or map inspection; the authors state precision cannot be guaranteed, and vertical drift could not be evaluated in the high-speed test (Secs. 10.1.1, 10.1.3)","Contour building maps are only visually inspected because ground truth was hard to obtain (Sec. 10.2)","Lidar degenerates in planar scenes (open ground, runway, smooth tunnel), where scan matching refines only 3 of 6 DoF (Sec. 10.1.2, Fig. 21)","The IMU is assumed always reliable; IMU biases are corrected by a non-standard sliding-window average rather than random-walk optimization (Secs. 4.2, 8)","The map is truncated when the sensor approaches the map boundary (Sec. 6.3)",[36,37,38],"3D LiDAR (Velodyne HDL-32E or Velodyne VLP-16 at 5 Hz; on the handheld Contour a Hokuyo UTM-30LX-EW spun at 1 Hz)","IMU (Xsens MTi-30 at 200 Hz; Xsens MTi-20 on Contour)","monochrome camera (uEye UI-1220SE, 752x480, 76 deg horizontal FoV, 50 Hz) on the two Velodyne suites; on Contour a 640x512 wide-angle camera for motion estimation and a 1600x1200 HD color camera for point colorization",[40,41,42,43,44],"passenger vehicle (street driving up to 33 m\u002Fs)","utility vehicle (off-road)","handheld, and helmet-mounted with a backpack computer (walking, running, jumping)","custom handheld Contour device","DJI S1000 drone (localization on a ground-built map)","sequential multilayer coarse-to-fine pipeline, not a Kalman filter or factor graph: IMU mechanization predicts motion; keyframe visual-inertial odometry solves a marginalized 6-DoF problem (landmarks not optimized) by Newton gradient descent with robust fitting; scan matching refines pose with prior-motion constraints; camera and lidar feedback correct IMU velocity drift and biases through a sliding-window average; degenerate directions are found from eigenvalues and only well-conditioned directions are updated, so failed modules are bypassed fully or partially (Secs. 3 to 8)","visual: up to 300 Harris corners tracked by KLT; depth from a lidar depthmap (three nearest points on a unit sphere in a 2D KD-tree, validity check, planar interpolation) or Bayesian triangulation, and features without depth also used; lidar: edge and planar points selected by local smoothness and matched to map point clusters verified by eigenvalue analysis, with point-to-line and point-to-plane distances (Secs. 5.3, 6.1 to 6.2, 10.1)","discrete poses with IMU prediction at 200 Hz, visual-inertial odometry at 50 Hz and scan matching at 5 Hz (1 Hz on Contour), integrated to output at IMU rate (Secs. 5.2, 7, 10.2)","each scan is locally registered using visual-inertial odometry key-poses with IMU interpolation between them before feature extraction (Sec. 6.1)","none; drift is measured at loop returns, e.g., a building registered twice at the start and end of Accuracy Test 2 (Sec. 10.1.1, Fig. 18)","none; the authors avoid full-scale MAP estimation and solve small problems sequentially (Secs. 3.2, 5.2)","two-level voxel map of edge and planar points truncated around the sensor, with a 3D KD-tree per voxel; map downsampled to constant density after each merge; scan matching on up to four CPU threads (Secs. 6.3 to 6.4, Table 1)","none for odometry; optional localization on an existing map by matching stacked scans at 0.5 Hz (Secs. 9, 10.3)","dense registered 3D point cloud maps; Contour colorizes points with its HD camera (Sec. 10.2); export format not_reported","laptop with 2.6 GHz i7 quad-core (8 threads) and integrated GPU under ROS: visual-inertial odometry 4.2 to 5.5 ms per image with GPU feature tracking and 12.9 to 15.2 ms on CPU, scan matching 103 to 267 ms per scan (Table 2); Contour embedded 1.8 GHz i7 dual-core: 6.4 to 18.7 ms per image and 162 to 343 ms per scan at 1 Hz (Table 5)",null,"not_verified",[],{"id":5,"kind":59,"shortName":7,"title":60,"authors":61,"year":9,"venue":64,"venueType":65,"publisher":66,"volumeIssuePages":67,"doi":68,"arxivId":55,"url":69,"firstPublicDate":70,"publicationStatus":16,"metadataStatus":71,"fulltextStatus":15,"era":10,"classicReason":72,"codeUrl":55,"cluster":11,"topics":73,"mdpi":74,"verification":75,"label":6,"fulltextRoute":76,"versionRead":77,"addedByCensus":74},"method","Laser–visual–inertial odometry and mapping with high robustness and low drift",[62,63],"Ji Zhang","Sanjiv Singh","Journal of Field Robotics","journal","Wiley","35(8): 1242-1264","10.1002\u002Frob.21809","https:\u002F\u002Fapi.openalex.org\u002Fworks\u002Fdoi:10.1002\u002Frob.21809","2018-08-23","metadata_verified","not_applicable",[11],false,"confirmed","author copy","author-hosted PDF of the Wiley version of record (typeset, J Field Robotics 35:1242-1264, © 2018 Wiley Periodicals)",[79,85,89,94,98,104,110,115,119,124,128,131,134,137,141],{"category":80,"model":81,"canonical":81,"role":82,"dataset":55,"specs":83,"locator":84},"lidar","Velodyne HDL-32E","method input","360 deg horizontal and 40 deg vertical FoV, 0.7 million points per second at 5 Hz spinning rate","Sec. 10.1, Fig. 16a",{"category":80,"model":86,"canonical":86,"role":82,"dataset":55,"specs":87,"locator":88},"Velodyne VLP-16","360 deg horizontal and 30 deg vertical FoV, 0.3 million points per second at 5 Hz spinning rate","Sec. 10.1, Fig. 16b",{"category":90,"model":91,"canonical":91,"role":82,"dataset":55,"specs":92,"locator":93},"camera","uEye UI-1220SE","monochrome, 752 x 480 px, 76 deg horizontal FoV, 50 Hz","Sec. 10.1, Fig. 16",{"category":95,"model":96,"canonical":96,"role":82,"dataset":55,"specs":97,"locator":93},"imu","Xsens MTi-30","200 Hz",{"category":99,"model":100,"canonical":100,"role":101,"dataset":55,"specs":102,"locator":103},"compute","laptop with 2.6 GHz i7 quad-core processor","compute for runtime","8 threads, integrated GPU, Linux with ROS","Sec. 10.1, Table 2",{"category":105,"model":106,"canonical":107,"role":82,"dataset":55,"specs":108,"locator":109},"platform","passenger vehicle","Passenger vehicle","street driving; both sensor suites attached","Fig. 16c",{"category":105,"model":111,"canonical":112,"role":82,"dataset":55,"specs":113,"locator":114},"utility vehicle","Utility vehicle","off-road driving; both sensor suites attached","Fig. 16d",{"category":105,"model":116,"canonical":116,"role":82,"dataset":55,"specs":117,"locator":118},"helmet-mounted sensor suite with processing computer in a backpack","operator running and jumping over a vehicle","Fig. 1",{"category":120,"model":121,"canonical":121,"role":82,"dataset":55,"specs":122,"locator":123},"mobile_scanner_device","Contour","handheld device with spinning 2D scanner, wide-angle and HD cameras, Xsens IMU, embedded computer and touch-screen monitor","Sec. 10.2, Fig. 27",{"category":80,"model":125,"canonical":126,"role":82,"dataset":55,"specs":127,"locator":123},"Hokuyo UTM-30LX-EW","Hokuyo UTM-30LX","43.2 thousand points per second; on a motor-encoder shaft spinning at 1 Hz to act as a 3D scanner (Contour)",{"category":90,"model":129,"canonical":129,"role":82,"dataset":55,"specs":130,"locator":123},"wide-angle camera (model not_reported)","640 x 512 px, used for motion estimation (Contour)",{"category":90,"model":132,"canonical":132,"role":82,"dataset":55,"specs":133,"locator":123},"HD color camera (model not_reported)","1600 x 1200 px, used for point cloud colorization (Contour)",{"category":95,"model":135,"canonical":135,"role":82,"dataset":55,"specs":136,"locator":123},"Xsens MTi-20","on Contour",{"category":99,"model":138,"canonical":138,"role":101,"dataset":55,"specs":139,"locator":140},"embedded computer with 1.8 GHz i7 dual-core processor","four threads, on Contour","Sec. 10.2, Table 5",{"category":105,"model":142,"canonical":142,"role":82,"dataset":55,"specs":143,"locator":144},"DJI S1000","drone carrying a sensor suite identical to Fig. 16b; flown at 2 to 3 m\u002Fs","Sec. 10.3, Fig. 32",[],{"totalRows":147,"groupCount":148,"groups":149,"others":345},39,8,[150,213,259,309],{"slug":151,"group":152,"sourceId":5,"sourceLabel":6,"table":153,"selfRows":154,"metrics":155,"seqs":162,"entrants":169,"cells":177,"outcomes":206,"locators":207,"hardware":208,"wordings":210,"notes":211},"zhang2018lvio-table-2","zhang2018lvio:Table 2","Table 2",12,[156,160],{"label":157,"unit":158,"statistic":159,"alignment":72},"time per image frame","ms","mean",{"label":161,"unit":158,"statistic":159,"alignment":72},"time per laser scan",[163,167],{"dataset":164,"sequence":165,"environment":166},"authors' data","Figure 16a (HDL-32E)","Structured environment",{"dataset":164,"sequence":168,"environment":166},"Figure 16b (VLP-16)",[170,173,175],{"name":171,"methodId":5,"linkable":172,"proposed":172,"self":172},"Visual-inertial odometry, GPU feature tracking",true,{"name":174,"methodId":5,"linkable":172,"proposed":172,"self":172},"Visual-inertial odometry, CPU feature tracking",{"name":176,"methodId":5,"linkable":172,"proposed":172,"self":172},"Scan matching",[178,182,185,188,190,192,194,196,198,200,202,204],[179,179,179,180,181,179,179,181,179],0,4.8,-1,[183,179,179,184,181,179,179,181,179],1,14.3,[186,183,179,187,181,179,179,181,179],2,148,[179,179,183,189,181,179,179,181,179],4.2,[183,179,183,191,181,179,179,181,179],12.9,[186,183,183,193,181,179,179,181,179],103,[179,179,179,195,181,179,179,181,179],5.5,[183,179,179,197,181,179,179,181,179],15.2,[186,183,179,199,181,179,179,181,179],267,[179,179,183,201,181,179,179,181,179],5.1,[183,179,183,203,181,179,179,181,179],14.7,[186,183,183,205,181,179,179,181,179],191,[],[153],[209],"laptop, 2.6 GHz i7 quad-core (8 threads), integrated GPU, Linux with ROS",[],[212],"Average CPU processing time with the two Velodyne sensor suites",{"slug":214,"group":215,"sourceId":5,"sourceLabel":6,"table":216,"selfRows":148,"metrics":217,"seqs":223,"entrants":227,"cells":236,"outcomes":253,"locators":254,"hardware":255,"wordings":256,"notes":257},"zhang2018lvio-table-1","zhang2018lvio:Table 1","Table 1",[218,220],{"label":219,"unit":158,"statistic":159,"alignment":72},"K-D tree build time per tree",{"label":221,"unit":222,"statistic":159,"alignment":72},"K-D tree query time per point","ns",[224],{"dataset":225,"sequence":226,"environment":226},"authors' data (multiple environments)","",[228,230,232,234],{"name":229,"methodId":5,"linkable":172,"proposed":74,"self":172},"Scan matching map: One-level voxels, K-D trees for all voxels",{"name":231,"methodId":5,"linkable":172,"proposed":74,"self":172},"Scan matching map: One-level voxels, K-D trees for each voxel",{"name":233,"methodId":5,"linkable":172,"proposed":74,"self":172},"Scan matching map: Two-level voxels, K-D trees for all voxels",{"name":235,"methodId":5,"linkable":172,"proposed":172,"self":172},"Scan matching map: Two-level voxels, K-D trees for each voxel (adopted)",[237,239,240,242,244,246,248,251],[179,179,179,238,181,179,181,181,179],54,[179,183,179,189,181,179,181,181,179],[183,179,179,241,181,179,181,181,179],47,[183,183,179,243,181,179,181,181,179],4.1,[186,179,179,245,181,179,181,181,179],24,[186,183,179,247,181,179,181,181,179],2.4,[249,179,179,250,181,179,181,181,179],3,21,[249,183,179,252,181,179,181,181,179],2.3,[],[216],[],[],[258],"Average CPU time of K-D tree operations for map voxel configurations, averaged over datasets from confined, open, structured and vegetated areas",{"slug":260,"group":261,"sourceId":5,"sourceLabel":6,"table":262,"selfRows":148,"metrics":263,"seqs":269,"entrants":276,"cells":285,"outcomes":302,"locators":303,"hardware":305,"wordings":306,"notes":307},"zhang2018lvio-table-3","zhang2018lvio:Table 3","Table 3",[264],{"label":265,"unit":266,"statistic":267,"alignment":268},"Relative position error (% of distance travelled), from the gap of a building registered twice at start and end","% of distance travelled","not_reported","none",[270,274],{"dataset":271,"sequence":272,"environment":273},"authors' data, Accuracy Test 2 (sensor suite Fig. 16a on passenger vehicle)","1x speed","9.3 km street driving through vegetation, bridges, hills and traffic; 70 m elevation change; 9 to 18 m\u002Fs",{"dataset":271,"sequence":275,"environment":273},"2x speed (every other frame skipped)",[277,279,281,283],{"name":278,"methodId":5,"linkable":172,"proposed":74,"self":172},"Visual-inertial odometry",{"name":280,"methodId":5,"linkable":172,"proposed":74,"self":172},"IMU + scan matching",{"name":282,"methodId":5,"linkable":172,"proposed":74,"self":172},"One-step optimization (all constraints in one factor-graph-style problem at 5 Hz)",{"name":284,"methodId":5,"linkable":172,"proposed":172,"self":172},"Complete pipeline",[286,288,290,292,294,296,298,300],[179,179,179,287,181,179,181,181,179],0.93,[179,179,183,289,181,179,181,181,179],1.47,[183,179,179,291,181,179,181,181,179],0.51,[183,179,183,293,181,179,181,181,179],0.89,[186,179,179,295,181,179,181,181,179],0.48,[186,179,183,297,181,179,181,181,179],1.02,[249,179,179,299,181,179,181,181,179],0.22,[249,179,183,301,181,179,181,181,179],0.26,[],[304],"Table 3, Sec. 10.1.1",[],[],[308],"Relative position error at the end of Accuracy Test 2, pipeline configurations compared at original and doubled data speed",{"slug":310,"group":311,"sourceId":5,"sourceLabel":6,"table":312,"selfRows":313,"metrics":314,"seqs":317,"entrants":320,"cells":325,"outcomes":338,"locators":339,"hardware":340,"wordings":342,"notes":343},"zhang2018lvio-table-5","zhang2018lvio:Table 5","Table 5",6,[315,316],{"label":157,"unit":158,"statistic":159,"alignment":72},{"label":161,"unit":158,"statistic":159,"alignment":72},[318],{"dataset":319,"sequence":121,"environment":166},"authors' data (Contour)",[321,322,323],{"name":171,"methodId":5,"linkable":172,"proposed":172,"self":172},{"name":174,"methodId":5,"linkable":172,"proposed":172,"self":172},{"name":324,"methodId":5,"linkable":172,"proposed":172,"self":172},"Scan matching (1 Hz on Contour)",[326,328,330,332,334,336],[179,179,179,327,181,179,179,181,179],6.4,[183,179,179,329,181,179,179,181,179],16.7,[186,183,179,331,181,179,179,181,179],162,[179,179,179,333,181,179,179,181,179],6.9,[183,179,179,335,181,179,179,181,179],18.7,[186,183,179,337,181,179,179,181,179],343,[],[312],[341],"Contour embedded computer, 1.8 GHz i7 dual-core (four threads)",[],[344],"Average CPU processing time on the custom handheld Contour device",[346,353,359,365],{"group":347,"slug":348,"sourceLabel":6,"table":349,"selfRows":186,"datasets":350},"zhang2018lvio:Text Sec. 10.3","zhang2018lvio-text-sec-10-3","Text Sec. 10.3",[351,352],"authors' data, air-ground test (DJI S1000 drone)","authors' data, forest localization test (sensor suite Fig. 16b, handheld)",{"group":354,"slug":355,"sourceLabel":6,"table":356,"selfRows":183,"datasets":357},"zhang2018lvio:Table 4","zhang2018lvio-table-4","Table 4",[358],"authors' data, Accuracy Test 2",{"group":360,"slug":361,"sourceLabel":6,"table":362,"selfRows":183,"datasets":363},"zhang2018lvio:Text Sec. 10.1.1","zhang2018lvio-text-sec-10-1-1","Text Sec. 10.1.1",[364],"authors' data, Accuracy Test 1 (sensor suite Fig. 16a on utility vehicle)",{"group":366,"slug":367,"sourceLabel":6,"table":368,"selfRows":183,"datasets":369},"zhang2018lvio:Text Sec. 10.1.3","zhang2018lvio-text-sec-10-1-3","Text Sec. 10.1.3",[370],"authors' data, Aggressive Motion Test 3 (sensor suite Fig. 16b on passenger vehicle)",1790510660689]