当前位置:   article > 正文

Could not find a package configuration file provided by “serial“ with any of the following names

could not find a package configuration file provided by "serial" with any of

1. 问题:

在编译ROS2包的时候出现了下面的错误

lll@lll-virtual-machine:~/dev_ws$ colcon build --packages-select wheeltec_mic_ros2 Starting >>> wheeltec_mic_ros2

--- stderr: wheeltec_mic_ros2

CMake Error at CMakeLists.txt:24 (find_package):

By not providing "Findserial.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "serial", but CMake did not find one.

Could not find a package configuration file provided by "serial" with any of the following names:

serialConfig.cmake

serial-config.cmake

Add the installation prefix of "serial" to CMAKE_PREFIX_PATH or set "serial_DIR" to a directory containing one of the above files. If "serial" provides a separate development package or SDK, be sure it has been installed.

--- Failed <<< wheeltec_mic_ros2 [0.31s, exited with code 1]

Summary: 0 packages finished [0.39s]

1 package failed: wheeltec_mic_ros2

1 package had stderr output: wheeltec_mic_ros2

 

2. 我的环境以及设备

系统:虚拟机中的ubuntu20.04

ROS系统:ROS2   humble版本

设备:科大讯飞远场麦克风阵列语音板六麦语音交互模块声源定位ROS导航

如下图,用来做小车的语音控制系统 

3. 尝试的办法(没有解决)

由于serial包不在ROS Humble的默认存储库中,就需要自行手动安装

serial是一个用 C++ 编写的跨平台串行端口库

Serial 是一个类,它提供串行库通用的基本接口(打开、关闭、读取、写入等),并且不需要额外的依赖项。它还提供对超时的严格控制和对握手线的控制。


我在查找方法的时候看到了这样一条:

将 C++ 代码从 ROS1 迁移到 ROS2 - 如何在 ROS2 中使用 C++ 串行库?

 下面的评论中给出了这个包的github

serial-ros2
 

但github的介绍如下

由于它是一个 catkin 项目,在构建并安装到ROS2系统时又会出现问题

 

 尝试安装上述库

其给出的安装步骤为:

由于这个包是catkin 项目,构建的时候不能使用上述的命令,因此我把命令修改为下面的:

  1. # 获取代码
  2. git clone https://github.com/wjwwood/serial.git
  3. # 进入 serial 目录
  4. cd serial
  5. # 使用 colcon 构建代码
  6. colcon build
  7. # 生成并运行测试
  8. colcon test
  9. # 构建文档(可选)
  10. colcon doxygen
  11. # 安装
  12. colcon build --symlink-install

使用下面的命令查看ROS是否能找到这个库

echo $CMAKE_PREFIX_PATH

没有的话需要手动将下面的路径写到.bashrc 中,修改为自己的路径

  1. export CMAKE_PREFIX_PATH=/home/lll/serial/install/serial
  2. export CMAKE_MODULE_PATH=/home/lll/serial/install/serial/lib/cmake

此时我在编译我的ROS2包,问题变了,如下:

编译的时候因为文件中使用了这个serial包的serial.h文件,但是却找不到

/home/lll/ros_vioce/src/wheeltec_mic/wheeltec_mic_ros2/include/wheeltec_mic.h:7:10: fatal error: serial/serial.h: 没有那个文件或目录 7 | #include <serial/serial.h> 

由此推断我正在编译的这个包需要的serial包不是下载的这个

 

4. 解决办法

找上述淘宝客服要了serial_ros2的包链接如下:

链接:https://pan.baidu.com/s/1ii21zju7_d7us9nKCGY_2Q?pwd=u9gw 
提取码:u9gw 
--来自百度网盘超级会员V6的分享

 将这个包放在/home目录下,然后按照下面的方法构建

  1. # 进入 serial_ros2 目录
  2. cd serial_ros2
  3. # 使用 colcon 构建代码
  4. colcon build

然后在.bashrc 中添加下面的命令

  1. source /home/lll/serial_ros2/install/setup.bash
  2. export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/home/lll/serial_ros2/install

然后再次编译就成功了

网盘里的这个包可能只对我这个项目有用,但可以试一试,网上也没有别的什么包了


 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/602777
推荐阅读
相关标签
  

闽ICP备14008679号