1. 程式人生 > 實用技巧 >ROS中階筆記(一):機器人系統設計—ROS系統下連線外部感測器

ROS中階筆記(一):機器人系統設計—ROS系統下連線外部感測器

ROS中階筆記(一):機器人系統設計—ROS系統下連線外部感測器

目錄

01 連線攝像頭

1.1 ROS下連線usb_cam

https://answers.ros.org/question/197651/how-to-install-a-driver-like-usb_cam/

1.1.1 前期準備

步驟一,虛擬機器設定(vmware15.0 以上)

在虛擬機器選單欄中選擇“虛擬機器(M)”->選擇“可移動裝置”->選擇“xxxx Camera”->選擇“連線(斷開與主機連線)”,設定完這項之後,虛擬機器接管了筆記本攝像頭。

步驟二,檢測電腦是安裝usb_cam還是應該安裝uvc_cam

 $ lsusb                         #檢視usb攝像頭

開啟網址:http://www.ideasonboard.org/uvc/,檢視與自己攝像頭匹配的ID號。
如果有,就說明你的筆記本攝像頭比較好,有他的廠商提供的linux驅動,是uvc_cam
沒有匹配的ID,說明是usb_cam。

Bus 001 Device 002: ID 04f2:b6d9 Chicony Electronics Co., Ltd #攝像頭
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0e0f:0008 VMware, Inc.
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

步驟三,檢視攝像頭裝置

$ ls /dev/video*                     #預設筆記本自帶攝像頭是video0

步驟四,測試您的網路攝像頭;(虛擬機器+ubuntu16.04)

$ sudo apt-get install cheese
$ cheese                                       # 啟動cheese檢視攝像頭情況

1.1.2 問題

  • 問題一:步驟四 的問題

(cheese:5620): Clutter-WARNING **: Whoever translated default:LTR did so wrongly.

說明:因為我的筆記本為拯救者Y7000最新版2020,usb埠都為3.0以上,usb2.0根本沒有,因此攝像頭也開啟不了;

解決方法:虛擬機器設定—usb控制器—usb相容性—改為(usb3.0),注意一定要關閉虛擬機器設定;然後重啟。

1.1.3 安裝usb_cam

官網:http://wiki.ros.org/usb_cam

在ROS下常用的主要有兩種驅動包:usb_cam和uvc_cam。

$ sudo apt-get install ros-kinetic-usb-cam    # 安裝攝像頭功能包
$ roslaunch usb_cam usb_cam-test.launch       # 啟動功能包
$ rqt_image_view                              # 視覺化工具

新版本的usb_cam包在launch資料夾下有自帶的launch檔案,名叫usb_cam-test.launch

如果工作空間的usb_cam包中不帶這個launch檔案我們就要新建它:

用文字編輯器開啟,寫入以下程式碼:

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="yuyv" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

儲存,並關閉這個檔案。

1.2 連線Kinect

$ sudo apt-get install ros-kinetic-freenect-*                  # 安裝功能包
$ git clone https://github.com/avin2/SensorKinect.git          # 下載底層驅動
$ cd SensorKinect/Bin
$ tar xvf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2       # 64bit

$ cd Sensor-Bin-Linux-x64-v5.1.2.1/
$ sudo ./install.sh   #install指令碼安裝

kinect的驅動檔案在/opt/ros/kinetic/share/freenect_launch/launch/freenect.launch

第一步,可將freenect.launch檔案複製出來,在當前頁面開啟終端,輸入以下命令:

$ roslaunch freenect.launch

第二步,新開啟一個終端:

$ rosrun rviz rviz                                 #在rviz工具中檢視kinect獲取影象

在rviz介面中新增點雲和Image外掛,設定點雲的話題,和Fixed Frame

02 連線鐳射雷達

$ sudo apt-get install ros-kinetic-rplidar-ros    # 安裝功能包,包含驅動
$ rosrun rplidar_ros rplidarNode                  # 執行rplidar鐳射雷達,鐳射雷達360度旋轉
$ sudo gpasswd --add USER_NAME dialout            # 解決串列埠許可權問題
$ rostopic echo /scan                             # 鐳射雷達資料顯示
$ rosrun rviz rviz

03 參考教程

ARM架構開發板可參考:http://wiki.ros.org/indigo/Installation/UbuntuARM

常用感測器的ROS驅動可參考:http://wiki.ros.org/Sensors

微信公眾號:喵哥解說
公眾號介紹:主要研究機器學習、計算機視覺、深度學習、ROS等相關內容,分享學習過程中的學習筆記和心得!期待您的關注,歡迎一起學習交流進步!同時還有1200G的Python視訊和書籍資料等你領取!!!