我正在将一个包从ROS 1迁移到ROS 2。它是一个电机控制器驱动程序,因此它通过USB进行通信,并使用“串行”C库。我见过其他类似于此的ROS 2 C驱动程序使用串行库,但我想知道如何在构建时修复此错误:
CMake Error at CMakeLists.txt:26 (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 <<<
我在我的文件中包含了标题#include〈serial/serial.h〉,并在CMakeLists.txt中包含了find_package(serial REQUIRED)。我是否遗漏了什么才能正常工作?这是全新安装,我是否需要安装任何内容?谢谢
在ROS 1中,你可以简单地使用apt-get install ros-noetic-serial。这在ROS 2中不起作用。当我运行colcon build时,我得到了上面的错误。
1条答案
按热度按时间m1m5dgzv1#
你确定你见过的其他ROS 2驱动程序使用的是完全相同的软件包吗?据我所知,没有官方发布的ROS 2串行软件包(基于官方GIT仓库here的问题部分)。
然而,话虽如此,你可以看到有一些“非官方”的版本,人们已经移植了确切的串行库,现在在ROS 2中用colcon构建。serial-ros 2项目here和原始库here的ros 2分支目前可能非常相似,是串行包的非官方版本。你可以给予一下。
我在这个用例中遇到的另一个软件包是transport_drivers仓库,其中包含serial_driver软件包,该软件包针对ROS 2 here进行了一些开发。然而,使用该软件包可能需要修改原始代码以使用该软件包,还需要做一些额外的工作:)
希望这有帮助!