ROS移植机器人小车:catkin_make过程中碰到的各种小问题

接前面的贴子:

============================

[  1%] Building CXX object clbrobot_project/clb_pid/CMakeFiles/pid_listen.dir/src/clbrobot_pid_core.cpp.o
In file included from /home/ubuntu/noetic/catkin_ws/src/clbrobot_project/clb_pid/src/clbrobot_pid_core.cpp:1:
/home/ubuntu/noetic/catkin_ws/src/clbrobot_project/clb_pid/include/clbrobot_pid/clbrobot_pid_core.h:8:10: fatal error: clb_msgs/PID.h: No such file or directory
    8 | #include "clb_msgs/PID.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.

说明:这个PID.h是由clb_msgs项目生成的,如果这个项目没有在clb_pid项目前编译,就会出现这个问题。

解决办法:

首先单独编译这个包,

catkin_make -DCATKIN_WHITELIST_PACKAGES="clb_msgs"

然后再编译全部的包,

catkin_make -DCATKIN_WHITELIST_PACKAGES=""

这样,程序就能正确链接了。

============================

packet_write_wait: Connection to 192.168.3.93 port 22: Broken pipe

进入服务器,

sudo vim /etc/ssh/sshd_config

将下面的参数修改一下,

ClientAliveInterval 60 

重启一下,

systemctl restart sshd

完成。

============================

下面这个问题参考这位小哥的贴子:

编译ros_astra_camera 出现找不到libucv问题,已经解决_顺德龙卷风的博客-CSDN博客

除了问题报错,基本照抄,如下,

编译ros_astra_camera 包的时候会出现一大段报错问题,这样的一堆…

[ 88%] Linking CXX executable /home/ubuntu/noetic/catkin_ws/devel/lib/astra_camera/camera_node
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x18): undefined reference to `main'
/usr/bin/ld: (.text+0x1c): undefined reference to `main'
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::~CameraDriver()':
camera_driver.cpp:(.text+0xb98): undefined reference to `uvc_free_frame'
/usr/bin/ld: camera_driver.cpp:(.text+0xbb4): 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+0xd1c): 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+0xdbc): undefined reference to `uvc_set_ae_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0xdd4): undefined reference to `uvc_set_ae_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0xf30): 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+0xfdc): 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+0x1064): 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+0x10bc): 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+0x1144): undefined reference to `uvc_set_white_balance_temperature_auto'
/usr/bin/ld: camera_driver.cpp:(.text+0x115c): undefined reference to `uvc_set_white_balance_temperature_auto'
/usr/bin/ld: camera_driver.cpp:(.text+0x117c): 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+0x1204): undefined reference to `uvc_init'
/usr/bin/ld: camera_driver.cpp:(.text+0x1224): 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+0x13c4): 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+0x1534): undefined reference to `uvc_set_scanning_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0x16c4): undefined reference to `uvc_set_ae_mode'
/usr/bin/ld: camera_driver.cpp:(.text+0x184c): undefined reference to `uvc_set_ae_priority'
/usr/bin/ld: camera_driver.cpp:(.text+0x19e4): undefined reference to `uvc_set_exposure_abs'
/usr/bin/ld: camera_driver.cpp:(.text+0x1b84): undefined reference to `uvc_set_focus_auto'
/usr/bin/ld: camera_driver.cpp:(.text+0x1d10): undefined reference to `uvc_set_focus_abs'
/usr/bin/ld: camera_driver.cpp:(.text+0x1e98): undefined reference to `uvc_set_gain'
/usr/bin/ld: camera_driver.cpp:(.text+0x2024): undefined reference to `uvc_set_iris_abs'
/usr/bin/ld: camera_driver.cpp:(.text+0x21ac): undefined reference to `uvc_set_brightness'
/usr/bin/ld: camera_driver.cpp:(.text+0x2350): 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+0x2954): undefined reference to `uvc_yuyv2bgr'
/usr/bin/ld: camera_driver.cpp:(.text+0x2974): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x29fc): undefined reference to `uvc_mjpeg2rgb'
/usr/bin/ld: camera_driver.cpp:(.text+0x2a1c): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x2a94): undefined reference to `uvc_any2bgr'
/usr/bin/ld: camera_driver.cpp:(.text+0x2ab4): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x2e3c): undefined reference to `astraWithUVC(OB_DEVICE_NO)'
/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+0x3cec): undefined reference to `uvc_find_devices'
/usr/bin/ld: camera_driver.cpp:(.text+0x3d0c): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x3d84): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x3ef8): undefined reference to `uvc_open'
/usr/bin/ld: camera_driver.cpp:(.text+0x4024): undefined reference to `uvc_get_bus_number'
/usr/bin/ld: camera_driver.cpp:(.text+0x4038): undefined reference to `uvc_get_device_address'
/usr/bin/ld: camera_driver.cpp:(.text+0x4184): undefined reference to `uvc_get_bus_number'
/usr/bin/ld: camera_driver.cpp:(.text+0x4198): undefined reference to `uvc_get_device_address'
/usr/bin/ld: camera_driver.cpp:(.text+0x41a8): undefined reference to `uvc_strerror'
/usr/bin/ld: camera_driver.cpp:(.text+0x4208): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x4228): undefined reference to `uvc_set_status_callback'
/usr/bin/ld: camera_driver.cpp:(.text+0x4290): undefined reference to `uvc_get_stream_ctrl_format_size'
/usr/bin/ld: camera_driver.cpp:(.text+0x42b8): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x42c4): undefined reference to `uvc_close'
/usr/bin/ld: camera_driver.cpp:(.text+0x42d0): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x4408): undefined reference to `uvc_print_diag'
/usr/bin/ld: camera_driver.cpp:(.text+0x4430): undefined reference to `uvc_start_streaming'
/usr/bin/ld: camera_driver.cpp:(.text+0x4450): undefined reference to `uvc_perror'
/usr/bin/ld: camera_driver.cpp:(.text+0x445c): undefined reference to `uvc_close'
/usr/bin/ld: camera_driver.cpp:(.text+0x4468): undefined reference to `uvc_unref_device'
/usr/bin/ld: camera_driver.cpp:(.text+0x4488): undefined reference to `uvc_free_frame'
/usr/bin/ld: camera_driver.cpp:(.text+0x44b0): 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+0x4644): undefined reference to `uvc_close'
/usr/bin/ld: camera_driver.cpp:(.text+0x4658): undefined reference to `uvc_unref_device'
collect2: error: ld returned 1 exit status
make[2]: *** [depth_camera/ros_astra_camera/CMakeFiles/camera_node.dir/build.make:150: /home/ubuntu/noetic/catkin_ws/devel/lib/astra_camera/camera_node] Error 1
make[1]: *** [CMakeFiles/Makefile2:4581: depth_camera/ros_astra_camera/CMakeFiles/camera_node.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

看一下就是找不到库的问题,解决这个问题的方法是修改ros_astra_camera的CmakeList.txt文件。(入行小白一开始很头大,因为不熟悉Cmake语法,后来看了几天之后凭感觉学会了,我真是个天才,哈哈飘了)咳咳,直接关注问题本身。

Cmakelist中的添加libuvc是通过find_package(libuvc REQUIRED) 寻找库的,但是新安装的libuvc 0.0.6 没有生成 libuvc.cmake文件(不知道原因),所以编译时libuvc_INCLUDE_DIRS、libuvc_LIBRARIES 都是空的!!! 所以编译才找不到对应的库!
解决办法:在ros_astra_camera的CmakeList.txt文件的find_package(libuvc REQUIRED)下方添加两条语句(根据你libuvc安装的地址修改),编译就OK了
set(libuvc_INCLUDE_DIRS “/usr/local/include/libuvc”)
set(libuvc_LIBRARIES “/usr/local/lib/libuvc.so”)

find_package(libuvc REQUIRED) #原因是libuvc库存在问题,没有libuvc.cmake文件,find_package()无法找到libuvc库文件
#解决办法手动添加库文件位置
set(libuvc_INCLUDE_DIRS "/usr/local/include/libuvc")
set(libuvc_LIBRARIES "/usr/local/lib/libuvc.so")

解决此问题后还有一个无法看在 rviz 中看到 RGB图像的问题,参考这位小哥的博客他找到了bug并解决了(官方驱动包有问题)
https://blog.csdn.net/Numberors/article/details/105637209
============================

本文结束

引用\[1\]提到了设置ROS与C++开发环境的方法,其修改了快捷方式的Exec变量。引用\[2\]提到了在不同版本下进行catkin_make命令的修改。引用\[3\]提到了文件编码格式导致的错误,并给出了解决方法。 根据你的问题,你遇到了catkin_make命令未找到的错误。这个错误可能是由于环境变量配置不正确导致的。你可以尝试按照引用\[1\]的方法设置快捷方式,确保Exec变量指向正确的catkin_make路径。另外,根据引用\[2\]的提示,如果你使用的是kinetic版本,需要将catkin_make命令修改为kinetic-devel。 如果你已经按照上述方法进行了设置,但仍然遇到问题,那么可能是文件编码格式导致的错误。你可以按照引用\[3\]的方法找到报错信息的文件路径,使用vi命令打开该文件,并使用命令:set ff=unix来更改文件的编码格式。 总结起来,你可以按照以下步骤来解决catkin_make命令未找到的问题: 1. 按照引用\[1\]的方法设置快捷方式,确保Exec变量指向正确的catkin_make路径。 2. 如果你使用的是kinetic版本,将catkin_make命令修改为kinetic-devel,参考引用\[2\]的提示。 3. 如果仍然遇到问题,按照引用\[3\]的方法找到报错信息的文件路径,使用vi命令打开该文件,并使用命令:set ff=unix来更改文件的编码格式。 希望以上方法能够帮助你解决问题。如果还有其他疑问,请随时提问。 #### 引用[.reference_title] - *1* [QT开发ROS遇到问题:execute_process(/usr/bin/python"/home/fu/catkin_ws/build/catkin_genetated/...](https://blog.csdn.net/weixin_34223655/article/details/94566813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [安装MAVROS过程 catkin:未找到命令 的问题](https://blog.csdn.net/chamu99/article/details/113242268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [catkin_make出现\usr\bin\python \r报错](https://blog.csdn.net/Json_Zeng/article/details/127289580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值