Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.17.0 release #305

Merged
merged 55 commits into from
Jun 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
6efbb0e
Add visual test to check point velocity data (#201)
prybicki Oct 31, 2023
6469892
Compute absolute point velocity (#206)
prybicki Nov 22, 2023
bf20e14
Fix compilation error in gpuUpdateVertices (#223)
prybicki Nov 22, 2023
308c1c3
Setup private extensions as vcs (#222)
msz-rai Nov 28, 2023
ca3fabe
Stop using std::strong_ordering (C++20) in Time since it is used in C…
msz-rai Nov 29, 2023
ea0a893
Protect members of Array classes (#226)
msz-rai Nov 29, 2023
33918c1
Add point velocity visualization node, rework ROS2 resource handling …
prybicki Nov 30, 2023
ef8a49f
Add snow extension feature (#227)
PiotrMrozik Dec 6, 2023
fa84183
Format points node tests (#178)
nebraszka Dec 20, 2023
8c0d490
Add node for removing ground (#230)
msz-rai Dec 20, 2023
96507c9
Add radar postprocessing node (#233)
msz-rai Dec 20, 2023
869a7ad
Calculate velocity derived fields (#229)
prybicki Dec 20, 2023
937bc79
Aesthetic tests improvements (#218)
nebraszka Dec 20, 2023
6fa659d
Add radar-specific fields placeholders (#235)
msz-rai Dec 20, 2023
4dca35a
Fix disabling ray distortion in raytrace (#236)
msz-rai Dec 21, 2023
0bf76a1
Remove unused PCL include in RadarPostprocessPointsNode (#238)
prybicki Dec 21, 2023
8eee947
Fix Windows build (#237)
msz-rai Dec 21, 2023
6acd5a2
Remove unused include in EntityAPITest (#239)
prybicki Dec 22, 2023
130d28b
Optimize Tape YAML structure (#232)
nebraszka Jan 9, 2024
dfebe18
Implement computing normal and incident angle field (#241)
prybicki Jan 11, 2024
c9ebb44
Implement automatic build of (some) ros2 deps - radar_msgs (#245)
prybicki Jan 24, 2024
c3c578f
Implement Ros2PublishRadarScanNode with tests (#247)
prybicki Jan 30, 2024
fca9df7
Add RCS test stub (#248)
prybicki Jan 31, 2024
05dea74
Add ground filtering feature (#246)
PiotrMrozik Feb 6, 2024
3428a13
Fix OptiX crash on Windows (#253)
prybicki Feb 13, 2024
09dba15
Refactor usage of deprecated rgl_node_points_compact (#251)
nebraszka Feb 13, 2024
501695f
Minor updates to comments, tests, and naming (#249)
nebraszka Feb 13, 2024
e0d5aa6
Improve ROS2 node handling with new Ros2Node structure (#254)
nebraszka Feb 26, 2024
be71c26
Fix missing radar_msgs libraries for standalone build (#256)
msz-rai Feb 26, 2024
ad60577
Setup CI (#240)
msz-rai Feb 29, 2024
8dd6da9
Switch extensions to develop version (#258)
msz-rai Feb 29, 2024
0db92eb
Add energy computation to RadarPostProcessNode (#255)
prybicki Mar 5, 2024
4411255
Refactor raytrace node configurations and introduce non-hit distance …
nebraszka Mar 5, 2024
ce7ceae
Improve radar clustering with variable separation on distance ranges …
msz-rai Mar 7, 2024
203dcc7
Run CI on main & develop branches also (#261)
msz-rai Mar 7, 2024
a0dfb68
Fix tape realtime play (#265)
prybicki Mar 14, 2024
1cc5bec
Fix relative velocity (and radial speed) calculation (#267)
msz-rai Mar 15, 2024
5317f9d
Fix windows build error due to windows header definition leakage (#270)
AlgoryxJosef Mar 22, 2024
650ac95
Remove M_PIf to enable compilation on Windows (#272)
prybicki Mar 25, 2024
b610e37
Compute radar power & noise levels, improve rcs (#264)
prybicki Mar 26, 2024
6fb6224
Fix build on Windows after radar power merge (#274)
msz-rai Mar 26, 2024
c1f0a38
Add taped test (#263)
nebraszka Apr 2, 2024
a3d0845
Fix azimuth and elevation fields values for AWSIM (#278)
msz-rai Apr 17, 2024
f941e36
Add is_valid functions to entity, mesh and texture in public API (#262)
AlgoryxJosef Apr 18, 2024
2119417
Set default debug postfix if not specified (#266)
AlgoryxJosef Apr 18, 2024
990a09d
Fix compilation on Windows after adding taped test (#279)
msz-rai Apr 18, 2024
f3ab7c8
Static link library build and linkage (#268)
StubbyRogue46 Apr 18, 2024
80facf3
Set log level prior to logging Log config info (#286)
AlgoryxJosef May 28, 2024
1b27931
Use c++ 11 only in api (#287)
AlgoryxJosef May 28, 2024
c4136ad
Add support for Laser Retro (#291)
msz-rai May 29, 2024
dddd04f
Optimize dockerfile (building and caching) (#294)
msz-rai Jun 11, 2024
c6dce0a
🛠️ Bump actions/checkout from 3 to 4 (#300)
dependabot[bot] Jun 11, 2024
7e7f421
Update acknowledgements (Dexory contribution) (#302)
msz-rai Jun 11, 2024
e5821b5
Bump API version (0.17.0), update CHANGELOG (#303)
msz-rai Jun 11, 2024
f2da14b
Update extensions version (v0.17.0) (#304)
msz-rai Jun 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 19 additions & 9 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
.vs
.vscode
Builds/*
Testing/*
.idea
cmake-build-debug
cmake-build-release
build
external/vcpkg
# Ignore everything by default
*

# First-order allow exception for select directories
!/.clang-format
!/.githooks
!/.git
!/CMakeLists.txt
!/docs
!/extensions
!/extensions.repos
!external/CMakeLists.txt
!/include
!/ros2_standalone
!/setup.py
!/install_deps.py
!/src
!/test
!/tools
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "🐳 "
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "🛠️ "
226 changes: 226 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
name: build-and-test

run-name: Build & test for ${{ github.ref_name }} on ${{ github.sha }}

on:
push:
branches:
- 'main'
- 'develop'
pull_request:
types: [opened, synchronize, reopened]

# Cancel previous runs if new changes on PR/branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
###### PREPARE WORKFLOW ######
checkout-repository:
runs-on: self-hosted
steps:
- name: Checkout repository code
uses: actions/checkout@v4
with:
clean: false
- name: Clean repository excluding RGL blobs repo
run: git clean -ffdx -e external/rgl_blobs
- name: Import private extensions
run: vcs import < extensions.repos
- name: Install taped test runtime dependencies
run: ./setup.py --fetch-rgl-blobs

load-env:
uses: ./.github/workflows/load-env-subworkflow.yml

###### BUILD USING RGL DOCKER ######
build-core:
needs: [checkout-repository, load-env]
runs-on: self-hosted
steps:
- run: '
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }}
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1
--build-arg BUILD_CMD="./setup.py"
--target=exporter --output=bin-core .'

build-pcl:
needs: [checkout-repository, load-env]
runs-on: self-hosted
steps:
- run: '
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }}
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1
--build-arg BUILD_CMD="./setup.py --with-pcl --build-taped-test"
--target=exporter --output=bin-pcl .'

build-ros2:
needs: [ checkout-repository, load-env ]
runs-on: self-hosted
steps:
- run: '
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }}
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1
--build-arg BUILD_CMD=". /opt/ros/\$ROS_DISTRO/setup.sh && ./setup.py --with-ros2-standalone"
--target=exporter --output=bin-ros2 .'

build-udp:
needs: [ checkout-repository, load-env ]
runs-on: self-hosted
steps:
- run: '
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }}
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1
--build-arg BUILD_CMD="./setup.py --with-udp"
--target=exporter --output=bin-udp .'

build-snow:
needs: [ checkout-repository, load-env ]
runs-on: self-hosted
steps:
- run: '
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }}
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1
--build-arg BUILD_CMD="./setup.py --with-snow"
--target=exporter --output=bin-snow .'

build-all:
needs: [ checkout-repository, load-env ]
runs-on: self-hosted
steps:
- run: '
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }}
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1
--build-arg BUILD_CMD=". /opt/ros/\$ROS_DISTRO/setup.sh && ./setup.py --with-pcl --with-ros2-standalone --with-udp --with-snow --build-taped-test"
--target=exporter --output=bin-all .'

####### TEST WITH RGL DOCKER IMAGE ######
test-core-dev:
needs: [build-core]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
cd bin-core/bin/test && ./RobotecGPULidar_test'
docker-image: localhost:5000/robotecgpulidar-all:latest

test-pcl-dev:
needs: [ build-pcl ]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/rgl_blobs &&
cd bin-pcl/bin/test && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test'
docker-image: localhost:5000/robotecgpulidar-all:latest

test-ros2-dev:
needs: [ build-ros2 ]
uses: ./.github/workflows/test-subworkflow.yml
with:
# Source ROS2 and radar_msgs, standalone build is tested in prod environment
# Run tests twice, each for different RMW implementation
test-command: '
. /opt/ros/$ROS_DISTRO/setup.sh &&
. /opt/rgl/external/radar_msgs/install/setup.sh &&
cd bin-ros2/bin/test &&
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test &&
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test'
docker-image: localhost:5000/robotecgpulidar-all:latest

test-udp-dev:
needs: [ build-udp ]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
cd bin-udp/bin/test && ./RobotecGPULidar_test'
docker-image: localhost:5000/robotecgpulidar-all:latest

test-snow-dev:
needs: [ build-snow ]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
cd bin-snow/bin/test && ./RobotecGPULidar_test'
docker-image: localhost:5000/robotecgpulidar-all:latest

test-all-dev:
needs: [ build-all ]
uses: ./.github/workflows/test-subworkflow.yml
with:
# Source ROS2 and radar_msgs, standalone build is tested in prod environment
# Set `RGL_TEST_VLP16_CALIB_FILE` for UDP-ROS2 integration test
# Run tests twice, each for different RMW implementation
test-command: '
. /opt/ros/$ROS_DISTRO/setup.sh &&
. /opt/rgl/external/radar_msgs/install/setup.sh &&
export RGL_TEST_VLP16_CALIB_FILE=$(pwd)/extensions/udp/test/resources/Ros2Vlp16Calib.yaml &&
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/rgl_blobs &&
cd bin-all/bin/test &&
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test &&
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test'
docker-image: localhost:5000/robotecgpulidar-all:latest

####### TEST WITH CLEAN UBUNTU DOCKER IMAGE ######
test-core-prod:
needs: [build-core]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
cd bin-core/bin/test && ./RobotecGPULidar_test'
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04

test-pcl-prod:
needs: [ build-pcl ]
uses: ./.github/workflows/test-subworkflow.yml
with:
# Additionally, install PCL extension dependent libraries for runtime
test-command: '
apt update && apt install -y libxcursor1 libgl1 &&
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/rgl_blobs &&
cd bin-pcl/bin/test && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test'
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04

test-ros2-prod:
needs: [ build-ros2 ]
uses: ./.github/workflows/test-subworkflow.yml
with:
# Copy ROS2 libraries to be visible for libRobotecGPULidar.so
# Run tests twice, each for different RMW implementation
test-command: '
cp -p bin-ros2/lib/ros2_standalone/* bin-ros2/lib &&
cd bin-ros2/bin/test &&
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test &&
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test'
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04

test-udp-prod:
needs: [ build-udp ]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
cd bin-udp/bin/test && ./RobotecGPULidar_test'
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04

test-snow-prod:
needs: [ build-snow ]
uses: ./.github/workflows/test-subworkflow.yml
with:
test-command: '
cd bin-snow/bin/test && ./RobotecGPULidar_test'
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04

test-all-prod:
needs: [ build-all ]
uses: ./.github/workflows/test-subworkflow.yml
with:
# Install PCL extension dependent libraries for runtime
# Copy ROS2 libraries to be visible for libRobotecGPULidar.so
# Run tests twice, each for different RMW implementation
test-command: '
apt update && apt install -y libxcursor1 libgl1 &&
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/rgl_blobs &&
cp -p bin-all/lib/ros2_standalone/* bin-all/lib &&
cd bin-all/bin/test &&
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test &&
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test'
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04
23 changes: 23 additions & 0 deletions .github/workflows/load-env-subworkflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: load-env-subworkflow

on:
workflow_call:
outputs:
optix-install-dir:
value: ${{ jobs.load-env.outputs.optix-install-dir }}

jobs:
load-env:
runs-on: self-hosted
outputs:
optix-install-dir: ${{ steps.set-envs.outputs.optix-install-dir }}
steps:
- id: check-envs
run: |
if [[ -z "${OptiX_INSTALL_DIR}" ]]; then
echo "OptiX_INSTALL_DIR env is empty"
exit 1
fi
- id: set-envs
run: |
echo "optix-install-dir=$OptiX_INSTALL_DIR" | tee -a $GITHUB_OUTPUT
31 changes: 31 additions & 0 deletions .github/workflows/test-subworkflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: test-subworkflow

on:
workflow_call:
inputs:
test-command:
required: true
type: string
docker-image:
required: true
type: string

permissions:
contents: read

jobs:
test:
defaults:
run:
shell: bash
runs-on: self-hosted
container:
image: ${{ inputs.docker-image }}
env:
NVIDIA_DRIVER_CAPABILITIES: all
options:
--rm
--gpus all
steps:
- name: test
run: ${{ inputs.test-command }}
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,8 @@ Testing/*
cmake-build-debug
cmake-build-release
build
external/vcpkg
external/*
!external/CMakeLists.txt
extensions/udp
extensions/snow
CMakeSettings.json
Loading
Loading