ROS2 Foxy环境下laser_geometry模块未找到问题求助
ROS2 Foxy 中
laser_geometry模块找不到的解决方法 报错信息
ROS2 Error: Modulenotfounderror: No module named 'laser_geometry'
相关代码
# ROS NODE import import rclpy from rclpy.node import Node # Lidar Process(Point cloud) from sensor_msgs.msg import LaserScan from sensor_msgs.msg import PointCloud2 from laser_geometry import LaserProjection from geometry_msgs.msg import Point
问题背景
在ROS2 Foxy版本中,已安装ros-foxy-laser-geometry包,但运行自定义Python脚本时仍提示找不到laser_geometry模块。由于硬件Jetson Nano仅兼容Foxy,无法升级到Humble(Humble自带该模块的Python脚本),重装包后问题依旧,需解决该依赖问题。
解决步骤
1. 确认包的安装状态
先检查laser_geometry的安装路径,执行命令:
rospack find laser_geometry
默认路径为/opt/ros/foxy/share/laser_geometry,查看该路径下是否存在python目录。Foxy版本的二进制laser_geometry包默认仅包含C++实现,没有Python模块,这是核心问题。
2. 从源码编译Python模块
- 进入ROS2工作空间的src目录:
cd ~/ros2_ws/src
- 克隆对应Foxy分支的源码:
git clone https://github.com/ros-perception/laser_geometry.git -b foxy-devel
- 安装依赖:
cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y
- 编译指定包:
colcon build --packages-select laser_geometry
- 刷新环境变量:
source ~/ros2_ws/install/setup.bash
3. 验证模块导入
在终端执行以下命令测试:
python3 -c "from laser_geometry import LaserProjection; print('模块导入成功')"
无报错则说明模块已正确安装。
4. 修正自定义包的依赖配置
在自定义包的package.xml中添加依赖:
<depend>laser_geometry</depend>
在setup.py的install_requires中补充:
install_requires=['setuptools', 'laser_geometry'],
重新编译自定义包并刷新环境后,再运行脚本即可。
内容的提问来源于stack exchange,提问作者김동윤
相关产品推荐
相关产品推荐

