ros單線固定多 ROS感測器之LIDAR簡介

2021-10-19 05:50:22 字數 2965 閱讀 5714

lidar,全稱light detection and ranging,即雷射檢測和測距,通常稱為雷射雷達。其功能是利用雷射檢測物體以及測量與物體之間的距離。

不同的分類標準,有不同的分類結果。通常有兩類分類標準,按照線束可分為兩類:一是單線雷射雷達,二是多線雷射雷達。單線雷射雷達的資料可以看做是一定高度的一排點陣,多線雷射雷達的資料報含高度資訊,可以看做是乙個面。按照機械性質又可分為機械雷射雷達和固態雷射雷達,目前主流市場以機械雷射雷達為主。

機械雷射雷達原理可以簡化理解為乙個發射器,乙個接收器和乙個旋轉鏡面,發射器週期向旋轉鏡面發射光束,由鏡面折射出去,此光束經過障礙物反射後,由接收器接收,統計時間,然後根據光速,計算距離。鏡面不停旋轉,鏡面旋轉一周,相當於雷射雷達掃瞄一周,可以獲取一幀雷射雷達資料。

雷射雷達的直接輸出主要包含兩部分:一是距離點,代表物體與雷射雷達之間的距離;二是反射強度,不同的物體其反射強度不同,在特定場景下,利用反射強度,可以識別物體,例如車道線檢測。

雷射雷達與imu和gps在作用上有乙個顯著差異點,imu與gps測量自身資訊,雷射雷達測量的是環境資訊,並可以根據環境資訊,反推自身資訊。在自動駕駛或者機械人領域,測量自身資訊,在稱之為定位,測量環境資訊,稱之為感知,建圖本質上屬於感知。

在機械人和自動駕駛領域,基於雷射雷達的方案比較成熟,這與其優勢的資料特性有關。具體如下:

測量資訊比較多:物體三維資訊,包括位置和速度,形狀,材料等。

不受光線影響:這點決定其可以全天候工作。其缺陷是易受天氣影響,還有一點是相對於其他感測器,雷射雷達成本比較高,不利於產品商業化量產,不過近幾年,隨著雷射雷達技術的發展,其成本也逐漸降低。

1. sensor_msgs/laserscan

sensor_msgs/laserscan是雷射雷達基本資料型別,其所描述的是一次掃瞄的資料,包括掃瞄角度、時間以及掃瞄距離等,執行以下命令:

rosmsg show sensor_msgs/laserscan
執行效果:

header項同前文gps(ros感測器之gps簡介),angle_min掃瞄起始角度,angle_max掃瞄結束角度,angle_increment兩次掃瞄間隔的角度,time_increment兩次掃瞄的時間間隔,scan_time此幀資料產生的時間,機械雷射雷達資料點,是由旋轉掃瞄產生,所以同一幀的每個點產生的時間都不一樣,scan_time要表示整幀資料的時間,一般取第一幀和最後一幀的平均時間,或者使用gps時間,這個後續再詳細介紹。range_min最小有效距離,range_max最大有效距離,ranges所有掃瞄點的距離,intensities所有掃瞄點的反射強度。

2. sensor_msgs/pointcloud2

sensor_msgs/pointcloud2代表點雲資料,pcl是點雲庫,專門處理點雲資料,通過將sensor_msgs/laserscan格式先轉化為sensor_msgs/pointcloud2格式,然後可以呼叫pcl演算法,處理資料。執行以下命令:

rosmsg show sensor_msgs/pointcloud2
執行效果:

header項同前文gps(ros感測器之gps簡介),height表示高度,width表示寬度,可以把一幀點雲資料看成影象資料,乙個點對應乙個畫素,寬和高也與之對應。is_bigendian資料儲存是否按照小端儲存,point_step表示乙個點所佔的位元組數,row_step表示一行點所佔的位元組數,is_dense表示資料是否有效,data實際儲存點雲資料,fields表示每乙個點雲所包含的格式,可以按照fields區域把點雲資料解析出來。以下是雷射雷達velodyne的一幀點雲資料,我們以此進一步說明此結構

header代表本幀時間戳、序列號,frame_id設定為velodyneheight為1,width為55823,所以此幀點雲數:height×width=1×55823=55823point_step為32,代表乙個點佔32位元組,row_step為1786336,此資料代表一行所佔的位元組數:point_step×width=32×55823=1786336;此幀總的自己數:row_step×height=1786336×1=1786336fields表示乙個點的結構,x、y、z代表三維座標,intensity代表反射強度,ring表示圈的序列號。fields中name代表field name,offset代表乙個點結構內的起始位址,datatype代表field資料型別,count代表field的個數。早期還有乙個結構:sensor_msgs/pointcloud,也是表示點雲資料,目前已經淘汰。

ROS使用Xsens感測器

xsens感測器廣泛應用於機械人,在 機械人姿態量測或slam中重要的器件。本篇文章主要講述xsens感測器在ros下的使用。筆者使用的xsens型號為mti 30。首先安裝xsens的驅動 hydro 版本。在功能包下的src資料夾下建立cpp檔案 工作空間與功能包建立請參考博文 ros節點訂閱與...

ROS使用Xsens感測器

xsens感測器廣泛應用於機械人,在機械人姿態量測或slam中重要的器件。本篇文章主要講述xsens感測器在ros下的使用。筆者使用的xsens型號為mti 30。首先安裝xsens的驅動 hydro 版本。在功能包下的src資料夾下建立cpp檔案 工作空間與功能包建立請參考博文 ros節點訂閱與發...

Xsens MTi感測器 ROS下配置

主要介紹ubuntu下對xsense公司mti系列慣性測量單元的配置並實現在ros下使用。robots robots ubuntu1604 downloads tar zxvf mtmanager linux x version.tar.gz在解壓縮的資料夾中,先進行安裝 sudo mtsdk li...