本地ROS1/ROS2工程编译与conda的python环境冲突

首先执行:

conda deactivate

然后对于ROS1工程编译:

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

对于ROS2工程则:

colcon build --cmake-args -DPYTHON_EXECUTABLE=/usr/bin/python3
### 使用 Conda 进行 ROS2环境配置和包管理 对于希望利用 Conda 来管理和设置 ROS2 开发环境开发者来说,Conda 提供了一个强大的工具来处理依赖关系并创建隔离的工作空间。下面介绍如何通过 Conda 实现这一目标。 #### 安装 Miniconda 或 Anaconda 首先安装 Miniconda 或者完整的 Anaconda 发行版作为基础平台[^2]: ```bash wget https://repo.anaconda.com/miniconda/Miniconnda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh ``` 完成安装后重启终端使更改生效。 #### 创建专门用于 ROS2Conda 环境 为了保持系统的整洁以及避免不同项目之间的冲突,建议为每一个特定的任务或项目创建独立的虚拟环境。针对 ROS2 可以这样做: ```bash conda create --name ros2_env python=3.8 conda activate ros2_env ``` 这会建立一个新的名为 `ros2_env` 的 Python 3.8 版本的环境,并激活它以便后续操作都在此环境中执行。 #### 添加必要的通道 (Channels) 为了让 Conda 能够找到 ROS2 所需的各种库文件和其他资源,在默认源的基础上还需要额外添加一些官方支持的通道: ```bash conda config --add channels conda-forge conda config --set channel_priority strict ``` 这里设置了严格优先级模式确保来自指定渠道的软件包不会被其他地方更老版本覆盖。 #### 安装 ROS2 和相关依赖项 现在可以开始安装 ROS2 自身及其所需的任何附加组件了。虽然 ROS2 并不是直接由 Conda 维护分发,但是可以通过 pip 工具或者其他方式获取二进制发布版再将其集成到当前活跃的 Conda 环境内部运行。一种方法是从 apt-get 获取 ROS2 后手动加入路径;另一种则是借助第三方社区维护好的非官方镜像如 `ros-tooling/crosscompile` 中可能存在的预编译包[^3]: ```bash pip install colcon-common-extensions apt update && apt install ros-humble-desktop source /opt/ros/humble/setup.bash echo 'source /opt/ros/humble/setup.bash' >> ~/.bashrc ``` 注意上述命令假设使用的是 Ubuntu Linux 下最新的稳定分支 "humble" ,如果操作系统不一样则需要调整仓库地址版本号匹配实际需求。 #### 验证安装成功否 最后一步就是验证整个过程是否顺利完成。可以在新打开的终端里尝试启动一个简单的节点来看看能否正常工作: ```python import rclpy from rclpy.node import Node class MinimalPublisher(Node): def __init__(self): super().__init__('minimal_publisher') self.publisher_ = self.create_publisher(String, 'topic', 10) timer_period = 0.5 # seconds self.timer = self.create_timer(timer_period, self.timer_callback) self.i = 0 def timer_callback(self): msg = String() msg.data = f'Hello World: {self.i}' self.publisher_.publish(msg) self.get_logger().info(f'Publishing: "{msg.data}"') self.i += 1 def main(args=None): rclpy.init(args=args) minimal_publisher = MinimalPublisher() rclpy.spin(minimal_publisher) minimal_publisher.destroy_node() rclpy.shutdown() if __name__ == '__main__': main() ``` 保存以上代码至 `.py` 文件并通过如下指令测试其功能: ```bash python3 your_script_name.py ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值