delphi_esr毫米波雷達驅動安裝

毫米波雷達可能是自動駕駛中最容易落地的傳感器,正好實驗室有一隻天天拿來吃灰的索性用起來,探索下雙目+esr的ADAS相關

 

can卡驅動安裝

1.Linuxcan PPA

PPA(個人軟件包存檔)現在可用於Ubuntu 14.04+來將Kvaser Linuxcan安裝爲DKMS(動態內核模塊系統)模塊。這使您不必在每次新內核升級後都重建/修復linuxcan。重啓後,linuxcan應該可以像以前一樣工作,並在新的內核安裝上自動重建。Kvaser發行的新版本將在此PPA上可用。

 

sudo apt-add-repository ppa:jwhitleyastuff/kvaser-linux
sudo apt-get update
sudo apt-get install kvaser-canlib-dev kvaser-drivers-dkms

要在重新啓動後驗證功能,請執行以下命令:

cd /usr/src/linuxcan/canlib/examples
./listChannels

這將輸出類似於以下設備的列表:

Found 1 channel(s).
channel  0 = Kvaser Leaf Light v2,	73-30130-00685-0, 25593, 3.3.0.769

2.Kvaser 的ros驅動安裝

下載並安裝必備軟件和驅動程序包。

      1.驅動程序包依賴can_msgs包進行基礎通信。對於ubuntu 16.04 ros

sudo apt install ros-kinetic-can-msgs

ESR驅動

根據提示從git下載源碼:https://github.com/astuff/kvaser_interface

編譯好之後在相關目錄看到這三個ELF程序

 

list_channels

查看設備列表

一個沒有ROS依賴性的簡單工具,它返回所有Kvaser設備以及這些設備上可用通道的列表

Card 0:
  S/N: 44263
  UPC: 73-30130-00685-0
  Name: Kvaser Leaf Light v2
  Firmware rev: v4.3.239
  Driver: leaf v8.28.846

  Channel 0:
    Index: 0
    Max Bitrate: 0

canmonitor

一個簡單的工具,沒有ROS依賴關係,可以將在給定通道索引(-i-默認:0)和比特率(-b-默認:500000)上接收到的CAN消息輸出到終端。

 

啓動ROS驅動程序

ROS提供了一個實用程序(由調用roslaunch)來啓動具有特定配置的節點(稱爲啓動文件)。啓動文件允許在ROS環境中啓動一個節點(或多個節點)的多種配置或複雜配置。AutonomouStuff在AutonomouStuff驅動程序包中提供了所有驅動程序的示例啓動文件。可以在以下位置找到示例啓動文件<as_drivers_install>/install/share/<node_name>/launch/。如果ROS_PACKAGE_PATH中包含AutonomouStuff驅動程序包位置,則無需提供啓動文件的路徑。

要使用roslaunch運行特定驅動程序的啓動文件:

roslaunch <package_name> <file_name>.launch

roslaunch delphi_esr delphi_esr.launch

爲啓動文件中定義的參數提供值:

roslaunch delphi_esr delphi_esr.launch can_hardware_id:=<ID> can_circuit_id:=<ID> esr_frame_id:=<frame_id>

ROS運行

rosrun可用於手動調用二進制文件。這使用與啓動文件中的<node>定義相同的信息。

使用rosrun以下命令運行驅動程序:

rosrun <package_name> <node_name> <rosparams and arguments>

rosrun delphi_esr delphi_esr_can _can_hardware_id:=<ID> _can_circuit_id:=<ID> _sensor_frame_id:=<frame_id>

或者,您也可以使用可執行文件的路徑來調用該可執行文件 

./delphi_esr_can _can_hardware_id:= _can_circuit_id:= _sensor_frame_id:= 

Delphi_ESR ROS 正確啓動:

DRIVER_NAME:  delphi_esr

msgs_name:delphi_esr_msgs

該驅動程序讀取並解析由Delphi ESR創建的CAN和以太網數據。與Delphi ESR的CAN接口僅提供跟蹤信息。以太網接口提供原始檢測。

支持的硬件

  • 德爾福ESR 2.5 12V
  • 德爾福ESR 2.5 24V
  • Delphi ESR 9.21.21(僅適用於CAN)
  • Delphi ESR 9.21.15(僅適用於CAN)

delphi_esr_can

發佈的話題

訊息類型

主題名稱

描述

can_msgs/Frame

CAN_RX

有關該主題的所有數據都打算通過CAN接口發送到傳感器。

delphi_esr_msgs/EsrStatus1

parsed_tx / radarstatus1

來自ESR的第一狀態消息。

delphi_esr_msgs/EsrStatus2

parsed_tx / radarstatus2

來自ESR的第二狀態消息。

delphi_esr_msgs/EsrStatus3

parsed_tx / radarstatus3

來自ESR的第三狀態消息。

delphi_esr_msgs/EsrStatus4

parsed_tx / radarstatus4

ESR的第4條狀態消息。

delphi_esr_msgs/EsrStatus5

parsed_tx / radarstatus5

ESR的第5條狀態消息。

delphi_esr_msgs/EsrStatus6

parsed_tx / radarstatus6

來自ESR的第六條狀態消息。

delphi_esr_msgs/EsrStatus7

parsed_tx / radarstatus7

ESR發出的第7條狀態消息。

delphi_esr_msgs/EsrStatus8

parsed_tx / radarstatus8

ESR的第8條狀態消息。

delphi_esr_msgs/EsrStatus9

parsed_tx / radarstatus9

ESR的第9條狀態消息。

delphi_esr_msgs/EsrValid1

parsed_tx / radarvalid1

關於來自ESR的數據有效性的第一條消息。

delphi_esr_msgs/EsrValid2

parsed_tx / radarvalid2

關於來自ESR的數據有效性的第二條消息。

delphi_esr_msgs/EsrTrack

parsed_tx / radartrack

ESR產生的所有軌道(未過濾)。

delphi_esr_msgs / EsrTrackMotionPower

parsed_tx / trackmotionpower

有關每個軌道的運動和功率的信息。

perception_msgs/ObjectWithCovarianceArray

as_tx /對象

ESR檢測到的對象的抽象,詳細表示。

radar_msgs/RadarStatus

as_tx / radar_status

所有雷達狀態信息的高級抽象。

radar_msgs/RadarErrorStatus

as_tx / radar_error_status

所有雷達錯誤狀態和有效性信息的高級抽象。

radar_msgs/RadarTrackArray

as_tx / radar_tracks

ESR生成的所有軌道(爲有效性而過濾)的高級抽象。

visualization_msgs/Marker

as_tx / radar_markers

基於抽象雷達軌跡的可視化信息(打算在RViz中使用)。

訂閱的主題

訊息類型

主題名稱

描述

can_msgs/Frame

CAN_TX

驅動程序將解析發佈到該主題的所有數據。這應該連接到CAN接口。

delphi_esr_msgs/EsrVehicle1

parsed_rx / vehicle1_msgs

向ESR提供車輛信息的第一條消息。

delphi_esr_msgs/EsrVehicle2

parsed_rx / vehicle2_msgs

向ESR提供車輛信息的第二條消息。

delphi_esr_msgs/EsrVehicle3

parsed_rx / vehicle3_msgs

向ESR提供車輛信息的第三條消息。

delphi_esr_msgs/EsrVehicle4

parsed_rx / vehicle4_msgs

向ESR提供車輛信息的第四條消息。

delphi_esr_msgs/EsrVehicle5

parsed_rx / vehicle5_msgs

向ESR提供車輛信息的第五條消息。

geometry_msgs/TwistStamped

as_rx / vehicle_motion

用於發佈抽象的車輛運動信息的主題,該信息被解析爲ESR特定的消息併發送到雷達。

參數

~sensor_frame_id

    傳感器參考系的ID。這將附加到所有已發佈的郵件中。

~sensor_upside_down

    可以發送給ESR的標誌,以定位設備並接收有關軌道位置的準確信息。

~viz_mature_tracks_only

    允許對RViz中的軌道進行可配置的可視化,以消除正在發佈的較不成熟軌道的噪聲。

delphi_esr_eth

發表的話題

訊息類型

主題名稱

描述

network_interface/TCPFrame

tcp_tx

驅動程序從傳感器接收到的所有原始TCP數據的副本。

delphi_esr_msgs/EsrEthTx

parsed_tx / esr_eth_tx_msg

驅動程序從傳感器通過以太網接收的所有數據的解析版本。

raadar_msgs/RadarDetectionArray

as_tx / radar_detections

ESR產生的所有檢測的高級抽象。

visualization_msgs/Marker

as_tx / radar_markers

基於抽象雷達探測的可視化信息(打算在RViz中使用)。

訂閱的主題:無

參數

~sensor_frame_id

    傳感器參考系的ID。這將附加到所有已發佈的郵件中。

~ip_address

    用於連接到ESR的IP地址。

~ip_port

    用於連接ESR的端口(默認值:5555)。

launch文件:

roslaunch delphi_esr delphi_esr.launch 

 根據自己CAN卡硬件自行改寫部分參數,機器碼相關

<?xml version="1.0"?>
<launch>
  <arg name="esr_frame_id" default="esr_1" />
  <arg name="esr_upside_down" default="false" />
  <arg name="viz_mature_tracks_only" default="false" />
  <arg name="use_kvaser" default="true" />
  <arg name="kvaser_hardware_id" default="044263" />
  <arg name="kvaser_circuit_id" default="0" />
  <arg name="use_socketcan" default="false" />
  <arg name="socketcan_device" default="can0" />

  <include file="$(find kvaser_interface)/launch/kvaser_can_bridge.launch" if="$(arg use_kvaser)">
    <arg name="can_hardware_id" value="$(arg kvaser_hardware_id)" />
    <arg name="can_circuit_id" value="$(arg kvaser_circuit_id)" />
    <arg name="can_bit_rate" value="500000" />
  </include>

  <node pkg="socketcan_bridge" type="socketcan_bridge_node" name="socketcan_bridge" if="$(arg use_socketcan)">
    <param name="can_device" value="$(arg socketcan_device)" />
  </node>

  <node pkg="delphi_esr" type="delphi_esr_can" name="delphi_esr_can">
    <param name="sensor_frame_id" value="$(arg esr_frame_id)"/>
    <param name="sensor_upside_down" value="$(arg esr_upside_down)"/>
    <!-- removes the noise of new tracks in rviz and only vizualizes the mature tracks --> 
    <param name="viz_mature_tracks_only" value="$(arg viz_mature_tracks_only)"/>
  </node>
</launch>

最後出圖

總結

比較機械化,參照AF代理商wiki就能完成,坑也沒有。重點是之後的傳感器融合和雙目和lidar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章