Please provide the following info (tick the boxes after creating this topic):
Software Version
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
1.9.3.10904
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
Hello,
I was trying to apply what discussed in this topic How to link custom plugin library for Radar in CGF to my LIDAR, by using a custom plugin lib which has been previously and succesfully tested with the lidar_sample_replay and linking to the minipepeline example provvided by the SDK.
However i did notice that minipeline example was implementing Camera, Imu and Radar Node but no Lidar (or PointCloud) was mentioned at all.
I then implemnted the Lidar Graphlet as shown in picture below:
with dwLidarBatchNode taken from usr/local/driveworks-5.14/src/dwframework/dwnodes/sensors/dwlidarnode folder.
I added it at my minipepeline as in picture:
and properly modified the app.json as:
{
"name": "MiniPipelineApp",
"logSpec": "file/rfc5424:{{logpath}}/{{appname}}.log",
"parameters": {
...
},
"requiredSensors": "./MiniPipeline.required-sensors.json",
"sensorMappingLookups": [
"../../../../../usr/local/driveworks-5.14/apps/roadrunner-2.0/config/sensor_mappings"
],
"subcomponents": {
"miniPipeline": {
"componentType": "../graphlets/MiniPipeline.graphlet.json",
"parameters": {}
}
},
"connections": [],
"states": {
"STANDARD": {
"stmScheduleKey": "standardSchedule",
"default": true
}
},
"stmSchedules": {
"standardSchedule": {
"wcet": "./MiniPipeline_wcet.yaml",
"hyperepochs": {
"mainHyperepoch": {
"period": 33000000,
"epochs": {
"mainEpoch": {
"period": 33000000,
"frames": 1,
"passes": [
[
"miniPipeline.lidarSensor",
"miniPipeline.imuSensor",
"miniPipeline.radarSensor0",
"miniPipeline.radarSensor1"
]
]
}
},
"resources": {
"machine0.CPU0": []
}
},
"renderHyperepoch": {
"period": 33000000,
"epochs": {
"renderEpoch": {
"period": 33000000,
"frames": 1,
"passes": [
[
"miniPipeline.visualization"
]
]
},
"camEpoch": {
"period": 33000000,
"frames": 1,
"passes": [
[
"miniPipeline.camera0",
"miniPipeline.camera1",
"miniPipeline.camera2",
"miniPipeline.camera3",
"miniPipeline.camera4",
"miniPipeline.camera5",
"miniPipeline.camera6"
]
]
}
},
"resources": {
"machine0.CPU1": [],
"machine0.CPU2": [],
"machine0.CPU3": [],
"machine0.CPU4": [],
"machine0.CPU5": [],
"machine0.CPU6": [],
"machine0.CPU7": [],
"machine0.CPU8": [],
"machine0.dGPU": [],
"mainClient.CUDA_STREAM0:dGPU": [],
"mainClient.CUDA_MUTEX_LOCK": []
}
}
}
}
},
"processes": {
"ssm": {
"runOn": "machine0",
"executable": "SSM/vanillassm"
},
"schedule_manager": {
"runOn": "machine0",
"executable": "ScheduleManager",
"argv": {
"--enableScheduleSwitching": "true",
"--scheduleManagerHostIP": "127.0.0.1",
"--scheduleManagerHostPort": "4010",
"--scheduleManagerNumClients": "1"
}
},
"stm_master": {
"runOn": "machine0",
"executable": "stm_master",
"argv": {
"--timeout-us": "80000000",
"--log": "stm_sreport.log",
"--soc": "TegraA",
"-m": true
}
},
"mainClient": {
"runOn": "machine0",
"executable": "LoaderLite",
"subcomponents": [
"miniPipeline.camera0",
"miniPipeline.camera1",
"miniPipeline.camera2",
"miniPipeline.camera3",
"miniPipeline.camera4",
"miniPipeline.camera5",
"miniPipeline.camera6",
"miniPipeline.lidarSensor",
"miniPipeline.radarSensor0",
"miniPipeline.radarSensor1",
"miniPipeline.imuSensor",
"miniPipeline.visualization"
]
}
},
"extraInfo": "./MiniPipelineExtraInfo.json"
}
and modified the sensor section of the rig file by adding:
{
"name": "lidar:front:center",
"parameter": "file=irisSimShort_2217.bin,lidar_port=7502,imu_port=7503,session_id=test_log,decoder-path=/path/to/libouster_lidar_plugin_arm.so, transport=someip, device=CUSTOM_EX, ip=169.254.229.245 ,scan-frequency=10,fw-protocol-ver=2217,service-id=41632",
"properties": null,
"protocol": "lidar.custom",
"nominalSensor2Rig_FLU": {
"roll-pitch-yaw": [
0.0,
0.0,
-135.0
],
"t": [
-0.937,
-0.701,
0.499
]
}
}
Once generated both yaml and stm, i tried to lunch it on Orin board but i got the following messages in the launcher.log file.
…
> [STM ERROR]:[av/stm/runtime/src/client/commands/call.c][opInitCall] [123]: CPU runnable miniPipeline_lidarSensor_dwLidarBatchNode_pass_0 not found
[STM ERROR]:[av/stm/runtime/src/client/thread.c][threadAppendCommands] [323]: Unable to init instruction
[STM ERROR]:[av/stm/runtime/src/client/stm_internal.c][stmClientReceiveCoreCommands] [1078]: Could not append commands to thread.
[STM ERROR]:[av/stm/runtime/src/client/stm.c][stmEnterScheduler] [911]: Could not receive core commands. stmErrorCode=8 (STM_ERROR_GENERIC)
av/stm/runtime/src/client/stm.c:912 assertion failure, errno=11 (Resource temporarily unavailable)***** Backtrace disabled *****
[2024-01-23T11:45:26.201727Z][INFO][tid:0][Launcher.cpp:1198][Launcher] Got signal: 17 (Child exited), si_pid: 3140
[2024-01-23T11:45:26.201812Z][DEBUG][tid:0][Launcher.cpp:1270][Launcher] Sending SIGINT: /usr/local/driveworks/bin//ScheduleManager, name: schedule_manager
[2024-01-23T11:45:26.201937Z][FATAL][tid:0][Launcher.cpp:1039][Launcher] Process mainClient:3140 terminated by signal: 6 (Aborted)
[2024-01-23T11:45:26.201954Z][ERROR][tid:0][Launcher.cpp:1299][Launcher] There is child process exited abnormally.
[2024-01-23T11:45:26.201968Z][ERROR][tid:0][Launcher.cpp:1392][Launcher] Running processes:
[2024-01-23T11:45:26.201976Z][ERROR][tid:0][Launcher.cpp:1397][Launcher] ssm: 3139
[2024-01-23T11:45:26.201983Z][ERROR][tid:0][Launcher.cpp:1397][Launcher] schedule_manager: 3141
[2024-01-23T11:45:26.201990Z][ERROR][tid:0][Launcher.cpp:1397][Launcher] stm_master: 3142
[2024-01-23T11:45:26.201998Z][ERROR][tid:0][Launcher.cpp:1356][Launcher] Killing all live child processes with SIGTERM…
[2024-01-23T11:45:26.251863Z][FATAL][tid:0][Launcher.cpp:1039][Launcher] Process ssm:3139 terminated by signal: 15 (Terminated)
[2024-01-23T11:45:56.252030Z][ERROR][tid:0][Launcher.cpp:1327][Launcher] sigtimedwait() timeout.
[2024-01-23T11:45:56.252196Z][ERROR][tid:0][Launcher.cpp:1384][Launcher] Killing all live child processes with SIGKILL…
[2024-01-23T11:45:56.254426Z][FATAL][tid:0][Launcher.cpp:1039][Launcher] Process stm_master:3142 terminated by signal: 9 (Killed)
[2024-01-23T11:45:56.258222Z][FATAL][tid:0][Launcher.cpp:1039][Launcher] Process schedule_manager:3141 terminated by signal: 9 (Killed)
[2024-01-23T11:45:56.258260Z][INFO][tid:0][Launcher.cpp:1095][Launcher] waitForChildExit: No more child process!
[2024-01-23T11:45:56.258272Z][ERROR][tid:0][Launcher.cpp:1345][Launcher] All child processes has been killed successfully.
[2024-01-23T11:45:56.258286Z][FATAL][tid:0][Launcher.cpp:1565][Launcher] launcher exit status: 33
The error in bold made me think the .so library which lidar node was recalling, has no implementation for the passes that are described in the json.
Hence the questions:
-
Is there an example of minipepeline which is currently working with LIDAR devices?
-
Is there anything missing in the recalling of the decoder path of the lidar, as shown above?
Thanks in advance for the clarification.