赞
踩
在编译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
系统:虚拟机中的ubuntu20.04
ROS系统:ROS2 humble版本
设备:科大讯飞远场麦克风阵列语音板六麦语音交互模块声源定位ROS导航
如下图,用来做小车的语音控制系统
由于serial包不在ROS Humble的默认存储库中,就需要自行手动安装
serial是一个用 C++ 编写的跨平台串行端口库
Serial 是一个类,它提供串行库通用的基本接口(打开、关闭、读取、写入等),并且不需要额外的依赖项。它还提供对超时的严格控制和对握手线的控制。
我在查找方法的时候看到了这样一条:
将 C++ 代码从 ROS1 迁移到 ROS2 - 如何在 ROS2 中使用 C++ 串行库?
下面的评论中给出了这个包的github
但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包不是下载的这个
找上述淘宝客服要了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
然后再次编译就成功了
网盘里的这个包可能只对我这个项目有用,但可以试一试,网上也没有别的什么包了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。