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-venv2. 设置区域和语言环境
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" >> ~/.bashrc3. 添加 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 update4. 安装 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-argcomplete5. 安装 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 ~/.bashrc2. 创建便捷的源脚本
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 listener2. 更多验证命令
# 查看已安装的包
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-pip2. 如果软件源添加失败
# 手动添加软件源
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 update3. 如果 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=== 验证完成 ==="