news 2026/6/15 10:46:44

保姆级教程:用Jetson Orin NX + ROS Melodic搭建EGO-Planner/Swarm开发环境(含依赖安装与编译排错)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:用Jetson Orin NX + ROS Melodic搭建EGO-Planner/Swarm开发环境(含依赖安装与编译排错)

Jetson Orin NX + ROS Melodic:EGO-Planner/Swarm开发环境全攻略

当拿到全新的Jetson Orin NX开发板时,如何快速搭建一个稳定的EGO-Planner/Swarm开发环境成为许多开发者的首要任务。作为FAST-LAB实验室的开源项目,这套算法在无人机集群规划领域展现出卓越性能,但要充分发挥其潜力,环境配置的每个环节都不容忽视。

1. 系统基础环境配置

在开始ROS安装前,确保系统环境准备充分至关重要。Jetson Orin NX出厂时通常预装Ubuntu 18.04 LTS,这是ROS Melodic的官方支持系统。建议首先执行系统更新:

sudo apt update && sudo apt upgrade -y sudo apt install -y curl git cmake build-essential

关键依赖项安装

  • 线性代数库Armadillo:sudo apt install -y libarmadillo-dev
  • 矩阵运算库Eigen3:sudo apt install -y libeigen3-dev
  • 可视化工具:sudo apt install -y terminator rviz

提示:使用terminator替代默认终端,方便多窗口操作,通过Ctrl+Shift+E可垂直分屏,Ctrl+Shift+O水平分屏。

配置SSH远程访问能显著提升开发效率:

sudo apt install -y openssh-server sudo systemctl enable ssh sudo systemctl start ssh

2. ROS Melodic完整安装指南

ROS作为EGO-Planner/Swarm的核心框架,其安装质量直接影响后续开发体验。以下是针对Jetson平台的优化安装流程:

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-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install -y ros-melodic-desktop-full

环境变量配置需添加到.bashrc中:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc

必备ROS工具链

  • 构建工具:sudo apt install -y python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
  • 依赖管理:sudo rosdep init && rosdep update

常见问题解决方案:

问题现象解决方法
rosdep初始化失败手动创建/etc/ros/rosdep/sources.list.d/20-default.list
网络连接超时使用国内镜像源或设置HTTP代理
密钥验证错误更新密钥:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

3. 创建工作空间与源码获取

规范的ROS工作空间结构能避免许多路径问题。建议按以下步骤创建:

mkdir -p ~/catkin_ws/src cd ~/catkin_ws catkin_make source devel/setup.bash

获取EGO-Planner/Swarm源码:

cd ~/catkin_ws/src git clone --recursive https://github.com/ZJU-FAST-Lab/ego-planner-swarm.git

依赖项安装清单

  1. 几何库:sudo apt install -y libgeographic-dev
  2. 可视化工具:sudo apt install -y ros-melodic-rviz ros-melodic-rqt*
  3. 消息类型:sudo apt install -y ros-melodic-mavros*

注意:使用--recursive参数确保子模块完整下载,这是编译成功的关键。

4. 编译排错与优化技巧

进入编译阶段,执行catkin_make可能遇到各种问题。以下是典型错误及解决方案:

错误1:Armadillo链接问题

undefined reference to `wrapper_dgemm_'

解决方法:

sudo ln -s /usr/lib/aarch64-linux-gnu/libblas.so /usr/lib/aarch64-linux-gnu/libblas.so.3 sudo ln -s /usr/lib/aarch64-linux-gnu/liblapack.so /usr/lib/aarch64-linux-gnu/liblapack.so.3

错误2:PCL版本冲突

Could not find a package configuration file provided by "pcl_conversions"

解决方法:

sudo apt install -y ros-melodic-pcl-conversions ros-melodic-pcl-ros

编译优化建议

  • 使用多线程编译:catkin_make -j$(nproc)
  • 内存不足时添加交换空间:
    sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

5. 仿真与实机测试全流程

成功编译后,可通过仿真验证算法功能。推荐使用terminator创建多终端工作区:

  1. 启动RVIZ可视化
roslaunch ego_planner rviz.launch
  1. 运行Swarm算法
roslaunch ego_planner swarm.launch

实机测试参数配置: 需要修改以下文件以适应具体硬件:

  • advanced_param_exp.xml:传感器参数与飞行约束
  • single_run_in_exp.launch:话题映射与启动配置
  • default_exp.rviz:可视化界面布局

典型参数调整示例:

<!-- 在advanced_param_exp.xml中 --> <param name="manager/max_vel" value="2.0" type="double"/> <param name="manager/max_acc" value="5.0" type="double"/> <param name="grid_map/resolution" value="0.1"/>

6. 性能优化与深度集成

充分发挥Jetson Orin NX的AI算力需要针对性优化:

CUDA加速配置

  1. 确认CUDA版本:nvcc --version
  2. 在CMakeLists.txt中添加:
find_package(CUDA REQUIRED) include_directories(${CUDA_INCLUDE_DIRS}) target_link_libraries(your_node ${CUDA_LIBRARIES})

实时性优化技巧

  • 设置CPU频率:sudo jetson_clocks
  • 禁用图形界面:sudo systemctl set-default multi-user.target
  • 使用实时内核:sudo apt install -y linux-rt

与VINS-Fusion集成要点

  1. 话题重映射确保数据流一致
  2. 时间同步配置:
<param name="use_sim_time" value="false"/>
  1. 坐标系统一:
rosrun tf static_transform_publisher 0 0 0 0 0 0 world vins_world 100

7. 开发效率提升实践

建立高效的开发工作流能事半功倍:

调试工具推荐

  • rqt_graph:可视化节点关系
  • rosbag:数据记录与回放
  • gdb调试:rosrun --prefix 'gdb -ex run --args' package node

自动化脚本示例: 创建start_swarm.sh

#!/bin/bash terminator -x 'roslaunch ego_planner rviz.launch' \ -x 'roslaunch ego_planner swarm.launch' \ -x 'htop' \ -x 'nvtop' chmod +x start_swarm.sh

版本控制策略

  1. 忽略构建文件:.gitignore中添加devel/build/
  2. 子模块管理:
git submodule update --init --recursive git submodule foreach git pull origin master

经过完整的环境搭建和优化后,Jetson Orin NX能够稳定运行EGO-Planner/Swarm算法,为无人机集群研究提供强大支持。实际部署时,建议通过rosmon等工具增强节点管理可靠性,并通过系统服务实现开机自启动。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:43:51

079、LVGL基础控件:消息框(Msgbox)

LVGL基础控件:消息框(Msgbox) 上周调试一个工业触摸屏项目,客户反馈弹窗确认后界面卡死。我盯着逻辑分析仪看了半小时,最后发现是消息框的回调函数里直接调用了lv_msgbox_close——这个操作在LVGL v8.3里会触发递归事件,导致栈溢出。今天借着这个坑,把消息框控件彻底聊…

作者头像 李华
网站建设 2026/6/15 10:41:52

【实战】豆瓣电影Top250爬虫:从入门到精通,用最新技术栈实现数据采集与分析

一、写在前面:为什么要写这篇博客? 在数据科学和Web开发的学习道路上,爬虫项目往往是大家接触的第一个实战项目。而豆瓣电影Top250,凭借其稳定的反爬策略、清晰的数据结构、丰富的信息维度,堪称爬虫入门的“Hello World”。但就是这样看似简单的任务,背后却藏着许多值得…

作者头像 李华
网站建设 2026/6/15 10:35:53

遗传算法工程落地:适应度函数与编码策略实战指南

1. 项目概述&#xff1a;为什么“遗传算法第二讲”比第一讲更值得你花时间重读“遗传算法”这四个字&#xff0c;十年前在高校课堂里是《人工智能导论》最后一章的冷门配角&#xff0c;今天却已悄然渗透进电商推荐系统的排序引擎、新能源电池包的热管理拓扑优化、甚至独立游戏开…

作者头像 李华
网站建设 2026/6/15 10:35:53

ROCKET时间序列分类:轻量、可解释、零调参的工业级解决方案

1. 这不是又一个“快一点”的时间序列分类器——ROCKET到底在解决什么真问题&#xff1f;如果你最近翻过时间序列分类&#xff08;TSC&#xff09;领域的论文或开源库&#xff0c;大概率会撞见ROCKET这个名字。它不像InceptionTime那样堆叠深度网络&#xff0c;也不靠Transform…

作者头像 李华
网站建设 2026/6/15 10:34:50

如何在Windows上完美使用Switch手柄:BetterJoy终极解决方案

如何在Windows上完美使用Switch手柄&#xff1a;BetterJoy终极解决方案 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode…

作者头像 李华