4.1底盤基礎(chǔ)功能
4.1.3nmcli命令配置機(jī)器人無線網(wǎng) Xshell中進(jìn)行(Xshell此軟件安裝包在3.windows實(shí)用軟件當(dāng)中下載)注:如果沒有辦法使用直接百度上搜索Xshell官網(wǎng)下載最新版本
配置無線網(wǎng)絡(luò)視頻教程首先準(zhǔn)備一臺路由器和網(wǎng)線 如下圖所示連接小車(注:路由器可以沒有互聯(lián)網(wǎng))
連上小車后需等待2-3分鐘小車系統(tǒng)啟動后才能查找到小車IP地址(如果長時間沒看到IP地址可以刷新一下頁面)
以TP-LINK路由器為準(zhǔn)打開路由器管理后臺查看小車的IP地址(每個路由器管理后臺界面不同操作也有所不同)
打開Xshell軟件 使用小車IP進(jìn)行登錄
接下來通過nmcli工具配置wifi連接,其中your_ap是需要連接的wifi熱點(diǎn)名,your_password是熱點(diǎn)密碼
Tips:在命令中輸入connect后可以使用TAB自動補(bǔ)全工具列出周圍的熱點(diǎn)
sudo nmcli device wifi connect your_ap password your_password
輸入完成后執(zhí)行,提示”Device 'wlan0' successfully activated with 'd6a46eb9-c0e3-4c60-9f2b-d6f7ee32de02'.“即為連接成功。
查看小車無線IP(查看Wlan0的ip地址)
ifconfig
接著拔掉網(wǎng)線 使用小車無線IP登錄Xshell(也可用于登錄nomachine)
4.1.4機(jī)器人底盤啟動和鍵盤遙控
打開xshell登陸小車,需注意如果機(jī)器人在WiFi模式下,必須確保PC和機(jī)器人連接在同一個路由器上。如果機(jī)器人在AP模式下,必須確保PC連接在機(jī)器人的熱點(diǎn)上。
通過launch文件啟動底盤控制:
roslaunch base_control base_control.launch
正確運(yùn)行后底盤蜂鳴器會發(fā)出一聲長響,終端會輸出底盤的基本信息
新打開一個終端登陸到機(jī)器人,輸入rostopic list檢查話題列表可以看到目前ros中有如下話題,這里依次介紹一下這些話題都有什么作用。
battery這個話題輸出的內(nèi)容有電池的電壓和電流兩個重要信息。
/cmd_vel這個話題目前沒有發(fā)布者,而訂閱者是底盤
/odom這個話題是一個里程計(jì),它的發(fā)布者是機(jī)器人底盤
rostopic echo /odom這個話題輸出的主要信息是位置坐標(biāo),航向以及線加速度和角加速度
接下來啟動一個鍵盤控制節(jié)點(diǎn)
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
在使用鍵盤遙控時,需要用鼠標(biāo)選中這個節(jié)點(diǎn)所在的終端。根據(jù)提示移動機(jī)器人可以通過輸入對應(yīng)的字符使其移動。
q/z同時修改線速度和角速度,q增z減。w/x修改線速度,w增x減。e/c修改角速度,e增c減。
在鍵盤遙控界面輸入一個i讓機(jī)器人前進(jìn),再輸出odom話題就能看到機(jī)器人的位置信息的x軸已經(jīng)發(fā)生了變化。
base_control傳入?yún)?shù)啟動,這里以使能imu輸出為例:
roslaunch base_control base_control.launch pub_imu:=ture
此時再次查看話題列表就會發(fā)現(xiàn)多了一個imu話題
以上就是底盤啟動和鍵盤控制的基本操作
4.1.5虛擬機(jī)和Ubuntu的使用
1.使用我們提供的虛擬機(jī)文件
本節(jié)內(nèi)容介紹虛擬機(jī)軟件和Ubuntu的使用
虛擬機(jī)軟件我們使用的是VMware
按照提示一直下一步安裝就可以了,詳細(xì)安裝過程見1.2.3節(jié)這里不再重復(fù)演示
打開軟件之后就是這樣一個界面,因?yàn)槲覀冇刑峁┨摂M機(jī)的文件所以我們選擇打開虛擬機(jī)
虛擬機(jī)文件在資料包的PC系統(tǒng)鏡像文件夾下的虛擬機(jī)文件。這里我們給大家原始提供的是壓縮包的形式,因?yàn)閒at文件系統(tǒng)對單個文件大小的限制,所以我們把文件做了個分割,這里只需要解壓第1個第2個會跟著一起解壓。
解壓完成后從虛擬機(jī)中選擇這個虛擬機(jī)文件后,播放這個虛擬機(jī)。之后會彈出一個窗口直接選我已復(fù)制該虛擬機(jī)即可。
這里虛擬機(jī)的配置和軟件包功能包都已全部安裝完畢,可直接使用。
2.使用自己搭建的ubuntu環(huán)境
如果使用自己搭建的ubuntu環(huán)境,請按照“ROS機(jī)器人用戶資料_2021\6-課件文檔”文件夾中” 用戶自己搭建PC端ubuntu環(huán)境需要下載和編譯的功能包.txt”文檔來補(bǔ)充安裝和編譯所需要的功能包。
4.1.6ROS分布式通訊配置(分布式不提供技術(shù)支持)
ROS機(jī)器人的實(shí)驗(yàn)和開發(fā)中,通常需要一臺移動機(jī)器人和一臺PC配合使用,這一章節(jié)我們就來介紹一下ROS中多機(jī)通訊的設(shè)置方法。
第一步:確保機(jī)器人和PC處于同一網(wǎng)段。
打開虛擬機(jī),設(shè)置網(wǎng)絡(luò)適配器
網(wǎng)絡(luò)連接模式選擇橋接模式,
選擇正確的網(wǎng)卡,有些電腦是雙網(wǎng)卡,根據(jù)自己連接的路由器的是哪張網(wǎng)卡就選擇哪張。
查看虛擬機(jī)網(wǎng)絡(luò)連接狀態(tài),可以看到這里就有一個IP為192.168.31.117的虛擬網(wǎng)卡
打開xshell登陸到機(jī)器人端查看小車IP,可以看到機(jī)器人IP為192.168.31.118
此時已確保機(jī)器人和PC處于同一網(wǎng)段。
第二步: 互相ping,測試網(wǎng)絡(luò)連通性
第三步:
修改PC端~/.bashrc文件
在文件中修改export ROS_MASTER_URI=http://xxx:11311
將機(jī)器人端IP填入
修改完成后執(zhí)行source ~/.bashrc 使修改生效
在機(jī)器人端啟動底盤:
roslaunch base_control base_control.launch
在PC端查看話題列表(左側(cè))
在PC端中讀取話題查看是否有數(shù)據(jù)一直刷新:
rostopic echo /battery
這樣我們就通過分布式通訊直接在PC端查看了機(jī)器人端活躍的話題。
4.1.7機(jī)器人和PC時間同步
本節(jié)內(nèi)容介紹機(jī)器人和pc的時間同步
現(xiàn)在絕大部分的電子設(shè)備它的時間都是通過NAT的服務(wù)器來校對自己的時間。這樣可以保證大部分設(shè)備時間戳基本是一致的。但是如果機(jī)器人連在一個沒有互聯(lián)網(wǎng)的局域網(wǎng)環(huán)境下,或者機(jī)器人處于AP模式。機(jī)器人就沒有辦法通過NTP服務(wù)器去校對自身的時間,而且因?yàn)闃漭蛇@一類的板卡本身也沒有RTC模塊所以沒有掉電保持時間的功能。當(dāng)機(jī)器人斷電后它的時間也就停留在斷電的時間點(diǎn)上,久而久之時間就會出現(xiàn)很大的偏差。
當(dāng)機(jī)器人端和PC端的時間戳已經(jīng)嚴(yán)重不同步時會導(dǎo)致ros下分布式通訊出現(xiàn)問題。兩臺機(jī)器無法有效傳輸數(shù)據(jù)。
此時需要將PC端時間和機(jī)器人端的時間同步
如果PC也是沒有外網(wǎng)環(huán)境,先給PC獲取一個外網(wǎng)環(huán)境然后安裝一個 ntp服務(wù)器:
sudo apt install ntp
安裝完NTP服務(wù)器之后,Ubuntu這個主機(jī)也就充當(dāng)了一個時間服務(wù)器然后在機(jī)器人端就可以對PC端做時間校準(zhǔn)
sudo ntpdate + “PC端IP”
輸入PC端的地址這樣就可以從PC上獲取時間來同步機(jī)器人端的時間。如果機(jī)器人沒有外網(wǎng)環(huán)境的話每次開機(jī)之后都要做一次校時的工作也就是通過sudo ntpdate來校準(zhǔn)一次時間
4.1.8Ubuntu下ssh免密登陸
本節(jié)內(nèi)容介紹Ubuntu下的登陸和免密登陸
在前面的章節(jié)中有介紹過Windows下的登陸機(jī)器人的軟件例如xshell等。
而在Ubuntu下也有ssh登陸方式、它直接在終端中通過系統(tǒng)自帶的指令實(shí)現(xiàn)
ssh登陸機(jī)器人bingda:
ssh bingda@192.168.31.118
登陸前提是PC和機(jī)器人在同一個網(wǎng)段,命令格式為ssh 用戶名@ip
這里需要格外注意的是終端當(dāng)前的用戶名,在登陸機(jī)器人后用戶名變成了robot,此時這個終端代表的是機(jī)器人端。而登陸之前的用戶名是ubuntu也就是PC端。類似啟動底盤這樣的指令只能在機(jī)器人端生效,因?yàn)镻C端沒有接底盤。初學(xué)者特別容易將PC端和機(jī)器人端弄混淆,將機(jī)器人端的指令在PC端執(zhí)行或?qū)C端才能生效的指令用在機(jī)器人端執(zhí)行。需要特別注意。
設(shè)置免密登陸
免密登陸全程在PC端設(shè)置,首先設(shè)置一個key。
在PC端運(yùn)行ssh-keygen然后一直默認(rèn)回車,就會生成一key已經(jīng)保存在/home/bingda/.ssh/id_rsa.pub中。
復(fù)制這個鑰匙到機(jī)器人端ssh-copy-id -i .ssh/id_rsa.pub bingda@192.168.31.118(機(jī)器人IP根據(jù)自己實(shí)際情況填寫)
鑰匙安裝成功,此時再ssh bingda@192.168.31.118登陸機(jī)器人就可以免密登陸了。
4.1.9安卓手機(jī)終端APP登陸機(jī)器人
本節(jié)內(nèi)容講解怎么使用手機(jī)登陸機(jī)器人
首先在應(yīng)用商店下載一個終端,或者使用我們資料包中“安卓APP”文件下下提供的”終端.apk”文件安裝,然后把手機(jī)數(shù)據(jù)流量關(guān)閉,然后打開WiFi,使手機(jī)和機(jī)器人連接在同一路由器上,如果機(jī)器人使用AP模式,則將手機(jī)WiFi連接到機(jī)器人熱點(diǎn)上。
打開終端后界面如下圖,點(diǎn)擊紅色方框處圖標(biāo)。
填寫機(jī)器人的IP,填寫機(jī)器人名稱,打開密碼選項(xiàng),點(diǎn)擊開始。填寫機(jī)器人密碼點(diǎn)擊登陸
登陸完成,接下來就可以使用手機(jī)終端操控機(jī)器人了。例如啟動底盤
4.1.10安卓ROS手機(jī)APP遙控機(jī)器人
本節(jié)內(nèi)容講解怎么使用手機(jī)APP遙控機(jī)器人
首先在通過PC或手機(jī)ssh登錄到機(jī)器人上,在機(jī)器人端運(yùn)行底盤控制功能包
roslaunch base_control base_control.launch
然后在用戶資料里找到“ROS Control”這個APP安裝并打開,點(diǎn)擊右上角+號,在Master URI欄填寫對應(yīng)的機(jī)器人IP,IP地址后面的:11311是端口號,不要去修改它。
此時WiFi圖標(biāo)為深黑色可點(diǎn)擊機(jī)器人名連接,在右下角的搖桿位置可控制機(jī)器人移動。
點(diǎn)擊右上角+號選中Show Advanced Options,在紅框處修改話題為odom,就可以在控制界面看到儀表盤的信息(下右圖紅框處),點(diǎn)擊紅框中的Control Mode可以選擇其他控制模式,例如Tilt重力感應(yīng)控制。
更多的對軟件進(jìn)行設(shè)置,可實(shí)現(xiàn)不同的功能,這里就不一一描述,如果感興趣可以自己去探索。
4.1.11使用遠(yuǎn)程桌面連接機(jī)器人
我們所使用的機(jī)器人默認(rèn)都是沒有搭載屏幕的,所以也就沒有辦法使用圖形桌面,如果想要使用機(jī)器人的圖形桌面,可以使用遠(yuǎn)程桌面來實(shí)現(xiàn),這里我們使用的是” NoMachine”這款遠(yuǎn)程桌面軟件,機(jī)器人端的鏡像中我們已經(jīng)預(yù)裝好了服務(wù)端,我們只需要安裝PC的客戶端即可,軟件安裝包在我們資料中有提供。
使用遠(yuǎn)程桌面和使用ssh登錄所需要的網(wǎng)絡(luò)環(huán)境是一樣的,都需要PC和機(jī)器人處于同一局域網(wǎng)下,在使用遠(yuǎn)程桌面前可以先嘗試ssh登錄來判斷網(wǎng)絡(luò)環(huán)境。
安裝完成后打開軟件,在地址欄中輸入機(jī)器人的IP地址,如果機(jī)器人工作正常,且和機(jī)器人在同一個局域網(wǎng)下,就可以看到連接的選項(xiàng),點(diǎn)擊后開始連接
連接成功后提示輸入用戶名和密碼,輸入完成后可以勾選記住用戶名選項(xiàng),完成后點(diǎn)擊login登錄進(jìn)機(jī)器人的桌面。
登錄進(jìn)去之后,會有一些使用指引,一路點(diǎn)擊OK即可,如果你已經(jīng)可以熟練使用,可以點(diǎn)擊”下次不再提醒”
接下來就登錄到機(jī)器人的桌面環(huán)境了
文章來源:http://www.zghlxwxcb.cn/news/detail-857783.html
如果不再需要使用遠(yuǎn)程桌面,關(guān)閉NoMachine窗口即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-857783.html
到了這里,關(guān)于4.1底盤基礎(chǔ)功能:nmcli命令配置機(jī)器人無線網(wǎng) Xshell中進(jìn)行(冰達(dá)ros機(jī)器人例程運(yùn)行)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!