Forestry-Robotics-UC / dalsa_genie_nano_c2420

ROS driver for the Teledyne Dalsa Genie Nano C2420 Multispectral Camera
0 stars 0 forks source link

Support for Dalsa Genie Nano GigE PoE Camera C1930? #1

Open afridi26 opened 3 years ago

afridi26 commented 3 years ago

Hey,

Thanks for the drivers. I appreciate your contribution.

I have one question:

Does your drivers support Dalsa Genie Nano GigE PoE Camera C1930?

Thanks in advance.

Regards, Aftab

davidbsp commented 3 years ago

Hi @afridi26, I've never worked with that specific model. However, being also a Dalsa Genie Nano GigE PoE Camera like the C2420, and assuming it can also be used with the Dalsa GigE-V Framework, I would expect it to work with almost no (or minimal) modifications. Feel free to try it out and let us know if it worked!

afridi26 commented 3 years ago

@davidbsp Thank you so much.

Yes I am giving it a shot and I will let you know.

Regards, Aftab

afridi26 commented 3 years ago

Hey @davidbsp,

I clone the the repo and tried to run it on NVIDIA AGX in the catkin_workspace using the following command

catkin_make -DCMAKE_BUILD_TYPE=Release

I think, it is not compatible NVIDIA platforms, the first error I encountered was:

CMake Error at /home/agx/catkin_ws/devel/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message):
  Project 'cv_bridge' specifies
  '/home/agx/catkin_ws/src/vision_opencv/cv_bridge/include' as an include
  dir, which is not found.  It does neither exist as an absolute directory
  nor in
  '/home/agx/catkin_ws/src/vision_opencv/cv_bridge//home/agx/catkin_ws/src/vision_opencv/cv_bridge/include'.
  Check the issue tracker
  'https://github.com/ros-perception/vision_opencv/issues' and consider
  creating a ticket if the problem has not been reported yet.
Call Stack (most recent call first):
  /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  dalsa_genie_nano_c2420/CMakeLists.txt:10 (find_package)

I fixed above error, by running cloning the vision_opencv repo:

cd ~/catkin_make/src
git clone https://github.com/ros-perception/vision_opencv

Then changed below code in

if(PYTHONLIBS_VERSION_STRING VERSION_LESS "3.8")
    # Debian Buster
    find_package(Boost REQUIRED python37) <----- changed from python37 to python 
  else()
    # Ubuntu Focal
    find_package(Boost REQUIRED python)
  endif()

So by changing form python37 the error was gone.

But now, since I am using NVIDIA AGX and it is based on arm64 architecture. I am facing problems with the following variables while building the packages. I think it is not able to find the dalsa_genie_nano_c2420_driver directory which is there.

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GCBASE_LIBRARY
    linked by target "dalsa_genie_nano_c2420_driver" in directory /home/agx/catkin_ws/src/dalsa_genie_nano_c2420

-- Configuring incomplete, errors occurred!
See also "/home/agx/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/agx/catkin_ws/build/CMakeFiles/CMakeError.log".

Additionally, /opt/genicam_v3_0/bin folder containers the following directory only: Linux64_ARM

Full logs:

Base path: /home/agx/catkin_ws
Source space: /home/agx/catkin_ws/src
Build space: /home/agx/catkin_ws/build
Devel space: /home/agx/catkin_ws/devel
Install space: /home/agx/catkin_ws/install
####
#### Running command: "cmake /home/agx/catkin_ws/src -DCMAKE_BUILD_TYPE=Release -DCATKIN_DEVEL_PREFIX=/home/agx/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/agx/catkin_ws/install -G Unix Makefiles" in "/home/agx/catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/agx/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/agx/catkin_ws/devel;/opt/ros/melodic
-- This workspace overlays: /home/agx/catkin_ws/devel;/opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/agx/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") 
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 6 packages in topological order:
-- ~~  - opencv_tests
-- ~~  - vision_opencv (metapackage)
-- ~~  - cv_bridge
-- ~~  - image_geometry
-- ~~  - dalsa_genie_nano_c2420
-- ~~  - ouster_ros
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'opencv_tests'
-- ==> add_subdirectory(vision_opencv/opencv_tests)
-- +++ processing catkin metapackage: 'vision_opencv'
-- ==> add_subdirectory(vision_opencv/vision_opencv)
-- +++ processing catkin package: 'cv_bridge'
-- ==> add_subdirectory(vision_opencv/cv_bridge)
-- Found PythonLibs: /usr/lib/aarch64-linux-gnu/libpython2.7.so (found version "2.7.17") 
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   python
-- Found OpenCV: /usr (found suitable version "4.1.1", minimum required is "4") found components:  opencv_core opencv_imgproc opencv_imgcodecs 
-- Found PythonLibs: /usr/lib/aarch64-linux-gnu/libpython2.7.so (found suitable version "2.7.17", minimum required is "2.7") 
-- +++ processing catkin package: 'image_geometry'
-- ==> add_subdirectory(vision_opencv/image_geometry)
-- Found OpenCV: /usr (found version "4.1.1") 
-- +++ processing catkin package: 'dalsa_genie_nano_c2420'
-- ==> add_subdirectory(dalsa_genie_nano_c2420)
-- +++ processing catkin package: 'ouster_ros'
-- ==> add_subdirectory(ouster_example-master/ouster_ros)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- ouster_ros: 1 messages, 1 services
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GCBASE_LIBRARY
    linked by target "dalsa_genie_nano_c2420_driver" in directory /home/agx/catkin_ws/src/dalsa_genie_nano_c2420

-- Configuring incomplete, errors occurred!
See also "/home/agx/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/agx/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

In advance I apologies for the long comment, I am beginner to ROS and related technologies. I would appreciate your valuable time, if you could nudge me in the right direction.

Thank you in advance. Regards, Aftab

davidbsp commented 3 years ago

Hi Aftab, I am currently on holidays without access to a computer. I will look into this with more detail later. Make sure that you can compile and run the GigE-V framework examples (see the readme file of this repo) and see the camera feed on the arm64 architecture. You need to make sure that the manufacturer's Genicam library is correctly installed so that your catkin build system can use it (GCBASE_LIBRARY) as a dependency. My hint is that this will be the key to solving your problem. Good luck!

afridi26 commented 3 years ago

@davidbsp

Thank you so much. Have a happy and healthy holidays :).

Yes, I compiled and run the GigE-v framework and I am able to see the feed from the camera on arm64 architecture. I am also trying to contact the camera vendor for the Genicam library.

Thank you so much for your valuable time.

Stay safe!

Regards, Aftab