機器人環境感知①——ROS環境下RGBD相機的使用

2021-02-13 古月居


因為最近想抽空學一下SLAM相關的東西,就打算開個博文記錄一下自己的學習過程,同時也希望對有需要的同學能起到一些幫助。

說到SLAM,即同時定位與建圖,目前有很多種實現方法,主流的便是雷射SLAM(配合雷射雷達)和視覺SLAM(配合視覺傳感器)。其中視覺SLAM又包括單目SLAM、雙目SLAM和RGBD SLAM等,每種類型下面又有很多實現框架,暫時就不一一闡述了,有空的話再去總結一下發出來。

雷射SLAM的話必然需要一個雷射雷達,目前市面上有很多便宜的適合學生和初學者的雷達可供選擇,如思嵐的A1等,某寶價格500元左右,還是可以接受的。

視覺SLAM的話首先需要有一個視覺傳感器,也就是常說的攝像頭,我最近買了個樂視的RGB-D深度相機,因為大家眾所周知的原因,這個相機可以說是目前性價比最高的RGB-D相機了,某寶價格100多元,雖然便宜,但是這小東西因為就是奧比中光代工的,實際幾乎奧比中光的 Astra Pro 一模一樣,可以說是學生黨福利了。

好了,需要的材料設備已經介紹完了,下面開始正式記錄自己的學習過程~

首先把參考資料寫在最最最前面,感興趣的小夥伴還可以移步查看官方文文檔:


Github:

https://github.com/orbbec/ros_astra_camera

官方的SDK:

https://orbbec3d.com/develop/

ROS wiki:

http://wiki.ros.org/Sensors/OrbbecAstra



1.1 安裝依賴

sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros

和正常開展ROS項目一樣,建立工作空間(我這裡起名叫rgbd_ws 根據需求自己更改工作空間的名稱)然後 catkin_make 一下

mkdir -p ~/rgbd_ws/srccd ~/rgbd_ws/catkin_makesource devel/setup.bash

之後克隆Github中的代碼,如果速度很慢的話,可以異步這個網站Github加速,步驟如下:

進入Github連結

右鍵下載Zip複製連結

複製進Github加速下載即可

右鍵 Download Zip 複製連結

沒有網速問題的同學直接shell指令即可:

cd ~/rgbd_ws/srcgit clone https:

1.4 添加相機設備rule

roscd astra_camerasudo sh ./scripts/create_udev_rules

1.5 編譯源碼包

cd ~/rgbd_wscatkin_make --pkg astra_camera

因為樂視這款是奧比中光的貼牌產品,此時還不能直接使用,需要對launch文件進行一些修改才可以使用。

首先將相機插在USB接口上,然後在終端查看相機接口:

其中:

Bus 001 Device 019: ID 2bc5:0502   Bus 001 Device 018: ID 2bc5:0403   

修改 ros_astra_camera 中 launch 文件夾下的 Astrapro.launch

cd  ~/cd rgbd_ws/src/ros_astra_camera/launch/gedit astrapro.launch

將 0x0501 改為上面的 0x0502

先 source 一下,此時應該就可以正常啟動了

 source ~/rgbd_ws/devel/setup.bash roslaunch astra_camera astrapro.launch

此時還暫時不能看到圖像,需要通過訂閱話題查看圖像

打開新終端,啟動rviz

Rviz中點擊左下角Add

依次進行以下操作:Add -> By topic -> 選擇對應的image即可

相關焦點

  • 如何在Arduino開發板上使用機器人作業系統(ROS)
    但是,由於板載計算能力和軟體有限,開發人員常常無法升級到更複雜的機器人。通常,隨著開發人員變得越來越有經驗,他們會尋找專門用於機器人的軟體,因為Arduino僅提供部分控制項。在本篇文章中,我們主要介紹了中間件軟體框架Robot Operating System(ROS),並引導您通過Arduino設置和使用ROS來創建更智能的機器人系統。什麼是ROS?
  • 【無人機自主導航4 視覺傳感器】通過ROS發布、訂閱話題連接視覺相機 (Realsense)– GanAHE的小創元世紀
    在SLAM領域,視覺傳感器也被廣泛應用,衍生出了ORB-SLAM、Vins-Mono等視覺SLAM,用於四足機器人、無人機等的導航與規劃等。├── opensource_tracking.launch├── rs_aligned_depth.launch├── rs_camera.launch├── rs_d400_and_t265.launch├── rs_d435_camera_with_model.launch├── rs_from_file.launch├── rs_multiple_devices.launch├── rs_rgbd.launch
  • 開發者說丨ROS理論與實踐⑥:機器人系統仿真
    1.概念機器人系統仿真:是通過計算機對實體機器人系統進行模擬的技術,在 ROS中,仿真實現涉及的內容主要有三:對機器人建模(URDF)、創建仿真環境(Gazebo)以及感知環境(Rviz)等系統性實現。
  • cartographer環境建立以及建圖測試(詳細級)
    機器人想要到達某個目的地,需要和人類繪製地圖一樣,描述環境、認識環境的過程主要就是依靠地圖。        而目前建圖方式有雷射雷達、視覺建圖、還有深度學習等。今天介紹的cartographer就屬於雷射slam。
  • 基於ROS搭建簡易軟體框架實現ROV水下目標跟蹤
    視覺模塊的任務為:通過單目相機識別目標,並計算目標中心位置與圖像中心位置的偏差,通過PID控制器得到控制量。demo中得到的控制量可以理解為豎直方向的推力,以及偏航(yaw)方向的轉矩,分別實現在圖像坐標下y方向和x方向的目標跟蹤。單目相機接在樹莓派的USB接口上,可以選擇的ROS工具包很多,只要確保圖像以標準的ros圖片格式發布即可。
  • 極客專欄 | ROS(一):ROS 系統、程序包與節點的簡介
    這個官方定義強調的是ROS系統的特殊性,但是沒有指出ROS可以給機器人軟體開發帶來哪些便利,下面將簡要說明一下ROS系統在機器人軟體系統中可以發揮的作用。在現在的機器人系統中,往往需要多個進程進行協同工作,例如在實際機器人的使用過程中,傳感器的數據處理和執行器的控制數據發送往往是被分開的。
  • 2019機器人作業系統(ROS)暑期學校:雷射雷達環境識別挑戰賽
    時間:2019年8月1日,晚7點-9點地點:2019 ROS暑期學校          哈工大機器人(合肥)創新研究院,現場通知具體場地報名網站和二維碼:活動行 http://hdxu.cn/iI6N5一、任務在ROS環境下利用雷射雷達(由EAI提供),設計一種環境識別系統。
  • 知識點:從隨機碰撞到自主導航,掃地機器人感知模塊LDS與VSLAM誰主沉浮?
    掃地機器人迭代與進化:產品從隨機碰撞到自主導航,感知模塊的進步是關鍵:感知模塊通過對周圍環境的感知掃描,實現地圖建模、定位和導航,依賴於各種傳感器、陀螺儀等。掃地機器人從原始的隨機碰撞產品迭代升級為當前的自主導航類產品,產品升級的背後,感知模塊的進步是重要推手,讓掃地機器人真正進入了智能化時代。當前的定位與地圖構建的主流是SLAM技術。
  • 嚴苛環境下,無人機如何參與極地救援
    Thór Argnrímsson是冰島搜救隊的一名成員,他通過使用大疆經緯M200系列,徹底改變了搜救隊的傳統工作方式,應對嚴苛環境下的搜救工作。大疆經緯M200 - 極地救援在以往的搜救工作中,無人機續航時間有限是一個缺陷,但M200系列飛行平臺的續航能力大幅提升,搭載單雲臺時,雙電池系統可提供長達35分鐘的續航時間。
  • Autoware 進行 Robosense-16 線雷達與 ZED 雙目相機聯合標定!
    進入 autoware 的 ros 目錄下cd autoware-1.10.0/ros# 2. rosdep 安裝依賴rosdep updaterosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO# 3. 編譯.
  • ROS技術點滴 —— rviz plugin
    當然由於機器人系統的需求不同,很多時候rviz中已有的一些功能仍然無法滿足我們的需求,這個時候rviz的plugin機制就派上用場了。rviz作為一種可擴展化的視圖工具,可以使用插件機制來擴展豐富的功能,進行二次開發,我們在rviz中常常使用的雷射數據可視化顯示、圖像數據可視化顯示,其實都是官方提供的插件。
  • 無人車研究中的感知系統與模擬器綜述(2019)
    這將使研究人員可以在退化的環境或不利的天氣條件下更深入地了解這些傳感器的優缺點。在圖2中,電磁頻譜分為兩個等級:波長和頻率。此外,還顯示了這項工作中分析的傳感器使用的光譜範圍。用於車輛的雷射器屬於1類,在正常使用的所有條件下都是安全的。雷射雷達利用Tof原理來測量發射到接收之間的距離。這些可以根據二維或三維雷射雷達從其環境中獲得的信息類型分類,也可以根據其結構分類,旋轉或固態雷射雷達。二維雷射雷達通過將一束雷射投射到垂直於旋轉軸的旋轉鏡上,從環境中獲取信息。
  • 【泡泡機器人原創專欄】飛行時間相機(ToF Camera)簡介
    這種級別的精度在室溫下的晶片上是無法獲得的。 ToF    立體相機通常使用兩個相機,類似於人的雙眼。給定空間中的 3D 點,分開的相機可以測量兩個相機圖像中的目標的視差。用針孔相機模型,可以計算每幅圖像中的目標位置,如圖所示,分別用α和β表示。根據角度,深度值,Z 就可以計算出來了。
  • ROS Melodic的網絡控制
    一個ROS機器人系統由眾多節點構成,每個節點是獨立的軟體模塊。當一個機器人系統足夠複雜時,只有一臺小電腦可能不堪重負。於是多個節點就不可避免得要被放到不同的機器上跑,這時候就會用到網絡通信。使用這種作業系統的機器人項目有很多,比較有名的有PX4、Paparazzi UAV等。因為屬於嵌入式作業系統,這種作業系統的使用和開發的難度都是很大的。今天我們來聊聊另一個更偏應用層的「作業系統」——ROS。ROS(Robot Operating System)是一個機器人用的「作業系統」。ROS是個軟體系統(相當於嵌入式系統的應用層),它需要在Linux系統上跑。
  • 【連載】ROS史話36篇 | 14. ROS導航與hiDOF
    導航的主要目的是讓機器人從一個給定的初始位置移動目標位置,在移動過程中不和周圍環境發生碰撞。ROS裡的導航軟體包集由若干個與導航相關的算法組成,這些開源算法可以幫助機器人開發者更快地實現移動機器人的自主導航。我們用下圖表示這個導航的過程。
  • 如何在Rviz中實現多機器人導航仿真
    Rviz可以很好的兼容各種基於ROS框架的機器人平臺,機器人及各種周圍物件環境的屬性(尺寸、質量、位置、材質、關節等)可以用XML文件來描述,並且圖形化地呈現在界面上。同時還可以通過圖形化的方式實時顯示機器人傳感器信息,位置狀態,周圍環境變化等。本文將在ROS系統的基礎上,在gazebo中實現多機器人的仿真,並在rviz中實現其中任一機器人的自主導航功能。
  • RT-Thread智能車目標識別系統連載教程——連接 ROS 小車控制(5)
    機器人作業系統 ROS (Robots Operating System) 最早是史丹福大學的一個軟體框架,現在不管是工業機器人,還是娛樂用的機器人都運行著 ROS。圖片來源網絡,如有侵權請聯繫刪除一個機器人通常有很多個部件、傳感器,為了保證機器人不會因為某一個傳感器故障,導致整個系統癱瘓,所以採用了分布式的節點,利用不同節點之間的通訊收集傳感器數據和控制指令,這篇文檔後面會使用到的通訊協議就是 rosserial。
  • 基於多傳感器融合的機器人實時避障
    我們的方法是端到端的,並使用多個感知傳感器(例如2-D雷射雷達)和深度攝像頭來感應周圍的動態主體並計算無碰撞速度。我們的培訓方法基於從模擬到真實的範例,並使用行人和環境的高保真3D模擬通過近距離策略優化(PPO)來訓練策略。我們證明,我們學到的導航模型可以直接轉移到以前看不見的虛擬和密集的真實環境中。
  • 用Jetson NANO做一個撿瓶子的機器人
    Robottle是一個全自主,在有障礙物的競技場裡收集瓶子的機器人。它利用雷射雷達和SLAM構建環境地圖,利用COCO數據集訓練的神經元網絡檢測瓶子。機器人激活神經網絡檢測並轉身直到檢測到瓶子。找到瓶子後,我們使用圖像邊界框上的回歸多項式函數來估計瓶子所在的角度。機器人將與瓶子完美對準,然後向前移動,直到超聲波傳感器檢測到瓶子為止。然後Robottle收集瓶子並再次開始旋轉。
  • 雷射雷達的地面-非地面分割和pcl_ros實踐
    pcl::PointXYZI 結構體使用(x, y, z, intensity)這四個數值來描述一個三維度空間點。通常使用sensor_msgs/PointCloud2.h 做為點雲數據的消息格式,可使用pcl::fromROSMsg和pcl::toROSMsg將sensor_msgs::PointCloud2與pcl::PointCloud<T> 進行轉換。