這是一個標準的 ROS 2 Humble 功能包。透過四個 TFmini Plus 光達 (LiDAR),即時計算機器人相對於牆面的 側邊偏航角 (Side Yaw) 與 前方垂直角 (Frontal Angle)。
- 多執行緒驅動:
tfmini_publisher節點同時監控 4 路 UART 序列埠,解決數據阻塞。 - 精準數據同步:利用
message_filters同步不同雷達的時間戳記,計算結果更穩定。 - 標準訊息格式:採用
sensor_msgs/Range格式,可直接與 Rviz2 或其他導航節點對接。
- 感測器: TFmini Plus (UART 版本) x 4
- 連線: USB 轉 TTL 模組
-
幾何配置:
-
右側: 前後各一個(間距
$L_{side}$ ) -
前方: 左右各一個(間距
$L_{front}$ )
-
右側: 前後各一個(間距
請確保已安裝 ROS 2 數據同步套件:
sudo apt update
sudo apt install ros-humble-message-filters將此 Repo 放進你的 colcon 工作空間(例如 ~/ros2_ws/src)並編譯:
cd ~/ros2_ws
colcon build
source install/setup.bash將當前用戶加入 dialout 群組以讀取 USB 埠口:
sudo usermod -a -G dialout $USER開啟兩個終端機,分別啟動驅動與計算節點:
啟動硬體讀取 (Publisher)
ros2 run tfmini_plus tfmini_pub啟動角度計算 (Calculator)
ros2 run lidar_processor calculate_angletfmini_publisher.py: 解析 TFmini 協議並發佈 Range 訊息。
angle_calculator.py: 訂閱數據並進行三角函數運算,輸出校正 Log。
setup.py: 定義 ROS 2 節點入口點(Entry Points)。
udev rules: 由於多個 USB 轉 TTL 模組插拔順序可能變動,建議撰寫 /etc/udev/rules.d/ 規則固定埠口名稱(如 ttyLidar_FL)。
參數調整: 若計算出的角度正負號與預期相反,請交換 calculate_angle 中的 d1 與 d2 參數位置。