edge_ai_apps and Building to Completion...

Hello,


[100%] Linking C executable ../../bin/Release/edgeai-tiovx-modules-test
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_dl_color_convert_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_multi_scaler_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_img_mosaic_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_dl_pre_proc_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_dl_color_blend_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_viss_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_ldc_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_pyramid_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_dof_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_dof_viz_module_test.c.o:(.bss+0x0): multiple definition of `gAppObj'; CMakeFiles/edgeai-tiovx-modules-test.dir/app_tiovx_color_convert_module_test.c.o:(.bss+0x0): first defined here
/usr/bin/ld: warning: libdlr.so, needed by /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLRInputSizeDim'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `DeleteDLRModel'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `RunDLRModel'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `DLRGetLastError'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `CreateDLRModel'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLROutput'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLROutputSizeDim'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLRInputShape'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `SetDLRInput'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLROutputShape'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLRNumOutputs'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLRInputName'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLROutputName'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../../lib/libtivision_apps.so: undefined reference to `GetDLRNumInputs'
collect2: error: ld returned 1 exit status
make[2]: *** [test/CMakeFiles/edgeai-tiovx-modules-test.dir/build.make:290: ../bin/Release/edgeai-tiovx-modules-test] Error 1
make[1]: *** [CMakeFiles/Makefile2:142: test/CMakeFiles/edgeai-tiovx-modules-test.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Setup FAILED! : Make sure you have active network connection

So, those are my errors.

I am building so far. I am getting closer. I can almost use the webcam to port the edge_ai_apps to the BBAI-64 but the build creates errors at 100% for the C/C++ files.

Seth

P.S. If you are working on this idea, like the fellow that brought this up earlier in the year, please do reply.

I am getting close, i.e. as the /dev/video2 for the webcam can be shown during builds from this repo.

I am currently building the docker installs on the BBAI-64. I found that listening to the TI docs. was not too workable. So, I will keep building until I can configure it correctly.

Hello Seth,

I am doing something similar and seeing similar error. I am not trying this on a webcam as you mention tho. I am trying this for CSI cameras using IMX219. I am able to successfully enumerate this sensor as a /dev/video interface and seems like everything is set up I am just not able to use this video interface. I am recurring to building edge ai too. One interesting thing about this tho… I have an TDA4VM-SK EVM (SK-TDA4VM Evaluation board | TI.com) and when compiling in there it works pretty fine. Not really know what the difference is when it comes to compiling edgeai-tiovx-modules. Also, I am not even sure how you are compiling, but I am just runing setup_script.sh under /opt/edge_ai_apps on curren bb debian build.
I will let you know if I have any update.

Thanks,
Luis

P.S. Webcam works fine for me using VLC and v4l2-ctl. Have you tried that?

Hello,

@LuisRivera , I cloned the repo. and am learning slowly how to manipulate the build. I will check in /opt/ soon.

Seth

P.S. I actually got further but still to no avail. The build under docker.io and docker seem to work a bit more but it takes up a bunch of space, i.e. you will need a larger Micro SD Card.

Hello Seth,

Have you got this to work? I see that the issue is happening when running “sudo make -j2” inside the repo, but have not gone further. Let me know if you have any input.

Thanks,
Luis

1 Like

@LuisRivera ,

Not yet and it seems that it is more complicated the more I research ideas. I will keep it up, though. This way we can keep on. I will provide some notes soon.

Seth

Hello @LuisRivera ,

Seth here again. I can install some of the scripts dir. items but when docker finally installs Ubuntu and other required files…

  1. The system starts in docker.
  2. I do not have access to the boot log afterwards

Here: scripts/setup_cameras.sh · master · BeagleBoard.org / Edge Ai Apps · GitLab

That set up script for the cameras may need altering. What do you think so far?

Seth

P.S. I also noticed that the build of OpenCV is installed but not in the correct PATH. Outside of those facts, which I may be wrong about currently regarding the no boot log w/ docker, I am building the ROS Robotics SDK now. I will report back.

Hello,

The ROS dev. install works willy-nilly. I have not compiled any ROS C++ code yet but I can learn how since I received a book on it recently and it is dedicated to ROS/C++.

The question I am having now is if the ROS dev. install needs to have the Ubuntu-Docker image running while using the ROS dev. install.

I will further investigate some findings. The book is long and luckily ROS has some nifty tutorials dedicated to C++ dev. w/in ROS.

Seth

P.S. On guard! One reference I think needs to be questioned is this…

  1. Why can I not use colcon for ROS1 or ROS2 and why is ROS1 or ROS2 not recognized, e.g. just like colcon?