新手避坑指南:在Ubuntu 20.04双系统上,从零部署EGO-Planner无人机规划器
新手避坑指南:在Ubuntu 20.04双系统上,从零部署EGO-Planner无人机规划器
第一次在Ubuntu双系统环境下部署机器人项目,就像在陌生城市里找路——明明导航显示距离不远,却总在某个路口莫名其妙绕圈。EGO-Planner作为无人机自主规划领域的知名开源项目,其部署过程对ROS新手来说充满隐藏陷阱。本文将带你完整走通从双系统配置到规划器运行的每一步,重点解决那些教程里没写但实际一定会遇到的"坑"。
1. 双系统环境准备:避开分区与驱动的暗礁
刚装好Ubuntu 20.04的双系统用户常会遇到两个"入门杀":磁盘空间莫名消失和NVIDIA驱动冲突。以下是经过实战验证的解决方案:
磁盘分配黄金法则(针对256GB以上固态硬盘):
/根分区:至少50GB(建议80GB)swap交换分区:内存大小的1.5倍/home用户分区:剩余全部空间- EFI系统分区:保持Windows创建的原有分区
注意:安装时务必选择"安装第三方驱动"选项,这能自动解决大多数显卡问题。如果启动后出现黑屏,尝试在GRUB界面按
e编辑启动参数,在quiet splash后添加nomodeset。
安装后必须执行的系统优化命令:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake git2. ROS安装:鱼香ROS的正确打开方式
虽然鱼香ROS的一键安装脚本确实方便,但新手容易忽略两个关键点:
镜像源配置:
sudo sed -i 's/http:\/\/archive.ubuntu.com/https:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list环境变量持久化: 在
~/.bashrc末尾添加以下内容后执行source ~/.bashrc:# ROS环境配置 source /opt/ros/noetic/setup.bash source ~/catkin_ws/devel/setup.bash export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ego-planner
常见问题排查表:
| 错误现象 | 解决方案 | 原理说明 |
|---|---|---|
rosdep update失败 | 使用清华源:sudo rosdep init --rosdistro noetic --repository-url https://mirrors.tuna.tsinghua.edu.cn/git/rosdistro.git | 国内直接访问GitHub不稳定 |
找不到catkin_make | 执行sudo apt install -y python3-catkin-tools | 基础编译工具未安装 |
| ROS命令补全失效 | 安装bash-completion:sudo apt install -y bash-completion | Shell自动补全功能缺失 |
3. EGO-Planner依赖安装:那些容易遗漏的组件
官方文档提到的libarmadillo-dev只是冰山一角。实际还需要这些关键依赖:
sudo apt install -y \ libomp-dev \ libgoogle-glog-dev \ libsuitesparse-dev \ libpcl-dev \ ros-noetic-octomap-ros \ ros-noetic-mavros \ ros-noetic-mavros-extras特别提醒:如果之前安装过其他ROS项目,建议先清理冲突的包:
rosdep install --from-paths src --ignore-src -r -y4. 项目编译与调试:从报错到理解的进阶
克隆代码仓库时,国内用户推荐使用Gitee镜像:
git clone https://gitee.com/iszhouxin/ego-planner.git --depth=1 cd ego-planner编译时的黄金参数组合:
catkin_make -DCMAKE_BUILD_TYPE=Release -j$(nproc)常见编译错误解决方案:
Eigen3版本冲突:
sudo apt remove libeigen3-dev sudo apt install -y libeigen3-dev=3.3.7-2PCL库路径问题: 在
CMakeLists.txt中添加:include_directories(/usr/include/pcl-1.10) link_directories(/usr/lib/x86_64-linux-gnu)OpenMP加速失效: 修改
CMakeLists.txt中的编译选项:add_compile_options(-fopenmp) target_link_libraries(your_node OpenMP::OpenMP_CXX)
5. 实战运行:让无人机在RViz中飞起来
正确的启动顺序能避免80%的运行时错误:
在第一个终端:
source devel/setup.bash roslaunch ego_planner rviz.launch在第二个终端(等待RViz完全启动后):
source devel/setup.bash roslaunch ego_planner run_in_sim.launch
关键检查点:
- 确认
/odom话题有数据 - 检查
/map是否正确加载 - 在RViz中设置好全局和局部代价地图
如果遇到规划路径不连续的问题,尝试调整ego_planner/params.yaml中的:
optimization: max_vel: 2.0 # 降低最大速度 max_acc: 1.0 # 减小加速度限制6. 性能优化:从能跑到跑得更好
在~/.bashrc中添加这些环境变量可以提升20%以上的运行效率:
export OMP_NUM_THREADS=4 export MKL_NUM_THREADS=4 export GOMP_CPU_AFFINITY="0-3"对于搭载NVIDIA显卡的设备,安装CUDA加速:
sudo apt install -y nvidia-cuda-toolkit nvcc --version # 验证安装最后记得定期清理编译缓存:
catkin clean -y rm -rf ~/.ros/log/*