【ROS】鱼香ROS2学习笔记一

一、ROS是什么(核心定义)

  • 全称:ROS = Robot Operating System,即机器人操作系统。
  • 关键澄清:ROS 不是像 Windows、Linux 那样的"完整操作系统"(不具备独立运行的系统内核),而是一套 机器人开发框架/工具集。
  • 核心作用:为机器人开发提供现成的工具、接口和规范,帮开发者快速搭建机器人软件系统,无需从零编写所有底层代码(如通信、控制等基础模块),提高开发效率。

二、ROS 分布式架构类比(便于理解)

  • 整个机器人软件系统 = 一个完整的"ROS 部落"
  • 节点(Node)= 部落里的每一个人/每一个具体职业(如农民、工匠、医生),各自负责一项具体工作。
  • 话题、服务、动作 = 部落成员之间的交流方式(如说话、书信、协作干活),实现节点之间的信息传递和配合。
  • 功能包(Package)= 部落里的分工小组(如农耕小组、手工业小组),将相关的节点、代码、配置文件整合在一起,实现特定的功能模块。
  • 核心特点:整个 ROS 系统是分布式、模块化的,每个"成员"(节点)、"小组"(功能包)各司其职,又能通过"交流方式"(话题/服务等)互相配合,完成整个机器人的复杂任务。

三、ROS 能做什么(核心应用场景)

ROS 是当前机器人领域最主流的开发平台,应用场景覆盖广泛,主要包括:

  • 移动机器人:AGV(自动导引车)、家用扫地机器人、工业巡检机器人、无人小车等。
  • 机械臂:工业机械臂(抓取、分拣、上下料)、协作机械臂、教学机械臂等。
  • 其他智能设备:自动驾驶车辆、无人机、服务机器人(如酒店送餐机器人)。
  • 科研与教学:高校机器人相关专业教学、科研项目开发、机器人竞赛(如RoboMaster、RoboCup)。
  • 工业落地:工业机器人自动化生产线、智能仓储机器人等产品级开发。

四、ROS1 与 ROS2 的区别

(1) ROS1

  • 优势:经典版本,生态非常成熟,相关教程、工具、第三方包数量多.
  • 适用场景:主要用于学习入门、科研项目、旧的机器人项目维护。
  • 不足:实时性较差、安全性不足、不支持多机协作(或协作难度高),难以满足工业级、产品级的严格需求。

(2) ROS2

  • 优势:新一代 ROS 框架,基于 DDS 通信协议开发,实时性更强、系统更稳定、支持多机协作、安全性更高。
  • 适用场景:工业级开发、产品级机器人落地、需要多机协同的复杂项目,是目前机器人开发的主流选择。

五、鱼香课程大致内容方向(从基础到实战)

  • 基础阶段:ROS 2 核心概念(节点、话题、服务、动作、参数等)。
  • 编程阶段:Python / C++ 两种语言的 ROS 2 开发实操(对应不同需求)。
  • 仿真阶段:Gazebo 等仿真工具的使用,实现机器人虚拟环境调试。
  • 实战阶段:实体机器人开发(小车、机械臂)、SLAM 地图构建、自主导航等完整项目。
  • 核心目标:从"能跑通简单代码"到"能独立完成机器人项目开发",贴合实际工作需求。

六、学习笔记

  • 核心原则:一定要动手实操,ROS 是"练出来"的,只看视频、不敲代码,永远学不会。
  • 学习方法:跟着视频一步一步敲代码、编译、运行,遇到报错不要逃避,主动排查问题。
  • 习惯培养:遇到问题先查日志、查命令手册,培养工程思维和问题排查能力,为后续复杂开发打下基础。
  • 节奏把控:循序渐进,先理解核心概念,再动手写程序,最后尝试在实体机器人上调试,不要急于求成。

七、总结

ROS 2 是新一代机器人开发框架,并非独立操作系统,而是一套工具集;其采用分布式"部落式"节点架构,实时性、稳定性更强,适合工业与产品级开发;本课程从基础概念入手,循序渐进,手把手带零基础新手入门,最终掌握 ROS 2 实战开发能力。

相关推荐
zhoutongsheng21 小时前
mysql如何处理表空间碎片问题_执行OPTIMIZE TABLE整理
jvm·数据库·python
不断提高21 小时前
别再写 while(1) 死循环了,嵌入式开发该换个活法
c语言·嵌入式硬件·嵌入式·状态模式
狼与自由21 小时前
Harness
python
IT策士21 小时前
Python mcp研究:入门到精通
开发语言·python·qt
罗技12321 小时前
告别“兼容模式“:Easysearch 有了自己的官方 Python 客户端
开发语言·python
IT策士21 小时前
Python 常见的设计模型:入门到精通
开发语言·python
许泽宇的技术分享21 小时前
别再把 AI Agent 当“会聊天的脚本”:Hermes Agent 源码级拆解(架构、框架、实战、趋势,一文吃透)
java·linux·网络
PSLoverS21 小时前
Python如何实现测试场景编排_基于pytest的数据驱动组合策略
jvm·数据库·python
不会写DN21 小时前
如何通过 Python 实现招聘平台自动投递
开发语言·前端·python