机器人系统ros2期末速通2

6. Action(动作):带反馈、可取消的长任务

6.1 核心概念(先搞懂是什么)

Action 是 ROS2 里专门处理耗时久、需要中间反馈、还能随时取消的任务的通信方式。

  • 专业名词拆解
    • Goal(目标):你给 Action 下达的任务(比如 “导航到 (1,2) 点”)。
    • Feedback(反馈):任务执行中持续返回的状态(比如导航时 “距离目标还有 0.5 米”“当前速度 0.2m/s”)。
    • Result(结果):任务完成后返回的最终状态(比如 “导航成功”/“导航失败,原因:目标点不可达”)。
    • Cancel(取消):任务执行中可以中断(比如导航时突然改主意,取消本次导航)。
  • 对比 Service(服务):Service 是 “一问一答”,只能等任务结束才返回结果,中间没反馈、也不能取消(比如问 “机器人当前位置?”,立刻回答,这适合用 Service)。

6.2 考点提炼(考试直接用)

题型核心答案
单选题(6-1)Action 比 Service 的优势:支持反馈与取消(答案 B)
简答题(6-2)导航适合 Action 的原因:1. 导航耗时较长;2. 需要持续反馈(距离、进度);3. 可能需要取消(临时避障 / 改目标)。
场景题(6-3)导航无反馈 / 无结果的排查点(记 4 个即可):1. action server 是否存在 / 激活(比如 nav2 没启动);2. TF 坐标树是否完整(map→odom→base_link);3. 传感器 / 代价地图正常吗(比如激光雷达 /scan 话题没数据);4. 目标点是否在不可达区域(比如在墙里)。

6.3 常用命令(记下来,考到直接写)

bash

运行

ros2 action list # 列出所有正在运行的Action ros2 action info <action名> # 查看某个Action的详细信息(比如类型、服务器) ros2 action send_goal <action名> <目标类型> "目标参数" # 发送Action目标(比如导航目标)

7. Interface(接口):msg/srv/action 定义与自定义

7.1 核心概念(先搞懂是什么)

Interface 是 ROS2 中不同节点之间 “沟通的语言”,分三种:

  • 专业名词拆解
    • msg(消息):单向通信(比如传感器数据、机器人速度指令),对应 Topic(话题)通信。例:geometry_msgs/msg/Twist(机器人速度指令,包含线速度和角速度)。
    • srv(服务):双向一问一答,对应 Service(服务)通信。例:std_srvs/srv/Empty(空服务,只请求不传数据,比如 “让机器人停止”)。
    • action(动作):带反馈 / 取消的长任务,对应 Action(动作)通信。例:nav2_msgs/action/NavigateToPose(导航动作,包含目标、反馈、结果)。

7.2 考点提炼(考试直接用)

题型核心答案
单选题(7-1)查看 Twist 消息结构:ros2 interface show geometry_msgs/msg/Twist(答案 B)
简答题(7-2)自定义接口编译时声明依赖的文件:1. package.xml:加 build_depend(编译依赖)和 exec_depend(运行依赖);2. CMakeLists.txt:find_package 找依赖 + rosidl_generate_interfaces 生成接口 + ament_export_dependencies 导出依赖。
场景题(7-3)自定义 msg 编译过但运行找不到的排查点:1. 有没有 source 当前工作空间的 setup.bash(source install/setup.bash);2. Python 包是否正确安装、entry_points 配置对不对;3. 是不是被其他工作空间的同名接口覆盖了;4. 有没有忘记加ament_export_dependencies(rosidl_default_runtime)

7.3 关键操作(理解即可,考试考概念)

  • 查看接口结构:ros2 interface show <接口类型>(比如ros2 interface show geometry_msgs/msg/Twist)。
  • 自定义接口核心:必须在package.xmlCMakeLists.txt里声明依赖,否则编译 / 运行会报错。

8. QoS(服务质量):控制数据传输的规则

8.1 核心概念(先搞懂是什么)

QoS 是 ROS2 中 “约定数据怎么传” 的规则,解决不同场景下的传输需求(比如要不要保证数据不丢、新订阅者能不能拿到历史数据)。

  • 核心 QoS 参数(必考)
    参数含义
    Reliability可靠性:RELIABLE(可靠,保证数据不丢,重传丢失的包);BEST_EFFORT(尽力而为,丢包不重传,速度快)。
    Durability持久性:VOLATILE(易失,新订阅者只能拿到订阅后的新数据);TRANSIENT_LOCAL(本地暂存,新订阅者能立刻拿到最新的历史数据)。
    History/Depth历史策略:KEEP_LAST (n)(只保留最后 n 条数据);KEEP_ALL(保留所有数据,少用)。

8.2 考点提炼(考试直接用)

题型核心答案
单选题(8-1)新订阅者立刻拿到最新地图:TRANSIENT_LOCAL(答案 B)
简答题(8-2)常用话题的 QoS 组合:1. /scan(激光雷达):BEST_EFFORT + KEEP_LAST (5~10)(高频、允许丢少量包,低延迟);2. /map(地图):RELIABLE + TRANSIENT_LOCAL(地图重要不丢包,新订阅者能拿到);3. /cmd_vel(速度指令):RELIABLE + KEEP_LAST (1)(指令要可靠,只需要最新的,避免积压)。
场景题(8-3)rosbag2 回放看不到数据的原因 + 处理:原因:回放端和订阅端 QoS 不匹配(比如回放用 RELIABLE,订阅用 BEST_EFFORT),导致数据匹配失败;处理:调整订阅端 QoS(传感器用 BEST_EFFORT,地图用 TRANSIENT_LOCAL),或用 QoS 覆盖配置文件。

8.3 记忆技巧

  • 传感器(/scan、/image):BEST_EFFORT(快,允许丢包)+ KEEP_LAST。
  • 关键数据(/map、/cmd_vel):RELIABLE(不丢包);地图额外加 TRANSIENT_LOCAL。

9. Parameter(参数):节点的配置项

9.1 核心概念(先搞懂是什么)

Parameter 是 ROS2 节点的 “配置参数”,比如机器人的速度上限、PID 参数、是否启用仿真时间,都可以用参数设置。

  • 专业名词拆解
    • declare_parameter:声明参数(ROS2 强制推荐!先声明 “参数名、类型、默认值”,再使用)。
    • 动态参数:运行时可以修改的参数(比如在线调 PID),修改时可以加回调函数校验。

9.2 考点提炼(考试直接用)

题型核心答案
单选题(9-1)启用仿真时间:use_sim_time(答案 A)
简答题(9-2)ROS2 推荐先 declare 再 set 的原因:1. 防止拼写错误导致 “悄悄创建不存在的参数”;2. 明确参数类型和默认值,避免类型错误;3. 方便用 launch/YAML/ 工具管理参数。
场景题(9-3)调 PID 后机器人抖动的安全机制:1. 参数回调中加范围限制 + 平滑(比如每次修改步长不超过 0.1,渐变生效);2. 关键参数加保护(修改需要确认 / 密码);3. 记录参数变更日志,支持回滚到上一次稳定值。

9.3 常用命令(记下来)

bash

运行

ros2 param list # 列出节点的所有参数 ros2 param get <节点名> <参数名> # 获取参数值 ros2 param set <节点名> <参数名> <值> # 设置参数值 ros2 param dump <节点名> # 导出节点所有参数到文件

10. Launch、Remap、Namespace:系统编排与多机器人

10.1 核心概念(先搞懂是什么)

  • Launch:ROS2 的 “启动脚本”,可以一次性启动多个节点、传参数、重映射话题、设置命名空间,不用手动一个个启动。
  • Remap(重映射):修改话题 / 服务 / Action 的名字(比如把机器人 1 的 /cmd_vel 改成 /robot1/cmd_vel)。
  • Namespace(命名空间):给节点 / 话题加 “前缀”,隔离多机器人的通信(比如机器人 1 的所有话题都放在 /robot1 / 下)。

10.2 考点提炼(考试直接用)

题型核心答案
单选题(10-1)重映射 /cmd_vel:launch / 命令行 remap(答案 B)
简答题(10-2)Namespace 在多机器人中的作用:1. 避免话题 / 服务 / Action 名冲突(比如两台机器人都有 /cmd_vel,加前缀后变成 /robot1/cmd_vel 和 /robot2/cmd_vel);2. 调试更清晰,能区分不同机器人的消息;3. 跨机部署时容易统一管理。
场景题(10-3)RViz 位姿跳变的原因 + 解决:原因:两台机器人的 TF 坐标系名冲突(都用 base_link、odom),导致 TF 树混乱;解决:给坐标系加前缀(比如 robot1/base_link、robot2/base_link),或设置 tf_prefix 参数,确保每台机器人的 TF 唯一。

10.3 关键技巧

  • 多机器人核心:Namespace 隔离话题 + TF 坐标系加前缀,避免所有 “重名” 问题。
  • Remap 常用方式:在 launch 文件里写remap_rule=[('/原话题名', '/新话题名')],或命令行加--ros-args --remap /cmd_vel:=/robot1/cmd_vel

考试通关总结(必背)

核心考点速记

  1. Action:核心优势是支持反馈与取消,适合长任务(导航);排查导航问题先看 action server 和 TF。
  2. 接口:查看结构用ros2 interface show;自定义接口必须改package.xmlCMakeLists.txt,运行前要 source。
  3. QoS:地图用 TRANSIENT_LOCAL,传感器用 BEST_EFFORT,指令用 RELIABLE+KEEP_LAST (1);bag 回放问题多是 QoS 不匹配。
  4. 参数:启用仿真时间是use_sim_time;先 declare 再 set 避免错误;调参数要加范围 / 平滑 / 回滚保护。
  5. 多机器人:Namespace 隔离话题,TF 加前缀避免冲突;Remap 主要在 launch / 命令行设置。

答题技巧

  • 单选题:直接记答案(比如 Action 选 B、QoS 选 B、参数选 A、Remap 选 B)。
  • 简答题:按 “1、2、3” 分点答,和参考答案要点一致即可(不用多写,考点踩中就得分)。
  • 场景题:先答 “原因”,再答 “解决方法”,分点列,优先写参考答案里的要点(比如导航无反馈先查 action server 和 TF)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1155795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拼多多春节加班费热议背后,近屿智能给出了另一份高薪答案

春节临近&#xff0c;你是否也正陷入“年后再说”的循环&#xff1f;当大多数人在为年终琐事分心时&#xff0c;有一群人&#xff0c;却在默默积累着“节后爆发”的资本——他们关注的不是加班补贴&#xff0c;而是如何让自己的技能&#xff0c;配得上更高的估值。一、高薪加班…

[特殊字符][特殊字符][特殊字符][特殊字符],拍一拍解锁快乐开挂版

拍了拍我的小肚子 &#x1f437;肥肉退退退₋₉₉₉拍了拍我的摸鱼手 &#x1f41f;带薪快乐10086拍了拍我的奶茶杯 &#x1f964;吨吨吨喝不胖✨拍了拍我的钱包 &#x1f911;空空如也但暴富在路上拍了拍我的闹钟 ⏰迟到不存在∞拍了拍我的老板说&#xff1a;放假啦快冲&#…

智能地板:AI Agent的室内活动模式分析

智能地板&#xff1a;AI Agent的室内活动模式分析关键词&#xff1a;智能地板、AI Agent、室内活动模式、数据分析、行为识别摘要&#xff1a;本文围绕智能地板与AI Agent的室内活动模式分析展开。详细介绍了智能地板的技术原理、AI Agent的工作机制&#xff0c;探讨了如何通过…

机器人系统ros2期末速通4

一、16. 调试工具链&#xff08;CLI rqt RViz2&#xff09;1. 核心概念&#xff08;系统里的实际样子&#xff09;CLI&#xff08;命令行工具&#xff09;&#xff1a;你在终端敲的 ROS 指令&#xff0c;是调试的 “基础武器”&#xff0c;比如查话题、查节点、查 TF 都靠它。…

夫妻间忌讳的9句话,烂在肚子也不要说

俗话说&#xff1a;百年修得同船渡&#xff0c;千年修得共枕眠。夫妻聊天别瞎聊&#xff0c;这9句话堪比“婚姻炸弹”&#xff0c;说了容易引发家庭“地震”&#xff0c;快烂在肚子里&#xff01;你这脑子&#xff0c;跟没带出门似的吧&#xff1f;就你这水平&#xff0c;还不如…

2026 版 “全国统一长辈口头禅”,听完 DNA 动了

少吃点外卖&#x1f961;&#xff0c;全是科技与狠活天天熬夜&#x1f319;&#xff0c;身体迟早熬垮穿这么少&#xff1f;不冷吗&#xff1f;赶紧加衣服&#x1f9e5;别老点奶茶&#x1f964;&#xff0c;又贵又不健康工资发了多少&#xff1f;存下来多少呀&#x1f4b0;处对象…

机器人系统ros2期末速通3

一、11. Composition&#xff08;组件化节点&#xff09;1. 核心概念&#xff08;先懂 “人话”&#xff09;进程&#xff1a;可以理解为 “一个独立的程序窗口”&#xff0c;比如你开的微信是一个进程&#xff0c;浏览器是另一个进程。组件化&#xff1a;把原本要开多个 “程序…

idea查看当前的数据源信息

项目使用的DS动态数据源方式一&#xff1a;1. 获取当前线程的数据源信息DynamicDataSourceContextHolder.peek() 方法可以用来获取当前线程正在使用的数据源名称。2.动态数据源切换如果需要在调试过程中切换数据源&#xff0c;可以使用以下代码&#xff1a;DynamicDataSourceCo…

PySide step by step系列

根据学习进度更新。 PySide基础 PySide系列-01-入门简介 PySide系列-02-信号与槽机制 PySide系列-03-QPushButton、QMessageBox

各位相加这道题,真不简单:从“循环暴力”到“数学直觉”的一次觉醒

各位相加这道题,真不简单:从“循环暴力”到“数学直觉”的一次觉醒 大家好,我是 Echo_Wish。 今天咱聊一道很多人第一眼会觉得—— “这不就是个新手题吗?” 对,就是 LeetCode 上的「各位相加(Add Digits)」。 题目短得不行,实现起来更是分分钟,但我一直觉得: 这道…

GRANT SELECT, DELETE ON 职工 TO USER1 WITH GRANT OPTION权限授予命令详解

一、语句结构分解 GRANT SELECT, DELETE ON 职工 TO USER1 WITH GRANT OPTION;各部分含义&#xff1a;部分含义GRANT授权命令关键字SELECT, DELETE授予的权限类型ON 职工权限作用的对象&#xff08;职工表&#xff09;TO USER1权限授予的用户WITH GRANT OPTION特殊权限选项 二、…

cocos 金色划过shader教程

视频教程 视频教程 vec4 o texture(cc_spriteTexture,uv);有图片获取图片 现在是用在label 获取字 透明部分不会获取 float beamPos mod(cc_time.x -0.3, 3.0) ; 设定圆心位置 将光柱想象成圆形 获取圆心位置 计算遍历所有像素点到圆心的距离 如果在glow代表圆的范围 如果在范…

简单理解:嵌入式开发中 BFTM、GPTM、MCTM 这三种定时器的含义、区别和应用场景

这三个都是嵌入式芯片&#xff08;尤其是 ARM Cortex-M 系列、国产 MCU 如华大 / 兆易创新等&#xff09;中常见的定时器外设&#xff0c;核心都是 “计时 / 定时”&#xff0c;但设计定位和功能侧重完全不同。一、逐个解析核心概念1. BFTM&#xff1a;基本功能定时器 (Basic F…

中小企业数据安全的“三座大山”,松鼠备份如何用一台旧电脑轻松化解?

对绝大多数中小企业来说&#xff0c;真正的数据危机往往来自三个日常隐患&#xff1a;第一座山&#xff1a;勒索病毒——文件被加密成 .locked&#xff0c;不给赎金就打不开&#xff1b;第二座山&#xff1a;人为误删或覆盖——手一滑&#xff0c;几天甚至几周的工作瞬间消失&a…

采用人工智能技术简化论文写作,7个专业站点提供LaTeX兼容及格式规范指导

工具快速对比排名&#xff08;前7推荐&#xff09; 工具名称 核心功能亮点 处理时间 适配平台 aibiye 学生/编辑双模式降AIGC 1分钟 知网、万方等 aicheck AI痕迹精准弱化查重一体 ~20分钟 知网、格子达、维普 askpaper AIGC率个位数优化 ~20分钟 高校检测规则通…

java学习--ArrayList

一、什么是 ArrayListArrayList 是 java.util 包下的类&#xff0c;实现了 List 接口&#xff0c;本质是动态扩容的数组&#xff08;相比普通数组&#xff0c;它的长度可以自动调整&#xff09;。底层基于数组实现&#xff0c;支持快速随机访问&#xff08;通过索引取值&#x…

借助AI技术高效撰写学术论文,这7个专业网站支持格式规范与LaTeX排版适配功能

工具快速对比排名&#xff08;前7推荐&#xff09; 工具名称 核心功能亮点 处理时间 适配平台 aibiye 学生/编辑双模式降AIGC 1分钟 知网、万方等 aicheck AI痕迹精准弱化查重一体 ~20分钟 知网、格子达、维普 askpaper AIGC率个位数优化 ~20分钟 高校检测规则通…

LLDB:现代化的开源调试器(LLVM Debugger)

LLDB&#xff1a;LLVM Debugger 现代化的开源调试器 LLDB是一个现代化的开源调试器&#xff0c;作为LLVM编译器项目的一部分&#xff0c;它被设计为高性能、可扩展&#xff0c;并且支持多种语言和平台。以下是对LLDB的详细解析&#xff1a; 1. 核心背景 所属项目&#xff1a;L…

51单片机——GPIO、按键、中断、定时器与PWM

目录 一、GPIO 1.1 核心概念 1.2 工作模式分类 1.2.1 输出模式&#xff1a;控制外设 1.2.2 输入模式&#xff1a;检测外设信号 二、独立按键 2.1 硬件连接原理 2.2 核心工作逻辑 2.3 消抖处理 三、中断系统 3.1 中断核心概念 3.2 中断源分类与关键参数 3.3 中断处…

OBS教程:如何打开OBS美颜,美妆,美发,美型功能?如何使用美颜插件优惠券兑换券

主播只需简单的化妆甚至不化妆&#xff0c;也不用去做头发&#xff0c;一切效果都可以通过OBS美颜插件实现美颜、美妆、口红、美瞳、眼影、腮红、高光、、美发、美型、美体、特效、口罩、遮罩等功能&#xff0c; 在教程开始之前&#xff0c;先给大家看看效果。 一、美妆效果&…