Coder Social home page Coder Social logo

goodarzmehr / continental_radar_driver Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vt-asim-lab/continental_radar_driver

0.0 0.0 0.0 135 KB

ROS radar driver for Continental ARS 408-21/404-21 for the CARMA Platform.

License: GNU General Public License v3.0

Shell 10.71% C++ 77.10% CMake 10.31% Dockerfile 1.88%

continental_radar_driver's Introduction

Continental Radar Driver for CARMA

This is a fork of the ars_40X package that is used for connecting to, receiving data from, and configuring Continental ARS 404-21 and ARS 408-21 radars. This fork has been modified to allow for building a Docker image that can serve as a radar driver for the CARMA Platform.

Ubuntu 20.04 Installation

Assuming the CARMA Platform is installed at ~/carma_ws/src,

cd ~/carma_ws/src
git clone https://github.com/VT-ASIM-LAB/continental_radar_driver.git
cd continental_radar_driver/docker
sudo ./build-image.sh -d

After the Docker image is successfully built, connect the Continental ARS 404-21 or ARS 408-21 radar to your device and run sudo ip link set can0 up type can bitrate 500000 in the terminal. Add the following lines to the appropriate docker-compose.yml file in the carma-config directory:

continental-radar-driver:
  image: usdotfhwastoldev/carma-continental-radar-driver:develop
  container_name: continental-radar-driver
  network_mode: host
  privileged: true
  devices:
    - /dev/bus/usb:/dev/bus/usb
  volumes_from:
    - container:carma-config:ro
  environment:
    - ROS_IP=127.0.0.1
  volumes:
    - /opt/carma/logs:/opt/carma/logs
    - /opt/carma/.ros:/home/carma/.ros
    - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
  command: bash -c '. ./devel/setup.bash && export ROS_NAMESPACE=$${CARMA_INTR_NS} && wait-for-it.sh localhost:11311 -- roslaunch /opt/carma/vehicle/config/drivers.launch drivers:=continental_radar'

Finally, add the following lines to the drivers.launch file in the same directory as docker-compose.yml.

<include if="$(arg continental_radar)" file="$(find ars_40X)/launch/ars_40X.launch">
</include>

ROS API

ars_40X

Nodes

  • ars_40X_ros
  • ars_40X_rviz
  • ars_40X_scan_track

Published Topics

Publication frequencies are provided for a Continental ARS 408-21 radar.

  • ars_40X_ros/clusters [ars_40X/ClusterList]: publishes a list of detected clusters (13 Hz).
  • ars_40X_ros/objects [ars_40X/ObjectList]: publishes a list of detected objects (13 Hz).
  • ars_40X_ros/radar_status [ars_40X/RadarStatus]: publishes the radar status, including information on non-volatile memory (NVM) read/write state; maximum detection distance; persistent, temperature, temporary, or voltage errors; interference; sensor ID; sorting method; transmitted radar power; type of output (cluster or object); radar cross-section (RCS) threshold (standard or high sensitivity); whether quality and extended information is received; and whether vehicle motion signals are available. (1 Hz).
  • ars_40X_rviz/visualize_clusters [visualization_msgs/MarkerArray]: publishes array of markers representing detected clusters (13 Hz).
  • ars_40X_rviz/visualize_objects [visualization_msgs/MarkerArray]: publishes array of markers representing detected objects (13 Hz).
  • ars_40X_rviz/visualize_texts [visualization_msgs/MarkerArray]: publishes array of texts that correspond to detected objects and provide information such as relative velocity and acceleration, RCS, probability of detection, and object class (13 Hz).
  • ars_40X_scan_track/scan [radar_msgs/RadarScan]: publishes a scan, which is a list of detected returns, i.e. clusters (13 Hz).
  • ars_40X_scan_track/tracks [radar_msgs/RadarTracks]: publishes a list of detected tracks, i.e. objects (13 Hz).
  • discovery [cav_msgs/DriverStatus]: publishes the CARMA DriverStatus message (1.25 Hz).

Subscribed Topics

  • odom [geometry_msgs/TwistStamped]: ars_40X_ros subscribes to this topic to receive the vehicle twist (linear and angular velocity) that is used for calculation of object attributes.
  • ars_40X_ros/clusters [ars_40X/ClusterList]: ars_40X_rviz and ars_40X_scan_track both subscribe to this topic to receive a list of detected clusters.
  • ars_40X_ros/objects [ars_40X/ObjectList]: ars_40X_rviz and ars_40X_scan_track both subscribe to this topic to receive a list of detected objects.

Services

  • set_ctrl_relay_cfg [std_srvs/SetBool]: sends relay control message to activate collision detection.
  • set_max_distance [ars_40X/MaxDistance]: configures the maximum distance of far scan, which also changes the range resolution proportionally (near scan maximum distance is set proportionally to half of the far scan maximum distance). For ARS 404-21 the allowed maximum distance range is 150 m - 190 m for the Standard Range firmware and 90 m - 1000 m for the Extended Range firmware. For ARS 408-21 the allowed maximum distance range is 196 m - 260 m for the Standard Range firmware and 196 m - 1200 m for the Extended Range firmware.
  • set_output_type [ars_40X/OutputType]: configures whether to output clusters, objects, or even to just stand by.
  • set_radar_power [ars_40X/RadarPower]: configures the transmitted radar power (Tx attenuation). The output RCS of clusters and objects will be compensated for this attenuation. Reducing the output power can improve detection in case of close range scenarios or inside rooms.
  • set_rcs_threshold [ars_40X/RCSThreshold]: sets the sensitivity of cluster detection to standard or high sensitivity.
  • set_send_ext_info [std_srvs/SetBool]: configures whether extended object information is sent.
  • set_send_quality [std_srvs/SetBool]: configures whether object and cluster quality information is sent.
  • set_sensor_id [ars_40X/SensorID]: sets the sensor ID to a value from 0 to 7.
  • set_sort_index [ars_40X/SortIndex]: selects the sorting index for object list (range or RCS).
  • set_store_in_nvm [std_srvs/SetBool]: stores the current configuration to NVM to be read and set at sensor startup.

Parameters

N/A

Examples

See the ars_40X.launch file in the continental_radar_driver/launch directory that is used to launch the ARS 404-21 and ARS 408-21.

Original ARS_40X Documentation

ARS_40X package contains a driver for the Continental radar ARS_404 / ARS_408. The package also contains a ROS Wrapper for the driver.

Requirements

Launching with arguments

roslaunch ars_40X ars_40X.launch visualize:=true obstacle_array:=true

Arguments available

  • visualize (default:"true") : Launches RViz to display the clusters/obstacles as markers.
  • obstacle_array (default:"false") : Launches ars_40X_obstacle_array node which publishes obstacles as geometry_msgs/Polygon

Publications

Message Type Description Message Box
/radar_status ars_40X/RadarStatus Describe the radar configuration 0x201
/ars_40X/clusters ars_40X/ClusterList Raw clusters data from radar 0x600, 0x701
/ars_40X/objects ars_40X/ObjectList Raw objects data from radar 0x60A, 0x60B, 0x60C, 0x60D
/visualize_clusters visualization_msgs/MarkerArray Clusters markers for RViz visualization -
/visualize_objects visualization_msgs/MarkerArray Object markers for RViz visualization -

Subscription

Message Type Description Message Box
/odom nav_msgs/Odometry Velocity and accleration information 0x300, 0x301

Services

The following services are available for configuring the radar options available in 0x200

Services
/set_ctrl_relay_cfg
/set_max_distance
/set_output_type
/set_radar_power
/set_rcs_threshold
/set_send_ext_info
/set_send_quality
/set_sensor_id
/set_sort_index
/set_store_in_nvm

continental_radar_driver's People

Contributors

goodarzmehr avatar shiveshkhaitan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.