机器人系统——ROS2文档—ROS 入门学习路线
分类:ROS 框架
类型:学习路线
难度:初级
目录
一、概述
二、前置要求
三、学习步骤
四、后续进阶
一、概述
ROS 框架如同机器人内部的通信枢纽,实现机器人各模块间的数据交互。其包含消息通信、标准接口,同时支持多编程语言与多系统平台。
开发和维护 ROS 程序前,必须掌握框架基础概念。小乌龟仿真工具以及本站教程可帮助你快速上手。
二、前置要求
无基础门槛。本文步骤将全程引导下载安装所有学习所需环境与工具。
三、学习步骤
1. 认识 ROS 基础概念
(1)ROS 简介
参考前期已经发布的ROS介绍。
(2)节点
节点是 ROS 2 拓扑图中的基本单元,通过客户端库与其他节点通信。节点可和同进程、跨进程或不同设备上的节点交互,也是 ROS 拓扑里的运算载体,遵循单一逻辑功能设计原则。
节点可向指定话题发布数据,也能订阅话题接收数据。既可以作为服务客户端,请求其他节点执行运算;也可充当服务服务端,对外提供功能服务。针对耗时运算场景,节点能以动作客户端身份委托其他节点处理,或作为动作服务端响应任务请求。同时节点支持配置参数,可在运行过程中调整自身工作状态。
一个节点往往会同时兼具发布器、订阅器、服务端、服务客户端、动作服务端、动作客户端等多重身份。
节点之间依靠分布式发现机制自动建立通信连接。
(3)通信接口(话题、服务、动作)
ROS 应用主要通过三类接口通信:话题、服务、动作。ROS 2 采用精简的接口定义语言(IDL)描述接口,便于工具自动生成多编程语言的接口源码。
三类接口文件:
-
消息文件.msg:文本格式,定义消息字段,用于生成多语言消息代码
-
服务文件.srv:由请求、应答两部分消息结构组成
-
动作文件.action:包含目标请求、执行结果、过程反馈三段消息结构
参考:https://docs.ros.org/en/lyrical/Concepts/Basic/About-Interfaces.html
(4)参数
ROS 2 中的参数隶属于单个节点,可在节点启动及运行过程中配置节点,无需修改代码。参数生命周期与节点绑定,节点也可实现数据持久化,重启后恢复参数数值。
参数可通过节点名、节点命名空间、参数名、参数命名空间定位,参数命名空间为可选配置项。
每个参数由键名、数值、描述符三部分组成。键名为字符串;数值支持布尔、64 位整型、64 位浮点、字符串、字节数组,以及上述类型的数组。描述符默认无内容,可填写参数说明、数值范围、类型信息与各类约束条件。
参考:https://docs.ros.org/en/lyrical/Concepts/Basic/About-Parameters.html
2. 安装 ROS 与小乌龟仿真工具
ROS 安装包包含运行必备组件。熟悉 Linux 系统推荐选用 Ubuntu 系统 deb 包安装;也可选择 Windows 二进制包安装。
ROS于小乌龟安装路径教程参考前期发布的文章。
小乌龟仿真是面向新手的轻量级二维仿真工具,可在可视化场景中理解 ROS 核心原理。
3. 实操体验 ROS 核心通信组件
借助小乌龟工具熟悉各类通信机制,实操消息收发流程。
完成节点教程:认识节点
完成话题教程:认识话题
完成服务教程:认识服务
完成参数教程:认识参数
完成动作教程:认识动作
4. 学习日志状态排查
状态自检可以查看系统运行工况。节点通过日志输出事件与运行状态信息。跟随教程使用日志可视化工具,掌握日志排查方法。
参考教程:
5. 学习启动文件用法
启动文件可批量启动并配置多个节点进程,无需逐个开启终端、重复配置参数。完成教程:节点启动配置
参考教程:
6. 学习数据录制与回放
回放数据可复现实验结果、调试机器人行为,也可用于项目成果分享。完成教程:数据录制与回放
参考教程:
四、后续进阶
想要全面掌握 ROS 框架,建议进一步学习 ROS 客户端程序库。
夜雨聆风