上篇文章记录了我在ubunt22.04+miniconda下安装ros2踩的坑,一句话:
如果你安装了 Anaconda 或 Miniconda,Conda 环境会劫持系统的路径。Conda 有自己的一套库文件(比如 libstdc++ 等),可能会屏蔽掉 ROS 需要的系统库,或者重置了 LD_LIBRARY_PATH
详情与解决方案请查看:
ubuntu22.04+miniconda安装ROS2踩坑实录
好,我继续记录已经看到的坑。
我现在系统里有两套ros2环境:
物理上:
- 系统版安安静静躺在
/opt/ros/humble。 - Conda 版安安静静躺在
~/anaconda3/envs/ros2/。
已经实现了pycharm中导入conda环境,顺利使用conda的ros2和各种包,能够在pycharm中运行代码,同时支持在终端中切换为系统版ros2,能顺利使用。
坑1: conda的ros2很多操作做不了,比如conda环境下ros2 pkg create报错,只能用系统版操作
坑2: pycharm中import 包时,由于在同一个文件夹里,所以不用加前缀,这样的代码colcon build能通过,ros2 run就报错ModuleNotFoundError。所以一定注意import 同一文件夹下的py文件时要写成
import 程序包名称.节点名称
是的,这么写在pycharm中是标红(表示有错误)的,但是在终端命中才会没有报错正常使用!