Ошибка установки ros_astra_camera в Pi4 (неопределенная ошибка ссылки) - PullRequest
1 голос
/ 10 марта 2020

У меня ошибка при установке ros_astra_camera. Я уже успешно построил libuvc_camera в другом рабочем пространстве, но все еще есть ошибки в libuvc_camera. Это из-за проблем с путями или я не правильно установил?

Я следовал инструкциям и также скачал с камеры astra git. Мое рабочее пространство в настоящее время имеет dynamic_reconfigure, Image_common, rgbd_launch, ros_astra_camera и rplidar_ros.

Что касается загрузки его зависимостей (libuvs и libuvc_camera), я следую инструкциям на answer . Что касается других, у меня есть git клон из их git репо и cmake. и сделать

В настоящее время я использую Pi4 с Rasbian Buster с ROS melodi c.

Пожалуйста, помогите мне. Это нужно для установки драйвера камеры astra pro для моего проекта в последний год.

[ 98%] Built target astra_camera_nodelet
/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:(.text+0x2074): undefined reference to `uvc_set_iris_abs'
/usr/bin/ld: camera_driver.cpp:(.text+0x21f0): undefined reference to `uvc_set_brightness'
/usr/bin/ld: camera_driver.cpp:(.text+0x2374): undefined reference to `uvc_set_pantilt_abs'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::ImageCallback(uvc_frame*)':
camera_driver.cpp:(.text+0x2974): undefined reference to `uvc_yuyv2bgr'
/usr/bin/ld: camera_driver.cpp:(.text+0x2994): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x2a24): undefined reference to `uvc_mjpeg2rgb'
/usr/bin/ld: camera_driver.cpp:(.text+0x2a44): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x2b0c): undefined reference to `uvc_any2bgr'
/usr/bin/ld: camera_driver.cpp:(.text+0x2b2c): undefined reference to `uvc_perror'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::OpenCamera(libuvc_camera::UVCCameraConfig&)':
camera_driver.cpp:(.text+0x3e80): undefined reference to `uvc_find_devices'
/usr/bin/ld: camera_driver.cpp:(.text+0x3ea0): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x3f24): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x4070): undefined reference to `uvc_open'
/usr/bin/ld: camera_driver.cpp:(.text+0x417c): undefined reference to `uvc_get_bus_number'
/usr/bin/ld: camera_driver.cpp:(.text+0x4194): undefined reference to `uvc_get_device_address'
/usr/bin/ld: camera_driver.cpp:(.text+0x42bc): undefined reference to `uvc_get_bus_number'
/usr/bin/ld: camera_driver.cpp:(.text+0x42d4): undefined reference to `uvc_get_device_address'
/usr/bin/ld: camera_driver.cpp:(.text+0x42e4): undefined reference to `uvc_strerror'
/usr/bin/ld: camera_driver.cpp:(.text+0x4348): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x4364): undefined reference to `uvc_set_status_callback'
/usr/bin/ld: camera_driver.cpp:(.text+0x43d4): undefined reference to `uvc_get_stream_ctrl_format_size'
/usr/bin/ld: camera_driver.cpp:(.text+0x4400): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x4410): undefined reference to `uvc_close'
/usr/bin/ld: camera_driver.cpp:(.text+0x4420): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x4534): undefined reference to `uvc_print_diag'
/usr/bin/ld: camera_driver.cpp:(.text+0x4558): undefined reference to `uvc_start_streaming'
/usr/bin/ld: camera_driver.cpp:(.text+0x4578): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x4588): undefined reference to `uvc_close'
/usr/bin/ld: camera_driver.cpp:(.text+0x4598): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x45bc): undefined reference to `uvc_free_frame'
/usr/bin/ld: camera_driver.cpp:(.text+0x45e4): undefined reference to `uvc_allocate_frame'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::CloseCamera()':
camera_driver.cpp:(.text+0x4788): undefined reference to `uvc_close'
/usr/bin/ld: camera_driver.cpp:(.text+0x47a4): undefined reference to `uvc_unref_device'
collect2: error: ld returned 1 exit status
make[2]: *** [ros_astra_camera/CMakeFiles/camera_node.dir/build.make:163: devel/lib/astra_camera/camera_node] Error 1
make[1]: *** [CMakeFiles/Makefile2:3405: ros_astra_camera/CMakeFiles/camera_node.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Invoking "make -j4 -l4" failed

1 Ответ

0 голосов
/ 12 марта 2020

Ваша проблема в том, что рабочая область не может найти libuvc библиотеки.

убедитесь, что:

  • вы успешно скомпилировали libuvc и другие необходимые библиотеки (проверьте папку devel/lib в вашем рабочем пространстве для связанных .so файлов).
  • ваше рабочее пространство получено при компиляции (поместите source /<path>/<to>/<workspace>/devel/setup.bash в .bashrc).
  • проверьте, может ли cmake найти требуемый библиотека (простой способ - напечатать вывод libuvc_LIBRARIES, используя message.

Надеюсь, это поможет вашей проблеме.

...