当前位置: 首页 > news >正文

OrangePi(运行 Ubuntu 22.04)安装 ROS 2 Humble

方法一:使用官方 ROS 2 仓库安装(推荐)

1. 系统准备和更新

# 更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git software-properties-common# 安装基础工具
sudo apt install -y \build-essential \cmake \python3-pip \python3-venv

2. 设置区域和语言环境

sudo apt install -y locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
echo "export LANG=en_US.UTF-8" >> ~/.bashrc

3. 添加 ROS 2 软件源

# 确保 Universe 仓库已启用
sudo apt install -y software-properties-common
sudo add-apt-repository universe# 添加 ROS 2 GPG 密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg# 添加 ROS 2 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null# 更新包列表
sudo apt update

4. 安装 ROS 2 Humble

根据您的需求选择安装不同的版本:

选项A:桌面完整版(推荐,包含 GUI 工具)
sudo apt install -y ros-humble-desktop

选项B:基础版(仅核心功能)
sudo apt install -y ros-humble-ros-base

选项C:开发工具版
sudo apt install -y \python3-colcon-common-extensions \python3-rosdep \python3-argcomplete

5. 安装 ROS 2 开发工具

sudo apt install -y \ python3-colcon-common-extensions \ python3-rosdep \ python3-argcomplete

6. 初始化 rosdep

sudo rosdep init
rosdep update

方法二:使用 Ubuntu 22.04 官方仓库安装

对于 ARM64 架构,也可以尝试使用 Ubuntu 官方的 ROS 包:

# 启用 Universe 仓库
sudo add-apt-repository universe
sudo apt update# 安装 ROS 2 Humble
sudo apt install -y ros-humble-ros-base# 或者安装桌面版
sudo apt install -y ros-humble-desktop

环境设置

1. 设置环境变量

# 添加到 ~/.bashrc
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc# 如果安装了 colcon,也添加其支持
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc# 立即生效
source ~/.bashrc

2. 创建便捷的源脚本

cat > ~/source_ros2.sh << 'EOF'
#!/bin/bash
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=0
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
echo "ROS 2 Humble 环境已加载"
EOFchmod +x ~/source_ros2.sh

验证安装

1. 基本功能测试

# 加载环境
source /opt/ros/humble/setup.bash# 测试 ROS 2 是否正常工作
ros2 doctor# 测试话题通信
# 终端1:运行发布者
ros2 run demo_nodes_cpp talker# 终端2:运行订阅者
ros2 run demo_nodes_py listener

2. 更多验证命令

# 查看已安装的包
ros2 pkg list# 测试节点列表
ros2 node list# 测试话题列表
ros2 topic list# 测试服务列表
ros2 service list

安装常用工具

1. 安装额外有用的工具

sudo apt install -y \python3-rosdep \python3-rosinstall \python3-rosinstall-generator \python3-wstool \python3-vcstool# 安装 Gazebo(如果需要仿真)
sudo apt install -y gazebo libgazebo-dev# 安装导航相关工具
sudo apt install -y \ros-humble-navigation2 \ros-humble-nav2-bringup \ros-humble-turtlebot3*

2. 安装 RViz2(如果硬件支持图形界面)

sudo apt install -y \ros-humble-rviz2 \ros-humble-robot-state-publisher \ros-humble-joint-state-publisher

创建测试工作空间

1. 创建并测试工作空间

# 创建工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws# 构建空工作空间
colcon build# 测试工作空间
source install/setup.bash
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc

故障排除

1. 如果遇到依赖问题

# 修复损坏的包
sudo apt --fix-broken install# 更新 rosdep
rosdep update# 安装缺失的依赖
sudo apt install -y \libasio-dev \libtinyxml2-dev \python3-pip

2. 如果软件源添加失败

# 手动添加软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2.list'# 添加密钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654# 更新
sudo apt update

3. 如果 ARM64 架构包不全

# 尝试使用不同的镜像源
sudo sed -i 's/packages.ros.org/mirrors.tuna.tsinghua.edu.cn\/ros2/g' /etc/apt/sources.list.d/ros2.list
sudo apt update

性能优化建议

1. 针对 OrangePi 的优化

# 禁用不必要的服务释放内存
sudo systemctl disable bluetooth
sudo systemctl disable cups# 优化交换空间(如果内存较小)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

验证安装完整性

# 完整的验证脚本
#!/bin/bash
echo "=== ROS 2 Humble 安装验证 ==="# 检查环境变量
echo "1. 检查环境变量:"
printenv | grep ROS# 检查核心功能
echo -e "\n2. 检查核心功能:"
ros2 --help > /dev/null && echo "✓ ros2 命令正常" || echo "✗ ros2 命令异常"# 检查包管理
echo -e "\n3. 检查包管理:"
ros2 pkg list | head -5# 测试节点通信
echo -e "\n4. 启动测试节点:"
timeout 5 ros2 run demo_nodes_cpp talker &
sleep 2
ros2 topic list | grep chatter && echo "✓ 话题通信正常" || echo "✗ 话题通信异常"echo -e "\n=== 验证完成 ==="

http://www.dtcms.com/a/593466.html

相关文章:

  • Vue3:详解toRef
  • Nvm 实现vue版本切换
  • Jenkins配置vue前端项目(最简单的操作)
  • 网站中如何做图片轮播flashfxp链接网站
  • Bootstrap 模态框
  • 做网站 怎么样找客户个人与公司网站备案
  • YMatrix 通过“可信数据库”测评!超融合架构能否成为未来趋势?
  • 分布式系统概要
  • 【C#】System.Text.Encoding.Default 属性在framework和.netcore中的区别
  • 天山路街道网站建设热搜关键词查询
  • Node.js:让JavaScript走出浏览器
  • AEO终极指南:步步为营,提升内容的AI可见性
  • vue甘特图
  • 家具网站开发设计论文电商商城开发
  • STM32时钟系统对于STM32F1系列(详解)
  • C++set学习笔记
  • 做 个收废品网站建设教育网站
  • 做中英文游戏门户网站关键词怎么弄棠下手机网站建设电话
  • 2025/11/10 IO流(转换流、序列化流/反序列化流、打印流、压缩流/解压缩流)Commons-io Hutool工具包 练习-制造假数据
  • 底层视觉及图像增强-项目实践(十六-0-(11):针对LED低灰细节丢失的AI超分技术:从原理到产品化实战):从奥运大屏,到手机小屏,快来挖一挖里面都有什么
  • 单页网站系统网站开发与设计.net
  • CCW 软件新手入门:从硬件组态到程序编辑完整指南
  • 审稿人:怎么不用交叉注意力做特征融合?
  • 算法155. 最小栈
  • 13.【NXP 号令者RT1052】开发——实战-QTMR 定时器中断
  • LeetCode 739. 每日温度
  • seo网站优化专家绿色资源网
  • 数据库迁移实操与金仓数据库技术优势:从语法兼容到自动化落地
  • 监听错误的方式有哪些?
  • 一阶时域信号的分类