赞
踩
博主的环境是ubuntu20.04,ros2-foxy
- lu-linux:~/ros2_ws$ colcon build
- Starting >>> azure_kinect_ros2
- Starting >>> azure_kinect_ros_driver
- Starting >>> octomap_depth_mapping
- Finished <<< azure_kinect_ros2 [1.13s]
- Finished <<< octomap_depth_mapping [1.01s]
- --- stderr: azure_kinect_ros_driver
- Finding K4A SDK binaries
- !!! Body Tracking SDK not found: body tracking features will not be available !!!
- K4A Libs: k4a::k4a;k4a::k4arecord
- K4A DLLs: /usr/lib/x86_64-linux-gnu/libk4a.so.1.4.1;/usr/lib/x86_64-linux-gnu/libk4arecord.so.1.4.1
- K4A Install Needed: FALSE
- /home/lu/ros2_ws/src/azure-kinect-driver-ros2-humble/src/k4a_calibration_transform_data.cpp:18:10: fatal error: tf2_geometry_msgs/tf2_geometry_msgs.hpp: 没有那个文件或目录
- 18 | #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
- | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- compilation terminated.
- make[2]: *** [CMakeFiles/azure_kinect_ros_driver_node.dir/build.make:102:CMakeFiles/azure_kinect_ros_driver_node.dir/src/k4a_calibration_transform_data.cpp.o] 错误 1
- make[2]: *** 正在等待未完成的任务....
- make[1]: *** [CMakeFiles/Makefile2:78:CMakeFiles/azure_kinect_ros_driver_node.dir/all] 错误 2
- make: *** [Makefile:141:all] 错误 2
- ---
- Failed <<< azure_kinect_ros_driver [6.70s, exited with code 2]
-
- Summary: 2 packages finished [8.88s]
- 1 package failed: azure_kinect_ros_driver
- 1 package had stderr output: azure_kinect_ros_driver

这个的意思就是具体的节点文件ros2_ws/src/azure-kinect-driver-ros2-humble/src/k4a_calibration_transform_data.cpp中include头文件的时候找不到相关文件
tf2_geometry_msgs.hpp
对于tf2_geometry_msgs这个库,可能是因为下载ros2及其环境的时候没有一并下载tf2_geometry_msgs这个相关库,这时候就可以用apt下载,注意把xxx换成自己的ros版本
sudo apt-get install ros-xxx-tf2-geometry-msgs
下载之后咱们直接去目录看一下tf2_geometry_msgs.hpp是否生成,这是我的目录,除了ros版本不一样以外应该都是一样的
/opt/ros/foxy/include

如果有的话就可以去把报错的节点文件k4a_calibration_transform_data.cpp中的
#include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
改成
#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
再按照教程编译,问题解决
如果还是显示找不到,那在编译项目中的CMakeLists.txt添加
find_package(tf2_geometry_msgs REQUIRED)

这就是找不到tf2_geometry_msgs的解决方案。
没想到会被h和hpp这两个字母的差别卡半天,这个确实不应该。还是习惯不好,每次找不到文件,下载之后的确认存在的方式都是网上说的那些命令。以后这种具体文件找不到,调用命令确实存在的情况,解决步骤要从
变成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。