機器人操作系統(tǒng)(ROS)課件10.4 機器人SLAM及自主導(dǎo)航_第1頁
機器人操作系統(tǒng)(ROS)課件10.4 機器人SLAM及自主導(dǎo)航_第2頁
機器人操作系統(tǒng)(ROS)課件10.4 機器人SLAM及自主導(dǎo)航_第3頁
機器人操作系統(tǒng)(ROS)課件10.4 機器人SLAM及自主導(dǎo)航_第4頁
機器人操作系統(tǒng)(ROS)課件10.4 機器人SLAM及自主導(dǎo)航_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

機器人操作系統(tǒng)(ROS)機器人操作系統(tǒng)(ROS)機器人SLAM及自主導(dǎo)航10.4機器人操作系統(tǒng)(ROS)10.4機器人SLAM及自主導(dǎo)航

根據(jù)機器人所使用的傳感器不同,可以將SLAM(SimultaneousLocalizationandMapping,同步定位與建圖)分為激光SLAM和視覺SLAM。激光SLAM是使用激光雷達進行環(huán)境感知進而定位建圖;視覺SLAM通過視覺傳感器進行定位建圖。本章我們將使用單線激光雷達實現(xiàn)環(huán)境地圖的構(gòu)建,并在已構(gòu)建完成的地圖中實現(xiàn)自主導(dǎo)航。自主導(dǎo)航機器人操作系統(tǒng)(ROS)10.4.1使用gmapping構(gòu)建地圖gmapping原理gmapping算法是基于RBPF(Rao-BlackwellisedParticleFilter)的激光2DSLAM算法。該算法將機器人的里程計位姿信息和激光雷達的點云數(shù)據(jù)進行結(jié)合。RBPFSLAM的核心是通過激光雷達感知環(huán)境信息,并在RBPF的基礎(chǔ)上引入了改進的建議分布(Proposaldistribution)和自適應(yīng)重采樣技術(shù),在估計粒子分布時,同時考慮里程計位姿信息和最新的激光雷達觀測值,從而一定程度上減少了粒子數(shù)目和計算量,保證了建圖的準確性,有效改善了RBPF的粒子耗散和計算量大的劣勢。gmapping算法流程圖機器人操作系統(tǒng)(ROS)10.4.1使用gmapping構(gòu)建地圖gmapping原理當節(jié)點獲取到激光雷達和里程計的數(shù)據(jù)時,將最新時刻獲取的激光雷達觀測數(shù)據(jù)與之前構(gòu)建的點云地圖掃描匹配,確定當前機器人的位置。同時,算法會根據(jù)匹配的程度來計算得分,若得分在設(shè)定值的范圍內(nèi),則匹配成功,采用改進的建議分布(即觀測模型)進行粒子采樣。若失敗,則粒子采樣使用運動模型x_t^((i))~p(x_t∣x_(t-1),u_t),其中x_t、x_(t-1)、u_t分別是當前時刻的機器人位姿,上一時刻機器人位姿,當前時刻里程計信息。通過當前時刻里程計數(shù)據(jù)和上一時刻機器人位姿推算當前時刻位姿并計算粒子權(quán)值。根據(jù)機器人當前位置和已構(gòu)建的地圖,通過計算來構(gòu)建下一時刻地圖。改進前的RBPF使用運動學(xué)模型作為粒子采樣的建議分布,由于方差較大,只有少數(shù)粒子符合真實分布,因此必須進行重采樣來使粒子數(shù)符合實際分布。改進后的建議分布在運動學(xué)模型的基礎(chǔ)上根據(jù)觀測值和上一時刻地圖信息對采樣的粒子進行加權(quán),選用權(quán)重大的粒子進而更新地圖,改進建議分布如下式所示:機器人操作系統(tǒng)(ROS)10.4.1使用gmapping構(gòu)建地圖gmapping原理

機器人操作系統(tǒng)(ROS)10.4.1使用gmapping構(gòu)建地圖PLICP模擬里程計mapping是一個依賴里程計的算法,除了激光掃描數(shù)據(jù),也需要有里程計信息(Odometry)輸入作為運算的前提,比如輪式里程計,視覺里程計等。laser_scan_matcher功能包是基于ROS的增量式激光掃描配準工具,可以通過掃描連續(xù)的兩幀sensor_msgs/LaserScan消息之間匹配完成位姿估計,并將估計完成的位姿信息以geometry_msgs/Pose2D類型的話題進行發(fā)布。在僅有激光雷達傳感器的情況下,該功能包可以作為單獨的里程計估計器來使用。laser_scan_matcher功能包的核心是PLICP(點對線迭代最近點)掃描匹配算法。PLICP算法流程和ICP流程基本一樣,不同之處在于ICP是找最近鄰的一點,以點到點之間的距離作為誤差,而PLICP是找到最近鄰的兩點,兩點連線,是以點到線的距離作為誤差,因此PLICP的匹配誤差比ICP的匹配誤差要小的多。機器人操作系統(tǒng)(ROS)安裝步驟首先,運行如下命令,安裝本次實驗相關(guān)依賴庫:$sudoapt-getinstalllibsdl1.2-dev$sudoaptinstalllibsdl-image1.2-devROS中已經(jīng)集成了gmapping相關(guān)功能包的二進制文件,可以使用如下命令進行安裝:$sudoapt-getinstallros-melodic-slam-gmapping下面通過源碼安裝scan_tools功能包,作用是使用激光數(shù)據(jù)為gmapping提供里程計。首先,進入工作空間的src文件夾下:$cd~/catkin_ws/src/使用如下命令克隆源碼:$gitclone/ccny-ros-pkg/scan_tools.git10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)源碼下載完成后,運行如下命令進行編譯,也可將本書提供的功能包(scan_tools)拷貝至工作空間并進行編譯:$cd~/catkin_ws/$catkin_make本次實驗使用的激光雷達為鐳神LS01B,這是一款價格低廉的二維雷達,能夠?qū)崿F(xiàn)在25米范圍內(nèi)360度的二維平面掃描。將本書配套代碼中的激光雷達驅(qū)動功能包(ls01b_v2)復(fù)制到當前工作空間的src文件夾下,并進行編譯。LS01B激光雷達安裝步驟10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)如果在編譯過程中出現(xiàn)無法找到csm功能包的錯誤時,運行如下命令安裝csm功能包,并重新編譯:$sudoapt-getinstallros-melodic-csm無法找到csm功能包10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)編譯成功后,修改scan_tools/laser_scan_matcher/demo文件夾中的demo_gmapping.launch文件,其中<paramname=“serial_port”value=“/dev/ttyUSB0”/>,ttyUSB0為激光雷達端口號,讀者根據(jù)實際情況修改,修改后的文件如下(部分):<launch>##setupleishenlidar#################<nodename="ls01b_v2"pkg="ls01b_v2"type="ls01b_v2"output="screen"><paramname="scan_topic"value="scan"/><paramname="frame_id"value="laser_link"/><paramname="serial_port"value="/dev/ttyUSB0"/>……10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)配置參數(shù)講解map_udpate_interval:每次更新地圖的時間間隔(數(shù)據(jù)類型:float,默認值:5.0,單位:秒)。該值越小,節(jié)點將更頻繁的更新地圖,代價是計算負荷變大。maxUrange:激光的最大可用范圍。光束被裁剪為該值(數(shù)據(jù)類型:float,默認值:80.0,單位:米)。sigma:掃描匹配過程中cell的標準差(數(shù)據(jù)類型:float,默認值:0.05)。kernelSize:掃描匹配過程的搜索窗口大?。〝?shù)據(jù)類型:int,默認值:1)。lstep和astep分別是掃描匹配的初始距離步長和掃描匹配的初始角度步長(數(shù)據(jù)類型:float,默認值:0.05)。iterations:掃描匹配器的迭代次數(shù)(數(shù)據(jù)類型:int,默認值:5)。lsigma:掃描匹配過程中單個激光掃描束的標準差(數(shù)據(jù)類型:float,,默認值:0.075)。ogain:似然估計時使用的增益,用于平滑重采樣效果(數(shù)據(jù)類型:默認值::3.0)。lskip:每個n+1次掃描進行一次掃描匹配,取值為0時表示每次掃描之后都進行一次匹配(數(shù)據(jù)類型:int,默認值:0)。srr:位置的噪聲項(數(shù)據(jù)類型:float,默認值:0.1)。srt:方位角的噪聲項(數(shù)據(jù)類型:float,默認值:0.2)。str:位置到方位角的協(xié)方差項(數(shù)據(jù)類型:float,默認值:0.1)。stt:方位角到位置的協(xié)方差項(數(shù)據(jù)類型:float,默認值:0.2)。10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)linearUpdate:只有當機器人至少運動了linearUpdate的距離之后才進行一次新的測量(數(shù)據(jù)類型:float,默認值:1.0)angularUpdate:只有當機器人至少轉(zhuǎn)動了angularUpdate的角度之后才進行一次新的測量(數(shù)據(jù)類型:float,默認值:0.5)temporalUpdate:如果上次掃描處理的時間早于更新時間(秒),則處理掃描。小于零的值將關(guān)閉基于時間的更新(數(shù)據(jù)類型:float,默認值:-1.0)。resampleThreshold:粒子重采樣的閾值。只有當評價粒子相似度的指標Neff小于該閾值時才進行重采樣,所以降低該值意味著提高重采樣的頻率(數(shù)據(jù)類型:float,默認值:0.5)。particles:濾波器中的粒子數(shù),粒子數(shù)越多,定位精度越高,計算代價越大(數(shù)據(jù)類型:int,默認值:30)。xmin、ymin、xmax和ymax分別是初始地圖大小中X的最小值(數(shù)據(jù)類型:float,默認值:-100.0)、Y的最小值(數(shù)據(jù)類型:float,默認值:-100.0)、X的最大值(數(shù)據(jù)類型:float,默認值:100.0)以及Y的最大值(數(shù)據(jù)類型:float,默認值:100.0)。delta:地圖的分辨率(數(shù)據(jù)類型:float,默認值:0.05)。llsamplerange:似然估計的距離采樣范圍(數(shù)據(jù)類型:float,default:0.01)。llsamplestep似然估計的距離采樣步長(數(shù)據(jù)類型:float,默認值:0.01)。lasamplerange:似然估計的旋轉(zhuǎn)采樣范圍。(數(shù)據(jù)類型:float,默認值:0.005)。lasamplestep:似然估計的旋轉(zhuǎn)采樣步長(數(shù)據(jù)類型:float,默認值:0.005)。occ_thresh:占用概率閾值(數(shù)據(jù)類型:float,默認值:default:0.25)。10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)實驗測試首先,將激光雷達接入工控機,通過以下命令查看設(shè)備是否正常接入:$ls/dev若出現(xiàn)ttyUSB*(*代表0-9中的某個數(shù),本節(jié)中激光雷達的設(shè)備是dev/ttyUSB0),則激光雷達驅(qū)動成功。通過以下命令更改相應(yīng)串口權(quán)限,允許串口進行數(shù)據(jù)讀寫:$sudochmod777/dev/ttyUSB0運行如下命令啟動SLAM節(jié)點,并移動實驗小車進行地圖構(gòu)建,實驗結(jié)果如圖。$roslaunchlaser_scan_matcherdemo_gmapping.launch實驗結(jié)果10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)在工作空間目錄下創(chuàng)建一個map文件夾,通過如下命令保存當前構(gòu)建的地圖,保存后的地圖如圖所示:$rosrunmap_servermap_saver-f~/catkin_ws/map/mymap保存地圖若未安裝map_server,可運行如下命令安裝功能包:$sudo

apt-get

install

ros-melodic-map-server保存后的地圖10.4.1使用gmapping構(gòu)建地圖機器人操作系統(tǒng)(ROS)10.4.2基于地圖的定位與自主導(dǎo)航介紹導(dǎo)航框架(1)amclamcl的英文全稱是adaptiveMonteCarlolocalization,是在蒙特卡洛定位的基礎(chǔ)上,使用自適應(yīng)的KLD(kullback-leiblerdivergence)方法來更新粒子。蒙特卡洛定位使用粒子濾波的方法進行定位,粒子濾波用通俗的話說就是一開始在地圖空間均勻的撒一把粒子,然后通過獲取機器人的移動位姿來移動粒子,比如機器人向前移動了一米,所有的粒子也就向前移動一米,不管現(xiàn)在這個粒子的位置對不對,使用每個粒子所處位置模擬一個傳感器信息與觀察到的傳感器信息(一般是激光信息)作對比,從而賦給每個粒子一個權(quán)重。之后根據(jù)生成的權(quán)重來重新生成粒子,權(quán)重越高的生成的概率越大。這樣的迭代之后,所有的粒子會慢慢地收斂到一起,機器人在地圖上的確切位置也就被推算出來了。(2)move_basemove_base功能包的作用是將全局路徑規(guī)劃和局部路徑規(guī)劃結(jié)合,從而使機器人完成基于地圖的導(dǎo)航任務(wù)中的最優(yōu)路徑規(guī)劃,全局路徑規(guī)劃用于生成地圖上機器人的起始點到設(shè)置的目標點的路徑,局部路徑規(guī)劃用于生成到近距離目標和為了臨時躲避障礙物的路徑。機器人操作系統(tǒng)(ROS)ROS中的導(dǎo)航框架10.4.2基于地圖的定位與自主導(dǎo)航機器人操作系統(tǒng)(ROS)在機器人的導(dǎo)航任務(wù)中,首先,機器人需要發(fā)布必要的傳感器話題(sensortopic),消息類型為sensor_msgs/LaserScan或sensor_msgs/PointCloud,導(dǎo)航目標位置信息(move_base_simle/goal),消息類型為geometry_msgs/PoseStamped。其次,要求機器人發(fā)布里程計信息及相應(yīng)的TF變換。導(dǎo)航功能包用tf功能包來確定機器人在世界坐標系中的位置和相對于靜態(tài)地圖的相關(guān)傳感器信息,但是tf功能包不提供與機器人速度相關(guān)的任何信息,所以導(dǎo)航功能包要求里程計源程序發(fā)布一個變換和一個包含速度信息的nav_msgs/Odometry消息。最后,該導(dǎo)航功能包輸出控制機器人移動的指令(cmd_vel),并通過geometry_msgs/Twist類型的消息來和底層驅(qū)動板通信,從而控制電機運轉(zhuǎn),使機器人完成相應(yīng)的移動。ROS中的導(dǎo)航框架10.4.2基于地圖的定位與自主導(dǎo)航機器人操作系統(tǒng)(ROS)在導(dǎo)航框架中,機器人的路徑規(guī)劃包括全局路徑規(guī)劃(globalplanner)和局部實時規(guī)劃(localplanner)。前者根據(jù)給定的目標位置進行總體路徑規(guī)劃,后者根據(jù)所在位置附近的障礙物進行躲避規(guī)劃。全局路徑規(guī)劃器使用了A*算法,A*算法是一種高效的路徑搜索算法,采用啟發(fā)函數(shù)來估計地圖上機器人當前的位置到目標位置之間的距離,并以此選擇最優(yōu)的方向進行搜索,如果失敗會選擇其他路徑繼續(xù)搜索直到得到最優(yōu)路徑。局部路徑實時規(guī)劃是利用base_local_plann包實現(xiàn)的,該包使用DWA(DynamicWindowapproaches,規(guī)劃推理和動態(tài)窗口)算法,計算機器人每個周期內(nèi)應(yīng)該行駛的速度和角度(dx,dy,dthetavelocities)。DWA算法中先離散采樣機器人控制空間(dx,dy,dtheta),再對于每個采樣速度,從機器人當前的狀態(tài),進行模擬預(yù)測。ROS中的導(dǎo)航框架10.4.2基于地圖的定位與自主導(dǎo)航機器人操作系統(tǒng)(ROS)(3)costmap_2d代價地圖(costmap)是機器人收集傳感器信息建立和更新的二維或三維地圖。在move_base的框架下,costmap_2d為全局路徑規(guī)劃和局部路徑規(guī)劃提供了2D的代價地圖。costmap_2d使用的是占用柵格地圖,通過多個圖層描述環(huán)境信息。每個圖層描述了一種類型的信息,最終的代價是這些圖層疊加的結(jié)果。比如說靜態(tài)地圖層(staticmaplayer)描述的是導(dǎo)航的地圖信息,障礙物層(obstaclelayer)則記錄了環(huán)境中的障礙物,膨脹層(inflationlayer)根據(jù)用戶指定的參數(shù)和機器人的尺寸將障礙物的占用柵格區(qū)域放大一部分,以防止碰撞。根據(jù)導(dǎo)航類型,代價地圖又被分成兩部分。一個是全局地圖(global_costmap),在全局移動路徑規(guī)劃中以整個區(qū)域為對象建立移動計劃。而另一個被稱為局部地圖(local_costmap),這是在局部移動路徑規(guī)劃中,在以機器人為中心的部分限定區(qū)域中規(guī)劃移動路徑時,或在躲避障礙物時用到的地圖。然而,盡管兩種地圖的目的不同,但表示方法是相同的。costmap用0到255之間的值來表示。簡單地說,根據(jù)該值可以知道機器人是位于可移動區(qū)域還是位于可能與障礙物碰撞的區(qū)域。000:機器人可以自由移動的freearea(自由區(qū)域)001~127:碰撞概率低的區(qū)域128~252:碰撞概率高的區(qū)域253~254:碰撞區(qū)域255:機器人不能移動的占用區(qū)域(occupiedarea)10.4.2基于地圖的定位與自主導(dǎo)航機器人操作系統(tǒng)(ROS)障礙距離與costmap值的關(guān)系10.4.2基于地圖的定位與自主導(dǎo)航機器人操作系統(tǒng)(ROS)10.4.3安裝步驟導(dǎo)航框架中包含amcl、move_base等很多功能包,可以通過源碼安裝,也可以使用如下命令安裝:$sudoapt-getinstallros-melodic-navigation用源碼安裝的方法如下,在工作空間的src文件夾下克隆源碼:$gitclone/ros-planning/navigation進入navigation功能包查看版本:$cdnavigation

$gitbranch選擇melodic版本的navigation:$gitcheckoutmelodic-devel回到工作空間下進行編譯:$cdcatkin_ws/

$catkin_make若編譯出現(xiàn)如圖所示的問題,說明缺少相應(yīng)功能包,運行如下命令安裝相應(yīng)功能包:$sudoapt-getinstallros-melodic-tf2-sensor-msgs編譯報錯機器人操作系統(tǒng)(ROS)10.4.4參數(shù)配置文件講解代價地圖配置障礙物信息通過兩種代價地圖儲存:一種是global_costmap,用于全局路徑規(guī)劃;一種是local_costmap,用于本地路徑規(guī)劃和實時避障。兩種代價地圖的正常使用需要三個配置文件,分別是通用配置文件(CommonConfiguration)、全局規(guī)劃配置文件(GlobalConfiguration)和局部規(guī)劃配置文件(LocalConfiguration)。1.通用配置文件obstacle_range:2.5#設(shè)置地圖中檢測障礙物的最大范圍(m)。raytrace_range:3.0#設(shè)置機器人檢測自由空間的最大范圍(m)。footprint:[[0.165,0.165],[-0.165,0.165],[-0.165,-0.165],[0.165,-0.165]]#設(shè)置機器人在地圖上的占用面積,以機器人的中心作為原點。若機器人外形為圓形,則設(shè)置robot_radius(圓形半徑)。這里我們設(shè)置機器人外形為矩形。#robot_radius:0.165inflation_radius:0.1#機器人的膨脹參數(shù)(m),參數(shù)為0.1表示機器人規(guī)劃的路徑應(yīng)與障礙物保持大于0.1m的安全距離。max_obstacle_height:0.6#障礙物的最大高度(m)。min_obstacle_height:0.0#障礙物的最小高度(m)。observation_sources:scan#代價地圖需要關(guān)注的傳感器信息scan:{data_type:LaserScan,topic:/scan,marking:true,clearing:true,expected_update_rate:0}#分別為傳感器的消息類型、話題、是否使用傳感器的實時信息來添加或清除代價地圖的障礙物信息以及根據(jù)傳感器實際發(fā)布的速率為每個觀測源設(shè)置預(yù)期更新速率,當傳感器低于預(yù)期速率時,會在終端中發(fā)出警告。地圖的更新,來源于機器人發(fā)布的傳感器消息,代價地圖儲存由傳感器獲取的障礙物信息。配置文件名為costmap_common_params.yaml,文件內(nèi)容與解釋如下:機器人操作系統(tǒng)(ROS)全局規(guī)劃配置文件用于全局代價地圖參數(shù)的配置,配置文件名為global_costmap_params.yaml,文件內(nèi)容及解釋如下:2.全局規(guī)劃配置文件global_costmap:global_frame:/map#表示全局代價地圖在哪個坐標系下運行,這里選擇map參考系。robot_base_frame:/base_footprint#表示全局地圖參考的機器人坐標系。update_frequency:1.0#設(shè)置全局地圖信息更新的頻率(HZ)。publish_frequency:1.0#設(shè)置全局地圖信息發(fā)布的頻率(HZ)。static_map:true#用來決定代價地圖是否需要根據(jù)map_server提供的地圖信息進行初始化,若不需要已知地圖或map_server,將該參數(shù)設(shè)為false。rolling_window:false#用來設(shè)置機器人移動過程中是否需要滾動窗口來保持機器人處于中心位置。resolution:0.01#設(shè)置地圖分辨率(米/格)。transform_tolerance:1.0#TF變換的容忍誤差。map_type:costmap#地圖類型,代價地圖。代價地圖配置10.4.4參數(shù)配置文件講解機器人操作系統(tǒng)(ROS)局部規(guī)劃配置文件用于局部代價地圖參數(shù)的配置,配置文件名為local_costmap_params.yaml,文件內(nèi)容及解釋如下:3.局部規(guī)劃配置文件local_costmap:#參數(shù)含義與全局規(guī)劃配置文件中的相同

global_frame:/odomrobot_base_frame:/base_footprintupdate_frequency:3.0publish_frequency:1.0static_map:falserolling_window:truewidth:6.0#設(shè)置代價地圖的長(米)。

height:6.0#設(shè)置代價地圖的高(米)。

resolution:0.01transform_tolerance:1.0map_type:costmap代價地圖配置10.4.4參數(shù)配置文件講解機器人操作系統(tǒng)(ROS)局部規(guī)劃器(base_local_planner)配置局部規(guī)劃器的作用是,根據(jù)已經(jīng)規(guī)劃好的全局路徑計算發(fā)布給機器人的速度控制指令。配置文件名稱為base_local_planner_params.yaml,文件內(nèi)容與解釋如下:controller_frequency:3.0#設(shè)置向底盤控制移動話題cmd_vel發(fā)送命令的頻率。recovery_behavior_enabled:false#是否啟用move_base修復(fù)機制來清理出空間。clearing_rotation_allowed:false#決定做清理空間操作時候,機器人是否會采用原地旋轉(zhuǎn)。TrajectoryPlannerROS:max_vel_x:0.3#機器人的最大線速度,單位是m/s。

min_vel_x:0.05#機器人的最小線速度,單位是m/s。

max_vel_y:0.0#差速機器人的零位控制。

min_vel_y:0.0#差速機器人的零位控制。

min_in_place_vel_theta:0.5#機器人最小的原地旋轉(zhuǎn)速度,單位是弧度/秒。

escape_vel:-0.1#機器人逃離時的速度,單位是m/s。這個值必須是負數(shù),這樣機器人才能反向移動。

acc_lim_x:2.5#在x方向上的最大線加速度。

acc_lim_y:0.0#在y方向上的最大線加速度。

acc_lim_theta:3.2#在z方向上的最大旋轉(zhuǎn)角。10.4.4參數(shù)配置文件講解機器人操作系統(tǒng)(ROS)holonomic_robot:false#全方向驅(qū)動機器人設(shè)置為true,其他設(shè)為false。

yaw_goal_tolerance:0.1#最大距離目標方向的誤差(單位為弧度)。

xy_goal_tolerance:0.1#最多距離目標位置的誤差(單位為米)。

latch_xy_goal_tolerance:false#一般為false,若設(shè)置為true,則當進入xy_goal_tolerance范圍內(nèi)后會設(shè)置一個鎖,此后即使在旋轉(zhuǎn)調(diào)整yaw的過程中跳出xy_goal_tolerance,也不會進行xy上的調(diào)整。

pdist_scale:0.9#path的權(quán)重,權(quán)重越大越靠近全局路徑。

gdist_scale:0.6#goal的權(quán)重,權(quán)重越大越靠近全局目標。

meter_scoring:true#計算系數(shù)時統(tǒng)一參數(shù)的單位為米,一般都是true,false時單位為cells。

heading_lookahead:0.325#對不同的旋轉(zhuǎn)角,最多向前看幾米。

heading_scoring:false#通過機器人航向計算距離還是通過路徑計算距離,false為通過路徑計算。

heading_scoring_timestep:0.8#對不同的軌跡,每次前向仿真時間步長。

occdist_scale:0.1#權(quán)衡機器人以多大的權(quán)重躲避障礙物,該值過大會導(dǎo)致機器人陷入困境。

oscillation_reset_dist:0.05#表示機器人運動多遠距離才會重置振蕩標記。局部規(guī)劃器(base_local_planner)配置10.4.4參數(shù)配置文件講解機器人操作系統(tǒng)(ROS)publish_cost_grid_pc:false#將代價值進行可視化顯示,如果設(shè)置為true,那么就會在~/cost_cloud話題上發(fā)sensor_msgs/PointCloud2類型消息。

prune_plan:true#機器人前進是是否清除身后1m外的軌跡。

sim_time:1.0#前向模擬軌跡的時間,單位為s。

sim_granularity:0.025#軌跡點之間的步長,越短頻率越高,要求的計算機的性能要好。

angular_sim_granularity:0.025#給定角度軌跡的弧長。

vx_samples:8#x方向速度的樣本數(shù)。

vy_samples:0#差速輪機器人無Y方向速度,取0。

vtheta_samples:20#角速度的樣本數(shù)。

dwa:true#是否選擇DWA算法,false的話會選擇TrajectoryRollout。局部規(guī)劃器(base_local_planner)配置10.4.4參數(shù)配置文件講解機器人操作系統(tǒng)(ROS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論