【自動駕駛避障開發】如何讓障礙物在 RViz 中"顯形"?呈現感知數據轉 Polygon 全流程
自動駕駛系統中的障礙物可視化是開發調試過程中至關重要的一環。本文將詳細介紹如何將自動駕駛感知模塊檢測到的障礙物數據轉換為RViz可顯示的Polygon(多邊形)形式,實現障礙物的直觀可視化。
一、前置知識準備
在開始之前,我們需要了解幾個關鍵概念:
- RViz:ROS中的3D可視化工具,用于顯示各種傳感器數據和算法結果
- Polygon:多邊形消息類型,常用于表示物體輪廓
- Marker:RViz中通用的可視化標記類型,可顯示各種幾何形狀
二、感知數據格式分析
典型的自動駕駛感知模塊輸出的障礙物信息通常包含以下內容:
- 位置(x, y, z坐標)
- 尺寸(長、寬、高)
- 朝向(偏航角)
- 速度
- 類別(車輛、行人、騎行者等)
- ploygon點
我們需要將這些信息轉換為RViz可以顯示的幾何形狀。
三、數據轉換核心流程
3.1 安裝必要依賴
sudo apt-get install ros-<distro>-rviz ros-<distro>-visualization-msgs
3.2 創建障礙物到Polygon的轉換節點
#include <ros/ros.h>
#include "geometry_msgs/PolygonStamped.h"
#include "geometry_msgs/Point32.h"
#include "perception_msgs/perception.h" // 博主自定義的障礙物消息格式ros::Publisher pub_obs;
ros::Subscriber sub_perception;
void PerceptionCallBack