1. 项目背景与问题概述
去年在复现apexnav这个开源导航算法时,我遇到了几个令人头疼的报错问题。apexnav作为当前热门的机器人导航算法框架,在GitHub上获得了不少关注,但官方文档对某些环境配置和依赖关系的说明并不完善。这里记录下我在Ubuntu 20.04系统上从零开始搭建环境到最终成功运行demo的全过程,特别是那些官方文档没提到的坑和解决方案。
这个项目本质上是一个基于强化学习的导航系统,核心依赖包括PyTorch、ROS和一系列机器人仿真工具。在复现过程中,最典型的报错集中在环境初始化、依赖版本冲突和CUDA兼容性这三个方面。下面我会按照实际调试的时间顺序,逐个拆解这些问题的成因和解决方法。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备阶段的典型报错
2.1 系统基础环境配置
首先需要明确的是,apexnav官方推荐使用Ubuntu 18.04+ROS Melodic的组合,但实测在20.04+Noetic下也能运行。安装基础依赖时遇到的第一个坑是:
bash复制E: Unable to locate package ros-noetic-apex-nav
这个报错是因为apexnav不在官方ROS仓库中,需要通过源码编译安装。正确的做法是先创建catkin工作空间:
bash复制mkdir -p ~/apexnav_ws/src
cd ~/apexnav_ws/src
git clone https://github.com/apexai/apexnav.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
注意:rosdep执行时可能会报缺少某些依赖,特别是python3-dev和libomp-dev这两个包容易被忽略,需要手动安装:
bash复制sudo apt install python3-dev libomp-dev
2.2 Python虚拟环境冲突
apexnav要求Python 3.6+环境,但与系统自带的Python可能产生冲突。建议使用conda创建独立环境:
bash复制conda create -n apexnav python=3.8
conda activate apexna
