《鴻蒙機器人編程》課件-14-ROS外接設(shè)備_第1頁
《鴻蒙機器人編程》課件-14-ROS外接設(shè)備_第2頁
《鴻蒙機器人編程》課件-14-ROS外接設(shè)備_第3頁
《鴻蒙機器人編程》課件-14-ROS外接設(shè)備_第4頁
《鴻蒙機器人編程》課件-14-ROS外接設(shè)備_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ROS外接設(shè)備介紹課程內(nèi)容課程目的:了解ROS外接設(shè)備,并知道如何使用課程安排:介紹ROS下常用的外接設(shè)備搖桿、鍵盤和鼠標RGB-D攝像頭激光雷達視覺傳感器慣性測量模塊與GPS伺服電機底層嵌入式控制器Arduino?NXROBO20222輸入設(shè)備感知設(shè)備驅(qū)動設(shè)備搖桿、鍵盤和鼠標搖桿、鍵盤和鼠標是最常見的計算機外部設(shè)備,相信大家都非常熟悉在這一節(jié)首先介紹一下如何在ROS中使用這類設(shè)備并結(jié)合小海龜?shù)葘嵗M行操作學習。網(wǎng)址:

/ros-teleop?NXROBO20223搖桿搖桿就是有一組按鈕和電位器的裝置,能夠?qū)崿F(xiàn)或控制多種運動模式。在ROS系統(tǒng)中,使用搖桿能夠?qū)崿F(xiàn)機器人的遠程控制。ROS支持大部分通用性搖桿作為輸入設(shè)備。安裝一些功能包并配置:?NXROBO20224$sudoaptinstallros-noetic-joystick-drivers$rosstackprofile&rospackprofile搖桿測試插入并檢測搖桿能否被識別:使用jstest命令檢測搖桿工作情況(視情況js0、js1等):這里,搖動搖桿或點擊按鈕就會有相應(yīng)的輸出,如右圖所示。如果一切正常就可以在ROS系統(tǒng)中使用它。?NXROBO20225$ls/dev/input/$sudojstest/dev/input/js1搖桿使用首先,啟動joy_node:查看節(jié)點發(fā)布的消息:這里,有軸向信息,也有按鈕信息。?NXROBO20226$rosrunjoyjoy_node$rostopicecho/joy搖桿使用查看消息類型:查看消息中使用的字段:?NXROBO20227$rostopictype/joy$rosmsgshowsensor_msgs/Joy搖桿示例運行以下命令就可以實現(xiàn)用搖桿控制,小海龜運動。也可以通過類似的步驟控制Gazebo中的一些模擬機器人以及真實機器人運動。需要修改發(fā)布關(guān)聯(lián)話題的名稱,將被控對象訂閱的話題改為/cmd_vel?NXROBO20228$rosrunteleop_twist_joyteleop_node鍵盤和鼠標如果沒有搖桿,使用鍵盤或鼠標也能進行機器人的簡單遙控。這里簡單介紹一下使用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鍵盤和鼠標ROS的輸入設(shè)備除了典型的三種之外,還可以用手機等與機器人進行交互,大家有空可以進一步探索,發(fā)現(xiàn)最適合的方式去控制機器人。?NXROBO202210激光雷達對周圍環(huán)境感知是機器人的一項重要能力激光雷達(lidar)是環(huán)境感知的一種重要傳感器,能測量出障礙物的距離信息這些信息非常重要,可用來構(gòu)建地圖、避障、導航本節(jié)以杉川激光雷達為例。?NXROBO202211激光雷達配置首先,需要下載spark代碼并安裝依賴(帶小主機的spark版本已集成,可忽略此步驟):一旦驅(qū)動安裝完畢,就可以檢測安裝是否正確,系統(tǒng)能否檢測并使用它。這里,需要注意,如果沒有安裝相關(guān)依賴,啟動激光節(jié)點有可能遇到問題,例如串口權(quán)限等。?NXROBO202212$gitclonehttps:///NXROBO/spark_noetic.git$ll/dev/|grep3ilidar啟動激光雷達一切正常工作后,就可以使用激光雷達獲取信息了,使用下面命令啟動節(jié)點:?NXROBO202213$roslaunchiiiroboticslidar23iroboticslidar2.launch激光雷達使用使用rostopic查看主題是否發(fā)布數(shù)據(jù):其中/scan,是正在發(fā)布消息的主題,查看節(jié)點類型:使用以下命令查看數(shù)據(jù)結(jié)構(gòu):?NXROBO202214$rostopiclist$rostopictype/scan$rosmsgshowsensor_msgs/LaserScan激光雷達使用如果想查看激光雷達發(fā)布的消息,可以使用如下命令:此時單純顯示數(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格式的,需要修改,否則會出錯并無法看到圖像。也可以使用以下命令測試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深度攝像頭以奧比中光3D深度攝像頭為例,它包括一個彩色的VGA視頻攝像頭、深度傳感器以及麥克風數(shù)組。我們的spark已安裝該款攝像頭的驅(qū)動及依賴,安裝完成后,僅需插好該攝像頭USB界面,運行節(jié)點并使用它:?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)生點云數(shù)據(jù)如果你需要查看點云數(shù)據(jù),可以在rviz中,點擊Add按鈕,添加PointCloud2?NXROBO2022223D深度攝像頭慣性測量模塊(IMU)與GPS慣性測量模塊是測量物體速度姿態(tài)等信息的電子設(shè)備,主要由三軸陀螺和三軸加速度計,甚至還包括磁力計等組成。全球定位系統(tǒng)GPS可以獲取地球上幾乎所有地區(qū)的位置和時間信息。?NXROBO202223IMUGPS慣性測量模塊(以xsens為例)想要使用,首先驅(qū)動安裝:啟動設(shè)備:然后就可以查看傳感器數(shù)據(jù)了,使用以下命令:當然,也可以在rviz中顯示可視化的姿態(tài)數(shù)據(jù)。?NXROBO202224$sudoapt-getinstallros-noetic-xsens-driver$rosstackprofile&&rospackprofile$roslaunchxsens_driverxsens_driver.launch$rostopicecho/imu/dataGPS在ROS中使用GPS,需要安裝NMEAGPS驅(qū)動:啟動節(jié)點,_port是端口號,_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伺服電機在機器人中舵機使用非常廣泛,可以直接搭建關(guān)節(jié)機器人,這里簡單介紹一下Dynamixel伺服電機的使用。首先,是驅(qū)動安裝:安裝完成后,將設(shè)備接到計算機,并運行以下命令:?NXROBO202228$sudoaptinstallros-noetic-dynamixel-*$rosstackprofile&&rospackprofile$roslaunchdynamixel_tutorialscontroller_manager.launch伺服電機接著運行:使用/tilt_controller/command通過rostopicpub發(fā)布消息驅(qū)動電機:注意,這里0.5是弧度,約為28.65度。?NXROBO202229$roslaunchdynamixel_tutorialscontroller_spawner.launch$rostopicpub/tilt_controller/commandstd_msgs/Float64--0.5底層嵌入式控制器使用底層嵌入式控制器,可以極大擴展ROS外接的傳感器和執(zhí)行器的種類和數(shù)量,如Arduino、STM32等。ROS主要通過rosserial功能包使用這類設(shè)備。通常用串口建立底層嵌入式設(shè)備和計算器的數(shù)據(jù)交互,rosserial支持很多使用串口連接的設(shè)備,這里我們以Arduino為例。?NXROBO202230Arduino配置首先,輸入以下命令,安裝功能包:如果你已經(jīng)安裝了ArduinoIDE,忽略這一步,否則運行以下命令:這些都安裝完畢后,需要運行以下命令:?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頭文件。代碼主要包括兩個函數(shù):setup()和loop(),分別用于初始化和連續(xù)運行。在此,發(fā)送消息主題名稱為chatter。?NXROBO202232Arduino示例使用在啟動roscore后,在新終端運行下輸入命令:現(xiàn)在就可以通過rostopicecho查看Arduino發(fā)布的消息。如果用計算機控制PIN13的LED燈狀態(tài),可以選擇Blink示例,在File|Examples|ros_lib|Blink。通過以下命令可以改變燈的狀態(tài):?NXROBO202233$rosrunrosserial_pythonserial_node.py/dev/

溫馨提示

  • 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

提交評論