[{"data":1,"prerenderedAt":1713},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0700-small-gicp-relocalization":3,"wiki-doc-items-2026-09-20-dao-hang":1476,"wiki:author-members":1701},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":203,"chapterOrder":1463,"date":1464,"description":196,"docKey":1465,"docRoot":1466,"docTitle":1467,"extension":1468,"isWikiDoc":1469,"isWikiIndex":1470,"meta":1471,"navigation":1469,"path":1472,"seo":1473,"stem":1474,"wikiDepth":203,"__hash__":1475},"wiki\u002Fwiki\u002F2026-09-20-导航\u002F0500-0700-small_gicp_relocalization.md","small_gicp_relocalization（先验点云地图重定位）",[7],"董佳辉",{"type":9,"value":10,"toc":1456},"minimark",[11,15,20,41,165,168,171,176,180,190,396,841,850,853,858,926,933,936,939,943,950,1006,1013,1027,1030,1034,1045,1056,1066,1076,1079,1083,1096,1106,1109,1126,1134,1140,1143,1147,1153,1159,1162,1165,1172,1176,1186,1189,1195,1201,1205,1211,1214,1219,1222,1282,1294,1316,1319,1322,1371,1374,1377,1431,1434,1437,1440,1443,1446,1452],[12,13,5],"h2",{"id":14},"small_gicp_relocalization先验点云地图重定位",[16,17,19],"h3",{"id":18},"实车先看地图起点和云台零位","实车先看：地图、起点和云台零位",[21,22,23,24,32,33,36,37,40],"p",{},"这个节点在",[25,26,27,28],"strong",{},"已有地图导航模式 ",[29,30,31],"code",{},"slam:=False"," 下，把当前配准点云与先验PCD地图对齐，输出 ",[29,34,35],{},"map → odom"," 的位置、朝向修正。它不直接控制车轮或云台，也不是重新创建地形障碍的节点；",[29,38,39],{},"slam:=True"," 的整套启动不运行它。",[42,43,44,60],"table",{},[45,46,47],"thead",{},[48,49,50,54,57],"tr",{},[51,52,53],"th",{},"实车上遇到的问题",[51,55,56],{},"优先核对",[51,58,59],{},"用直白的话解释",[61,62,63,78,95,112,130,145],"tbody",{},[48,64,65,69,75],{},[66,67,68],"td",{},"启动后定位不对或找不到地图",[66,70,71,74],{},[29,72,73],{},"prior_pcd_file","、地图来源与坐标",[66,76,77],{},"要提供当前场地的三维PCD；Nav2二维地图与PCD还必须使用对应的位置和朝向",[48,79,80,83,88],{},[66,81,82],{},"车停在地图中某个位置，却一开始就对不上",[66,84,85],{},[29,86,87],{},"init_pose",[66,89,90,91,94],{},"本参数直接给 ",[29,92,93],{},"map→odom"," 一个初始猜测，不是一律填写“底盘在地图中的位置”",[48,96,97,100,105],{},[66,98,99],{},"RViz点了初始位置，朝向却偏了一个云台角",[66,101,102],{},[29,103,104],{},"robot_base_frame",[66,106,107,108,111],{},"当前消息被当作 ",[29,109,110],{},"gimbal_yaw"," 的地图位姿；箭头应对应云台yaw层朝向，不能一律当底盘车头",[48,113,114,117,127],{},[66,115,116],{},"同一地图，换个云台零位启动后整体方向不同",[66,118,119,122,123,126],{},[29,120,121],{},"base_frame","、",[29,124,125],{},"lidar_frame"," 与PCD建图时的参考",[66,128,129],{},"源码启动时用当时的底盘←雷达变换处理整份地图；雷达随yaw转，建图和当前零位是否对应必须核实",[48,131,132,135,142],{},[66,133,134],{},"定位跳到相似墙面、柱子或另一条走廊",[66,136,137,138,141],{},"初值、",[29,139,140],{},"max_dist_sq"," 和现场可见结构",[66,143,144],{},"匹配距离放太宽可能接受错误对应，但初值、重复结构或坐标错误也不能只靠收紧距离解决",[48,146,147,150,162],{},[66,148,149],{},"定位计算慢、细节不足",[66,151,152,153,122,156,122,159],{},"两个 ",[29,154,155],{},"leaf_size",[29,157,158],{},"num_neighbors",[29,160,161],{},"num_threads",[66,163,164],{},"先确认点云正确且足够，再权衡细节和计算量；更密的点不保证更准确",[21,166,167],{},"当前没有实物，也没有本节点的有效重定位测试。下文分别说明“代码如何解释这些值”和“实车是否适用”，不把源码流程当作已经验证的定位效果。",[16,169,170],{"id":170},"参数",[172,173,175],"h4",{"id":174},"ros__parametersros节点参数","ros__parameters（ROS节点参数）",[177,178,179],"h5",{"id":179},"参数表",[21,181,182,183,185,186,189],{},"前12项对应当前实物 YAML；",[29,184,73],{}," 虽被注释，却由 launch另行传入；",[29,187,188],{},"input_cloud_topic"," 没写在这份 YAML中，仍使用源码默认值。这两项也列出，便于完整理解输入来源。",[191,192,197],"pre",{"className":193,"code":194,"language":195,"meta":196,"style":196},"language-yaml shiki shiki-themes github-light github-dark","small_gicp_relocalization:\n  ros__parameters:\n    use_sim_time: False\n    num_threads: 4\n    num_neighbors: 20\n    global_leaf_size: 0.1\n    registered_leaf_size: 0.05\n    max_dist_sq: 3.0\n    map_frame: \"map\"\n    odom_frame: \"odom\"\n    base_frame: \"base_footprint\"\n    robot_base_frame: \"gimbal_yaw\"\n    lidar_frame: \"front_mid360\"\n    init_pose: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]   # [x, y, z, roll, pitch, yaw]\n    # The prior_pcd_file does not need to be specified since it going to be set by defaults in launch.\n    # prior_pcd_file: \"\"\n","yaml","",[29,198,199,212,220,233,244,255,266,277,288,300,311,322,333,344,384,390],{"__ignoreMap":196},[200,201,204,208],"span",{"class":202,"line":203},"line",1,[200,205,207],{"class":206},"s9eBZ","small_gicp_relocalization",[200,209,211],{"class":210},"sVt8B",":\n",[200,213,215,218],{"class":202,"line":214},2,[200,216,217],{"class":206},"  ros__parameters",[200,219,211],{"class":210},[200,221,223,226,229],{"class":202,"line":222},3,[200,224,225],{"class":206},"    use_sim_time",[200,227,228],{"class":210},": ",[200,230,232],{"class":231},"sj4cs","False\n",[200,234,236,239,241],{"class":202,"line":235},4,[200,237,238],{"class":206},"    num_threads",[200,240,228],{"class":210},[200,242,243],{"class":231},"4\n",[200,245,247,250,252],{"class":202,"line":246},5,[200,248,249],{"class":206},"    num_neighbors",[200,251,228],{"class":210},[200,253,254],{"class":231},"20\n",[200,256,258,261,263],{"class":202,"line":257},6,[200,259,260],{"class":206},"    global_leaf_size",[200,262,228],{"class":210},[200,264,265],{"class":231},"0.1\n",[200,267,269,272,274],{"class":202,"line":268},7,[200,270,271],{"class":206},"    registered_leaf_size",[200,273,228],{"class":210},[200,275,276],{"class":231},"0.05\n",[200,278,280,283,285],{"class":202,"line":279},8,[200,281,282],{"class":206},"    max_dist_sq",[200,284,228],{"class":210},[200,286,287],{"class":231},"3.0\n",[200,289,291,294,296],{"class":202,"line":290},9,[200,292,293],{"class":206},"    map_frame",[200,295,228],{"class":210},[200,297,299],{"class":298},"sZZnC","\"map\"\n",[200,301,303,306,308],{"class":202,"line":302},10,[200,304,305],{"class":206},"    odom_frame",[200,307,228],{"class":210},[200,309,310],{"class":298},"\"odom\"\n",[200,312,314,317,319],{"class":202,"line":313},11,[200,315,316],{"class":206},"    base_frame",[200,318,228],{"class":210},[200,320,321],{"class":298},"\"base_footprint\"\n",[200,323,325,328,330],{"class":202,"line":324},12,[200,326,327],{"class":206},"    robot_base_frame",[200,329,228],{"class":210},[200,331,332],{"class":298},"\"gimbal_yaw\"\n",[200,334,336,339,341],{"class":202,"line":335},13,[200,337,338],{"class":206},"    lidar_frame",[200,340,228],{"class":210},[200,342,343],{"class":298},"\"front_mid360\"\n",[200,345,347,350,353,356,359,361,363,365,367,369,371,373,375,377,380],{"class":202,"line":346},14,[200,348,349],{"class":206},"    init_pose",[200,351,352],{"class":210},": [",[200,354,355],{"class":231},"0.0",[200,357,358],{"class":210},", ",[200,360,355],{"class":231},[200,362,358],{"class":210},[200,364,355],{"class":231},[200,366,358],{"class":210},[200,368,355],{"class":231},[200,370,358],{"class":210},[200,372,355],{"class":231},[200,374,358],{"class":210},[200,376,355],{"class":231},[200,378,379],{"class":210},"]   ",[200,381,383],{"class":382},"sJ8bj","# [x, y, z, roll, pitch, yaw]\n",[200,385,387],{"class":202,"line":386},15,[200,388,389],{"class":382},"    # The prior_pcd_file does not need to be specified since it going to be set by defaults in launch.\n",[200,391,393],{"class":202,"line":392},16,[200,394,395],{"class":382},"    # prior_pcd_file: \"\"\n",[42,397,398,426],{},[45,399,400],{},[48,401,402,405,408,411,414,417,420,423],{},[51,403,404],{},"参数名",[51,406,407],{},"当前值",[51,409,410],{},"单位",[51,412,413],{},"实车处理建议",[51,415,416],{},"作用",[51,418,419],{},"调大效果",[51,421,422],{},"调小效果",[51,424,425],{},"生效条件／备注",[61,427,428,463,494,525,556,586,616,645,673,700,727,754,783,812],{},[48,429,430,435,444,447,452,455,458,460],{},[66,431,432],{},[29,433,434],{},"use_sim_time",[66,436,437,440,441],{},[29,438,439],{},"False","；仿真 ",[29,442,443],{},"True",[66,445,446],{},"不适用，布尔",[66,448,449],{},[25,450,451],{},"上实物前必须核对并正确配置",[66,453,454],{},"控制节点与TF缓存的ROS时钟",[66,456,457],{},"不适用",[66,459,457],{},[66,461,462],{},"地图初始化查TF使用节点当前时间；匹配与发布定时器用真实时间，True不会使其按仿真速率运行",[48,464,465,469,474,477,482,485,488,491],{},[66,466,467],{},[29,468,161],{},[66,470,471],{},[29,472,473],{},"4",[66,475,476],{},"线程数，计数",[66,478,479],{},[25,480,481],{},"通常保持当前值，不作为优先调试项",[66,483,484],{},"给邻域估计、建树与匹配计算设置并行线程",[66,486,487],{},"CPU资源足够时可能更快，也可能与Point-LIO等争抢资源",[66,489,490],{},"并行度降低，计算可能更慢",[66,492,493],{},"应为正数；不是匹配频率；降采样调用未传此值，当前库默认4线程",[48,495,496,500,505,508,513,516,519,522],{},[66,497,498],{},[29,499,158],{},[66,501,502],{},[29,503,504],{},"20",[66,506,507],{},"邻点数量，计数",[66,509,510],{},[25,511,512],{},"实物运行时重点观察，有问题再针对性调整",[66,514,515],{},"用每点附近的邻点描述局部墙面、地面等形状",[66,517,518],{},"描述范围通常更大，计算增加，可能混入墙角两侧等不同结构",[66,520,521],{},"描述更局部、更快，但可能对稀疏点和噪声更敏感",[66,523,524],{},"同时用于地图和实时点云；不是20帧或20个匹配候选；当前库邻点不足5时不能形成正常局部估计",[48,526,527,532,537,540,544,547,550,553],{},[66,528,529],{},[29,530,531],{},"global_leaf_size",[66,533,534],{},[29,535,536],{},"0.1",[66,538,539],{},"m，三维体素边长",[66,541,542],{},[25,543,512],{},[66,545,546],{},"启动时将先验PCD降采样后用于匹配",[66,548,549],{},"地图点通常更少，负担下降，细节减少",[66,551,552],{},"地图点通常更多，启动和匹配负担增加",[66,554,555],{},"不修改PCD文件或二维地图分辨率；应为正数；对目标地图只在启动时处理",[48,557,558,563,568,570,574,577,580,583],{},[66,559,560],{},[29,561,562],{},"registered_leaf_size",[66,564,565],{},[29,566,567],{},"0.05",[66,569,539],{},[66,571,572],{},[25,573,512],{},[66,575,576],{},"每轮匹配前将累计输入点云降采样",[66,578,579],{},"输入点通常更少，计算减少，细小结构可能减少",[66,581,582],{},"输入点通常更多，负担上升；噪声、动态点也可能保留更多",[66,584,585],{},"不修改Point-LIO降采样设置；应为正数；没有另行剔除人、敌车等动态点",[48,587,588,592,597,600,604,607,610,613],{},[66,589,590],{},[29,591,140],{},[66,593,594],{},[29,595,596],{},"3.0",[66,598,599],{},"m²，对应点距离的平方",[66,601,602],{},[25,603,512],{},[66,605,606],{},"拒绝当前猜测下距离太远的对应点对",[66,608,609],{},"允许更远的点配对，也增加相似结构误配可能",[66,611,612],{},"配对更严格，初值较差时可能剩余点对不足",[66,614,615],{},"当前距离门槛约√3=1.73 m；不是3 m、定位精度或允许的总位置误差",[48,617,618,623,628,631,635,638,640,642],{},[66,619,620],{},[29,621,622],{},"map_frame",[66,624,625],{},[29,626,627],{},"\"map\"",[66,629,630],{},"不适用，坐标系名称",[66,632,633],{},[25,634,451],{},[66,636,637],{},"指定输出TF的父系，约定为目标地图参考系",[66,639,457],{},[66,641,457],{},[66,643,644],{},"改名称不自动转换PCD坐标；需与二维地图和全局定位约定一致",[48,646,647,652,657,659,663,666,668,670],{},[66,648,649],{},[29,650,651],{},"odom_frame",[66,653,654],{},[29,655,656],{},"\"odom\"",[66,658,630],{},[66,660,661],{},[25,662,451],{},[66,664,665],{},"指定输出TF的子系，约定为输入配准点云参考系",[66,667,457],{},[66,669,457],{},[66,671,672],{},"当前输入应为odom坐标；节点不按该名称转换输入点，也不校验消息frame_id与它一致",[48,674,675,679,684,686,690,693,695,697],{},[66,676,677],{},[29,678,121],{},[66,680,681],{},[29,682,683],{},"\"base_footprint\"",[66,685,630],{},[66,687,688],{},[25,689,451],{},[66,691,692],{},"启动时查询它←雷达的变换，用于处理先验PCD",[66,694,457],{},[66,696,457],{},[66,698,699],{},"当前是底盘参考层；只取一次成功查询，不随随后云台转动重转地图；适用前提与PCD来源有关",[48,701,702,706,711,713,717,720,722,724],{},[66,703,704],{},[29,705,104],{},[66,707,708],{},[29,709,710],{},"\"gimbal_yaw\"",[66,712,630],{},[66,714,715],{},[25,716,451],{},[66,718,719],{},"指定initialpose消息所代表的机器人部位，并参与换算",[66,721,457],{},[66,723,457],{},[66,725,726],{},"仅手动初始位姿回调使用；不是每轮匹配的目标系，也不修改输入点坐标；此处是实际yaw层",[48,728,729,733,738,740,744,747,749,751],{},[66,730,731],{},[29,732,125],{},[66,734,735],{},[29,736,737],{},"\"front_mid360\"",[66,739,630],{},[66,741,742],{},[25,743,451],{},[66,745,746],{},"与base_frame一起确定启动时处理PCD的变换",[66,748,457],{},[66,750,457],{},[66,752,753],{},"仅地图加载过程用它查TF；不能由此认定实时输入是雷达自身系；MID360随yaw、不随pitch转",[48,755,756,760,765,768,772,775,778,780],{},[66,757,758],{},[29,759,87],{},[66,761,762],{},[29,763,764],{},"[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",[66,766,767],{},"前3项m，后3项rad",[66,769,770],{},[25,771,451],{},[66,773,774],{},"初始化匹配变换，即当前约定下map←odom的猜测",[66,776,777],{},"不适用，应按参考系逐项设置",[66,779,777],{},[66,781,782],{},"顺序x\u002Fy\u002Fz\u002Froll\u002Fpitch\u002Fyaw，旋转按Rz×Ry×Rx；全零为单位变换，不保证机器人位于地图原点",[48,784,785,789,795,798,802,805,807,809],{},[66,786,787],{},[29,788,73],{},[66,790,791,792,794],{},"YAML未配置；由launch的 ",[29,793,73],{}," 提供",[66,796,797],{},"不适用，文件路径",[66,799,800],{},[25,801,451],{},[66,803,804],{},"加载当前场地的三维先验地图",[66,806,457],{},[66,808,457],{},[66,810,811],{},"整套启动后面的参数字典传入路径；当前默认实物路径不存在，仿真默认PCD存在；不能用空路径代替",[48,813,814,818,824,827,831,834,836,838],{},[66,815,816],{},[29,817,188],{},[66,819,820,823],{},[29,821,822],{},"\"registered_scan\"","，源码默认；YAML未配置",[66,825,826],{},"不适用，话题名称",[66,828,829],{},[25,830,451],{},[66,832,833],{},"接收用于匹配的配准点云",[66,835,457],{},[66,837,457],{},[66,839,840],{},"当前应来自loam_interface、坐标为odom；不是sensor_scan、terrain_map或原始雷达局部点云；类型PointCloud2",[21,842,843,844,846,847,849],{},"本块没有当前完全不使用的自定义参数：",[29,845,104],{}," 只在收到手动初始位姿时参与，",[29,848,87],{}," 只在启动时设初值，它们不是持续调节项。话题、坐标系和路径不能按数值大小调参。",[177,851,852],{"id":852},"参数详解",[854,855,857],"h6",{"id":856},"输入与输出匹配的是哪两份点云","输入与输出：匹配的是哪两份点云",[42,859,860,873],{},[45,861,862],{},[48,863,864,867,870],{},[51,865,866],{},"方向",[51,868,869],{},"数据",[51,871,872],{},"代码实际用途",[61,874,875,887,901,914],{},[48,876,877,880,884],{},[66,878,879],{},"读取文件",[66,881,882],{},[29,883,73],{},[66,885,886],{},"加载PCD，启动时变换、降采样，建立固定目标地图",[48,888,889,892,898],{},[66,890,891],{},"订阅",[66,893,894,897],{},[29,895,896],{},"registered_scan","，可由input_cloud_topic更名",[66,899,900],{},"复制XYZ坐标并累加多帧，作为本轮匹配点云；不用反射强度或点内时间",[48,902,903,905,911],{},[66,904,891],{},[66,906,907,910],{},[29,908,909],{},"initialpose","，PoseWithCovarianceStamped",[66,912,913],{},"用人工给定的位姿重设匹配初值；话题名写死为相对名",[48,915,916,919,923],{},[66,917,918],{},"广播",[66,920,921],{},[29,922,35],{},[66,924,925],{},"发布点云匹配得到的参考系修正；不发布独立位姿或匹配点云话题",[21,927,928,929,932],{},"实时点云已经由Point-LIO与接口节点配准到 ",[29,930,931],{},"odom","，本节点直接累加坐标，不再逐帧转雷达系，也不额外按云台yaw旋转这些点。云台旋转时，静态环境应仍在共同的odom坐标下对齐；这个结论依赖上游位姿、安装外参和时间接口正确，目前没有独立yaw验证。",[21,934,935],{},"回调只保存最近输入的frame_id与时间戳，没有检查多帧是否同系，也没有在frame_id变化时清空累计点。PCD没有ROS消息那样的frame_id，本节点按自己的来源假设处理；文件名和坐标系字符串不能证明地图已经对应。",[21,937,938],{},"每500 ms真实时间尝试匹配一次，有点才处理；每轮降采样、估计局部形状、搜索地图对应点，最多做10次优化迭代。匹配报告收敛才更新结果，未收敛则沿用旧结果，但本轮累计点仍会清空。收敛表示算法停止条件满足，不证明匹配到了场地中正确的位置；源码没有再按匹配误差、有效对应比例等检查可信度。",[854,940,942],{"id":941},"prior_pcd_file先确认用的是自己的场地地图","prior_pcd_file：先确认用的是自己的场地地图",[21,944,945,946,949],{},"整套启动的默认路径在安装后的 ",[29,947,948],{},"pb2025_nav_bringup"," 共享目录：",[42,951,952,965],{},[45,953,954],{},[48,955,956,959,962],{},[51,957,958],{},"启动方式",[51,960,961],{},"默认PCD路径规则",[51,963,964],{},"当前默认文件检查",[61,966,967,987],{},[48,968,969,972,981],{},[66,970,971],{},"实物",[66,973,974,977,978],{},[29,975,976],{},"pcd\u002Freality\u002F\u003Cworld>.pcd","；world默认 ",[29,979,980],{},"rmul_2024",[66,982,983,986],{},[29,984,985],{},"rmul_2024.pcd"," 不存在",[48,988,989,992,1000],{},[66,990,991],{},"仿真",[66,993,994,977,997],{},[29,995,996],{},"pcd\u002Fsimulation\u002F\u003Cworld>.pcd",[29,998,999],{},"rmuc_2025",[66,1001,1002,1005],{},[29,1003,1004],{},"rmuc_2025.pcd"," 存在",[21,1007,1008,1009,1012],{},"相应实物默认二维地图 ",[29,1010,1011],{},"map\u002Freality\u002Frmul_2024.yaml"," 也不存在；仿真默认二维地图存在。这只是当前默认文件检查，没有读取运行节点参数，也不排除使用者另传world、PCD或二维地图路径。上实物前需要准备当前场地的对应地图，不能把仿真PCD存在当成实物地图已准备。",[21,1014,1015,1018,1019,1022,1023,1026],{},[29,1016,1017],{},"localization_launch.py"," 在参数文件之后，额外传入 ",[29,1020,1021],{},"{\"prior_pcd_file\": prior_pcd_file}","，因此注释掉这一行不表示节点不使用先验PCD。它与Point-LIO是否启用 ",[29,1024,1025],{},"prior_pcd_en"," 是不同功能：Point-LIO可不加载先验，重定位节点仍需要先验PCD。",[21,1028,1029],{},"文件加载失败只记录错误并返回，构造函数仍继续准备匹配目标，没有明确阻止空目标进入后续匹配；不能把“节点起来了”视为地图加载成功。源码不会在运行时重新读取PCD，也不会替你核对它与Nav2二维地图的位置、朝向、米制尺度或场地版本是否一致。",[854,1031,1033],{"id":1032},"base_frame-与-lidar_frame启动时会转动整份地图","base_frame 与 lidar_frame：启动时会转动整份地图",[21,1035,1036,1037,1040,1041,1044],{},"PCD读入后，源码查询 ",[29,1038,1039],{},"base_footprint ← front_mid360","，再把这个矩阵左乘到",[25,1042,1043],{},"整份地图的每个点","。它按节点当前时间查询，失败后每秒重试，成功一次就继续；没有查询次数上限，也没有在后续云台转动时更新目标地图。",[21,1046,1047,1048,1051,1052,1055],{},"这对应源码的一个来源假设：PCD基准是初始 ",[29,1049,1050],{},"lidar_odom","，用初始底盘与雷达关系把地图转换到所需参考中。但当前Point-LIO实际保存的是 ",[29,1053,1054],{},"camera_init"," 下的配准世界点，且其位姿原点涉及内部IMU；不是每一帧的雷达自身坐标。把这类PCD当初始雷达系直接套机械变换，是否与实际建图基准一致，必须复核，不能仅照README的命名认定转换正确。",[21,1057,1058,1061,1062,1065],{},[25,1059,1060],{},"雷达在云台上，这一步特别依赖零位。"," 同一份PCD若建图时与重新启动时云台相对yaw不同，当前 ",[29,1063,1064],{},"base←lidar"," 会含不同角度；按源码计算，目标地图可能被不同矩阵转动，而独立加载的二维地图不会自动跟着调整。是否实际造成错位，需要结合PCD生成时的起点、云台零位、底盘方向与地图原点判断，目前没有测试结论。",[21,1067,1068,1069,1072,1073,1075],{},"该查询与 ",[29,1070,1071],{},"loam_interface"," 的一次性基准转换意图相关，但两节点分别查询，不保证取到同一时刻的云台角。这里的机械关系始终保留：MID360挂在 ",[29,1074,110],{},"，只有实际yaw会带动它，实际pitch位于后续层；两个odom关节固定。重力参考、内部IMU→雷达关系或地图来源错误，不能通过增大匹配距离掩盖。",[21,1077,1078],{},"包内README还写过“未设置时使用空变换”，当前实现没有对应的单位变换旁路：若PCD能读取但frame为空或TF缺失，会进入重试。应以当前源码为准，本轮不修改节点或地图转换。",[854,1080,1082],{"id":1081},"init_pose-与-robot_base_frame两种初始位姿不是同一个对象","init_pose 与 robot_base_frame：两种初始位姿不是同一个对象",[21,1084,1085,1091,1092,1095],{},[25,1086,1087,1088,1090],{},"YAML的 ",[29,1089,87],{}," 直接写入匹配矩阵。"," 在当前输入为odom、目标为map的约定下，它是 ",[29,1093,1094],{},"map←odom"," 初值，即“odom原点在map中的位置和方向”。",[21,1097,1098,1101,1102,1105],{},[29,1099,1100],{},"[0,0,0,0,0,0]"," 表示先猜两系完全重合；这只有在起始参考关系吻合时才合适，不表示算法已知道机器人在地图中的真实位置。位置单位m，角度rad；偏航90°应为约1.5708，而不是填90。旋转按yaw、pitch、roll组成 ",[29,1103,1104],{},"Rz×Ry×Rx","。",[21,1107,1108],{},"例如：若odom起点恰好与所描述的机器人原点重合且朝向一致，那么机器人起始地图位姿可能就是map←odom；若odom原点与云台存在高度或安装偏移，或机器人已在odom内移动，就不能直接照抄机器人位置。当前底盘、云台、雷达原点不同，需按实际参考关系计算。",[21,1110,1111,1121,1122,1125],{},[25,1112,1113,1114,1116,1117,1120],{},"话题 ",[29,1115,909],{}," 则被当作 ",[29,1118,1119],{},"robot_base_frame=gimbal_yaw"," 在地图中的位姿。"," 回调再查询最新 ",[29,1123,1124],{},"gimbal_yaw←输入扫描系","，当前扫描系应为odom，两者相乘得到map←odom：",[191,1127,1132],{"className":1128,"code":1130,"language":1131,"meta":196},[1129],"language-text","map←odom = 人工给定的 map←gimbal_yaw × TF中的 gimbal_yaw←odom\n","text",[29,1133,1130],{"__ignoreMap":196},[21,1135,1136,1137,1139],{},"所以RViz箭头若被你理解成底盘车头，而当前云台相对底盘左转90°，就可能少算一个云台角。位置也对应云台原点：若人工消息给z=0，源码把它当作云台原点位于map的z=0，而不是“底盘地面高度为0”；高度应按这份地图的基准核对。只改 ",[29,1138,104],{}," 的名字也需要重新核对整条关系，不能把“机器人”三个字自动等同于底盘。本参数仅该回调用，不在每次点云匹配时扣机械角。",[21,1141,1142],{},"回调没有按消息header.frame_id转换位姿、没有使用其协方差，也没有按消息时间查TF，而是取最新变换；收到首帧扫描前，扫描frame_id还为空，查询可能失败。手动设初值只改当前和下一轮匹配猜测，不会重转PCD，也不清空已累计点。云台快速转动时，人工位姿对应的朝向与最新TF是否同一时刻也要核对。",[854,1144,1146],{"id":1145},"max_dist_sq173-m是配对门槛不是定位误差指标","max_dist_sq：1.73 m是配对门槛，不是定位误差指标",[21,1148,1149,1150,1152],{},"当前构建使用的small_gicp代码直接判断“对应点距离平方是否大于 ",[29,1151,140],{},"”；超出就拒绝。源点先按当前猜测变换到地图，再找最近地图点，才检查这项，因此在米制点云中单位为m²：",[191,1154,1157],{"className":1155,"code":1156,"language":1131,"meta":196},[1129],"max_dist_sq = 3.0 m² → 最大对应点距离约 sqrt(3) = 1.73 m\n希望门槛为0.5 m → 平方值为0.25 m²\n",[29,1158,1156],{"__ignoreMap":196},[21,1160,1161],{},"第二行仅解释单位换算，不是建议修改当前值。它不限制机器人总移动距离，不表示允许定位偏差1.73 m，更不是扫描量程。错误初值下，源点仍可能碰巧靠近另一面墙并通过门槛。",[21,1163,1164],{},"实车中，放宽可留下更多点对，但重复柱子、相似走廊和动态物体也可能参与误配；收紧会减少远距离错配，却可能让真实初值偏差稍大时无足够点对。先确认地图、初值和参考系，再结合正确匹配／误匹配情况调整，不能单独把“更小”理解成“更准”。",[21,1166,1167,1168,1171],{},"该单位按当前构建缓存库源码核实，库提交为 ",[29,1169,1170],{},"fa0cfc983417c044b6036f71dfa448038bb9c820","。CMake引用master，重新获取依赖后应复核版本，不把当前缓存行为当成所有版本的固定承诺。",[854,1173,1175],{"id":1174},"两个leaf_sizenum_neighbors-与-num_threads点云精简邻点数量与计算线程","两个leaf_size、num_neighbors 与 num_threads（点云精简、邻点数量与计算线程）",[21,1177,1178,1181,1182,1185],{},[29,1179,1180],{},"global_leaf_size=0.1 m"," 处理先验地图；",[29,1183,1184],{},"registered_leaf_size=0.05 m"," 处理每轮累计实时点云。两者不要求相同，也不等于地形分析格子、Nav2地图分辨率或定位精度。地图处理不会改原PCD，实时处理不会改变Point-LIO本身的输出。",[21,1187,1188],{},"调小通常保留更多细节，代价是计算量增加；原始数据没有的细节不会因调小而出现。远处点稀疏、墙角或小柱子能否稳定描述，需看实际数据；人员、敌车等动态点在本节点没有专门筛除，实时点更多也可能带来更多干扰。",[21,1190,1191,1194],{},[29,1192,1193],{},"num_neighbors=20"," 指每点用于描述局部形状的邻点数，地图与实时点都用它。它不是20个匹配候选或20帧累计。范围太大可能混入墙角两面、坡面与障碍等不同结构，太小又可能受噪声影响；当前库实际找到的邻点不足5时，会设为无效局部特征的默认值，因此稀疏区域与降采样尺度要一起看。",[21,1196,1197,1200],{},[29,1198,1199],{},"num_threads=4"," 控制邻域估计、建树及匹配的并行计算。降采样调用没有传这个参数，当前库该函数默认4线程；把参数改大，不等于所有步骤都跟着增加线程。它不是节点频率，也不保证线程翻倍就快一倍，先沿用当前值。",[854,1202,1204],{"id":1203},"map_frameodom_frameuse_sim_time-与输出边界地图里程计参考系与时间基准","map_frame、odom_frame、use_sim_time 与输出边界（地图、里程计参考系与时间基准）",[21,1206,1207,1208,1210],{},"地图匹配结果是“目标地图←输入累计点云”的变换；输出直接命名为 ",[29,1209,93],{},"。要使这个名字正确，必须先保证目标PCD和输入实际坐标符合约定；本节点没有另行变换到这两个名称指定的系。",[21,1212,1213],{},"输出约20 Hz真实时间重复当前结果，点云匹配则约2 Hz真实时间尝试一次；20 Hz不表示每次都得到新定位。TF时间取最后收到的扫描时间加0.1秒，固定在源码中，不是本块参数；也没有“已成功匹配过”的输出保护，启动初值同样可被发布。这里只记录输出接口，仍不展开此前搁置的导航走停或TF时效故障排查。",[21,1215,1216,1218],{},[29,1217,434],{}," 应与输入、机械TF和启动模式一致。True影响节点当前时间与TF缓存，不会让两个wall timer随仿真倍速自动调整，也不会修复此前Point-LIO点时间单位或内部位姿转换问题。",[854,1220,1221],{"id":1221},"启动来源与当前验证范围",[42,1223,1224,1236],{},[45,1225,1226],{},[48,1227,1228,1230,1233],{},[51,1229,958],{},[51,1231,1232],{},"参数与地图来源",[51,1234,1235],{},"当前区别",[61,1237,1238,1249,1260,1271],{},[48,1239,1240,1243,1246],{},[66,1241,1242],{},"整套reality导航，slam=False",[66,1244,1245],{},"实物nav2_params.yaml，经localization_launch传入；PCD由launch参数字典另传",[66,1247,1248],{},"本表值；默认world对应的实物地图文件缺失，需准备当前场地地图",[48,1250,1251,1254,1257],{},[66,1252,1253],{},"整套simulation导航，slam=False",[66,1255,1256],{},"仿真nav2_params.yaml，同样另传PCD",[66,1258,1259],{},"除use_sim_time=True外，本块12项相同；默认仿真地图存在",[48,1261,1262,1265,1268],{},[66,1263,1264],{},"整套slam=True",[66,1266,1267],{},"进入slam_launch，不进入localization_launch",[66,1269,1270],{},"本节点不运行，不能用建图输出说明本块已验证",[48,1272,1273,1276,1279],{},[66,1274,1275],{},"包内独立launch",[66,1277,1278],{},"自己写的参数字典，不读取整套YAML",[66,1280,1281],{},"num_neighbors=10，两种leaf_size均0.25，max_dist_sq=1.0，输入cloud_registered，frame与PCD默认空；不能直接当整套入口",[21,1283,1284,1285,1287,1288,1290,1291,1293],{},"13项自定义参数均在构造时声明和读取，没有动态参数更新回调；",[29,1286,87],{}," 用于启动，人工初值走 ",[29,1289,909],{}," 消息。13项之外的ROS标准 ",[29,1292,434],{}," 由节点时钟处理，不能混为算法参数动态更新。",[1295,1296,1297,1304,1310],"ul",{},[1298,1299,1300,1303],"li",{},[25,1301,1302],{},"源码能确认："," 参数读取、地图一次性转换、累积配准点云、平方距离门槛、启动初值与人工初值的区别、匹配收敛后的更新规则和输出接口。",[1298,1305,1306,1309],{},[25,1307,1308],{},"仿真已观察："," 2026-10-08仅验证独立Point-LIO静止和约20 cm往返；未验证本节点、先验地图匹配、独立云台yaw、人工初值或全局定位。",[1298,1311,1312,1315],{},[25,1313,1314],{},"必须实物测量／文件来源核实："," PCD与二维地图的共同基准、建图与启动云台零位、雷达／内部IMU／底盘外参、地图米制尺度及实际起点、可见结构与动态干扰、正确位置下的匹配稳定性。当前重力方向和点时间问题继续保留待核实。",[16,1317,1318],{"id":1318},"开发问题",[172,1320,1321],{"id":1321},"关掉small_gicp",[42,1323,1324,1334],{},[45,1325,1326],{},[48,1327,1328,1331],{},[51,1329,1330],{},"原模板",[51,1332,1333],{},"对应静态版本",[61,1335,1336,1347,1359],{},[48,1337,1338,1342],{},[66,1339,1340],{},[29,1341,1017],{},[66,1343,1344],{},[29,1345,1346],{},"localization_static_launch.py",[48,1348,1349,1354],{},[66,1350,1351],{},[29,1352,1353],{},"rm_navigation_reality_launch.py",[66,1355,1356],{},[29,1357,1358],{},"rm_navigation_reality_static_launch.py",[48,1360,1361,1366],{},[66,1362,1363],{},[29,1364,1365],{},"rm_navigation_simulation_launch.py",[66,1367,1368],{},[29,1369,1370],{},"rm_navigation_simulation_static_launch.py",[21,1372,1373],{},"主要调整是关闭 small_gicp、增加静态 map → odom；导航节点继续复用原来的 navigation_launch.py",[172,1375,1376],{"id":1376},"日志某些报错",[42,1378,1379,1389],{},[45,1380,1381],{},[48,1382,1383,1386],{},[51,1384,1385],{},"日志原文",[51,1387,1388],{},"含义",[61,1390,1391,1401,1411,1421],{},[48,1392,1393,1398],{},[66,1394,1395],{},[29,1396,1397],{},"GICP did not converge.",[66,1399,1400],{},"本次点云配准没有收敛",[48,1402,1403,1408],{},[66,1404,1405],{},[29,1406,1407],{},"No accumulated points to process.",[66,1409,1410],{},"没收到可处理的实时点云",[48,1412,1413,1418],{},[66,1414,1415],{},[29,1416,1417],{},"TF lookup failed...",[66,1419,1420],{},"初始化需要的 TF 查询失败",[48,1422,1423,1428],{},[66,1424,1425],{},[29,1426,1427],{},"Couldn't read PCD file...",[66,1429,1430],{},"先验 PCD 读取失败",[177,1432,1397],{"id":1433},"gicp-did-not-converge",[21,1435,1436],{},"点云对不上，要自己跑一边slam建出来PCD，然后再使用这个PCD进行匹配。",[177,1438,1407],{"id":1439},"no-accumulated-points-to-process",[21,1441,1442],{},"这条提示表示 small_gicp 的实时点云缓存为空，发生在匹配之前。现在先查数据有没有送到，暂时不用调匹配参数或初始位姿。",[21,1444,1445],{},"它默认订阅的是 \u002Fregistered_scan，数据链是：",[191,1447,1450],{"className":1448,"code":1449,"language":1131,"meta":196},[1129],"MID360 → Point-LIO → \u002Fcloud_registered\n                         ↓ loam_interface\n                   \u002Fregistered_scan → small_gicp\n",[29,1451,1449],{"__ignoreMap":196},[1453,1454,1455],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":196,"searchDepth":214,"depth":214,"links":1457},[1458],{"id":14,"depth":214,"text":5,"children":1459},[1460,1461,1462],{"id":18,"depth":222,"text":19},{"id":170,"depth":222,"text":170},{"id":1318,"depth":222,"text":1318},"0500-0700","2026-09-20","2026-09-20-dao-hang","\u002Fwiki\u002F2026-09-20-dao-hang","导航","md",true,false,{},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0700-small-gicp-relocalization",{"title":5,"description":196},"wiki\u002F2026-09-20-导航\u002F0500-0700-small_gicp_relocalization","wOC3T1NoLDhAEzye14Mrs65YCqElTpFJewiCCYNiQU0",[1477,1484,1490,1496,1502,1508,1514,1520,1526,1532,1538,1544,1550,1556,1562,1568,1574,1580,1586,1592,1594,1600,1606,1612,1618,1624,1630,1636,1642,1648,1654,1660,1666,1672,1678,1684,1690,1696],{"path":1478,"stem":1479,"title":1480,"authors":1481,"date":1464,"chapterOrder":1482,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0100-jian-jie","wiki\u002F2026-09-20-导航\u002F0100-简介","简介",[7],"0100",0,{"path":1485,"stem":1486,"title":1487,"authors":1488,"date":1464,"chapterOrder":1489,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0200-huan-jing-pei-zhi-yu-yun-xing","wiki\u002F2026-09-20-导航\u002F0200-环境配置与运行","环境配置与运行",[7],"0200",{"path":1491,"stem":1492,"title":1493,"authors":1494,"date":1464,"chapterOrder":1495,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0300-0100-robot-description","wiki\u002F2026-09-20-导航\u002F0300-0100-robot_description","robot_description（机器人模型与关节定义）",[7],"0300-0100",{"path":1497,"stem":1498,"title":1499,"authors":1500,"date":1464,"chapterOrder":1501,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0300-0200-mid360-an-zhuang-wei-zhi","wiki\u002F2026-09-20-导航\u002F0300-0200-MID360安装位置","MID360安装位置",[7],"0300-0200",{"path":1503,"stem":1504,"title":1505,"authors":1506,"date":1464,"chapterOrder":1507,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0300-0300-launch-yu-bao-yi-lai-pei-zhi","wiki\u002F2026-09-20-导航\u002F0300-0300-Launch与包依赖配置","Launch与包依赖配置",[7],"0300-0300",{"path":1509,"stem":1510,"title":1511,"authors":1512,"date":1464,"chapterOrder":1513,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0300-0400-fang-zhen-shi-jue-you-hua","wiki\u002F2026-09-20-导航\u002F0300-0400-仿真视觉优化","仿真视觉优化（可选）",[7],"0300-0400",{"path":1515,"stem":1516,"title":1517,"authors":1518,"date":1464,"chapterOrder":1519,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0300-0500-tian-jia-di-tu","wiki\u002F2026-09-20-导航\u002F0300-0500-添加地图","添加地图",[7],"0300-0500",{"path":1521,"stem":1522,"title":1523,"authors":1524,"date":1464,"chapterOrder":1525,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0300-ji-qi-ren-mo-xing-yu-fang-zhen","wiki\u002F2026-09-20-导航\u002F0300-机器人模型与仿真","机器人模型与仿真",[7],"0300",{"path":1527,"stem":1528,"title":1529,"authors":1530,"date":1464,"chapterOrder":1531,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0400-0100-linux-yu-mcu-shu-ju-dui-jie","wiki\u002F2026-09-20-导航\u002F0400-0100-Linux与MCU数据对接","Linux与MCU数据对接",[7],"0400-0100",{"path":1533,"stem":1534,"title":1535,"authors":1536,"date":1464,"chapterOrder":1537,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0400-0200-chuan-kou-tong-xin","wiki\u002F2026-09-20-导航\u002F0400-0200-串口通信","Serial_Comm（串口通信）",[7],"0400-0200",{"path":1539,"stem":1540,"title":1541,"authors":1542,"date":1464,"chapterOrder":1543,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0400-0300-shou-bing-kong-zhi","wiki\u002F2026-09-20-导航\u002F0400-0300-手柄控制","Joy（手柄控制）",[7],"0400-0300",{"path":1545,"stem":1546,"title":1547,"authors":1548,"date":1464,"chapterOrder":1549,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0400-0400-mid360-yu-tf-lian-tiao","wiki\u002F2026-09-20-导航\u002F0400-0400-MID360与TF联调","MID360与TF联调",[7],"0400-0400",{"path":1551,"stem":1552,"title":1553,"authors":1554,"date":1464,"chapterOrder":1555,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0400-ying-jian-dui-jie-yu-kong-zhi","wiki\u002F2026-09-20-导航\u002F0400-硬件对接与控制","硬件对接与控制",[7],"0400",{"path":1557,"stem":1558,"title":1559,"authors":1560,"date":1464,"chapterOrder":1561,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0100-point-lio","wiki\u002F2026-09-20-导航\u002F0500-0100-Point_LIO","Point_LIO（激光与IMU融合里程计，建图与定位算法）",[7],"0500-0100",{"path":1563,"stem":1564,"title":1565,"authors":1566,"date":1464,"chapterOrder":1567,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0200-loam-interface","wiki\u002F2026-09-20-导航\u002F0500-0200-loam_interface","loam_interface（Point-LIO输出的坐标与话题适配）",[7],"0500-0200",{"path":1569,"stem":1570,"title":1571,"authors":1572,"date":1464,"chapterOrder":1573,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0300-sensor-scan-generation","wiki\u002F2026-09-20-导航\u002F0500-0300-sensor_scan_generation","sensor_scan_generation（雷达点云换系与底盘、云台位姿转换）",[7],"0500-0300",{"path":1575,"stem":1576,"title":1577,"authors":1578,"date":1464,"chapterOrder":1579,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0400-terrain-analysis","wiki\u002F2026-09-20-导航\u002F0500-0400-terrain_analysis","terrain_analysis（近场地面与障碍高差分析）",[7],"0500-0400",{"path":1581,"stem":1582,"title":1583,"authors":1584,"date":1464,"chapterOrder":1585,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0500-terrain-analysis-ext","wiki\u002F2026-09-20-导航\u002F0500-0500-terrain_analysis_ext","terrain_analysis_ext（扩展远场地形与近远场结果合并）",[7],"0500-0500",{"path":1587,"stem":1588,"title":1589,"authors":1590,"date":1464,"chapterOrder":1591,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0600-fake-vel-transform","wiki\u002F2026-09-20-导航\u002F0500-0600-fake_vel_transform","fake_vel_transform（云台系速度转换与底盘自旋）",[7],"0500-0600",{"path":1472,"stem":1474,"title":5,"authors":1593,"date":1464,"chapterOrder":1463,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},[7],{"path":1595,"stem":1596,"title":1597,"authors":1598,"date":1464,"chapterOrder":1599,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0800-pointcloud-to-laserscan","wiki\u002F2026-09-20-导航\u002F0500-0800-pointcloud_to_laserscan","pointcloud_to_laserscan（三维地形点云转二维扫描）",[7],"0500-0800",{"path":1601,"stem":1602,"title":1603,"authors":1604,"date":1464,"chapterOrder":1605,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-0900-slam-toolbox","wiki\u002F2026-09-20-导航\u002F0500-0900-slam_toolbox","slam_toolbox（二维地图生成与轨迹优化）",[7],"0500-0900",{"path":1607,"stem":1608,"title":1609,"authors":1610,"date":1464,"chapterOrder":1611,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1000-bt-navigator","wiki\u002F2026-09-20-导航\u002F0500-1000-bt_navigator","bt_navigator（行为树导航任务调度）",[7],"0500-1000",{"path":1613,"stem":1614,"title":1615,"authors":1616,"date":1464,"chapterOrder":1617,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1100-controller-server","wiki\u002F2026-09-20-导航\u002F0500-1100-controller_server","controller_server（路径跟踪、进度检查与到达判定）",[7],"0500-1100",{"path":1619,"stem":1620,"title":1621,"authors":1622,"date":1464,"chapterOrder":1623,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1200-local-costmap","wiki\u002F2026-09-20-导航\u002F0500-1200-local_costmap","local_costmap（局部障碍代价地图）",[7],"0500-1200",{"path":1625,"stem":1626,"title":1627,"authors":1628,"date":1464,"chapterOrder":1629,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1300-global-costmap","wiki\u002F2026-09-20-导航\u002F0500-1300-global_costmap","global_costmap（全局规划代价地图）",[7],"0500-1300",{"path":1631,"stem":1632,"title":1633,"authors":1634,"date":1464,"chapterOrder":1635,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1400-map-server","wiki\u002F2026-09-20-导航\u002F0500-1400-map_server","map_server（已有二维地图加载与发布）",[7],"0500-1400",{"path":1637,"stem":1638,"title":1639,"authors":1640,"date":1464,"chapterOrder":1641,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1500-map-saver","wiki\u002F2026-09-20-导航\u002F0500-1500-map_saver","map_saver（二维栅格地图保存）",[7],"0500-1500",{"path":1643,"stem":1644,"title":1645,"authors":1646,"date":1464,"chapterOrder":1647,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1600-planner-server","wiki\u002F2026-09-20-导航\u002F0500-1600-planner_server","planner_server（Theta*全局路径规划）",[7],"0500-1600",{"path":1649,"stem":1650,"title":1651,"authors":1652,"date":1464,"chapterOrder":1653,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1700-smoother-server","wiki\u002F2026-09-20-导航\u002F0500-1700-smoother_server","smoother_server（全局路径平滑）",[7],"0500-1700",{"path":1655,"stem":1656,"title":1657,"authors":1658,"date":1464,"chapterOrder":1659,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1800-behavior-server","wiki\u002F2026-09-20-导航\u002F0500-1800-behavior_server","behavior_server（恢复行为与空闲方向移动）",[7],"0500-1800",{"path":1661,"stem":1662,"title":1663,"authors":1664,"date":1464,"chapterOrder":1665,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-1900-waypoint-follower","wiki\u002F2026-09-20-导航\u002F0500-1900-waypoint_follower","waypoint_follower（逐点导航与到点等待）",[7],"0500-1900",{"path":1667,"stem":1668,"title":1669,"authors":1670,"date":1464,"chapterOrder":1671,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-2000-velocity-smoother","wiki\u002F2026-09-20-导航\u002F0500-2000-velocity_smoother","velocity_smoother（速度限幅与加减速平滑）",[7],"0500-2000",{"path":1673,"stem":1674,"title":1675,"authors":1676,"date":1464,"chapterOrder":1677,"chapterDepth":203,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-2100-pb-teleop-twist-joy-node","wiki\u002F2026-09-20-导航\u002F0500-2100-pb_teleop_twist_joy_node","pb_teleop_twist_joy_node（手柄输入与可替换控制入口）",[7],"0500-2100",{"path":1679,"stem":1680,"title":1681,"authors":1682,"date":1464,"chapterOrder":1683,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0500-dao-hang-can-shu","wiki\u002F2026-09-20-导航\u002F0500-导航参数","导航参数",[7],"0500",{"path":1685,"stem":1686,"title":1687,"authors":1688,"date":1464,"chapterOrder":1689,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0600-kai-fa-wen-ti-yu-pai-cha","wiki\u002F2026-09-20-导航\u002F0600-开发问题与排查","开发问题与排查",[7],"0600",{"path":1691,"stem":1692,"title":1693,"authors":1694,"date":1464,"chapterOrder":1695,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1470},"\u002Fwiki\u002F2026-09-20-dao-hang\u002F0700-jue-ce","wiki\u002F2026-09-20-导航\u002F0700-决策","决策",[7],"0700",{"path":1466,"stem":1697,"title":1698,"authors":1699,"date":1464,"chapterOrder":1700,"chapterDepth":1483,"docKey":1465,"docRoot":1466,"docTitle":1467,"isWikiDoc":1469,"isWikiIndex":1469},"wiki\u002F2026-09-20-导航\u002Findex","北极熊导航复现日志",[7],null,[1702,1704,1707,1710],{"name":7,"image":1703},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":1705,"image":1706},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":1708,"image":1709},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":1711,"image":1712},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431906202]