Releases: RobotecAI/RobotecGPULidar
Releases · RobotecAI/RobotecGPULidar
v0.21.0
[0.21.0] 16 March 2026
Added
- Added lidar visibility feature (sensors can now ignore specific entities during raytracing)
- Added new constants for sensor identification:
RGL_SENSOR_ID_DEFAULTRGL_SENSOR_ID_NONE
- Added API call to set a sensor ID that will ignore a given entity in raytracing:
rgl_entity_set_ignored_by_sensor
- Added API call to assign a sensor identifier to RaytraceNode:
rgl_node_raytrace_configure_id
- Added new constants for sensor identification:
- Added Agnocast extension enabling zero-copy ROS2 publishing via shared memory
- Added build option in CMakeLists:
RGL_BUILD_AGNOCAST_EXTENSION
- Added API call to configure Agnocast on a ROS2 publishing node:
rgl_node_configure_agnocast
- Added build option in CMakeLists:
- Added detection states to radar nodes
- Extended
RadarPostprocessPointsNodecluster statistics with standard deviations of azimuth, elevation, distance, and radial speed - Added per-detection state data (azimuth, elevation, distance, radial speed with their standard deviations, RCS, detection ID, object ID) to
RadarTrackObjectsNode
- Extended
- Added ROS2 RadarTracks publishing
- Added API call to publish RadarTracks message into ROS2 topic:
rgl_node_publish_ros2_radartracks
- Added API call to publish RadarTracks message into ROS2 topic:
Changed
- Bumped minimum supported GPU architecture to NVIDIA Turing (GeForce RTX 2000 series, sm_75)
- Removed support for older deprecated CUDA architectures
- Updated runtime requirements documentation accordingly
- This was required to resolve runtime errors observed when running RGL binaries built against the deprecated architecture on the latest NVIDIA drivers
- Removed tracking of ROS2 publishers in
Ros2InitGuard- Creating multiple publishers for the same topic is now allowed
Fixed
- Fixed recursion when retracing rays through ignored entities moving along a triangle surface
- Increased the ray iteration offset to reliably avoid re-hitting the same triangle
- Fixed incorrect error message in
RadarPostprocessPointsNodevalidation - Fixed object width calculation in
RadarTrackObjectsNode
Released binaries
RGL-core-linux-x64- core build (without any extension) for Linux x64RGL-full-linux-x64-humble- core build + PCL + ROS2 extensions for Linux x64 + ROS 2 HumbleRGL-full-linux-x64-jazzy- core build + PCL + ROS2 extensions for Linux x64 + ROS 2 Jazzy
v0.20.0
[0.20.0] 17 December 2024
Added
- Added concept of reflectivity calculated as (alpha * intensity * distance^2)
- Added a new field
RGL_FIELD_REFLECTIVITY_F32
- Added a new API call to configure reflectivity alpha values for RaytraceNode
rgl_node_raytrace_configure_reflectivity_alpha
- Added a new field
Fixed
- Fixed hit point displacement calculation resulting from the animation
Released binaries
RGL-core-linux-x64- core build (without any extension) for Linux x64RGL-full-linux-x64-humble- core build + PCL + ROS2 extensions for Linux x64 + ROS 2 HumbleRGL-full-linux-x64-jazzy- core build + PCL + ROS2 extensions for Linux x64 + ROS 2 JazzyRGL-full-windows-x64-humble- core build + PCL + ROS2 extensions for Windows x64 + ROS 2 HumbleRGL-full-windows-x64-jazzy- core build + PCL + ROS2 extensions for Windows x64 + ROS 2 Jazzy
v0.19.0
[0.19.0] 27 September 2024
Added
- Added skeleton animation (mesh skinning) performed on GPU
- Added API call to assign bone weights to the mesh
rgl_mesh_set_bone_weights
- Added API call to assign restposes to the mesh
rgl_mesh_set_restposes
- Added API call to set the current pose of the given Entity in world coordinates
rgl_entity_set_pose_world
- Added API call to assign bone weights to the mesh
- Added multi-return outputs
- Multi-return point clouds can be post-processed and outputted by RGL
- Added more return types supported (second, strongest, second strongest)
- Added API call to configure return mode
rgl_node_raytrace_configure_return_mode
- Added support for ROS 2 Jazzy
Changed
- Changed API calls for handling animations resulted from external animation system
- Removed API call to update vertices of the mesh
rgl_mesh_update_vertices
- Added API call to update vertices of the entity
rgl_entity_apply_external_animation
- In current implementation, meshes that are animated can be shared between entities
- Previously, such meshes must be duplicated because vertices were updated in the mesh object
- Now, the entity holds its copy of animated vertices
- Removed API call to update vertices of the mesh
- Renamed API call for setting transform of the entity
rgl_entity_set_pose->rgl_entity_set_transform- Pose is considered as set of skeleton bones transforms
Fixed
- Fixed error message from yield node when trying to get field data that was not requested
Removed
- Removed API call to switch between return modes:
rgl_node_multi_return_switch- Replaced by
rgl_node_raytrace_configure_return_mode
Released binaries
RGL-core-linux-x64- core build (without any extension) for Linux x64RGL-full-linux-x64-humble- core build + PCL + ROS2 extensions for Linux x64 + ROS 2 HumbleRGL-full-linux-x64-jazzy- core build + PCL + ROS2 extensions for Linux x64 + ROS 2 JazzyRGL-full-windows-x64-humble- core build + PCL + ROS2 extensions for Windows x64 + ROS 2 HumbleRGL-full-windows-x64-jazzy- core build + PCL + ROS2 extensions for Windows x64 + ROS 2 Jazzy
v0.18.0
[0.18.0] 24 July 2024
Added
- Added radar object tracking feature
- Added API call to produce point cloud with radar objects
rgl_node_points_radar_track_objects
- Added API call to produce point cloud with radar objects
- Added mechanism to simulate fault injection
- Added API call to mask groups of rays
rgl_node_raytrace_configure_mask
- Added API call to mask groups of rays
- Added multi-return simulation
- Currently, this feature is limited to outputting a single return point cloud, but the user can select which return mode is simulated (first or last)
- Added API call to configure beam divergence
rgl_node_raytrace_configure_beam_divergence
- Added API call to switch between return modes:
rgl_node_multi_return_switch
- Added new fields:
RGL_FIELD_INTENSITY_U8andRGL_FIELD_TIME_STAMP_U32- These fields are duplicates of existing fields but are stored in other data types
- Added default intensity configuration
- Added API call to configure default intensity
rgl_node_raytrace_configure_default_intensity
- Default intensity is considered when hitting entities with no intensity texture set
- Added API call to configure default intensity
Changed
- Renamed ROS2 field name for
RGL_FIELD_RING_IDring->channel
- Changed the content of time stamp fields (
RGL_FIELD_TIME_STAMP_F64andRGL_FIELD_TIME_STAMP_U32)- Previously, it was time on the scene when the raytrace is triggered
- Now, it holds the time have passed since the time of the raytrace trigger when given point was measured
- If velocity distortion is disabled, the time stamp for all points will be zero
- Intensity value of the point is based on intensity texture of the entity and the incident angle
- The influence of the incident angle was added
Removed
- Removed deprecated API call
rgl_node_points_compact- Please use
rgl_node_points_compact_by_fieldinstead
Released binaries
RGL-core-linux-x64- core build (without any extension) for Linux x64RGL-full-linux-x64- core build + PCL + ROS2 extensions for Linux x64RGL-full-windows-x64- core build + PCL + ROS2 extensions for Windows x64
v0.17.0
[0.17.0] 11 June 2024
Added
- Added radar sensor simulation
- Added API call to process point cloud to create radar-like output
rgl_node_points_radar_postprocess
- Added API call to remove ground using RANSAC method to fit the plane model to the point cloud
rgl_node_points_remove_ground
- Added API call to filter ground based on the incident angle of the ray hitting the mesh triangle
rgl_node_points_filter_ground
- Added API call to publish RadarScan message into ROS2 topic
rgl_node_publish_ros2_radarscan
- Added new fields (point attributes) calculation:
- Velocity of the hit point on the entity. Depends on entity's linear and angular velocity, and mesh deformations (inferred from calls
rgl_entity_set_pose,rgl_scene_set_timeandrgl_mesh_update_vertices).RGL_FIELD_ABSOLUTE_VELOCITY_VEC3_F32RGL_FIELD_RELATIVE_VELOCITY_VEC3_F32RGL_FIELD_RADIAL_SPEED_F32
- Normal vector of the mesh triangle where the hit-point is located
RGL_FIELD_NORMAL_VEC3_F32
- Incident angle of the ray hitting the mesh triangle
RGL_FIELD_INCIDENT_ANGLE_F32
- Azimuth and elevation angle of the hit point
RGL_FIELD_AZIMUTH_F32RGL_FIELD_ELEVATION_F32
- Velocity of the hit point on the entity. Depends on entity's linear and angular velocity, and mesh deformations (inferred from calls
- Added API call to process point cloud to create radar-like output
- Added API call to compact point cloud by given field (
RGL_FIELD_IS_HIT_I32orRGL_FIELD_IS_GROUND_I32)rgl_node_points_compact_by_field- At the same time,
rgl_node_points_compactbecame deprecated
- Added set of calls to check if API objects are still valid
rgl_mesh_is_alivergl_entity_is_alivergl_texture_is_alivergl_node_is_alive
- Added raytrace node configurations
- Added API call to configure values for non-hit points
rgl_node_raytrace_configure_non_hits
- Added API call to configure sensor velocity (necessary for velocity distortion or calculating fields
RGL_FIELD_RELATIVE_VELOCITY_VEC3_F32andRGL_FIELD_RADIAL_SPEED_F32)rgl_node_raytrace_configure_velocity
- Added API call to configure (turn on/off) velocity distortion
rgl_node_raytrace_configure_distortion
- Added API call to configure values for non-hit points
- Added support for LiDAR reflective value (similar to intensity but set as a single floating-point value for the entire entity)
- Added API call to set laser retro value to the entity
rgl_entity_set_laser_retro
- Note: could be replaced with 1x1 float-type texture in the future
- Added API call to set laser retro value to the entity
- Added CI to the project using GitHub actions
- Added static build option
- Added variable to the CMakeLists (default OFF):
RGL_BUILD_STATIC
- Added variable to the CMakeLists (default OFF):
Changed
- Optimized tape files format to be lighter and be loaded faster
- Note: old tape files are not compatible
- Improved docker-based build pipeline
- Introduced multistage dockerfile for the build process
- Decoupled dependency installation from compilation scripts (better caching)
Removed
- Removed API call for modifying RaytraceNode to apply velocity distortion
rgl_node_raytrace_with_distortion- Replaced by
rgl_node_raytrace_configure_distortion
Released binaries
RGL-core-linux-x64- core build (without any extension) for Linux x64RGL-full-linux-x64- core build + PCL + ROS2 extensions for Linux x64RGL-full-windows-x64- core build + PCL + ROS2 extensions for Windows x64
v0.16.2
[0.16.2] 19 November 2023
Fixed
- Fixed Gaussian noise nodes to always perform in rays coordinates
- Fixed distance Gaussian noise to apply error based on distance traveled by the ray (not distance to rays coordinates origin)
- Fixed graph validation when rays definition is modified
v0.16.1
v0.16.0
[0.16.0] 10 November 2023
Added
- Added API calls to set relative node's priority, which determines their execution order within a graph (but not between graphs).
rgl_graph_node_set_priorityrgl_graph_node_get_priority
Changed
rgl_graph_run(...)is now fully asynchronous, i.e. it will initiate computations without waiting for them to finish- RGL API calls attempting to obtain results from a given node will block until the node has completed execution
- RGL API calls modifying scene will block until all graphs have completed execution
- Running a graph will block until the previous run has been completed
- Changed internal implementation of Entity ID feature
- The Entity ID is now held in a 28-bit integer (OptiX limit) instead of a 32-bit integer
- Renamed XYZ field name to be more precise and compatible with future features
RGL_FIELD_XYZ_F32->RGL_FIELD_XYZ_VEC3_F32
Known Issues
- Modifying fields between graph's runs (consisted of Compact or Downsample nodes) may cause a segmentation fault. Fixed in v0.16.1.
- Gaussian noise is not performed in rays coordinates. Fixed in v0.16.2.
- Modifying rays definition between graph's runs may allow computations on invalid pipeline. Fixed in v0.16.2.
v0.15.0
[0.15.0] 23 September 2023
Added
- Added feature to simulate velocity distortion
- Added API call to specify the delay between firing each ray:
rgl_node_rays_set_time_offsets
- Added API call to perform raytracing with velocity distortion:
rgl_node_raytrace_with_distortion
- Note: it is a simplified version of that feature
- The distortion takes into account only sensor velocity
- The velocity of the objects being scanned by the sensor is not considered
- Added API call to specify the delay between firing each ray:
- Improved ray range configuration
- Added API call to define min and max range for rays:
rgl_node_rays_set_range
- The range for each ray can be specified individually
- Modified API call:
rgl_node_raytrace- No longer takes range as a parameter
- Added API call to define min and max range for rays:
- Improved tape tools
- Multi-lidar tapes are now supported by
tapeVisualizer
- Multi-lidar tapes are now supported by
Fixed
- Fixed
-march=nativeimposed compilation option- Library builds are compatible with all 64-bit CPUs
vcpkgtag has been updatedPCLversion has been upgraded (1.13.0 -> 1.13.1)
- Fixed missing dependencies for ROS2 standalone build
- Fixed tape for API call
rgl_entity_set_id - Fixed
rgl_node_points_visualize- Fixed blocking spin loop for up to 1s on some machines
- Fixed segmentation fault on window close
- Fixed handling multiple windows at the same time
- Fixed linking the tests on Windows
Known Issues
- Destroying
rgl_node_points_visualizemay deadlock on some machines if multiple windows are spawn - Destroying
rgl_node_points_visualizemay not close window immediately - main thread exit needed
Released binaries
Linux-x64- RGL on Ubuntu22 with ROS2 HumbleWindows-x64- RGL on Windows with ROS2 HumbleLinux-x64-jazzy- RGL on Ubuntu24 with ROS2 Jazzy
v0.14.1
[0.14.1] 5 July 2023
Fixed
- Fixed building
PCLon Windowsvcpkgtag has been updatedPCLversion has been upgraded (1.12.0 -> 1.13.0)
- Fixed
rclcpp(ROS2package) initializationRGLchecks whetherrclcppis already initialized- Resolved
spdlogconflict betweenRGLandrclcppby downgrading its version on theRGLsite (1.10.0 -> 1.9.2)