在 Ubuntu 20.04 的 Conda Python 3.11 环境中配置并运行 ROS(Robot Operating System)的 rosrunroslaunch 命令,需要注意多个依赖和环境兼容性问题。由于 ROS Noetic 是目前支持 Python 3 的第一个 ROS 版本,因此可以尝试在 Conda 环境下进行集成。

安装与配置步骤

1. 安装 ROS Noetic

首先确保系统已安装 ROS Noetic,并且默认 Python 环境为 Python 3.8(Ubuntu 20.04 自带)4。ROS Noetic 的官方安装指南如下:


Bash


sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt install curl curl -sSL 'https://raw.githubusercontent.com/ros/rosdistro/master/ros.key' | sudo apt-key add - sudo apt update sudo apt install ros-noetic-desktop-full

初始化 ROS 环境:


Bash


source /opt/ros/noetic/setup.bash

2. 配置 Conda 环境以支持 ROS

创建一个 Python 3.11 的 Conda 环境:


Bash


conda create -n ros_env python=3.11 conda activate ros_env

由于 ROS 默认使用系统的 Python 3.8,需要手动将 ROS 包路径添加到 Conda 环境中。可以通过设置 PYTHONPATH 来实现:


Bash


export PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages:$ PYTHONPATH

如果 ROS 节点需要编译或链接其他库,还需设置 LD_LIBRARY_PATH


Bash


export LD_LIBRARY_PATH=/opt/ros/noetic/lib:$ LD_LIBRARY_PATH

3. 安装必要的 ROS 工具

在 Conda 环境中安装 ROS 的命令行工具 rosrunroslaunch 所需的依赖:


Bash


pip install rospkg catkin_pkg

这些包提供了对 ROS 包结构的支持,并允许在非标准环境中运行 ROS 命令。

4. 使用 rosrunroslaunch

在 Conda 环境中启动 ROS Master:


Bash


roscore

然后在新的终端窗口中激活 Conda 环境并运行节点:


Bash


conda activate ros_env export PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages:$ PYTHONPATH rosrun <package_name> <node_name>

同样地,使用 roslaunch 启动一组节点:


Bash


roslaunch <package_name> <launch_file>.launch

5. 注意事项
  • 路径冲突问题:Conda 环境可能会覆盖系统 Python 路径,导致 ROS 找不到其依赖库。建议使用虚拟环境时明确指定 PYTHONPATH

  • Python 版本兼容性:虽然 ROS Noetic 支持 Python 3,但某些第三方包可能尚未完全适配 Python 3.11。测试过程中如发现异常行为,可考虑使用 Python 3.8 创建 Conda 环境。

  • 编译问题:若涉及自定义 ROS 节点的编译(如使用 catkin_make),请确保 CMake 使用的是系统 Python 而不是 Conda 环境中的 Python 2

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐