ROS機(jī)器人開發(fā)項目實戰(zhàn) 課件 第7、8章 智能機(jī)器人系統(tǒng)設(shè)計、智能機(jī)器人SLAM與自主導(dǎo)航_第1頁
ROS機(jī)器人開發(fā)項目實戰(zhàn) 課件 第7、8章 智能機(jī)器人系統(tǒng)設(shè)計、智能機(jī)器人SLAM與自主導(dǎo)航_第2頁
ROS機(jī)器人開發(fā)項目實戰(zhàn) 課件 第7、8章 智能機(jī)器人系統(tǒng)設(shè)計、智能機(jī)器人SLAM與自主導(dǎo)航_第3頁
ROS機(jī)器人開發(fā)項目實戰(zhàn) 課件 第7、8章 智能機(jī)器人系統(tǒng)設(shè)計、智能機(jī)器人SLAM與自主導(dǎo)航_第4頁
ROS機(jī)器人開發(fā)項目實戰(zhàn) 課件 第7、8章 智能機(jī)器人系統(tǒng)設(shè)計、智能機(jī)器人SLAM與自主導(dǎo)航_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章智能機(jī)器人系統(tǒng)設(shè)計·

智能機(jī)器人系統(tǒng)組成·

智能機(jī)器人系統(tǒng)搭建·

智能機(jī)器人傳感器智能機(jī)器人系統(tǒng)組成按照智能機(jī)器人組成部分的功能劃分,智能機(jī)器人可分為機(jī)械、傳感、控制三大部分,這三大部分可進(jìn)一步細(xì)

分為驅(qū)動系統(tǒng)、機(jī)械結(jié)構(gòu)系統(tǒng)、感知系統(tǒng)、機(jī)器人-環(huán)

境交互系統(tǒng)、人機(jī)交互系統(tǒng)、控制系統(tǒng)六個子系統(tǒng)激光雷達(dá)人一機(jī)交互系統(tǒng)控制系統(tǒng)驅(qū)動系統(tǒng)機(jī)械結(jié)構(gòu)系統(tǒng)機(jī)器人一環(huán)境交互系統(tǒng)TMU

塊12V電池電源輸出接口小車電源總開關(guān),充電時也需要打開

系統(tǒng)組成感

統(tǒng)

系統(tǒng)組成硬件清單底盤機(jī)械結(jié)構(gòu):主體使用亞克力板拼裝,由兩個直流電機(jī)帶動主動輪以及保持平衡的一個萬向輪實現(xiàn)機(jī)器人行走。驅(qū)動系統(tǒng):電池、

Arduinomega2560以及電機(jī)驅(qū)動模塊;控制系統(tǒng):樹莓派4B;傳感系統(tǒng):編碼器、單線激光雷達(dá)、相機(jī);其中,執(zhí)行機(jī)構(gòu)與驅(qū)動系統(tǒng)構(gòu)成了智能機(jī)器人底盤,激光雷達(dá)和相機(jī)用于實現(xiàn)機(jī)器人—環(huán)境交互功能。智能機(jī)器人系統(tǒng)搭建

上位機(jī)環(huán)境感知、動態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多功能于一體的綜合系統(tǒng)。樹莓派4B

下位機(jī)機(jī)器人運(yùn)動控制、底層傳感器輸入。Arduino

Mega2560/NanoGoal確定目標(biāo)AMCL定位PathPlanner

路徑規(guī)劃move_base

移動指令/cmd_vellodom

智能機(jī)器人硬件架構(gòu)1.

接收上位機(jī)的/cmd_vel指令2.將Twist數(shù)據(jù)轉(zhuǎn)換為對應(yīng)電機(jī)的PWM控制值3.采集測速碼盤數(shù)據(jù)并發(fā)送到上位機(jī)BaseControl

底盤控制MontorSpeeds

測速數(shù)據(jù)上報1.提前建好SLAM

地圖,啟動導(dǎo)航相關(guān)模塊2.設(shè)定初識位姿,并指定目的地3.move_base給出/cmd_vel底盤指令4.監(jiān)聽/odom,

修正當(dāng)前定位上位機(jī)安裝Ubuntu

系統(tǒng)和ROS系統(tǒng)ros_arduino_bridge下位機(jī)串口通信上位機(jī)(ubuntu)move_basebase_controlpoll(定頻)subIodom

、Mpubget_encoder_counts

位置計算

上位機(jī)-下位機(jī)通訊方案pub/cmd_velsubdrive電機(jī)速度計算write(串口)單片機(jī)move

encoderread(串口)單選題

1分下面不屬于Arduino控制器的是()A

NanoB

UnoStm32Mega

2560提交設(shè)置

執(zhí)行機(jī)構(gòu)方案霍爾直流減速電機(jī)

電機(jī)支撐架多款電機(jī)通用型耐用不生銹

強(qiáng)度高兩輪差速方式進(jìn)行驅(qū)動適用于:755/795/895/997/1800等電機(jī)尺寸方式:徑向22極應(yīng)用范圍:磁編碼器

電機(jī)霍爾器件霍爾編碼器磁環(huán)電機(jī)線+電機(jī)線-輔

路→光敏裝置碼盤光源一外殼

執(zhí)行機(jī)構(gòu)方案編碼器計數(shù)原理知乎@碼農(nóng)愛學(xué)習(xí)霍爾編碼器光電編碼器如何理解這個公式:Mo/C

即統(tǒng)計時間內(nèi)有多少個編碼器脈沖,再除以統(tǒng)計時間To,即

1s(單位時間)內(nèi)轉(zhuǎn)了多少圈例如:統(tǒng)計時間To

3s,

在3s內(nèi)測得的脈沖數(shù)M?為60,而編碼器的單圈脈沖數(shù)C為20,則轉(zhuǎn)

速n=60/(20*3)=1

圈每秒

執(zhí)行機(jī)構(gòu)方案編碼器計數(shù)原理只利用通道A的上升沿則一圈的計數(shù)值-碼盤的柵格數(shù)利用通道A的上升沿和下降沿

實現(xiàn)編碼器2倍頻利用通道A+通道B的上升沿和下降沿

實現(xiàn)編碼器4倍頻通道A通道B則:轉(zhuǎn)速n(圈/秒)的計算公式為:X1X2X4累計

脈沖

數(shù)

執(zhí)行機(jī)構(gòu)方案智能機(jī)器人輪胎(直徑65mm)智能機(jī)器人設(shè)計過程中,如果要求小車的位置控制較高,一般選

(

)霍爾編碼器光電編碼器不采用編碼器設(shè)置提交單選題

1分ATmega2560(SPI)MOSI(SPI)SSuse

for

digitalground

遙控接口

5V

電源輸出(供舵機(jī))外接電源輸入接口(7-15V)Mega

2560USB

interface驅(qū)動系統(tǒng)方案電機(jī)驅(qū)動模塊超聲波接口四

路LED

出(低電平使能)2560擴(kuò)展板2.54mm*6pin

接右側(cè)電機(jī)2.54mm*6pin

接左側(cè)電機(jī)USBtocomputer電源顯示模塊接口霍爾碼電機(jī)排線接口analogground電源子系統(tǒng)智能機(jī)器人的動力來源于電力,一般使用電池

作為動力,為機(jī)器人的執(zhí)行機(jī)構(gòu)、傳感器系統(tǒng)、

控制系統(tǒng)提供電能。但是機(jī)器人搭載的這些系

統(tǒng)的電源電壓要求不同,有些需要12V電源、有些需要5V電源,為保證機(jī)器人系統(tǒng)的穩(wěn)定性,

還要針對電源做保護(hù)、濾波等處理。電源子系

統(tǒng)就是為整個機(jī)器人提供穩(wěn)定的電源需求,常

用的電源管理芯片主要為LM2596系列

。電池:4節(jié)2600Mah18650

鋰電池(左);電池盒:4節(jié)18650電池盒(左);樹莓派電源:12V-5V降壓模塊(右);

電源供電系統(tǒng)方案L298N輸出A

輸出B板載5V使能驅(qū)動芯片直流電機(jī)的控制可以分為兩個部分,第一部分是與電

機(jī)直接相連的電機(jī)驅(qū)動模塊,可以將上層下達(dá)的控制

信號轉(zhuǎn)換成電機(jī)需要的電源信號;第二部分是電機(jī)控制模塊,接收控制系統(tǒng)的運(yùn)動指令,

實現(xiàn)對電機(jī)的閉環(huán)驅(qū)動控制。對于機(jī)器人常采用的直

流電機(jī)驅(qū)動模塊主要有L298N

、TB6612

、A4950T等直流電機(jī)旋轉(zhuǎn)方式IN1IN2IN3IN4調(diào)速PWM信號ENAENBM1正轉(zhuǎn)高低高///反轉(zhuǎn)低高//高/停止低低//高/M2正轉(zhuǎn)//高低/高反轉(zhuǎn)//低高/高停止//低低/高通

B

使

邏輯輸入

A使

5

V

供電供

G

N

D億

V

驅(qū)動系統(tǒng)方案

上位機(jī)控制系統(tǒng)方案智能機(jī)器人選擇樹莓派4B作為上位機(jī)平臺,在樹莓派中搭載Ubuntu系統(tǒng)和運(yùn)行ROS

。樹莓派主

要實現(xiàn)與智能機(jī)器人底控板Arduino的相互通信、外部傳感器(攝像頭、激光雷達(dá)等)的數(shù)據(jù)采集、

其它外設(shè)連接等控制系統(tǒng)的基礎(chǔ)功能,PC

端運(yùn)行需要圖形化顯示及高性能處理的上層ROS功能包

(圖像處理、SLAM

、

導(dǎo)航等)。GPIO40-PIN引腳

PoE

HAT

腳2.4/5Ghz

藍(lán)牙5.0

千兆以太網(wǎng)USB-C

5V/3A供電端口Micro

HDMI

(支持4K分辨率

的雙屏顯示)音頻端口雙

道MIPI

CSI

攝像頭端口Micro

SD卡

槽雙

道MIPI

DSI顯示端口USB3.0×2USB2.0×2

遠(yuǎn)程通訊及控制方案為方便后續(xù)開發(fā),需要使用遠(yuǎn)程連接方式訪問樹莓派,樹莓派可以使用的遠(yuǎn)程連接方式有很多,如SSH,VNC,Nomachine

等。Nomachine

下載地址為https://downloads./Windows端界面

無線手柄無線手柄可以連接NVIDIA

Jetson、樹莓派、PC等設(shè)備,相比鍵盤操作更加靈活,方便機(jī)器人控

制、建圖、采集數(shù)據(jù)等操作,本節(jié)介紹亞博智能公司的一款ROS無線手柄的使用方法L1鍵L2鍵

選擇鍵

開始鍵方向鍵---

功能鍵右搖桿---游戲菜單鍵左搖桿USB接口R1鍵R2鍵多選題

2分常用的直流電機(jī)驅(qū)動芯片有()A

TB6612B

A4950TC

L298N NSD8389提交設(shè)置智能機(jī)器人傳感器

傳感系統(tǒng)—激光雷達(dá)激光雷達(dá)是現(xiàn)今機(jī)器人尤其是無人車領(lǐng)域最重要、最關(guān)鍵也是最常見的傳感器之一,是機(jī)器人感知外界的一種重要手段。激光雷達(dá)工作原理發(fā)射魄距離光速d=C思嵐A1激光雷達(dá)飛行時間接收端

傳感系統(tǒng)—相機(jī)相機(jī)是機(jī)器人系統(tǒng)中另一個比較重要的傳感器,與雷達(dá)類似,相機(jī)也是機(jī)器人感知外界環(huán)境的重要手段之一,并且隨著機(jī)器視覺、無人駕駛等技術(shù)的興起,相機(jī)在物體識別、行為識別、SLAM

中等都有著廣泛的應(yīng)用。根據(jù)工作原理的差異可以將相機(jī)大致劃分成三類:單目相機(jī)、雙目相機(jī)與深度相機(jī)。

傳感系統(tǒng)—IMU

(陀螺儀模塊)IMU全稱為慣性測量單元,可以通過測量物體在三維空間內(nèi)的加速度和角速度,來獲取物體的運(yùn)動姿態(tài)和位置信息。IMU

模塊通常由三個部分組成:加速度計、陀螺儀和磁力計。這些傳感器可

以通過處理器進(jìn)行數(shù)據(jù)處理和濾波,從而獲得更加準(zhǔn)確的數(shù)據(jù)。MPU-6050IMUSCL

-12CClock—

→→SDA-12C

Data—

→XDA-ExtI2CData

—→XCL-Ext

I2C

Clock

→AD0-I2C

Address

Bit→INT-Interrupt

Out

—→

傳感系統(tǒng)一超聲波傳感器超聲波傳感器是一種利用超聲波來檢測物體位置、距離或速度的傳感設(shè)備。其工作原理是發(fā)射高頻聲波(通常超過20kHz),然后接收反射回來的聲波。根據(jù)聲波傳播的時間差或頻率變化,可以

計算出目標(biāo)物體的距離、位置或移動速度。超聲波脈沖回波VddVss超聲波傳感器的運(yùn)作原理

CSDN

@番茄老夫子

單選題

1分常用激光雷達(dá)一般不使用的線束為()A1B

2C

1632設(shè)置提交智能機(jī)器人開發(fā)過程中,

一般不需要的硬件為()A

單片機(jī)B

驅(qū)動芯片C

逆變器馬達(dá)提交設(shè)置單選題

1分THANKS感謝觀看第8章智能機(jī)器人SLAM與自主導(dǎo)航·SLAM

原理簡介·

常用二維SLAM

功能包的使用方法·Navigation導(dǎo)航框架·

自主導(dǎo)航案例SLAM

原理簡介

SLAM

原理簡介SLAM

,

全稱simultaneouslocalization

andmapping,即時定位與地圖構(gòu)建。即機(jī)器人自

身位置不確定的情況下,在完全未知的環(huán)境中創(chuàng)建地圖,同時利用地圖進(jìn)行自主定位和導(dǎo)航。

定位,在地圖上估測機(jī)器人的位置坐標(biāo),或者用一個問題來表示:我在哪?地圖構(gòu)建,這一過程是根據(jù)傳感器的結(jié)果來構(gòu)建一張地圖或者是修正當(dāng)前地圖,同時將結(jié)

果提供給定位算法作為先驗地圖。傳感器測量一致性檢查定位

SLAM

原理簡介地圖構(gòu)建地圖輸出SLAM的基本過程定位結(jié)果輸出

SLAM

原理簡介機(jī)器人必須安裝激光雷達(dá)等測距設(shè)備,可以獲取環(huán)境深度信息

SLAM原理簡介angle_min:可檢測范圍的起始角度;angle_max:可檢測范圍的終止角度,與angle_min

組成激光雷達(dá)的可檢測范圍;angle_increment:相鄰數(shù)據(jù)幀之間的角度步長;time_increment:采集到相鄰數(shù)據(jù)幀之間的時間步長,當(dāng)傳感器處于相對運(yùn)動狀態(tài)時進(jìn)行~rosmsg

showsensor_msgs/LaserScanstd_msgs/Headerheadertime

stampstring

frame_idangle_maxangle_incrementtime_incrementscan_timerange_min補(bǔ)

使

;scan_time:

采集一幀數(shù)據(jù)所需要的時間;

range_min:最近可檢測深度的閾值;range_max:最遠(yuǎn)可檢測深度的閾值;

ranges:

數(shù)

據(jù)的

數(shù)

。

SLAM

原理簡介uint32seqpose:

機(jī)器人當(dāng)前位置坐標(biāo),包括機(jī)器人的XYZ三軸位置與方向參數(shù),以及用于校正誤差的協(xié)方差矩陣。geometry_msgs/Point

positiongeometry_msgs/Quaternionorientationfloat64

zgeometry_msgs/Vector3

angular

float64yfloa

6l

[

]c

variancenav_msgs/Odometryoz36t644oatftwist:機(jī)器人當(dāng)前的運(yùn)動狀態(tài),包括XYZ三軸的線速度與角速度,以及用于校正誤差的協(xié)方差矩陣。float64常用二維SLAM

功能包的使用方法

常用二維SLAM功能包及使用方法gmapping功能包

即時定位與地圖建?;诩す饫走_(dá)需要機(jī)器人提供里程計信息OpenSlam開源算法輸

地圖

:nav_msgs/OccupancyGrid。Rao-Blackwellized粒子濾波算法二維柵格地圖(gmapping)IMU信息gmapping功能包的總體框架柵格地圖里程計信息深度信息常用二維SLAM功能包及使用方法安裝gmapping

sudo

apt-get

install

ros-noetic-gmapping名稱類型描述Topic訂閱tftf/tfMessage用于激光雷達(dá)坐標(biāo)系,基坐標(biāo)系,

里程計坐標(biāo)系之間的變換scansensor_msgs/LaserScan激光雷達(dá)掃描數(shù)據(jù)Topic發(fā)布map_metadatanav_msgs/MapMetaData發(fā)布地圖Meta數(shù)據(jù)mapnav_msgs/OccupancyGrid發(fā)布地圖柵格數(shù)據(jù)~entropystd_msgs/Float64發(fā)布機(jī)器人姿態(tài)分布熵的估計Servicedynamic_mapnav_msgs/GetMap獲取地圖數(shù)據(jù)TF變換描述必需的TF變換<scan

frame>→base_link激光雷達(dá)坐標(biāo)系與基坐標(biāo)系之間的變換,

一般由robotstatepublisher或stac

transformpublisher發(fā)布base_link→odom基坐標(biāo)系與里程計坐標(biāo)系之間的變換,

一般由里程計節(jié)

點發(fā)布發(fā)布的TF變換map→odom地圖坐標(biāo)系與機(jī)器人里程計坐標(biāo)系之間的變換,估計機(jī)

器人在地圖中的位姿gmapping功能包中的TF變換常用二維SLAM

功能包及使用方法<launch><arg

name="scan_topic"

default

="scan"/>pkg

="gmapping"type

="slam_gmapping"name="slam_gmapping"output

="screen"clear_params

="true">_

_a

eterv

d

"

="5.0"

/><1--SetmaxUrange<actual

maximumrange

of

the

Laser

--><param

name="maxRange"value

="5.0"/><param

name

="maxUrange"value="4.5"/><paramname=

"sigma"

value

=

0.05"/>參數(shù)說明可參考:http://wiki.ros.org/gmappingue/>almvo"ol"inlupdateame"vufrapom"m"odparamnameparam

name<param

name="kernelsize"value="1"/><paramname

="1step"

value

="0.05#

/>

ts

erpa"tio

l

a

.05"=

>5"/>e0u"vesanv""aramnamearamname<param

name

="Isigma"value

="0.075"/><param

name="ogain"value="3.0"

/><param

name="Iskip"value="0"

/>name="srr"value="0.01"/>"”

..

配置gmapping節(jié)點//010200""ueuellvavastrsrt""param

nameparam

name<param

name

="stt"

value

="0.02"

/>

e"

v

e=

0.5

3

/>

mbot_navigation/launch/gmapping.launch4"valualueangularUpdalinearUpdate""param

nameparamnamename="temporalUpdate"value

="-1.0"/><paramname="resampleThreshold"value

="0.5"/><param

name="particles"value

="80"

/><param

name="xmin"value

="-1.0"/><param

name="ymin"value

="-1.0"

/><paramname="xmax"value

="1.0"/><param

name

="ymax"value

="1.0"

/><param

name="delta"

value="0.05"

/><paramname

="1lsamplerange"value

="0.01"/><param

name="1lsamplestep"

value

="0.01"/><param

name="lasamplerange"value

="0.005"

/><param

name

="lasamplestep"value

="0.005"/>from

="scan"to

="S(arg

scan_topic)"/>

常用二維SLAM功能包及使用方法啟動gmapping

演示roslaunch

mybot_gazebo

view_mybot_with_laser_gazebo.launchroslaunch

mybot_navigation

gmapping_demo.launchroslaunchmybot_teleopmybot_teleop.launch柵格地圖即時定位與地圖建模(hector)深度信息hector_slam

功能包的總體框架hector_slam功能包基于激光雷達(dá)高斯牛頓方法二維柵格地圖不需要里程計數(shù)據(jù)輸出地圖話題:nav_msgs/OccupancyGrid

常用二維SLAM功能包及使用方法名稱類型描述Topic訂閱scansensor_msgs/LaserScan激光雷達(dá)掃描的深度數(shù)據(jù)syscommandstd_msgs/String系統(tǒng)命令。如果字符串等于“reset”,

地圖和機(jī)器人姿態(tài)重置為初始狀態(tài)Topic發(fā)布map_metadatanav_msgs/MapMetaData發(fā)布地圖Meta數(shù)據(jù)mapnav_msgs/OccupancyGrid發(fā)布地圖柵格數(shù)據(jù)slam_out_posegeometry_msgs/PoseStamped估計的機(jī)器人位姿(沒有協(xié)方差)poseupdategeometry_msgs/PoseWithCovarianceStamped估計的機(jī)器人位姿(具有高斯估計的不

確定性)Servicedynamic_mapnav_msgs/GetMap獲取地圖數(shù)據(jù)hector功能包中的

TF變換TF變換描述必需的TF變換<scan

frame>→base_link激光雷達(dá)坐標(biāo)系與基坐標(biāo)系之間的變換,

一般由robot_state_publisher或者static_transform_publisher發(fā)布發(fā)布的TF變換map→odom地圖坐標(biāo)系與機(jī)器人里程計坐標(biāo)系之間的變換,估計機(jī)器人在地圖

中的位姿常用二維SLAM功能包及使用方法安

裝hector_slam

git

clone

https://github.com/tu-darmstadt-ros-pkg/hector_slam.gitgmappinghectorrtabmapcartographer提交單選題

1分下面不屬于二維SLAM

的是(

)ABC設(shè)置Navigation導(dǎo)航框架Navigation導(dǎo)航框架Navigation

是機(jī)器人最基本的功能之一,ROS

為機(jī)器人提供了一整套導(dǎo)航的解決方案,包括全局與局部路徑規(guī)劃、代價地圖、異常行為恢復(fù)和地圖服務(wù)器等。R.0.B.0.T.

ComicsGoalAMCLPathPlannermove_baseIcmd_vellodomJOR6ECHAM2009"HIS

PATH-PLANNING

MAY

BESUB-0PTIMAL,BUT

IT's

GOT

FLAIR."BaseControllerMotorSpeeds

Navigation導(dǎo)航框架Navigation的輸入是開發(fā)者設(shè)置的導(dǎo)航目標(biāo)點坐標(biāo),輸出是機(jī)器人的運(yùn)動控制指令。NavigationStackSetupmap_serverglobal_costmap"move_base_simple/goal"geometry_msgs/PoseStampedmove_baseglobal_planner"cmd_vel"geometry_msgs/Twistbase

controllerprovided

nodeoptionalprovided

node

platformspecific

nodesensor

topicssensor_msgs/LaserScansensor_msgs/PointCloudlocal_plannerlocal_costmap"odom"nav_msgs/OdometryROS中的導(dǎo)航功能框架internalnav_msgs/Path"/tf"tf/tfMessagerecovery_behaviorssensor

transformsodometry

sourcesensor

sourcesamcl全局路徑規(guī)劃(globalplanner)1)全局最優(yōu)路徑規(guī)劃2)Dijkstra

或A*算法本地實時規(guī)劃(localplanner)1)規(guī)劃機(jī)器人每個周期內(nèi)的線速度、角速度,使之盡

量符合全局最優(yōu)路徑。2)實時避障3)TrajectoryRollout和DynamicWindowApproaches算法4)搜索躲避和行進(jìn)的多條路經(jīng),綜合各評價標(biāo)準(zhǔn)

選取最優(yōu)路徑

導(dǎo)航框架中的關(guān)鍵功能包Navigation

的輸入是開發(fā)者設(shè)置的導(dǎo)航目標(biāo)點坐標(biāo),輸出是機(jī)器人的運(yùn)動控制指令。internalnav_msgs/Pathlocal_plannernav_core::BaseLocalPlannerrecovery_behaviorsnav_core::RecoveryBehaviorlocal_costmap"move_base_simple/goal"geometry_msgs/PoseStampedmove_baseglobal_plannernav_core::BaseGlobalPlanner

geometry

msS

i

s

_"ore

plugin

interfacenav_coreinterfacesglobal_costmapcmd_vel"

導(dǎo)航框架中的關(guān)鍵功能包什么是動作(action)一種問答通信機(jī)制;帶有連續(xù)反饋;可以在任務(wù)過程中止運(yùn)行;基于ROS

的消息機(jī)制實現(xiàn)。goal:發(fā)布任務(wù)目標(biāo);cancel:

請求取消任務(wù);status:

通知客戶端當(dāng)前的狀態(tài);feedback:

周期反饋任務(wù)運(yùn)行的監(jiān)控數(shù)據(jù);result:

向客戶端發(fā)送任務(wù)的執(zhí)行結(jié)果,只發(fā)布一次。客戶端應(yīng)用用戶代碼函數(shù)調(diào)用回調(diào)函數(shù)Topicsgoalcancelstatusresultfeedback服務(wù)器端應(yīng)用用戶代碼Action的接口回調(diào)函數(shù)函數(shù)調(diào)用Action

客戶端Action

服務(wù)器ROSAction

服務(wù)器Action

客戶端名稱類型描述Action訂閱move_base/goalmove_base_msgs/MoveBaseActionGoalmove_base的運(yùn)動規(guī)劃目標(biāo)move_base/cancelactionlib_msgs/GoallD取消特定目標(biāo)的請求Action發(fā)布move_base/feedbackmove_base_msgs/MoveBaseActionFeedback反饋信息,含有機(jī)器人底盤的坐標(biāo)move_base/statusactionlib_msgs/GoalStatusArray發(fā)送到move_base的目標(biāo)狀態(tài)信息move_base/resultmove_base_msgs/MoveBaseActionResult此處move_base操作的結(jié)果為空Topic訂閱move_base_simple/goalgeometry_msgs/PoseStamped為不需要追蹤目標(biāo)執(zhí)行狀態(tài)的用戶,提供一個非action接口Topic發(fā)布cmd_velgeometry_msgs/Twist輸出到機(jī)器人底盤的速度命令Service~make_plannav_msgs/GetPlan允許用戶從move_base獲取給定目標(biāo)的路徑

規(guī)劃,但不會執(zhí)行該路徑規(guī)劃~clear_unknown_spacestd_srvs/Empty允許用戶直接清除機(jī)器人周圍的未知空間。適合于costmap停止很長時間后,在一個全

新環(huán)境中重新啟動時使用~clear_costmapsstd_srvs/Empty允許用戶命令move_base節(jié)點清除costmap中的障礙。這可能會導(dǎo)致機(jī)器人撞上障礙物,

請謹(jǐn)慎使用move_base

功能包中的話題和服務(wù)

導(dǎo)航框架中的關(guān)鍵功能包導(dǎo)航框架中的關(guān)鍵功能包mbot_navigation)/config/mbot/costmap_common_pazams.yaml”command="1oad"ns="global_costmap"1>mbot_navigation)/config/mbot/costmap_common

params.yaml”command="1oad"ns="1ocaL_costmap"1>mbot_navigation)/config/mbot/global_costmap_params.yaml"command="Ioad"

/>mbot_navigation)/config/mbot/move_base_params.yaml"

command="1oad"/>mbot_navigation)/config/mbot/dwa_local_planner_pazams.yaml"command="1oad"/><launch><node

pkg="move_base"type="move_base"respawn="false"name="move_base"output="screen"clear_params

="tzue">

<param

name="base_local_plannez"value="dwa_local_planner/DWAPlannerROS"/>配置move_base節(jié)點mbot_navigation/launch/move_base.launch<rosparam<rosparam<rosparam

<rosparam<rosparam<rosparam</node></launch>mbot_navigation)/config/mbot/local_costmap_params.yaml"

command="1oad"

/>file=

"s(findfile=s(findfile

="$(findfile="$(findfile=

"$(find參數(shù)說明請參考:http://wiki.ros.org/move

baseglobal_costmap_params.yamlbase_local_params.yamldwa_local_params.yamllocal_costmap_params.yamlcostmap_common

params.yamlmove_base_

params.yamlfile="$(find名稱類型描述訂閱的

話題/scansensor_msgs/LaserScan激光雷達(dá)數(shù)據(jù)/tftf/tfMessage坐標(biāo)變換/initialposegeometry_msgs/PoseWithCovarianceStamped初始化粒子濾波器的均值和協(xié)方差/mapnav_msgs/OccupancyGrid地圖信息發(fā)布的

話題/amcl_posegeometry_msgs/PoseWithCovarianceStamped機(jī)器人再地圖中的位姿估計/particlecloudpointgeometry_msgs/PoseArray濾波器估計的位置/tftf/tfMessage發(fā)布從odom到map的轉(zhuǎn)換關(guān)系服務(wù)global_localizationstd_srvs/Empty初始化全局定位,所有粒子完全隨

機(jī)發(fā)布在地圖上的空閑區(qū)域request_nomotion_updatestd_srvs/Empty手動更新粒子并發(fā)布更新后的粒子服務(wù)調(diào)

用static_mapnav_msgs/GetMapamcl調(diào)用此服務(wù)接收地圖,用以基

于激光掃描的定位1)蒙特卡羅定位方法2)二維環(huán)境定位3)針對已有地圖使用粒子濾波器

跟蹤一個機(jī)器人的姿態(tài)

導(dǎo)航框架中的關(guān)鍵功能包AMCL功能包中的話題和服務(wù)

導(dǎo)航框架中的關(guān)鍵功能包1)里程計定位:只通過里程計的數(shù)據(jù)

來處理/base和/odom

之間的TF轉(zhuǎn)換;2)amcl

定位:可以估算機(jī)器人在地圖

坐標(biāo)系/map

下的位姿信息,提供/base、/odom、/map

之間的TF變換。航跡推測平移旋轉(zhuǎn)/odom_frame里程計定位amcl定位/map_frame/odom_frame里程

漂移平移

旋轉(zhuǎn)位置估算AMCL修正誤差流程航跡推測平移

旋轉(zhuǎn)/base_frame/base_frame<paramname="min_paxticles"<paramname="max_paxticles"<param

name="tzanaform_tolerance"<param

nam

e="recovezy_alpha_alow"value

="500"/>value=

"3000"/>value

=

"0.02"

/>value

="0.20"

/>value

=

"0.20"/>value="1"/value=

"0.5"/>value

=

"0.00"

/>value

="0.00"

/><remapfrom="scan"<param

name="odom_mode1_type"<param

name=

"odom_alpha1"<param

name="odom_alpha2"</node><launch><argname="acan_topic"default="

acan"/><argname=

"ini

tialpose_x"default

="0.0"/><argname="initial_pose_y"

default

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。