Autoware-激光雷达目标检测与跟踪
記錄一下自己常用的檢測方法
?----------------------------------------------
2022.9.9更新
突然發現沒發跟蹤部分,對原博再修改一下
完結撒花
-------------------------------------------------------
一、傳統方法
使用
特別要注意:輸入的topic
1.播放數據包:雷達的topic必須為/points_raw
2.voxel_grid_filter:對原始點云進行降采樣
3.ray_ground_filter:對降采樣后的點云進行點云地面過濾,將地面點和非地面點進行分離
4.lidar_euclidean_cluster_detect:對非地面點進行聚類
5.imm_ukf_pda_track:基于交互式多模型、無跡卡爾曼濾波、概率數據關聯的跟蹤算法
voxel_grid_filter
Points topic:輸入點云話題,選擇/points_raw
Voxel Leaf Size:濾波時創建的體素大小為0.1m的立方體。過大的Leaf Size雖然會使速度變快,但聚類的結果會相對變差,尤其是對于反射較為微弱的物體(如遠處的行人)
Measurement Range:濾波范圍
ray_ground_filter
input_point_topic:輸入點云話題,選擇voxel_grid_filter發布的/filtered_points
sensor_height:激光雷達高度
clipping_height:裁剪高度,例如裁剪1.28m以上部分(以雷達為原點)
min_point_distance:最近的點云距離,1.85代表過濾掉1.85m范圍內的點云,為了消除車身自身的雷達反射的影響
radial_divider_angle:distance in rads between dividers
concentric_divider_distance:distance in meters between concentric divisions
local_max_slope:同條射線上臨近兩點的坡度閾值(單位:度)
general_max_slope:整個地面的坡度閾值(單位:度)
min_height_threshold:最小高度閾值
reclass_distance_threshold:重新分類點之間的距離
lidar_euclidean_cluster_detect
use_gpu:是否使用GPU
output_frame:輸出坐標系
pose_estimation:使用最小面積邊界矩形估計簇的姿態 Estimate the pose of the cluster using a minimum-area bounding rectangle
downsample_cloud:pointcloud downsampling via VoxelGrid filter
input_points_node:輸入點云topic,選擇/points_no_ground
leaf size:下采樣體素網格大小
cluster size minimum:聚類的最少點數
cluster size maximum:聚類的最多點數
clustering distance:聚類公差(m)
clip_min_height:裁剪的最小高度
clip_max_height:裁剪的最大高度
use_vector_map:是否使用矢量地圖
vectormap_frame:矢量地圖坐標系
wayarea_gridmap_topic:
wayarea_gridmap_layer(面板寫錯了):
wayarea_no_road_value:
remove_points_upto:Points closer than this distance to the lidar will be removed
keep_only_lanes_points:side-filtering
keep_lane_left_distance:Remove points further than this distance to the left (m)
keep_lane_right_distance:Remove points further than this distance to the right (m)
cluster_merge_threshold:聚類簇間的距離 Distance between cluster centroids (m)
use_multiple_thres:use of distance-based clustering tolerances 基于距離的聚類
clustering_ranges:Distance from lidar (m)
clustering_distances:聚類公差 Clustering tolerances (m)
remove ground:ground plane filtering (removes points belonging to the ground)
use_diffnormals: Difference-of-Normals filtering
publisher filtered:
imm_ukf_pda_track
inout topic:輸入話題
tracking frame:跟蹤坐標系
vectormap frame:矢量地圖坐標系
life time thres:對象關聯變量,跟蹤對象存活次數的閾值
gating thres:概率數據關聯參數,一個匹配用的閾值
gate probability:概率數據關聯參數,在IMM更新運動模型會用到
detection probability:概率數據關聯參數,在IMM更新運動模型會用到
static velocity thres:靜止速度閾值,小于這個閾值可視為靜止
static num history thres:靜止次數
prevent explosion thres:防止ukf參數爆炸的閾值
lane direction chi thres:使用矢量地圖需要設置的參數
nearest lane distance thres:使用矢量地圖需要設置的參數
merge_distance_threshold:合并兩個錨點的距離閾值,小于這個閾值可合并點
use_sukf:是否使用比例無跡卡爾曼濾波算法
use_vectormap:是否使用矢量地圖
?
效果
?節點關系圖
單獨使用
lidar_euclidean_cluster_detect
效果圖(不是很好)
節點圖
二、深度學習方法
以lidar_cnn_baidu_detect為例
準備
1.首先打開 autoware.ai/src/autoware/core_perception/lidar_apollo_cnn_seg_detect/README.md
安裝caffe
2.安裝完成后,刪除build install log文件夾,然后重新編譯
編譯完成后打開log文件夾查看編譯結果,可以查看CUDA等模塊是否安裝成功
出現100%說明編譯成功并且該模塊可用
3.從Apollo官網下載預訓練模型到autoware.ai/src/autoware/core_perception/lidar_apollo_cnn_seg_detect/models
4.代碼直接使用會報錯
參考鏈接
可按這個鏈接下載這個代碼覆蓋autoware里的代碼鏈接
?使用
lidar_cnn_baidu_detect
image_src:輸入點云
Score Threshold:分類閾值,當識別的得分大于0.7時可認為是這個類別
network_definition:網絡定義
pre_trained_model:預訓練模型
use_gpu:是否使用gpu
gpu_device_id:gpu id
效果
節點關系圖
當顯卡內存不足時會出現這種情況,考慮換個顯卡
總結
以上是生活随笔為你收集整理的Autoware-激光雷达目标检测与跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [ 网络协议篇 ] 路由策略详解
- 下一篇: Python 处理dat文件并画图
