ros_astra_camera install error (undefined reference error)
Hi All,
I have an error with installing ros_astra_camera. I have already successfully built libuvc_camera in another workspace but there are still error about libuvc_camera. Is it because of path issues or i didnt really install properly?
I'm currently using a Pi4 with raspbian buster with ros melodic.
Please help me. I need this to install the astra pro camera driver for my final year project.
[ 98%] Built target astra_camera_node
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::~CameraDriver()':
camera_driver.cpp:(.text+0xcb4): undefined reference to `uvc_free_frame'
/usr/bin/ld: camera_driver.cpp:(.text+0xcd4): undefined reference to `uvc_exit'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::getUVCExposureCb(astra_camera::GetUVCExposureRequest_<std::allocator<void> >&, astra_camera::GetUVCExposureResponse_<std::allocator<void> >&)':
camera_driver.cpp:(.text+0xe84): undefined reference to `uvc_get_exposure_abs'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::setUVCExposureCb(astra_camera::SetUVCExposureRequest_<std::allocator<void> >&, astra_camera::SetUVCExposureResponse_<std::allocator<void> >&)':
camera_driver.cpp:(.text+0xef8): undefined reference to `uvc_set_ae_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0xf14): undefined reference to `uvc_set_ae_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0x104c): undefined reference to `uvc_set_exposure_abs'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::getUVCGainCb(astra_camera::GetUVCGainRequest_<std::allocator<void> >&, astra_camera::GetUVCGainResponse_<std::allocator<void> >&)':
camera_driver.cpp:(.text+0x10e4): undefined reference to `uvc_get_gain'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::setUVCGainCb(astra_camera::SetUVCGainRequest_<std::allocator<void> >&, astra_camera::SetUVCGainResponse_<std::allocator<void> >&)':
camera_driver.cpp:(.text+0x1154): undefined reference to `uvc_set_gain'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::getUVCWhiteBalanceCb(astra_camera::GetUVCWhiteBalanceRequest_<std::allocator<void> >&, astra_camera::GetUVCWhiteBalanceResponse_<std::allocator<void> >&)':
camera_driver.cpp:(.text+0x11ac): undefined reference to `uvc_get_white_balance_temperature'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::setUVCWhiteBalanceCb(astra_camera::SetUVCWhiteBalanceRequest_<std::allocator<void> >&, astra_camera::SetUVCWhiteBalanceResponse_<std::allocator<void> >&)':
camera_driver.cpp:(.text+0x1220): undefined reference to `uvc_set_white_balance_temperature_auto'
/usr/bin/ld: camera_driver.cpp:(.text+0x123c): undefined reference to `uvc_set_white_balance_temperature_auto'
/usr/bin/ld: camera_driver.cpp:(.text+0x125c): undefined reference to `uvc_set_white_balance_temperature'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::Start()':
camera_driver.cpp:(.text+0x12cc): undefined reference to `uvc_init'
/usr/bin/ld: camera_driver.cpp:(.text+0x12ec): undefined reference to `uvc_perror'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::Stop()':
camera_driver.cpp:(.text+0x1440): undefined reference to `uvc_exit'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::ReconfigureCallback(libuvc_camera::UVCCameraConfig&, unsigned int)':
camera_driver.cpp:(.text+0x1594): undefined reference to `uvc_set_scanning_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0x1710): undefined reference to `uvc_set_ae_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0x1884): undefined reference to `uvc_set_ae_priority'
/usr/bin/ld: camera_driver.cpp:(.text+0x1a0c): undefined reference to `uvc_set_exposure_abs'
/usr/bin/ld: camera_driver.cpp:(.text+0x1c08): undefined reference to `uvc_set_focus_auto'
/usr/bin/ld: camera_driver.cpp:(.text+0x1d7c): undefined reference to `uvc_set_focus_abs'
/usr/bin/ld: camera_driver.cpp:(.text+0x1ef0): undefined reference to `uvc_set_gain'
/usr/bin/ld: camera_driver.cpp ...
Can you please provide the list of steps you performed to build this? What is the content of your workspace? Where did you get the astra_camera code from? etc
I followed the steps and also downloaded from astra_git My workspace currently has dynamic_reconfigure, Image_common, rgbd_launch, ros_astra_camera and rplidar_ros.
As for downloading it's dependencies (libuvs and libuvc_camera) i have follow the steps on [answer] (https://answers.ros.org/question/3461...). As for others, i have git clone from their git repo and cmake . and make
Unfortunately that's not really enough information to help you debug this.
By list of steps if meant a reproducible example: an exact list of commands to run. Ideally with the full console output of the build as well. To get more details about the invocation that fails you can run make in verbose mode:
I tried reproducing the issue but without the manual cloning and cmake make invocations. Instead I used
rosinstall_generator
to give a list of repositories and tags to clone. This allows me to stay lazy and mostly to clone only release version of the code and not the default branch (that may be experimental or broken). I could not reproduce your issue, the build passed. Here is the Dockerfile I used, that may help you find out what differs from your setupThank you very much !!! By following the steps in your docker file the driver successfully installed.