ROS一键安装脚本

前言

ROS从2007年发展到现在(2024年)已经有17年了,在之前很长的一段时间中中国用户都会因为网络问题造成ROS无法安装。本文将介绍一个一键安装ROS的工具,包含了安装ROS2 Foxy、Humble和Jazzy,对应了Ubuntu20.04、22.04和24.04的三个版本。

脚本功能

这个安装脚本主要实现以下功能:

  1. 自动检测Ubuntu版本(20.04/22.04/24.04),并选择对应的ROS2版本(Foxy/Humble/Jazzy)进行安装

  2. 添加ROS2的APT源,并导入GPG密钥,确保安装过程安全可靠

  3. 安装ROS2桌面版,以及相关的开发工具和依赖包

  4. 配置rosdep,并设置ROSDISTRO_INDEX_URL环境变量,方便后续使用

  5. 设置bashrc,自动source ROS2环境变量,避免每次终端重启后重新配置

  6. 最后验证安装,提示用户如何使用rosdep安装工作空间依赖

整个安装过程全自动化,无需人工干预,大大简化了ROS2环境的搭建。

# 使用方法

wget oss.guyuehome.com/upload/2024/11/111120478121/install.txt -O install_ros && . install_ros

# 代码内容

#!/bin/bash
#author:guyuehoem-qiaolongLi
#email:liqiaolong@guyuehome.com

# 自动选择并安装ROS2脚本
set -e

# 获取Ubuntu的版本信息
UBUNTU_VERSION=$(lsb_release -sr)
UBUNTU_CODENAME=$(lsb_release -cs)
ARCH=$(dpkg --print-architecture)

# 根据Ubuntu版本选择ROS2版本
case "$UBUNTU_VERSION" in
"20.04")
ROS2_VERSION="foxy"
;;
"22.04")
ROS2_VERSION="humble"
;;
"24.04")
ROS2_VERSION="jazzy"
;;
*)
echo "不支持的Ubuntu版本: $UBUNTU_VERSION"
exit 1
;;
esac

echo "检测到Ubuntu版本: $UBUNTU_VERSION ($UBUNTU_CODENAME)"
echo "选择安装ROS2版本: $ROS2_VERSION"

# 更新系统
echo "更新系统包列表..."
sudo apt update && sudo apt upgrade -y

# 安装必要的依赖
echo "安装必要的依赖包..."
sudo apt install -y curl gnupg lsb-release software-properties-common

# 创建密钥目录
sudo mkdir -p /usr/share/keyrings

# 下载并添加ROS2 GPG密钥
sudo rm -f /usr/share/keyrings/ros-archive-keyring.gpg
curl -sSLf https://gitlab.com/qiaolongli/qiaolongLi.gitlab.io/-/raw/master/ros.asc?ref_type=heads | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg
# 验证密钥文件是否存在
if [ ! -f "/usr/share/keyrings/ros-archive-keyring.gpg" ]; then
echo "错误:无法创建ROS2 GPG密钥文件"

点击ROS一键安装脚本查看全文

相关推荐
搞科研的小刘选手1 分钟前
【高届数人文社科会议】第十二届人文学科和社会科学研究国际学术会议(ICHSSR 2026)
大数据·人工智能·电子信息·电子工程·学术会议·信息工程·电路工程
0xDevNull3 分钟前
现代AI系统架构全景解析
人工智能·系统架构
华清远见IT开放实验室5 分钟前
AI 算法核心知识清单(深度实战版1)
人工智能·python·深度学习·学习·算法·机器学习·ai
亚远景aspice6 分钟前
亚远景推出国内首款汽车研发合规AI全栈产品 填补和引领行业AI应用
大数据·人工智能
大囚长8 分钟前
大模型知识与逻辑推理能力的关系
人工智能
世优科技虚拟人8 分钟前
重庆合川发布陶行知AI数字人,世优科技提供数字人全栈技术支持
人工智能·科技·数字人·智能交互
云烟成雨TD12 分钟前
Spring AI 1.x 系列【27】Chat Memory API:让 LLM 拥有上下文记忆能力
java·人工智能·spring
kimi-22213 分钟前
如何让大语言模型稳定输出 JSON 的三层防御体系
人工智能·语言模型·json
weixin_1562415757614 分钟前
基于YOLO深度学习的运动品牌检测与识别系统
人工智能·深度学习·yolo·识别·模型、
兴趣使然黄小黄16 分钟前
【AI-agent】Claude code+Minimax 2.7环境搭建
人工智能·ai编程