Unable to replay recorded bin file

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.10.0
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
2.1.0
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Issue Description
I am able to visualize live data from my custom plugin for a lidar, but when I try to replay a bin file that I recorded using driveworks, it yields a segmentation fault. Any tips on how to resolve it?

Error String
Segmentation fault

Logs

Dear @mukund.viswanathan ,
Could you please shared the used command/ config to record and replay the sensor along with log .

Command:

sudo DW_LOG_LEVEL=DEBUG /usr/local/driveworks-5.20/bin/sample_lidar_replay --protocol=lidar.virtual --params=device=CUSTOMEX,file=<path_to_recorded_bin_file>,decoder-path=<path_to_decoder>,ip=192.168.1.100,port=64896,protocol=udp,scan-frequency=10,AligningCoordinate=yes,AngleInDegree=90,showBloomingPoints=yes,showGhostedPoints=yes,showRetroreflectorPoint=yes,AddingPCClassificationToIntensityInLast3MSB=no --show-intensity=false

Note: The arguments mentioned after decoder_path are specific to my plugin

Log:

ProgramArguments: Missing argument ‘dwTracePath’ requested
Starting my sample application…
[23-08-2025 01:07:37] Platform: Detected Drive Orin P3710
[23-08-2025 01:07:37] Adding variable DW_Base:DW_Version
[23-08-2025 01:07:37] Added variable DW_Base:DW_Version
[23-08-2025 01:07:37] Platform: number of GPU devices detected 1
[23-08-2025 01:07:37] Platform: currently selected GPU device 0, Resource Data Dir: trt_08_06_12_04, Arch: ga10b
[23-08-2025 01:07:37] Platform: currently selected GPU device integrated ID 0
[23-08-2025 01:07:37] CUDLAEngine:getDLACount: CUDLA version is = 1004000
[23-08-2025 01:07:37] CUDLAEngine:getDLACount: Number of DLA devices = 2
[23-08-2025 01:07:37] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘./resources’: VirtualFileSystem: Failed to mount ‘./resources/resources.pak’
[23-08-2025 01:07:37] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/home/akram/data’: VirtualFileSystem: Failed to mount ‘/home/akram/data/resources.pak’
[23-08-2025 01:07:37] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks-5.20/bin/../data
[23-08-2025 01:07:37] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/usr/local/driveworks-5.20/bin/../data’: VirtualFileSystem: Failed to mount ‘/usr/local/driveworks-5.20/bin/../data/resources.pak’
[23-08-2025 01:07:37] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks-5.20/data
[23-08-2025 01:07:37] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/usr/local/driveworks-5.20/data’: VirtualFileSystem: Failed to mount ‘/usr/local/driveworks-5.20/data/resources.pak’
[23-08-2025 01:07:37] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks-5.20/bin/../lib/libdw_base.so.5.20
[23-08-2025 01:07:37] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks-5.20/targets/aarch64-Linux/lib/libdw_base.so.5.20
[23-08-2025 01:07:37] SDK: No resources(.pak) mounted, some modules will not function properly
[23-08-2025 01:07:37] [23-08-2025 01:07:37] Initialize DriveWorks SDK v5.20.24
[23-08-2025 01:07:37] [23-08-2025 01:07:37] Release build with GNU 9.3.0 from buildbrain-branch-0-gb4c0b405b15 against Drive PDK v6.0.10.0
[23-08-2025 01:07:37] SensorFactory::createSensor() → time.nvpps, nvpps-device=/dev/nvpps0
[23-08-2025 01:07:37] Found driver: time.nvpps
[23-08-2025 01:07:37] TimeSensor: failed to set NVPPS parameters. Error: Invalid argument
[23-08-2025 01:07:37] This platform does not support NVPPS GPIO mode. Fallback to timer mode
[23-08-2025 01:07:37] TimeSensor: initialized with no UTC time reference.
[23-08-2025 01:07:37] SensorFactory: Override default timeSensor with the user passed one
[23-08-2025 01:07:37] EndpointNVPPS: started on /dev/nvpps0
[23-08-2025 01:07:37] SensorFactory::loadPluginLibraryHelper:Succeed to load dynamic lib - /usr/local/driveworks-5.20/bin/../lib/libsensor_plugin_public_radar.so
[23-08-2025 01:07:37] SensorFactory::createSensor() → lidar.virtual, device=CUSTOMEX,file=/home/akram/temp/lidar_front_scala3sat.bin,decoder-path=/home/akram/Documents/proj6262_valeo_lidar_plugin_for_nvidia19.08.2025/proj6262_valeo_lidar_plugin_for_nvidia/build/libsample_ValeoLidar_plugin_arm.so,ip=192.168.1.100,port=64896,protocol=udp,scan-frequency=10,AligningCoordinate=yes,AngleInDegree=90,showBloomingPoints=yes,showGhostedPoints=yes,showRetroreflectorPoint=yes,AddingPCClassificationToIntensityInLast3MSB=no
[23-08-2025 01:07:37] Found driver: lidar.virtual
[23-08-2025 01:07:37] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:37] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:37] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:37] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:37] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:38] Return mode separation not enabled, using DW_LIDAR_RETURN_TYPE_ANY
[23-08-2025 01:07:39] Initialize DriveWorks VisualizationSDK v5.20.24
[23-08-2025 01:07:39] Initialize DriveWorksGL SDK v5.20.24
[23-08-2025 01:07:39] egl::Display: found 1 EGL devices
[23-08-2025 01:07:39] egl::Display: use drm device: /dev/dri/card0
Start to recieve new frame, scan number:0
Complete Frame Received, scan number:0
Complete Frame Received, fragmentCount:4219
Enter decodeScanToDwPacket
Segmentation fault

Any suggestions/recommendations?

The provided log don’t have enough info. Could you share the command used for recording lidar data?

Within a terminal with sudo privileges, I ran the following command:

./recoder <path_to_rig_file>

When prompted to start recording, I typed ‘s’.

One more question while I was reviewing the documentation again here - DriveWorks SDK Reference: Basic Recording

-Is it mandatory to record only with an ext4-formmated eSATA/USB3.0 SSD is mounted on the target? Am I not allowed to record on to the local storage directly (I am aware it is limited however).

-The documentation says to press s to start, and s to stop recording. But on the command line, it does not indicate to use ‘s’ to stop recording - which is correct? Because when I use s to stop recording, it does not stop at all and the onboard storage is filled up. If I use q to stop, I am wondering if it corrupts the bin file somehow.

you can do. As it has limited space we suggest to do on external storage. Could you share the rig file as well?

rig_record_nvidia.txt (2.2 KB)

It appears that the portal does not accept json as file format for uploading, so for the sake of it I have renamed it in txt format

Additional question - when I specify the record path as one on the external drive, it creates a file there. After I attempt to stop recording with ‘s’ command it creates a file on the local orin storage as well strangely. It does not stop recording unless I press q, which appears to not be recommended per the warning here:

Stop recording data and then quite the application. If you quit the app before you stop recording data, you will corrupt the acquired data.

I have also attached a log of the recording if it helps here based on the record command in my previous command.

recordlog.log (17.1 KB)

Hello, any feedback on this?

Using s starts the recording and q to quit recording. Please go to mounting folder and start recording. By default, it starts recording in the current directory.
Could you please use prints in decoder code snippet to understand which function hits issue.
Also, please check using DriveWorks SDK Reference: Simple Sensor Recording Sample sample to see if recorded data works with these sample. You can use gdb and add break points in decoder code when using lidar replay sample.

Hi, if it helps here are some print logs in the plugin functions; also if you are referring to the bin file (I believe it is velodyne data) that comes with driveworks installation - I was able to replay that using sample_lidar_replay.

Dear @mukund.viswanathan ,
As suggested can you check running sample with gdb to put a break point inside your plugin code and see which frame has issue. Compile the sample with debug flag (-DCMAKE_BUILD_TYPE=Debug) to get debug sample.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.