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

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 项目,构建的时候不能使用上述的命令,因此我把命令修改为下面的:

# 获取代码
git clone https://github.com/wjwwood/serial.git

# 进入 serial 目录
cd serial

# 使用 colcon 构建代码
colcon build

# 生成并运行测试
colcon test

# 构建文档(可选)
colcon doxygen

# 安装
colcon build --symlink-install

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

echo $CMAKE_PREFIX_PATH

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

export CMAKE_PREFIX_PATH=/home/lll/serial/install/serial
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目录下,然后按照下面的方法构建

# 进入 serial_ros2 目录
cd serial_ros2

# 使用 colcon 构建代码
colcon build

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

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

然后再次编译就成功了

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


 

 

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值