Error in Minipipeline Application after adding custom nodes

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
We are facing the issues when we are running minipipeline script by adding custom nodes to it which was discussed in the thread No Display while running Custom_CGF - #13 by SivaRamaKrishnaNV

Error String

sudo ./run_mini_pipeline.sh
20250106_145314
20250106_145314
DW_TOP_PATH=/usr/local/driveworks
SAMPLE_TOP_PATH=/usr/local/driveworks/apps/minipipeline
CGF_SYS_PATH=
SMP_LOG_PATH=/usr/local/driveworks/apps/minipipeline/LogFolder
DATA_PATH=/usr/local/driveworks/data/samples/minipipeline/dataset
Current DISPLAY is :1
|--> Tuning message queue
|--> Tuning network stack
LD_LIBRARY_PATH: :/usr/local/driveworks/lib
/usr/local/driveworks/apps/minipipeline/LogFolder dir exists
total 72
drwxr-xr-x. 6 root root  4096 Jan  6 14:52 .
drwxr-xr-x. 5 root root  4096 Nov 28 14:01 ..
drwxr-xr-x. 2 root root  4096 Jan  6 14:20 LogFolder
-r-xr-xr-x. 1 root root 33190 Jan  6 14:08 MiniPipeline__standardSchedule.stm
-r-xr-xr-x. 1 root root 11532 Jan  6 14:08 MiniPipeline__standardSchedule.yaml
drwxr-xr-x. 2 root root  4096 Jan  6 14:49 applications
drwxr-xr-x. 2 root root  4096 Jan  6 14:50 graphlets
drwxr-xr-x. 2 root root  4096 Jan  6 14:04 nodes
Running command: /usr/local/driveworks/bin//launcher --binPath=/usr/local/driveworks/bin/ --spec=/usr/local/driveworks/apps/minipipeline/applications/MiniPipeline.app.json --logPath=/usr/local/drivework>
Check if reset NetworkStack needed
Restore LD_LIBRARY_PATH to
=======================================================================
launcher exit status: 217

Logs
Please find the Logfolder and files for your reference

minipipeline.tar.gz (169.9 KB)
LogFolderMini.tar.gz (49.5 KB)

NOTE: we are running this script by --offscreen=1 in it.

Dear @prit.shah ,
Thanks for sharing the files. Let me reproduce the issue and get back. I assume minipipeline was working before integrating new nodes

Dear @SivaRamaKrishnaNV ,
Yes, Minipipeline application was working before integrating new nodes.

Dear @SivaRamaKrishnaNV ,

Can we have any update in this?

Dear @SivaRamaKrishnaNV ,
Please can we have any update in this ?

Dear @prit.shah ,
I could add custom nodes in minipipeline and ran with out any issue on DRIVE OS 6.0.8.1
I could see prints from HelloworldNode mainClient_0.log like below

nvidia@tegra-ubuntu:/usr/local/driveworks/apps/minipipeline-new/LogFolder$ cat mainClient_0.log | grep HelloWorld
<13>1 2025-01-15T13:20:40.331960Z - mainClient 110160 - - [1693488876949508us][DEBUG][tid:1][HelloWorldNodeImpl.cpp:54][HelloWorldNode] HelloWorldNodeImpl: created
<13>1 2025-01-15T13:20:45.915348Z - mainClient 110160 - - [1693488882532894us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:78][HelloWorldNode] [Epoch 0] Sent value0 = 0
<13>1 2025-01-15T13:20:45.915483Z - mainClient 110160 - - [1693488882533032us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:82][HelloWorldNode] [Epoch 0] Sent value1 = 10000
<13>1 2025-01-15T13:20:45.915519Z - mainClient 110160 - - [1693488882533068us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:85][HelloWorldNode] [Epoch 0] Greetings from HelloWorldNodeImpl: Hello Demo!
<13>1 2025-01-15T13:20:45.948319Z - mainClient 110160 - - [1693488882565864us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:78][HelloWorldNode] [Epoch 1] Sent value0 = 1
<13>1 2025-01-15T13:20:45.948360Z - mainClient 110160 - - [1693488882565910us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:82][HelloWorldNode] [Epoch 1] Sent value1 = 9999

Steps followed to run minipipeline demo with custom nodes.

  1. Installed DW, CGF samples and data debian packages on target. Debians are at /drive/extra/driveworks on docker.
  2. Ran minipipeline on target to confirm no issue with sample.
  3. On docker, now create a copy of /usr/local/driveworks/apps/minipipeline at /usr/local/driveworks/apps/minipipeline-new made changes in MiniPipeline.graphlet.json, MiniPipeline.app.json as per Compute Graph Framework SDK Reference: Custom Node and Integration . Note that you need to update the HelloWorldNode.node.json, SumNode.node.json paths carefully and make sure the same path is existed on target as well. For simplicity I copied them under /usr/local/driveworks/apps/minipipeline-new/nodes on docker
  4. Generate new YAML and stm files on docker
./descriptionScheduleYamlGenerator.py --app /usr/local/driveworks/apps/minipipeline-new/applications/MiniPipeline.app.json --output MiniPipeline__standardSchedule.yaml
./stmcompiler -i descriptionScheduleYamlGenerator/MiniPipeline__standardSchedule.yaml -o descriptionScheduleYamlGenerator/MiniPipeline__standardSchedule.stm

5 The newly generated YAML stm files need to be replaced at /usr/local/driveworks/apps/minipipeline-new on target.
6. As HelloWorldNode and sumNode are already present on target at libcgf_custom_nodes.so, I did not copy the cross compiled the library on target. If you make any changes to HelloWorldNode/SumNode implementation, newly cross compiled library needs to be copied to target.
7. Now copy the /usr/local/driveworks/apps/minipipeline-new to target at /usr/local/driveworks/apps/minipipeline-new
run_mini_pipeline-new.sh (13.3 KB)

  1. start x11vnc on target and run the minipipeline demo like below and you should see output in VNCViewer from host.
sudo ./run_mini_pipeline-new.sh

I am attaching the application folder as zip file for reference.

minipipeline-new.zip (311.2 KB)

Instructions for reference

nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ cat /etc/nvidia/version-ubuntu-rootfs.txt
6.0.8.1-34171226
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ sudo service gdm3 stop
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ sudo service gdm stop
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ sudo -b X -ac -noreset
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ export DISPLAY=:0
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ sudo xrandr --fb 1920x1080
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ x11vnc -geometry 1920x1080 -display :0 &
nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ sudo ./run_mini_pipeline-new.sh
20250115_132029
20250115_132029
DW_TOP_PATH=/usr/local/driveworks
SAMPLE_TOP_PATH=/usr/local/driveworks/apps/minipipeline-new
CGF_SYS_PATH=
SMP_LOG_PATH=/usr/local/driveworks/apps/minipipeline-new/LogFolder
DATA_PATH=/usr/local/driveworks/data/samples/minipipeline/dataset
Current DISPLAY is :0
|--> Tuning message queue
|--> Tuning network stack
LD_LIBRARY_PATH: :/usr/local/driveworks/lib
total 72
drwxr-xr-x. 6 root root  4096 Jan 15 13:20 .
drwxr-xr-x. 6 root root  4096 Jan 15 13:17 ..
drwxr-xr-x. 2 root root  4096 Jan 15 13:20 LogFolder
-rw-r--r--. 1 root root 33190 Jan 15 13:17 MiniPipeline__standardSchedule.stm
-rw-r--r--. 1 root root 11532 Jan 15 13:17 MiniPipeline__standardSchedule.yaml
drwxr-xr-x. 2 root root  4096 Jan 15 13:17 applications
drwxr-xr-x. 2 root root  4096 Jan 15 13:17 graphlets
drwxr-xr-x. 2 root root  4096 Jan 15 13:17 nodes
Running command: /usr/local/driveworks/bin//launcher --binPath=/usr/local/driveworks/bin/ --spec=/usr/local/driveworks/apps/minipipeline-new/applications/MiniPipeline.app.json --logPath=/usr/local/driveworks/apps/minipipeline-new/LogFolder --path=/usr/local/driveworks/apps/minipipeline-new --datapath=/usr/local/driveworks/data/samples/minipipeline/dataset --dwdatapath=/usr/local/driveworks/data --schedule=/usr/local/driveworks/apps/minipipeline-new/MiniPipeline__standardSchedule.stm --start_timestamp=0 --loglevel=DW_LOG_DEBUG --fullscreen=0 --winSizeW=1920 --winSizeH=1200 --virtual=1 --gdb_debug=0 --app_parameter= > /usr/local/driveworks/apps/minipipeline-new/LogFolder/launcher.log 2>&1
15/01/2025 13:21:05 copy_tiles: allocating first_line at size 61
^C
|--> Killing launcher

nvidia@tegra-ubuntu:/usr/local/driveworks/bin$ cd ../apps/minipipeline-new/	
nvidia@tegra-ubuntu:/usr/local/driveworks/apps/minipipeline-new/LogFolder$ cat mainClient_0.log | grep HelloWorld
<13>1 2025-01-15T13:20:40.331960Z - mainClient 110160 - - [1693488876949508us][DEBUG][tid:1][HelloWorldNodeImpl.cpp:54][HelloWorldNode] HelloWorldNodeImpl: created
<13>1 2025-01-15T13:20:45.915348Z - mainClient 110160 - - [1693488882532894us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:78][HelloWorldNode] [Epoch 0] Sent value0 = 0
<13>1 2025-01-15T13:20:45.915483Z - mainClient 110160 - - [1693488882533032us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:82][HelloWorldNode] [Epoch 0] Sent value1 = 10000
<13>1 2025-01-15T13:20:45.915519Z - mainClient 110160 - - [1693488882533068us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:85][HelloWorldNode] [Epoch 0] Greetings from HelloWorldNodeImpl: Hello Demo!
<13>1 2025-01-15T13:20:45.948319Z - mainClient 110160 - - [1693488882565864us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:78][HelloWorldNode] [Epoch 1] Sent value0 = 1
<13>1 2025-01-15T13:20:45.948360Z - mainClient 110160 - - [1693488882565910us][DEBUG][tid:37][HelloWorldNodeImpl.cpp:82][HelloWorldNode] [Epoch 1] Sent value1 = 9999

Dear @SivaRamaKrishnaNV ,

Thanks for sharing the files, I will run the script with your shared files and update you the outcome.

I am seeing that you have used the same .so files for the minipipeline application which we were using for the custom nodes. So don’t we have to use libminipipeline_nodes.so shred library in minipipeline application?

Dear @prit.shah,
HelloWorldNode, SumNode implementation are part of libcgf_custom_nodes.so which can be seen in HelloWorldNode.node.json, SumNode.node.json

Dear @SivaRamaKrishnaNV ,

Thanks once again for sharing files, I have run the script as per your shared files and minipipeline applications, I am seeing the display as the one you have shared. I am sharing a logfolder to reconfirm that.

LogFolder.zip (222.7 KB)

Can you please explain what went wrong and what did you do to fix that?

Dear @prit.shah,
I noticed below highlighted entry missing in your graphlet.json.
{
“name”: “MiniPipeline”,
“inputPorts”: {},
“outputPorts”: {},
“parameters”: {
“masterCameraIndex”: {
“type”: “size_t”,
“default”: 0
},
“streamIndex”: {
“type”: “size_t”,
“default”: 0
},
“name”: { “type”: “dw::core::FixedString<64>”, “default”: “Demo” }
}

Yes. It is working.

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