版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ROS外接設(shè)備介紹課程內(nèi)容課程目的:了解ROS外接設(shè)備,并知道如何使用課程安排:介紹ROS下常用的外接設(shè)備搖桿、鍵盤和鼠標(biāo)RGB-D攝像頭激光雷達(dá)視覺傳感器慣性測(cè)量模塊與GPS伺服電機(jī)底層嵌入式控制器Arduino?NXROBO20222輸入設(shè)備感知設(shè)備驅(qū)動(dòng)設(shè)備搖桿、鍵盤和鼠標(biāo)搖桿、鍵盤和鼠標(biāo)是最常見的計(jì)算機(jī)外部設(shè)備,相信大家都非常熟悉在這一節(jié)首先介紹一下如何在ROS中使用這類設(shè)備并結(jié)合小海龜?shù)葘?shí)例進(jìn)行操作學(xué)習(xí)。網(wǎng)址:
/ros-teleop?NXROBO20223搖桿搖桿就是有一組按鈕和電位器的裝置,能夠?qū)崿F(xiàn)或控制多種運(yùn)動(dòng)模式。在ROS系統(tǒng)中,使用搖桿能夠?qū)崿F(xiàn)機(jī)器人的遠(yuǎn)程控制。ROS支持大部分通用性搖桿作為輸入設(shè)備。安裝一些功能包并配置:?NXROBO20224$sudoaptinstallros-noetic-joystick-drivers$rosstackprofile&rospackprofile搖桿測(cè)試插入并檢測(cè)搖桿能否被識(shí)別:使用jstest命令檢測(cè)搖桿工作情況(視情況js0、js1等):這里,搖動(dòng)搖桿或點(diǎn)擊按鈕就會(huì)有相應(yīng)的輸出,如右圖所示。如果一切正常就可以在ROS系統(tǒng)中使用它。?NXROBO20225$ls/dev/input/$sudojstest/dev/input/js1搖桿使用首先,啟動(dòng)joy_node:查看節(jié)點(diǎn)發(fā)布的消息:這里,有軸向信息,也有按鈕信息。?NXROBO20226$rosrunjoyjoy_node$rostopicecho/joy搖桿使用查看消息類型:查看消息中使用的字段:?NXROBO20227$rostopictype/joy$rosmsgshowsensor_msgs/Joy搖桿示例運(yùn)行以下命令就可以實(shí)現(xiàn)用搖桿控制,小海龜運(yùn)動(dòng)。也可以通過(guò)類似的步驟控制Gazebo中的一些模擬機(jī)器人以及真實(shí)機(jī)器人運(yùn)動(dòng)。需要修改發(fā)布關(guān)聯(lián)話題的名稱,將被控對(duì)象訂閱的話題改為/cmd_vel?NXROBO20228$rosrunteleop_twist_joyteleop_node鍵盤和鼠標(biāo)如果沒有搖桿,使用鍵盤或鼠標(biāo)也能進(jìn)行機(jī)器人的簡(jiǎn)單遙控。這里簡(jiǎn)單介紹一下使用teleop_twist_keyboard和mouse_teleop遙控功能包。也需要修改發(fā)布關(guān)聯(lián)主題的名稱等,和上面示例類似,*_keyboard.py(/cmd_vel)、mouse_teleop.py(/mouse_vel)。使用的命令如下:?NXROBO20229$rosrunturtlesimturtlesim_node$rosrunteleop_twist_keyboardteleop_twist_keyboard.py$rosrunmouse_teleopmouse_teleop.py鍵盤和鼠標(biāo)ROS的輸入設(shè)備除了典型的三種之外,還可以用手機(jī)等與機(jī)器人進(jìn)行交互,大家有空可以進(jìn)一步探索,發(fā)現(xiàn)最適合的方式去控制機(jī)器人。?NXROBO202210激光雷達(dá)對(duì)周圍環(huán)境感知是機(jī)器人的一項(xiàng)重要能力激光雷達(dá)(lidar)是環(huán)境感知的一種重要傳感器,能測(cè)量出障礙物的距離信息這些信息非常重要,可用來(lái)構(gòu)建地圖、避障、導(dǎo)航本節(jié)以杉川激光雷達(dá)為例。?NXROBO202211激光雷達(dá)配置首先,需要下載spark代碼并安裝依賴(帶小主機(jī)的spark版本已集成,可忽略此步驟):一旦驅(qū)動(dòng)安裝完畢,就可以檢測(cè)安裝是否正確,系統(tǒng)能否檢測(cè)并使用它。這里,需要注意,如果沒有安裝相關(guān)依賴,啟動(dòng)激光節(jié)點(diǎn)有可能遇到問題,例如串口權(quán)限等。?NXROBO202212$gitclonehttps:///NXROBO/spark_noetic.git$ll/dev/|grep3ilidar啟動(dòng)激光雷達(dá)一切正常工作后,就可以使用激光雷達(dá)獲取信息了,使用下面命令啟動(dòng)節(jié)點(diǎn):?NXROBO202213$roslaunchiiiroboticslidar23iroboticslidar2.launch激光雷達(dá)使用使用rostopic查看主題是否發(fā)布數(shù)據(jù):其中/scan,是正在發(fā)布消息的主題,查看節(jié)點(diǎn)類型:使用以下命令查看數(shù)據(jù)結(jié)構(gòu):?NXROBO202214$rostopiclist$rostopictype/scan$rosmsgshowsensor_msgs/LaserScan激光雷達(dá)使用如果想查看激光雷達(dá)發(fā)布的消息,可以使用如下命令:此時(shí)單純顯示數(shù)字不形象,難以理解,可以使用rviz在圖形化接口下顯示數(shù)據(jù):?NXROBO202215$rostopicecho/scan$rviz視覺傳感器在ROS系統(tǒng)中,視覺傳感器主要包括與RGBD深度傳感器這兩類設(shè)備。?NXROBO202216RGB攝像頭RGBD攝像頭USB攝像頭USB攝像頭最為普遍,如筆記內(nèi)置攝像頭等,在ROS使用這類設(shè)備非常輕松。首先,安裝相應(yīng)功能包:這里,在使用前需要注意,攝像頭的pixel_format,有些設(shè)備是yuyv格式的,需要修改,否則會(huì)出錯(cuò)并無(wú)法看到圖像。也可以使用以下命令測(cè)試USB攝像頭是否在ROS中正常工作:?NXROBO202217$sudoaptinstallros-noetic-usb-cam$rosrunusb_camusb_cam_node$roslaunchusb_camusb_cam-test.launchUSB攝像頭?NXROBO202218USB攝像頭使用rostopiclist查看主題列表:也可以使用rqt_image_view或在rviz中查看:?NXROBO202219$rosrunrqt_image_viewrqt_image_view3D深度攝像頭以?shī)W比中光3D深度攝像頭為例,它包括一個(gè)彩色的VGA視頻攝像頭、深度傳感器以及麥克風(fēng)數(shù)組。我們的spark已安裝該款攝像頭的驅(qū)動(dòng)及依賴,安裝完成后,僅需插好該攝像頭USB界面,運(yùn)行節(jié)點(diǎn)并使用它:?NXROBO202220$roslaunchastra_launchastra.launch可以用rostopiclist查看主題列表,找到攝像頭相關(guān)的話題:類似/camera/rgb/image_raw,/camera/depth/image可以用rostopicecho命令、image_view、rviz等工具查看攝像頭獲取到的數(shù)據(jù)還可用rqt_image_view功能包查看視頻圖像(左圖為深度,右圖為RGB):?NXROBO202221$rosrunrqt_image_viewrqt_image_view3D深度攝像頭3D深度攝像頭還可產(chǎn)生點(diǎn)云數(shù)據(jù)如果你需要查看點(diǎn)云數(shù)據(jù),可以在rviz中,點(diǎn)擊Add按鈕,添加PointCloud2?NXROBO2022223D深度攝像頭慣性測(cè)量模塊(IMU)與GPS慣性測(cè)量模塊是測(cè)量物體速度姿態(tài)等信息的電子設(shè)備,主要由三軸陀螺和三軸加速度計(jì),甚至還包括磁力計(jì)等組成。全球定位系統(tǒng)GPS可以獲取地球上幾乎所有地區(qū)的位置和時(shí)間信息。?NXROBO202223IMUGPS慣性測(cè)量模塊(以xsens為例)想要使用,首先驅(qū)動(dòng)安裝:?jiǎn)?dòng)設(shè)備:然后就可以查看傳感器數(shù)據(jù)了,使用以下命令:當(dāng)然,也可以在rviz中顯示可視化的姿態(tài)數(shù)據(jù)。?NXROBO202224$sudoapt-getinstallros-noetic-xsens-driver$rosstackprofile&&rospackprofile$roslaunchxsens_driverxsens_driver.launch$rostopicecho/imu/dataGPS在ROS中使用GPS,需要安裝NMEAGPS驅(qū)動(dòng):?jiǎn)?dòng)節(jié)點(diǎn),_port是端口號(hào),_baud是串口傳輸速率:使用rostopiclist可以看到/fix的主題。?NXROBO202225$sudoaptinstallros-noetic-nmea-*$rosstackprofile&&rospackprofile$rosrunnmea_navsat_drivernmea_serial_driver_port:=/dev/rfcomm0_baud:=115200GPS查看主題消息內(nèi)容可以使用rostopicecho/fix:?NXROBO202226$rostopicecho/fixGPS也可以使用以下命令查看原始NMEA數(shù)據(jù):?NXROBO202227$rosrunnmea_navsat_drivernmea_topic_serial_reader_port:=/dev/rfcomm0_baud:=115200$rostopicecho/nmea_sentence伺服電機(jī)在機(jī)器人中舵機(jī)使用非常廣泛,可以直接搭建關(guān)節(jié)機(jī)器人,這里簡(jiǎn)單介紹一下Dynamixel伺服電機(jī)的使用。首先,是驅(qū)動(dòng)安裝:安裝完成后,將設(shè)備接到計(jì)算機(jī),并運(yùn)行以下命令:?NXROBO202228$sudoaptinstallros-noetic-dynamixel-*$rosstackprofile&&rospackprofile$roslaunchdynamixel_tutorialscontroller_manager.launch伺服電機(jī)接著運(yùn)行:使用/tilt_controller/command通過(guò)rostopicpub發(fā)布消息驅(qū)動(dòng)電機(jī):注意,這里0.5是弧度,約為28.65度。?NXROBO202229$roslaunchdynamixel_tutorialscontroller_spawner.launch$rostopicpub/tilt_controller/commandstd_msgs/Float64--0.5底層嵌入式控制器使用底層嵌入式控制器,可以極大擴(kuò)展ROS外接的傳感器和執(zhí)行器的種類和數(shù)量,如Arduino、STM32等。ROS主要通過(guò)rosserial功能包使用這類設(shè)備。通常用串口建立底層嵌入式設(shè)備和計(jì)算器的數(shù)據(jù)交互,rosserial支持很多使用串口連接的設(shè)備,這里我們以Arduino為例。?NXROBO202230Arduino配置首先,輸入以下命令,安裝功能包:如果你已經(jīng)安裝了ArduinoIDE,忽略這一步,否則運(yùn)行以下命令:這些都安裝完畢后,需要運(yùn)行以下命令:?NXROBO202231$sudoaptinstallros-noetic-rosserial-arduino$sudoaptinstallros-noetic-rosserial$sudoaptupdate&&sudoaptinstallarduinoarduino-core$cd~/sketchbook/libraries$rm-rfros_lib$rosrunrosserial_arduinomake_libraries.py.Arduino示例使用在ros_lib中提供了豐富的示例代碼,例如選擇helloworld,并下載,這些示例代碼都在include中包含了ros.h頭文件。代碼主要包括兩個(gè)函數(shù):setup()和loop(),分別用于初始化和連續(xù)運(yùn)行。在此,發(fā)送消息主題名稱為chatter。?NXROBO202232Arduino示例使用在啟動(dòng)roscore后,在新終端運(yùn)行下輸入命令:現(xiàn)在就可以通過(guò)rostopicecho查看Arduino發(fā)布的消息。如果用計(jì)算機(jī)控制PIN13的LED燈狀態(tài),可以選擇Blink示例,在File|Examples|ros_lib|Blink。通過(guò)以下命令可以改變燈的狀態(tài):?NXROBO202233$rosrunrosserial_pythonserial_node.py/dev/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化中心培訓(xùn)課程設(shè)計(jì)
- 2024年湖南省建筑安全員A證考試題庫(kù)
- 游標(biāo)卡尺的教學(xué)課程設(shè)計(jì)
- 線描畫課程設(shè)計(jì)幼兒園
- 2025黑龍江省安全員《A證》考試題庫(kù)及答案
- 礦井瓦斯抽采課程設(shè)計(jì)
- 籃球跨欄課程設(shè)計(jì)案例
- 玻璃熔爐砌筑工藝考核試卷
- 環(huán)境工程與城市規(guī)劃考核試卷
- 監(jiān)理工程師溝通能力提升考核試卷
- 【8地RJ期末】安徽省蕪湖市無(wú)為市2023-2024學(xué)年八年級(jí)上學(xué)期期末地理試題(含解析)
- 五級(jí)(程控交換)職業(yè)技能鑒定理論考試題及答案
- 分布式光伏場(chǎng)站管理制度-運(yùn)行管理
- 初中數(shù)學(xué)培優(yōu)補(bǔ)差總結(jié)3篇
- 醫(yī)療救護(hù)合作協(xié)議
- 開題報(bào)告:數(shù)智技術(shù)賦能的師范生深度學(xué)習(xí)過(guò)程畫像與實(shí)踐路徑優(yōu)化研究
- 《微元法的應(yīng)用》課件
- 第六單元《質(zhì)量與密度》3.密度的測(cè)量(分層訓(xùn)練)(解析版)
- 《無(wú)人機(jī)飛行操控技術(shù)(微課版)》全套教學(xué)課件
- 2023-2024學(xué)年廣東省深圳高級(jí)中學(xué)七年級(jí)(上)期末歷史試卷
- 病例封存應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論