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

实验室入门——ubuntu20.04安装ros和ros2全流程

文章目录

  • 前言
  • 一、前置准备:系统与环境检查
    • 1. 系统要求
    • 2. 系统初始化
  • 二、安装ROS Noetic(ROS1长期支持版)
    • 2. 安装ROS Noetic
    • 3. 初始化rosdep(依赖管理工具)
    • 4. 配置环境变量
    • 5.检验安装
  • 三、安装ROS2 Foxy(ROS2长期支持版)
    • 1. 配置ROS2软件源
    • 2. 安装ROS2 Foxy
    • 3. 配置环境变量
    • 4. 安装ROS1-ROS2桥接工具(可选)
    • 5. 测试ROS2 Foxy
    • 6. 测试ROS1-ROS2桥接(可选)
  • 四、ROS与ROS2共存建议
  • 总结


前言

今年实验室招新第一批主要是社团成员,每一名同学都需要经历ubuntu双系统的安装的ros基础的学习,ROS(Robot Operating System) 作为常用的机器人控制软件和通信工具在实验室参加的竞赛中是必不可少的。随着版本和技术更新的需要,实验室逐渐从ros转向ros2系统。学长在这篇中将详细介绍在 Ubuntu20.04 系统上安装 ROS Noetic(ROS1长期支持版)ROS2 Foxy(ROS2长期支持版) 的全流程,涵盖环境配置、安装步骤、验证测试及常见问题解决,助你快速搭建机器人开发环境。


一、前置准备:系统与环境检查

1. 系统要求

  • 操作系统:Ubuntu20.04 LTS(推荐,ROS Noetic和ROS2 Foxy均官方支持)。
  • 硬件:至少4GB内存(推荐8GB+),25GB可用磁盘空间(ROS依赖较多)。
  • 网络:稳定联网(安装过程需下载约3-5GB数据)。

2. 系统初始化

安装前完成以下操作:

# 更新系统软件包,在系统初配置中已经完成
sudo apt update && sudo apt upgrade -y# 安装必要工具,视觉选手为了避免后续的重复性操作可以看视觉学习中的相关教程,而不是简单通过apt进行安装
sudo apt install -y git build-essential cmake

二、安装ROS Noetic(ROS1长期支持版)

ROS Noetic是ROS1的最后一个长期支持版本,适配Ubuntu20.04,适合传统机器人算法开发(如导航、SLAM)。


## 1. 配置ROS软件源  
```bash
# 添加ROS官方源到sources.list,我们选择使用中科大源
#sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros-latest.list'# 导入ROS公钥(验证软件包完整性)觉得慢的可以参考视觉学习专栏进行加速
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -#或者换源curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -
#添加完下载链接后需要进行apt更新
sudo apt update

2. 安装ROS Noetic

推荐安装桌面完整版其包含的可视化工具如RViz、RQt等,对于学习导航的同学来说是必不可少的:

sudo apt install -y ros-noetic-desktop-full

3. 初始化rosdep(依赖管理工具)

rosdep用于自动安装ROS包的系统依赖:

sudo rosdep init
#如果提示找不到rosdep命令,需要安装python-rosdep
#sudo apt install python3-rosdep
rosdep update

在这里插入图片描述更新时发现,使用的是国外服务器可能导致time out
这里我就不给解决方案了,大家直接参考其他博主的解决思路
ROS学习——rosdep update 超时解决方法

在这里插入图片描述

4. 配置环境变量

为了避免每次启动终端都需要加载ROS环境变量,我们将配置命令写进.bashrc设置为永久生效:


# 永久生效(添加到~/.bashrc)
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

在这里插入图片描述

5.检验安装

让我们启动ROS1核心节点(roscore),运行经典乌龟仿真:

# 终端1:启动roscore
roscore# 终端2:运行乌龟仿真节点(另外打开一个终端或者使用超级终端进行分割)
rosrun turtlesim turtlesim_node# 终端3:控制乌龟移动(同上)
rosrun turtlesim turtle_teleop_key

在这里插入图片描述

若看到乌龟窗口且可通过键盘控制,ROS1安装成功!


三、安装ROS2 Foxy(ROS2长期支持版)

ROS2基于DDS(数据分发服务),支持实时性、分布式通信,更适合工业级机器人开发。Ubuntu20.04官方支持ROS2 Foxy。

1. 配置ROS2软件源

# 添加ROS2官方源
#sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] https://packages.ros.org/ros2/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros2-latest.list'
#中科大源
sudo sh -c 'echo "deb https://mirrors.ustc.edu.cn/ros2/ubuntu/ focal main" > /etc/apt/sources.list.d/ros2-latest.list'# 导入ROS2公钥(同ROS1使用相同密钥)
curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -

2. 安装ROS2 Foxy

推荐安装桌面版(含示例和工具):

 #桌面版安装,学长的电脑不知道怎么了,只能从官网源才能下载,对比其他博主的方法发现没啥区别,就很奇怪~结果发现似乎是学校网的问题,额彻底无语了。所以大家如果出现下载不了的问题可以试试用热点
sudo apt install -y ros-foxy-desktop

3. 配置环境变量

同样需加载ROS2环境变量:

# 临时加载(当前终端有效)
source /opt/ros/foxy/setup.bash# 永久生效(添加到~/.bashrc)
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc

4. 安装ROS1-ROS2桥接工具(可选)

若需ROS1和ROS2节点通信,安装桥接工具:

sudo apt install -y ros-foxy-ros1-bridge

5. 测试ROS2 Foxy

启动ROS2核心节点(ros2 run),运行发布-订阅示例:

# 终端1:启动talker(发布消息)
ros2 run demo_nodes_cpp talker# 终端2:启动listener(订阅消息)
ros2 run demo_nodes_cpp listener

在这里插入图片描述

若终端2输出“Hello World”日志,ROS2安装成功!

6. 测试ROS1-ROS2桥接(可选)

通过桥接工具让ROS1乌龟和ROS2节点通信:

# 终端1:启动ROS1 roscore
roscore# 终端2:打开ros1小乌龟
source /opt/ros/noetic/setup.bash
rosrun turtlesim turtlesim_node# 终端3(ROS2):开启与ros1桥接
#先声明ros1
source /opt/ros/noetic/setup.bash 
#再声明ros2
source /opt/ros/foxy/setup.bash 
#进行桥接
ros2 run ros1_bridge dynamic_bridge#终端4 ros2开启键盘控制
source /opt/ros/foxy/setup.bash 
ros2 run turtlesim turtle_teleop_key

若ROS1乌龟随ROS2控制指令移动,桥接成功!
在这里插入图片描述


四、ROS与ROS2共存建议

  • 环境隔离:通过source不同setup.bash切换版本(如source /opt/ros/noetic/setup.bashsource /opt/ros/foxy/setup.bash)。
  • 工作空间管理:ROS1工作空间(~/catkin_ws)和ROS2工作空间(~/ros2_ws)分开存放。
  • 工具兼容:VS Code、CLion等IDE可同时配置ROS和ROS2插件。

总结

通过本文,你已完成Ubuntu20.04下ROS Noetic和ROS2 Foxy的安装,并验证了基础功能。下一步可:

  1. 学习ROS1的catkin构建系统和ROS2的colcon构建系统。
  2. 尝试编写第一个ROS1/ROS2节点(如订阅摄像头数据或控制机械臂)。
  3. 探索SLAM(如Cartographer)或导航(如MoveIt2)等机器人核心功能。

遇到问题时,善用官方文档(http://wiki.ros.org/、https://docs.ros.org/)和社区论坛(如ROS Answers),祝你实验室之旅顺利! 🚀

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

相关文章:

  • uTools 最新版优化macOS 26 高 GPU 占用问题
  • wordpress如何建站拓普建站推广
  • 建筑智库免费网站商城网站开发报
  • 从埋点到用户行为分析:ClkLog 如何帮助企业读懂用户
  • 【Q-dir】QDir_x64窗口配合Mouselnc实现上一步
  • 手机网站备案密码找回的方法枣庄专业做网站
  • Oracle Database 19c 服务端(19.3)下载与安装
  • 如何使用 vxe-table 实现全键盘操作,按键切换复选框单选框的选中状态
  • AI IDE 编辑器产品销售策略:从功能宣讲到赋能用户盈利的范式转变[特殊字符]
  • K8S知识点--Node和NameSpace
  • 【开发AI】Windows安装和使用Milvus的保姆级教程
  • 【完整源码+数据集+部署教程】【零售和消费品&存货】食品分类检测系统源码&数据集全套:改进yolo11-RepNCSPELAN_CAA
  • 【Qt】文件操作/事件--mainwindow做编辑器
  • 高频低客单价产品怎么做私域?餐饮/生鲜/零售用社群运营提效37%的私域代运营方案
  • 石家庄大型网站建设做it题的网站
  • 网站建设 要维护么重庆做汉堡的餐饮公司网站
  • leetcode单链表反转
  • 【英语】listicles 是什么意思?
  • JSA变成类似vba环境给第三方软件集成IDE功能,脚本功能
  • 做外单网站亚马逊wordpress菜单分开
  • [ Java 反射机制 ]
  • 元宇宙与医疗健康的深度融合:重构诊疗、培训与健康管理新生态
  • 《算法闯关指南:优选算法--二分查找》--21.山峰数组的的峰顶索引,22.寻找峰值
  • h5游戏免费下载:弗莱迪的物理实验
  • C++ 学习 —— 03 - 类
  • 元宇宙与金融的深度融合:重构服务生态与价值边界
  • 用js做的网站页面设计理念万能模板
  • 做音乐网站的目的在线画画网站
  • 【C语言】两个字符串的相似度检查
  • 从零搭建 RAG 智能问答系统 4:从多模态架构到 Milvus 向量存储实践