最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

機(jī)器人制作開源方案 | 桌面級(jí)全向底盤--slam導(dǎo)航

2023-09-11 16:10 作者:機(jī)器譜  | 我要投稿

? ? ? 機(jī)器人的智能移動(dòng)可應(yīng)用于物流行業(yè)、交通行業(yè),本節(jié)內(nèi)容我們將利用鍵盤控制全向底盤運(yùn)動(dòng)完成slam建圖,并能在已建好的地圖里進(jìn)行自主導(dǎo)航。

1. 鍵盤控制底盤運(yùn)動(dòng)

實(shí)現(xiàn)思路

? ? ? 按下鍵盤上指定的鍵,實(shí)現(xiàn)全向底盤前進(jìn)、后退、轉(zhuǎn)向、平移;還可以靈活的設(shè)置底盤的角速度、線速度來調(diào)整底盤的運(yùn)動(dòng)。下面是本實(shí)驗(yàn)中規(guī)劃的控制全向底盤的鍵盤命令(如下表所示),大家可以先熟悉一下,稍后會(huì)在控制底盤時(shí)用到。

鍵盤命令及含義表

操作步驟

① 下載文末資料中的參考程序fourmacnum_car_ws\src\Arduino_Program\black_handle_BaseCar\black_handle_BaseCar.ino:

② 啟動(dòng)雷達(dá)、鍵盤、rosserial程序包。打開終端,輸入roslaunch robot_navigation_control robot.launch命令(見下圖),等待程序的運(yùn)行啟動(dòng)界面。

成功啟動(dòng)后,可以在終端看到底盤的當(dāng)前speed(線速度)為0.04,turn(角速度)為0.08。

注意:speed指的是線速度的大?。ò较颍?,turn指的是角速度的大小(包含方向)。

啟動(dòng)后的界面(如下圖所示):

③ 嘗試按下鍵盤命令,控制底盤的運(yùn)動(dòng)。 (注意:請(qǐng)先保證終端是激活狀態(tài);按鍵盤時(shí),稍微有點(diǎn)間隔,給底盤轉(zhuǎn)動(dòng)的時(shí)間)。

假如現(xiàn)在希望先增加底盤的最大速度,再降低底盤的最大速度,則分別按下鍵盤上q、z命令,則可以觀察到終端的結(jié)果(如下圖所示)。

更多命令大家可自行嘗試。

2. 底盤同步定位與建圖-SLAM

實(shí)現(xiàn)思路

? ? ? 利用Gmapping算法對(duì)底盤所在的未知環(huán)境進(jìn)行建立地圖、同步定位、最后保存此地圖。此地圖可供后續(xù)底盤導(dǎo)航使用。

器材準(zhǔn)備

操作步驟

① 下載文末資料中的參考程序fourmacnum_car_ws\src\Arduino_Program\black_handle_BaseCar\black_handle_BaseCar.ino:

② 啟動(dòng)雷達(dá)、鍵盤、rosserial。

? ? ? ?打開終端并輸入命令:roslaunch robot_navigation_control robot_car.launch,見下圖。

③ 啟動(dòng)構(gòu)建地圖服務(wù)。

? ? ? ?重新打開新終端并輸入:roslaunch four_macnum_slam four_macnum_slam.launch,見下圖。

? ? ? 界面啟動(dòng)后,在rviz中選擇“map”,可以在可視化界面看到有地圖出現(xiàn)。

? ? ? 下面根據(jù)實(shí)際環(huán)境進(jìn)行建圖:按下鍵盤相關(guān)指令(鍵盤指令請(qǐng)參考上述內(nèi)容--鍵盤命令及含義表)來控制全向底盤在場(chǎng)地內(nèi)遍地運(yùn)行,直至在Rviz內(nèi)可以看到構(gòu)建地圖的輪廓,如下圖所示(注意實(shí)際地圖環(huán)境不同,出現(xiàn)的輪廓也會(huì)不同)。

底盤在未知環(huán)境中建立地圖

④ 為了后續(xù)在已知環(huán)境中運(yùn)行底盤,需把此次建立的地圖進(jìn)行保存。需要先進(jìn)入保存地圖的文件夾,然后給地圖命名,保存即可。

下面是實(shí)驗(yàn)中的具體操作:

重新打開新終端(ctrl+shift+t)并輸入:cd fourmacnum_car_ws/src/four_macnum_navigation/maps

之后輸入:rosrun map_server map_saver -f ./your_map_name

返回下圖紅色框的信息,代表成功保存地圖。

查看生成的地圖文件

? ? ? 上面我們用map_server來保存地圖,這里我們來簡單了解和查看一下剛才保存的地圖文件(見下圖)。其中:map_server是一個(gè)和地圖相關(guān)的功能包,它可以將已知地圖發(fā)布出來,供導(dǎo)航和其它功能使用,也可以保存SLAM建立的地圖。

? ? ? 地圖文件,通常為pgm格式 ?

? ? ? 地圖的描述文件,通常為yaml格式

打開your_map_name.pgm(見下圖):

打開your_map_name.yaml ,各個(gè)參數(shù)如下圖所示:

其中占據(jù)的概率 occ = (255-color_avg)/255.0,color_avg為RGB三個(gè)通道的平均值。

3. 底盤導(dǎo)航—Navigation

實(shí)現(xiàn)思路

? ? ? 加載上述實(shí)驗(yàn)中建好的地圖,全向底盤進(jìn)行姿態(tài)估計(jì)并實(shí)現(xiàn)導(dǎo)航效果。

操作步驟

① 將創(chuàng)建的地圖應(yīng)用到導(dǎo)航程序中。這里我們需要修改下four_macnum_navigation.launch文件,將your_map_name.yaml 添加到此launch文件中。步驟如下:

? ? ? ?打開終端并輸入:cd fourmacnum_car_ws/src/four_macnum_navigation/launch

? ? ? ?之后再輸入:gedit four_macnum_navigation.launch

② 啟動(dòng)雷達(dá)、鍵盤、rosserial。

? ? ? ?在該終端繼續(xù)輸入:roslaunch robot_navigation_control test_one.launch

③ 打開新終端并輸入:roslaunch four_macnum_navigation four_macnum_navigation.launch(見下圖)。

啟動(dòng)界面后,可以看到許多紅色的箭頭,這代表底盤的姿態(tài)估計(jì)還不準(zhǔn)確。

④ 開始調(diào)整底盤的姿態(tài)。

? ? ? ?使用2D Pose Estimate 標(biāo)定底盤位于地圖中的初始位置及車頭指向(見下圖)。

⑤ 鼠標(biāo)點(diǎn)擊有roslaunch robot_navigation_control test_one.launch的終端后,嘗試按下鍵盤命令控制全向底盤運(yùn)動(dòng)(鍵盤指令請(qǐng)參考上述內(nèi)容--鍵盤命令及含義表),最好盡可能多的消除地圖中的箭頭【這一步作用是確定底盤在地圖中的實(shí)際位置以及車頭指向】。

? ? ? ?下面是多次按下鍵盤命令控制底盤運(yùn)動(dòng)后,箭頭逐漸減少的效果。


下圖是最后調(diào)整完的底盤姿態(tài)(即底盤在地圖中的實(shí)際位置以及車頭指向)。

⑥ 嘗試給定全向底盤目標(biāo)位置。

【使用2D Nav Goal】,這里的目標(biāo)位置包含了目標(biāo)點(diǎn)及車頭指向,在可視化界面點(diǎn)擊且轉(zhuǎn)動(dòng)箭頭防線,機(jī)器人會(huì)移動(dòng)到指定點(diǎn)的位置。??


4. 資料下載

資料內(nèi)容:程序源代碼

資料下載地址:桌面級(jí)全向底盤-slam導(dǎo)航 https://www.robotway.com/h-col-260.html


機(jī)器人制作開源方案 | 桌面級(jí)全向底盤--slam導(dǎo)航的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
忻州市| 铜梁县| 肃宁县| 甘孜县| 拜泉县| 福鼎市| 尉氏县| 即墨市| 醴陵市| 伊吾县| 兴安盟| 精河县| 乌恰县| 克拉玛依市| 阳曲县| 岫岩| 西盟| 岑溪市| 全南县| 英超| 嘉黎县| 双峰县| 公主岭市| 玛纳斯县| 长岭县| 绿春县| 东山县| 晋州市| 镇雄县| 莆田市| 新和县| 洪雅县| 荆门市| 方城县| 洞口县| 沽源县| 高青县| 奎屯市| 钟祥市| 锡林郭勒盟| 睢宁县|