專案中想要實現針對機械人正前方n°的區域有障礙時,對機械人進行速度限制,於是自己做了乙個雷射雷達的扇形濾波。
思路就是獲取/scan
話題,將話題資料中的最大和最小角度設定為自己想要的扇區,需要注意的是,laserscan一般預設的座標系與機械人方向相反,a1雷達的背面是laser座標系的正方向——0°角位置
在使用python時,發現laserscan的ranges使用元組來儲存,無法直接修改或刪除,但是可以使用賦值的方式修改,修改資料時還需要注意角度和距離陣列的對應關係。
程式可以通過引數設定扇區的大小。
附上**
class
fliter
:def
__init__
(self)
: rospy.init_node(
'laserscanfliter'
,anonymous=
true
) self.receive_scan = rospy.subscriber(
'/scan'
, laserscan , self.callback)
self.publish_scan = rospy.publisher(
'/scan_range_filter'
,laserscan,queue_size=1)
self.scan_degree = rospy.get_param(
'~degree',6
)def
callback
(self,data)
: new_scan = data
new_scan.angle_min=
3.1415926
-3.1415926
/self.scan_degree*
2#print(new_scan)
ranges=()
range_size =
len(data.ranges)
range_size_pair =
int(range_size/self.scan_degree)
print
(range_size_pair)
for i in
range
(range_size_pair*
(self.scan_degree-1)
,range_size-1)
: ranges +=
(data.ranges[i],)
for i in
range(0
,range_size_pair)
: ranges +=
(data.ranges[i],)
new_scan.ranges=ranges
new_scan.angle_max=new_scan.angle_min+new_scan.angle_increment*
(len
(ranges)-1
) self.publish_scan.publish(new_scan)
雷射雷達 什麼是雷射雷達?
toc 本文引用 雷射雷達和老式雷達對比 來至 雷達 radar 是無線電探測和測距,即用無線電發現目標,並測定他們的空間位置,也稱為 無線電定位 雷達是利用電磁波探測目標的電子裝置。雷達發射電磁波對目標進行照射,並接收其回波,從而獲得目標至電磁波發射點的距離 距離變化率 徑向速度 方位 高度等資訊...
雷射雷達(一) 知名雷射雷達公司
目前大部分企業都以無人車 機械人及無人車領域雷射雷達為主要研究方向。而傳統機械式雷射雷達已逐漸向固態雷射雷達方向轉變。在 方面,無人駕駛領域的雷射雷達少則上萬,多則幾十萬元,普遍要高於機械人及a 等領域 而機械人領域的雷射雷達相對來說售價更低,國內思嵐科技及玩智商等企業已低至上百元。目前在用的就是思...
固態雷射雷達
與傳統機械掃瞄技術的雷達相比,利用光學相控陣掃瞄技術的固態雷射雷達有很多優勢 結構簡單 尺寸小 由於不需要旋轉部件,可以大大壓縮雷達的結構和尺寸,提高使用壽命,並降低成本。標定簡單 機械式雷射雷達由於光學結構固定,適配不同車輛往往需要精密調節其位置和角度,固態雷射雷達可以通過軟體進行調節,大大降低了...