ROS导入tf2_geomeetry_msgs出现No module named‘PyKDL‘

问题描述

提示:ModuleNotFoundError: No module named 'PyKDL'

由于之前跑过深度学习,装了一些conda的虚拟环境,conda的某些东西弄乱了我的ROS

File "/opt/ros/noetic/lib/python3/dist-packages/tf2_geometry_msgs/tf2_geometry_msgs.py", line 31, in <module>
    import PyKDL
ModuleNotFoundError: No module named 'PyKDL'

解决方案:

  1. 先检测是否装有PyKDL
sudo apt install python3-pykdl
  1. 查看下面路劲中是否有PyKDL文件
    /usr/lib/python3/dist-packages/PyKDL.cpython-38-x86_64-linux-gnu.so
  2. 将PyKDL添加到PYTHONPATH
    3.1 在homectrl+h打开.bashrc文件
    3.2 将下列代码添加在.bashrc文件中
export PYTHONPATH="${PYTHONPATH}:/usr/lib/python3/dist-packages/"
  1. 重新打开新终端,恭喜你!运行成功!!
[INFO] [1650074667.077788]: 转换后的坐标:(2.20,3.00,5.50),参考坐标系: base_link
[INFO] [1650074667.177796]: 转换后的坐标:(2.20,3.00,5.50),参考坐标系: base_link
[INFO] [1650074667.277761]: 转换后的坐标:(2.20,3.00,5.50),参考坐标系: base_link

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
这个错误通常是在使用CMake构建工具时出现的,它表示在构建过程中找不到指定的头文件或库文件。 这个错误信息中提到了一个名为`tf2_geometry_msgs`的导入目标(Imported Target),它是在CMake中使用`find_package()`命令查找并导入的。`tf2_geometry_msgs`是ROS中的一个包,提供了将`geometry_msgs`消息类型与ROS变换系统(tf2)相互转换的方法。因此,这个错误可能是由于没有正确安装或配置ROS导致的。 解决这个问题的方法取决于具体情况。一般来说,可以尝试以下方法: 1. 确保已正确安装ROS,并且环境变量已经设置好。可以通过在终端中运行`roscore`命令来测试ROS是否正常工作。 2. 确认ROS包`tf2_geometry_msgs`已经被正确安装。可以在终端中运行`rospack find tf2_geometry_msgs`命令来查找该包的路径。 3. 如果`tf2_geometry_msgs`包已经安装,可以尝试在CMakeLists.txt文件中添加以下行: ```cmake find_package(tf2_geometry_msgs REQUIRED) ``` 这将告诉CMake在构建过程中查找并导入`tf2_geometry_msgs`包,并包含必要的头文件和库文件。 4. 如果以上方法都不能解决问题,可以尝试手动设置`tf2_geometry_msgs`包的路径。在CMakeLists.txt文件中添加以下行: ```cmake find_path(TF2_GEOMETRY_MSGS_INCLUDE_DIR tf2_geometry_msgs/... PATH_SUFFIXES include) find_library(TF2_GEOMETRY_MSGS_LIBRARY NAMES tf2_geometry_msgs) include_directories(${TF2_GEOMETRY_MSGS_INCLUDE_DIR}) target_link_libraries(your_target_name ${TF2_GEOMETRY_MSGS_LIBRARY}) ``` 这将手动查找`tf2_geometry_msgs`包的头文件和库文件,并将它们链接到你的目标文件中。 希望以上方法能够帮助你解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值