Skip to content

Commit

Permalink
feat: New tracking T169 MSE UI, enhance and new Rviz plugins (#48)
Browse files Browse the repository at this point in the history
* feat: New tracking T169 MSE UI, enhance and new Rviz plugins

- Introduced a new UI DRVEGRD 169 MSE with integrated object tracking capabilities.
- Added RViz plugins for decoding targets, objects, and header information.
- Improved the command configurator for better usability and functionality.
- Added a new ROS 2 parameter 'pub_type' to manage the desired publication type.
- Created new custom message definitions to output radar header information.
- Update documentation.
  • Loading branch information
smartSRA authored Jun 7, 2024
1 parent ab485c7 commit ad4e9b2
Show file tree
Hide file tree
Showing 29 changed files with 2,937 additions and 754 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/dockerbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
run: docker build . -t umrr-ros:latest

- name: Building the driver with the docker container
run: docker run --rm -v`pwd`:/code umrr-ros colcon build
run: docker run --rm -v`pwd`:/code umrr-ros colcon build --packages-skip smart_rviz_plugin

- name: Running the unit/integration tests via the docker container and exit
run: docker-compose up
Expand Down
89 changes: 73 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,108 @@ All notable changes to this project will be documented in this file. This projec

## v1.0.0 - 2021-11-01

This is the first official versioned release of the `smartmicro_ros2_radars`. It provides a ros2 node that is wrapped around `Smart Access C++ API v3.3.15`, interfacing with smartmicro automotive radars and publishing the incoming data as point cloud.
### Initial Release
- **smartmicro_ros2_radars**: First official versioned release.
- **ROS 2 Node**: Wrapped around `Smart Access C++ API v3.3.15`.
- **Functionality**: Interfaces with smartmicro automotive radars and publishes incoming data as point cloud.

## v2.0.0 - 2022-05-05

This major release of the driver includes multi-user interfaces. The driver now supports and publishes data from UMRR96 and UMRR11.
A new test approach has been implemented which simulates the sensors and interfaces with the node hence making the tests more robust.
Requires new sensor firmware, if using UMRR11-T132: V5.1.4 and if using UMRR96-T153: V5.2.4.
### Major Update
- **Multi-User Interface**: Supports and publishes data from UMRR96 and UMRR11.
- **Testing Enhancements**: Implemented a new test approach simulating sensors and interfacing with the node.
- **New Sensor Firmware Requirement For**:
- UMRR11-T132: V5.1.4
- UMRR96-T153: V5.2.4

## v2.1.0 - 2022-06-02
# v2.1.0 - 2022-06-02

This minor release of the driver offer ros2 services to communicate with the sensor. The driver now supports mode changes for UMRR96 and UMRR11.
This release also offers the possibility of configuring the ip addresses of the sensor using ros2 services. The tests are further extended to include ros2 services check. Requires new sensor firmware, if using UMRR11-T132: V5.1.4 and if using UMRR96-T153: V5.2.4.
### Minor Update
- **ROS 2 Services**: Added services to communicate with the sensor.
- **Mode Changes**: Supports mode changes for UMRR96 and UMRR11.
- **IP Configuration**: Allows configuring sensor IP addresses via ROS 2 services.
- **Extended Testing**: Includes ROS 2 services check.
- **New Sensor Firmware Requirement For**:
- UMRR11-T132: V5.1.4
- UMRR96-T153: V5.2.4

## v3.0.0 - 2022-09-23

Major release includes the new smartmicro sensor DRVEGRD 169. The driver offers mode changes and configuration of the DRVEGRD 169 along with publishing the radar targets as point cloud data. The callbacks for datastream now require a clientID.
### Major Update
- **New Sensor Support**: Added support for smartmicro sensor DRVEGRD 169.
- **Functionality**: Mode changes and configuration for DRVEGRD 169, publishes radar targets as point cloud data.
- **Callback Changes**: Data stream callbacks now require a clientID.

## v3.1.0 - 2022-10-19

This release includes the new smartmicro sensor DRVEGRD 152. The driver offers mode changes and configuration of the DRVEGRD 152 along with publishing the radar targets as point cloud data. The callbacks for datastream now require a clientID.
### Minor Update
- **New Sensor Support**: Added support for smartmicro sensor DRVEGRD 152.
- **Functionality**: Mode changes and configuration for DRVEGRD 152, publishes radar targets as point cloud data.
- **Callback Changes**: Data stream callbacks now require a clientID.

## v3.2.0 - 2022-11-11

This minor release introduces signal-to-noise field in the point clouds and also fixes the max number of sensors that could be connected at once.
### Minor Update
- **Point Cloud Enhancement**: Introduced signal-to-noise field.
- **Bug Fixes**: Fixed the max number of sensors that could be connected simultaneously.

## v3.2.1 - 2022-12-16

This release fixes the offset which causes anomaly in point clouds from DRVEGRD 152 sensor. It also fixes the timestamp calculation bug which causes rviz to crash and updates the simulator source files.
### Patch Update
- **Bug Fixes**:
- Fixed offset causing anomalies in point clouds from DRVEGRD 152 sensor.
- Fixed timestamp calculation bug causing RViz to crash.
- **Updates**: Updated simulator source files.

## v4.0.0 - 2023-02-06

This release includes the new DRVEGRD 169 user-interface. The release includes new modes for DRVEGRD 169 and also introduces an additional ros2 service to save configurations. Previously used model 'UMRR9F' in radar parameters has been divided into two versions, the 'UMRR9F_V1_1_1' and 'UMRR9F_V2_0_0'.
### Major Update
- **New UI**: Added user-interface for DRVEGRD 169.
- **New Modes**: Introduced new modes for DRVEGRD 169.
- **New Service**: Added ROS 2 service to save configurations.
- **Model Update**: 'UMRR9F' radar parameter model split into 'UMRR9F_V1_1_1' and 'UMRR9F_V2_0_0'.

## v4.1.0 - 2023-08-21

This release includes the new DRVEGRD 171 and DRVEGRD 152 user-interface. The release includes a complete list of all params and commands for all sensors which are accessed using the ros2 services.
### Minor Update
- **New UI**: Added user-interfaces for DRVEGRD 171 and DRVEGRD 152.
- **Parameter List**: Complete list of all parameters and commands for all sensors accessible via ROS 2 services.

## v5.0.0 - 2023-09-22

This release includes CAN communication for all the provided sensor types and sensors interfaces. The params are now extended to include the params/setting for the connected adapters along with the sensor params.
### Major Update
- **CAN Communication**: Enabled for all provided sensor types and interfaces.
- **Parameter Expansion**: Extended parameters to include settings for connected adapters along with sensor parameters.

## v6.0.0 - 2023-12-20

This release includes features for downloading sensor firmware on to the sensors. It also provides custom RVIZ plugins to log the target list data, record and save it. It has a plugin to send instructions to the sensors and also it is possible to dowload the firmware too. This release also includes a python GUI to send custom CAN messages. The radar param templates have now been merged into one param file. The pointcloud has been extended to also include the polar coordinates. Additionally, the release also includes new user interface for sensor A4 T171.
### Major Update
- **Firmware Download**: Added features for downloading sensor firmware onto the sensors.
- **RViz Plugins**:
- Log target list data, record, and save it.
- Send instructions to the sensors.
- **Python GUI**: Added a GUI to send custom CAN messages.
- **Parameter Templates**: Merged radar parameter templates into one file.
- **Point Cloud Enhancement**: Added polar coordinates.
- **New UI**: Added user-interface for sensor A4 T171.

## v6.1.0 - 2024-01-26

This release includes the new user interfaces for DRVEGRD 169 and DRVEGRD 152. This releaase also fixes some issues with the smart record plugin and offers now azimuth and elevation angles in degrees.
### Minor Update
- **New UIs**: Added user interfaces for DRVEGRD 169 and DRVEGRD 152.
- **Bug Fixes**:
- Fixed issues with the smart record plugin.
- Added azimuth and elevation angles in degrees.

## v7.0.0 - 2024-06-07

### New Features
- **User Interface for DRVEGRD 169**: Introduced a new UI with integrated object tracking capabilities.
- **RViz Plugins**: Added plugins to RViz for decoding targets, objects, and header information.
- **Enhanced Command Configurator**: Improved the command configurator for better usability and functionality.
- **New ROS 2 Parameter - `pub_type`**: Added the `pub_type` parameter to manage the desired publication type.
- **New message definitions**:
- CanObjectHeader.msg includes object status for sensors connected over CAN.
- CanTargetHeader.msg includes target status for sensors connected over CAN.
- PortObjectHeader.msg includes object status for sensors connected over ethernet.
- PortTargetHeader.msg includes target status for sensors connected over ethernet.
63 changes: 30 additions & 33 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,39 +38,36 @@ python custom_can_sender.py
- ROS2 foxy

### UMRR radars and Smart Access API version
A [smartmicro](https://www.smartmicro.com/automotive-radar) UMRR96, UMRR11, DRVEGRD 171, DRVEGRD 152 or DRVEGRD 169 radar are
A [smartmicro](https://www.smartmicro.com/automotive-radar) UMRR96, UMRR11, DRVEGRD 171, DRVEGRD 152, DRVEGRD 169 or DRVEGRD 169 MSE radar are
required to run this node. This code is bundled with a version of Smart Access API. Please make
sure the version used to publish the data is compatible with this version:

- Date of release: `January 26, 2023`
- Smart Access Automotive version: `v3.7.0`
- User interface version: `UMRR96 Type 153 AUTOMOTIVE v1.2.2`
- User interface version: `UMRR11 Type 132 AUTOMOTIVE v1.1.2`
- User interface version: `UMRR9F Type 169 AUTOMOTIVE v1.1.1`
- User interface version: `UMRR9F Type 169 AUTOMOTIVE v2.0.0`
- User interface version: `UMRR9F Type 169 AUTOMOTIVE v2.1.1`
- User interface version: `UMRR9F Type 169 AUTOMOTIVE v2.2.1`
- User interface version: `UMRR9F Type 169 AUTOMOTIVE v2.5.0`
- User interface version: `UMRR9D Type 152 AUTOMOTIVE v1.0.3`
- User interface version: `UMRR9D Type 152 AUTOMOTIVE v1.2.2`
- User interface version: `UMRR9D Type 152 AUTOMOTIVE v1.5.0`
- User interface version: `UMRRA4 Type 171 AUTOMOTIVE v1.0.1`
- User interface version: `UMRRA4 Type 171 AUTOMOTIVE v1.3.0`

### Sensor Firmwares
This ROS2 driver release is compatible with the following sensor firmwares:
- UMRR11 Type 132: V5.1.4
- UMRR96 Type 153: V5.2.4
- UMRR9D Type 152: V2.1.0
- UMRR9D Type 152: V2.5.0
- UMRR9D Type 152: V2.7.0
- UMRR9F Type 169: V1.3.0
- UMRR9F Type 169: V2.0.2
- UMRR9F Type 169: V2.2.0
- UMRR9F Type 169: V2.4.0
- UMRRA4 Type 171: V1.0.0
- UMRRA4 Type 171: V1.2.1
- UMRRA4 Type 171: V1.3.0
- Date of release: `June 07, 2024`
- Smart Access Automotive version: `v3.8.0`

For each sensor user interface there is a corressponding sensor firmware. The following list all the possible combinations.

| **User Interface Version** | **Sensor Firmware Version** |
|--------------------------------------------------|-------------------------------------|
| UMRR96 Type 153 AUTOMOTIVE v1.2.1 | UMRR96 Type 153: V5.2.4 |
| UMRR96 Type 153 AUTOMOTIVE v1.2.2 | UMRR96 Type 153: V5.2.4 |
| UMRR11 Type 132 AUTOMOTIVE v1.1.1 | UMRR11 Type 132: V5.1.4 |
| UMRR11 Type 132 AUTOMOTIVE v1.1.2 | UMRR11 Type 132: V5.1.4 |
| UMRR9F Type 169 AUTOMOTIVE v1.1.1 | UMRR9F Type 169: V1.3.0 |
| UMRR9F Type 169 AUTOMOTIVE v2.0.0 | UMRR9F Type 169: V2.0.1 |
| UMRR9F Type 169 AUTOMOTIVE v2.1.1 | UMRR9F Type 169: V2.0.1 |
| UMRR9F Type 169 AUTOMOTIVE v2.2.0 | UMRR9F Type 169: V2.2.0 |
| UMRR9F Type 169 AUTOMOTIVE v2.2.1 | UMRR9F Type 169: V2.2.0 |
| UMRR9F Type 169 AUTOMOTIVE v2.4.1 | UMRR9F Type 169: V2.4.0 |
| UMRR9D Type 152 AUTOMOTIVE v1.0.2 | UMRR9D Type 152: V2.1.0 |
| UMRR9D Type 152 AUTOMOTIVE v1.0.3 | UMRR9D Type 152: V2.5.0 |
| UMRR9D Type 152 AUTOMOTIVE v1.2.2 | UMRR9D Type 152: V2.5.0 |
| UMRR9D Type 152 AUTOMOTIVE v1.4.1 | UMRR9D Type 152: V2.7.0 |
| UMRRA4 Type 171 AUTOMOTIVE v1.0.0 | UMRRA4 Type 171: V1.0.0 |
| UMRRA4 Type 171 AUTOMOTIVE v1.0.1 | UMRRA4 Type 171: V1.0.0 |
| UMRRA4 Type 171 AUTOMOTIVE v1.2.1 | UMRRA4 Type 171: V1.2.1 |
| UMRR11 Type 132 MSE v1.1.1 | UMRR11 Type 132-MSE: V6.1.2 |
| UMRR9F Type 169 MSE v1.0.0 | UMRR9F Type 169-MSE: V1.1.0 |

### Point cloud message wrapper library
To add targets to the point cloud in a safe and quick fashion a
Expand Down Expand Up @@ -116,8 +113,8 @@ For more details, see the [`radar.sensor.example.yaml`](umrr_ros2_driver/param/r
For the setting up the ***sensors***:
- `link_type`: the type of hardware connection
- `model`: the model of the sensor being used
- can: 'umrra4_can_v1_0_1', 'umrr96_can', 'umrr11_can', 'umrr9d_can_v1_0_3', 'umrr9d_can_v1_2_2', 'umrr9f_can_v2_1_1', 'umrr9f_can_v2_2_1'
- port: 'umrra4_v1_0_1', 'umrr96', 'umrr11', 'umrr9d_v1_0_3', 'umrr9d_v1_2_2', 'umrr9f_v1_1_1', 'umrr9f_v2_1_1', 'umrr9f_v2_2_1',
- can: 'umrr9f_can_mse_v1_0_0', 'umrra4_can_v1_0_1', 'umrr96_can_v1_2_2', 'umrr11_can_v1_1_2', 'umrr9d_can_v1_0_3', 'umrr9d_can_v1_2_2', 'umrr9f_can_v2_1_1', 'umrr9f_can_v2_2_1'
- port: 'umrr9f_mse_v1_0_0', 'umrra4_v1_0_1', 'umrr96_v1_2_2', 'umrr11_v1_1_2', 'umrr9d_v1_0_3', 'umrr9d_v1_2_2', 'umrr9f_v1_1_1', 'umrr9f_v2_1_1', 'umrr9f_v2_2_1'
- `dev_id`: adapter id to which sensor is connected. ***The adapter and sensor should have the same dev_id***
- `id`: the client_id of the sensor/source, ***must be a _unique_ integer and non-zero***.
- `ip`: the ***_unique_*** ip address of the sensor or of the source acting as a sensor, required only for sensors using _ethernet_.
Expand Down Expand Up @@ -234,7 +231,7 @@ docker build . -t umrr-ros:latest

Building the driver with the docker container
```bash
docker run --rm -v`pwd`:/code umrr-ros colcon build
docker run --rm -v`pwd`:/code umrr-ros colcon build --packages-skip smart_rviz_plugin
```

Running the unit and integration tests via the docker compose
Expand Down
2 changes: 1 addition & 1 deletion smart_extract.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
set -e

smart_pack=SmartAccessAutomotive_3_7_0.tgz
smart_pack=SmartAccessAutomotive_3_8_0.tgz
URL_smartbinaries=https://www.smartmicro.com/fileadmin/media/Downloads/Automotive_Radar/Software/${smart_pack}

cat << EOF
Expand Down
8 changes: 7 additions & 1 deletion smart_rviz_plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,23 @@ find_package(rviz_rendering REQUIRED)
find_package(Qt5 REQUIRED COMPONENTS Widgets Test)
find_package(pluginlib REQUIRED)
find_package(rclcpp REQUIRED)

find_package(OpenCV REQUIRED)
find_package(cv_bridge REQUIRED)

set(CMAKE_AUTOMOC ON)

set(smart_rviz_plugin_SRCS
src/smart_recorder.cpp
src/smart_services.cpp
src/smart_download.cpp
src/smart_status.cpp
)

set(smart_rviz_plugin_HDRS
include/smart_rviz_plugin/smart_recorder.hpp
include/smart_rviz_plugin/smart_services.hpp
include/smart_rviz_plugin/smart_download.hpp
include/smart_rviz_plugin/smart_status.hpp
)

add_library(smart_rviz_plugin SHARED
Expand All @@ -54,6 +57,8 @@ set(dependencies
rviz_ogre_vendor
rviz_rendering
std_msgs
OpenCV
cv_bridge
)

ament_target_dependencies(smart_rviz_plugin
Expand All @@ -64,6 +69,7 @@ target_include_directories(smart_rviz_plugin PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/smart_rviz_plugin>
${Qt5Widgets_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)


Expand Down
Binary file modified smart_rviz_plugin/config/images/recorder_rviz.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ad4e9b2

Please sign in to comment.