ros amcl 参数配置
生活随笔
收集整理的這篇文章主要介紹了
ros amcl 参数配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近搞ros機(jī)器人定位,配置文件一堆參數(shù)官網(wǎng)只有簡(jiǎn)單說明,一臉懵逼,只能去看看算法,大概了解下。
以下是看《概率機(jī)器人》定位后的理解
<launch> <!-- by dyan1024//后為wiki官網(wǎng)的參數(shù)說明 ()中為粗讀算法參數(shù)說明及理解 ×××面臨的問題常用地圖有2種:1.基于特征,僅指明在指定位置(地圖中包含的對(duì)象的位置)的環(huán)境的形狀。特征表示使得調(diào)節(jié)對(duì)象的位置變得簡(jiǎn)單,作為附加的檢測(cè)結(jié)果。這樣的地圖在地圖構(gòu)建領(lǐng)域很受歡迎。2.基于位置,這樣的地圖是有體積的,它們?yōu)榄h(huán)境中的許多位置都提供標(biāo)簽。不僅包括環(huán)境物體的信息,也包括了對(duì)象沒有物體的信息(如空閑空間),比較經(jīng)典的占用柵格地圖就是基于位置的。根據(jù)官網(wǎng)信息,amcl采用的是結(jié)合自適應(yīng)(增強(qiáng)蒙特卡洛Augmented_MCL)和庫爾貝克-萊不勒散度采樣KLD_Sampling_MCL(蒙特卡洛定位的一個(gè)變種)。1.KLD_Sampling_MCL隨時(shí)間改變粒子數(shù),改良了度過初期后的蒙特卡洛大樣本集合的資源浪費(fèi)。兩個(gè)kld_配置參數(shù)就是KLD的參數(shù)。對(duì)于每次粒子濾波迭代,KLD采樣以概率1-δ確定樣本數(shù)(1-δ就是kld_z配置參數(shù)),使得真實(shí)的后驗(yàn)與基于采樣的近似之間的誤差小于ε(ε就是kld_err配置參數(shù)).kld_z=0.99,kld_err=0.05,直方圖位大小為15cm*15cm*15°就能取得良好的結(jié)果。2.Augmented_MCL解決的是從機(jī)器人綁架或全局定位失效中恢復(fù)的問題。兩個(gè)recovery_alpha_配置參數(shù)就是用于失效恢復(fù)的。隨機(jī)采樣以max{0.0,1.0-w(fast)/w(slow)}概率增加。如果短期似然劣于長(zhǎng)期似然則增加隨機(jī)采樣,這種方法,測(cè)量似然的一個(gè)突然衰減將引起隨機(jī)采樣的數(shù)目增加。w=w+α(Wavg-w)--Wavg當(dāng)前測(cè)量模型的權(quán)重,w為短期(w(fast))或長(zhǎng)期(w(slow))平滑估計(jì),α為與w對(duì)應(yīng)的recovery_alpha_參數(shù)。--><node pkg="amcl" type="amcl" name="amcl" output="screen"><!-- Publish scans from best pose at a max of 10 Hz -->//全部濾波器參數(shù)<param name="min_particles" value="500"/> //允許的粒子數(shù)量的最小值,默認(rèn)100<param name="max_particles" value="5000"/> //允許的例子數(shù)量的最大值,默認(rèn)5000<param name="kld_err" value="0.05"/> //真實(shí)分布和估計(jì)分布之間的最大誤差,默認(rèn)0.01<param name="kld_z" value="0.99"/> //上標(biāo)準(zhǔn)分位數(shù)(1-p),其中p是估計(jì)分布上誤差小于kld_err的概率,默認(rèn)0.99<param name="update_min_d" value="0.2"/> //在執(zhí)行濾波更新前平移運(yùn)動(dòng)的距離,默認(rèn)0.2m(對(duì)于里程計(jì)模型有影響,模型中根據(jù)運(yùn)動(dòng)和地圖求最終位姿的釋然時(shí)丟棄了路徑中的相關(guān)所有信息,已知的只有最終位姿,為了規(guī)避不合理的穿過障礙物后的非零似然,這個(gè)值建議不大于機(jī)器人半徑。否則因更新頻率的不同可能產(chǎn)生完全不同的結(jié)果)<param name="update_min_a" value="0.5"/> //執(zhí)行濾波更新前旋轉(zhuǎn)的角度,默認(rèn)pi/6 rad<param name="resample_interval" value="1"/> //在重采樣前需要的濾波更新的次數(shù),默認(rèn)2<param name="transform_tolerance" value="0.1"/> //tf變換發(fā)布推遲的時(shí)間,為了說明tf變換在未來時(shí)間內(nèi)是可用的<param name="recovery_alpha_slow" value="0.0"/> //慢速的平均權(quán)重濾波的指數(shù)衰減頻率,用作決定什么時(shí)候通過增加隨機(jī)位姿來recover,默認(rèn)0(disable),可能0.001是一個(gè)不錯(cuò)的值<param name="recovery_alpha_fast" value="0.0"/> //快速的平均權(quán)重濾波的指數(shù)衰減頻率,用作決定什么時(shí)候通過增加隨機(jī)位姿來recover,默認(rèn)0(disable),可能0.1是個(gè)不錯(cuò)的值<param name="gui_publish_rate" value="10.0"/> //掃描和路徑發(fā)布到可視化軟件的最大頻率,設(shè)置參數(shù)為-1.0意為失能此功能,默認(rèn)-1.0<param name="save_pose_rate" value="0.5"/> //存儲(chǔ)上一次估計(jì)的位姿和協(xié)方差到參數(shù)服務(wù)器的最大速率。被保存的位姿將會(huì)用在連續(xù)的運(yùn)動(dòng)上來初始化濾波器。-1.0失能。<param name="use_map_topic" value="false"/> //當(dāng)設(shè)置為true時(shí),AMCL將會(huì)訂閱map話題,而不是調(diào)用服務(wù)返回地圖。也就是說,當(dāng)設(shè)置為true時(shí),有另外一個(gè)節(jié)點(diǎn)實(shí)時(shí)的發(fā)布map話題,也就是機(jī)器人在實(shí)時(shí)的進(jìn)行地圖構(gòu)建,并供給amcl話題使用;當(dāng)設(shè)置為false時(shí),通過map server,也就是調(diào)用已經(jīng)構(gòu)建完成的地圖。在navigation 1.4.2中新加入的參數(shù)。<param name="first_map_only" value="false"/> //當(dāng)設(shè)置為true時(shí),AMCL將僅僅使用訂閱的第一個(gè)地圖,而不是每次接收到新的時(shí)更新為一個(gè)新的地圖,在navigation 1.4.2中新加入的參數(shù)。//激光模型參數(shù)<param name="laser_min_range" value="-1.0"/> //被考慮的最小掃描范圍;參數(shù)設(shè)置為-1.0時(shí),將會(huì)使用激光上報(bào)的最小掃描范圍<param name="laser_max_range" value="-1.0"/> //被考慮的最大掃描范圍;參數(shù)設(shè)置為-1.0時(shí),將會(huì)使用激光上報(bào)的最大掃描范圍<param name="laser_max_beams" value="30"/> //更新濾波器時(shí),每次掃描中多少個(gè)等間距的光束被使用(減小計(jì)算量,測(cè)距掃描中相鄰波束往往不是獨(dú)立的可以減小噪聲影響,太小也會(huì)造成信息量少定位不準(zhǔn)) <!-- 這4個(gè)laser_z參數(shù),在動(dòng)態(tài)環(huán)境下的定位時(shí)用于異常值去除技術(shù)(還有一種狀態(tài)增廣技術(shù)-將隱藏狀態(tài)包含進(jìn)狀態(tài)估計(jì),缺點(diǎn)是計(jì)算復(fù)雜,acml定位未使用這種定位) 這種定位思想是環(huán)境中的動(dòng)態(tài)物體總是會(huì)獲得比靜態(tài)地圖障礙物更短的讀數(shù)(人在障礙物后面是掃描不到的-假如不考慮體積,比如單個(gè)激光光束不用考慮體積),利用這樣的不對(duì)稱性去除異常值 缺點(diǎn)是:在其他可改變環(huán)境的其他類型情景(如去除障礙物)時(shí),這樣的非對(duì)稱性可能不存在,但相同概率分析通常是可適用的。因?yàn)槊恳粋€(gè)異常值都被舍棄了,缺少對(duì)稱性的缺點(diǎn)可能是從全局定位失效中恢復(fù)變得不可能。這種情況下,×××強(qiáng)加額外約束(如限制部分可能已被破壞的測(cè)量值)是有意義的(×××怎么約束)。(這里說的舍棄與likelihood_field模型的舍棄有區(qū)別,這里定位是先計(jì)算測(cè)量值對(duì)應(yīng)非預(yù)期物體的概率(意外對(duì)象概率/混合概率)大于用戶設(shè)定的閥值(amcl配置參數(shù)里貌似沒有這個(gè)?)舍棄,而似然域概率是舍棄的超出最大測(cè)量范圍的值,不計(jì)算概率。) (針對(duì)這個(gè)缺點(diǎn)不想改代碼的粗暴又好用省心的處理方式可能是構(gòu)圖的時(shí)候?qū)⒖梢苿?dòng)的障礙物搬走,還有更直接的辦法就是PS) 最后,概率由這4個(gè)權(quán)重乘他們對(duì)應(yīng)的概率然后相加,算法中4個(gè)權(quán)重相加等于1(這里默認(rèn)值不等于1,估計(jì)做了歸一化)。 這6個(gè)laser_參數(shù)可以用learn_intrinsic_parameters算法計(jì)算,該算法是期望值極大化算法,是估計(jì)極大似然參數(shù)的迭代過程。(×××好吧,amcl好像并沒有做這個(gè)工作) --><param name="laser_z_hit" value="0.5"/> //模型的z_hit部分的混合權(quán)值,默認(rèn)0.95(混合權(quán)重1.具有局部測(cè)量噪聲的正確范圍--以測(cè)量距離近似真實(shí)距離為均值,其后laser_sigma_hit為標(biāo)準(zhǔn)偏差的高斯分布的權(quán)重)<param name="laser_z_short" value="0.05"/> //模型的z_short部分的混合權(quán)值,默認(rèn)0.1(混合權(quán)重2.意外對(duì)象權(quán)重(類似于一元指數(shù)關(guān)于y軸對(duì)稱0~測(cè)量距離(非最大距離)的部分:--ηλe^(-λz),其余部分為0,其中η為歸一化參數(shù),λ為laser_lambda_short,z為t時(shí)刻的一個(gè)獨(dú)立測(cè)量值(一個(gè)測(cè)距值,測(cè)距傳感器一次測(cè)量通常產(chǎn)生一系列的測(cè)量值)),動(dòng)態(tài)的環(huán)境,如人或移動(dòng)物體)<param name="laser_z_max" value="0.05"/> //模型的z_max部分的混合權(quán)值,默認(rèn)0.05(混合權(quán)重3.測(cè)量失敗權(quán)重(最大距離時(shí)為1,其余為0),如聲吶鏡面反射,激光黑色吸光對(duì)象或強(qiáng)光下的測(cè)量,最典型的是超出最大距離)<param name="laser_z_rand" value="0.5"/> //模型的z_rand部分的混合權(quán)值,默認(rèn)0.05(混合權(quán)重4.隨機(jī)測(cè)量權(quán)重--均勻分布(1平均分布到0~最大測(cè)量范圍),完全無法解釋的測(cè)量,如聲吶的多次反射,傳感器串?dāng)_)<param name="laser_sigma_hit" value="0.2"/> //被用在模型的z_hit部分的高斯模型的標(biāo)準(zhǔn)差,默認(rèn)0.2m<param name="laser_lambda_short" value="0.1"/> //模型z_short部分的指數(shù)衰減參數(shù),默認(rèn)0.1(根據(jù)ηλe^(-λz),λ越大隨距離增大意外對(duì)象概率衰減越快)<param name="laser_likelihood_max_dist" value="2.0"/> //地圖上做障礙物膨脹的最大距離,用作likelihood_field模型(likelihood_field_range_finder_model只描述了最近障礙物的距離,(目前理解應(yīng)該是在這個(gè)距離內(nèi)的障礙物膨脹處理,但是算法里又沒有提到膨脹,不明確是什么意思).這里算法用到上面的laser_sigma_hit。似然域計(jì)算測(cè)量概率的算法是將t時(shí)刻的各個(gè)測(cè)量(舍去達(dá)到最大測(cè)量范圍的測(cè)量值)的概率相乘,單個(gè)測(cè)量概率:Zh * prob(dist,σ) +avg,Zh為laser_z_hit,avg為均勻分布概率,dist最近障礙物的距離,prob為0為中心標(biāo)準(zhǔn)方差為σ(laser_sigma_hit)的高斯分布的距離概率)<param name="laser_model_type" value="likelihood_field"/> //模型使用,可以是beam, likehood_field, likehood_field_prob(和likehood_field一樣但是融合了beamskip特征--官網(wǎng)的注釋),默認(rèn)是“l(fā)ikehood_field” //里程計(jì)模型參數(shù)<!--×××里程計(jì)模型并沒有涉及機(jī)器人漂移或打滑的情況,一旦出現(xiàn)這樣的情況,后續(xù)定位基本廢了,雖然Augmented_MCL有失效恢復(fù),但是實(shí)際運(yùn)行中耗時(shí)太長(zhǎng)且結(jié)果不太理想(位置居然跳,這很不合理,可能參數(shù)配置不太好)--><param name="odom_model_type" value="diff"/> //模型使用,可以是"diff", "omni", "diff-corrected", "omni-corrected",后面兩 個(gè)是對(duì)老版本里程計(jì)模型的矯正,相應(yīng)的里程計(jì)參數(shù)需要做一定的減小<param name="odom_alpha1" value="0.2"/> //指定由機(jī)器人運(yùn)動(dòng)部分的旋轉(zhuǎn)分量估計(jì)的里程計(jì)旋轉(zhuǎn)的期望噪聲,默認(rèn)0.2(旋轉(zhuǎn)存在旋轉(zhuǎn)噪聲)<param name="odom_alpha2" value="0.2"/> //制定由機(jī)器人運(yùn)動(dòng)部分的平移分量估計(jì)的里程計(jì)旋轉(zhuǎn)的期望噪聲,默認(rèn)0.2(旋轉(zhuǎn)中可能出現(xiàn)平移噪聲)<!-- translation std dev, m --><param name="odom_alpha3" value="0.8"/> //指定由機(jī)器人運(yùn)動(dòng)部分的平移分量估計(jì)的里程計(jì)平移的期望噪聲,默認(rèn)0.2(類似上)<param name="odom_alpha4" value="0.2"/> //指定由機(jī)器人運(yùn)動(dòng)部分的旋轉(zhuǎn)分量估計(jì)的里程計(jì)平移的期望噪聲,默認(rèn)0.2(類似上)<param name="odom_alpha5" value="0.1"/> //平移相關(guān)的噪聲參數(shù)(僅用于模型是“omni”的情況--wiki官網(wǎng)的注釋)<param name="odom_frame_id" value="odom"/> //里程計(jì)默認(rèn)使用的坐標(biāo)系<param name="base_frame_id" value="base_link"/> //用作機(jī)器人的基坐標(biāo)系<param name="global_frame_id" value="map"/> //由定位系統(tǒng)發(fā)布的坐標(biāo)系名稱<param name="tf_broadcast" value="true"/> //設(shè)置為false阻止amcl發(fā)布全局坐標(biāo)系和里程計(jì)坐標(biāo)系之間的tf變換//機(jī)器人初始化數(shù)據(jù)設(shè)置<param name="initial_pose_x" value="0.0"/> //初始位姿均值(x),用于初始化高斯分布濾波器。(initial_pose_參數(shù)決定撒出去的初始位姿粒子集范圍中心)<param name="initial_pose_y" value="0.0"/> //初始位姿均值(y),用于初始化高斯分布濾波器。(同上)<param name="initial_pose_a" value="0.0"/> //初始位姿均值(yaw),用于初始化高斯分布濾波器。(粒子朝向)<param name="initial_cov_xx" value="0.5*0.5"/> //初始位姿協(xié)方差(x*x),用于初始化高斯分布濾波器。(initial_cov_參數(shù)決定初始粒子集的范圍)<param name="initial_cov_yy" value="0.5*0.5"/> //初始位姿協(xié)方差(y*y),用于初始化高斯分布濾波器。(同上)<param name="initial_cov_aa" value="(π/12)*(π/12)"/> //初始位姿協(xié)方差(yaw*yaw),用于初始化高斯分布濾波器。(粒子朝向的偏差)</node> </launch>總結(jié)
以上是生活随笔為你收集整理的ros amcl 参数配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京高考语文已出现满分作文:揭秘评卷现场
- 下一篇: Entity Framework 简介