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

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