- 博客(25)
- 收藏
- 关注
原创 micro_ros_agent在DDS通信中起到什么作用?中
micro_ros_agent是DDS与XRCE-DDS之间的协议代理/中间件桥,属于DDS/ROS2中间件层而非传输层。它充当MCU与ROS2世界的翻译中转站,将MCU的简化DDS消息转换为完整DDS消息,底层可使用串口/UDP/TCP等传输方式。其核心功能是资源管理和协议转换,相当于边境口岸+翻译官+物流分拣中心的复合角色,使资源受限的MCU能够接入ROS2/DDS生态系统。
2026-01-13 13:41:48
984
原创 Micro XRCE-DDS Clien
比喻实际组件功能小镇邮差发送和接收轻量消息,依赖邮局处理复杂事务大邮局转发消息到 ROS 2 网络,实现完整 DDS 功能,处理复杂逻辑信封XRCE-DDS 消息格式轻量化包装信息,适合小邮差携带全国邮政网络ROS 2 / DDS 网络完整消息传输、QoS、Topic 管理等💡生动理解Micro XRCE-DDS Client = 小邮差(轻量、受限、只负责传信封)micro-ROS Agent = 大邮局(强大、处理复杂事务、负责整个网络)DDS = 全国邮政系统的规则和流程。
2026-01-13 13:41:24
274
原创 我有一个疑问,目前ArduPIlot与ROS2的通信方式是用DDS,我想知道其中的micro ros agent和Micro XRCE-DDS Client他们都扮演了什么角色?
组件所在位置作用飞控板(MCU)轻量 ROS 客户端,发送传感器数据、接收控制命令代理,负责将 MCU 数据桥接到标准 ROS 2 网络[ArduPilot 飞控板]v| DDSv[标准 ROS 2 节点]💡核心理解Client:在资源受限设备上,把 MCU 数据变成 ROS 2 消息格式,支持最小化通信协议。Agent:在资源充足设备上,把 Client 的轻量消息“翻译”成完整 ROS 2 消息,同时反向转发控制命令。DDS。
2026-01-12 16:55:06
858
原创 那么请问MAVROS和DDS这两种交流体系有什么区别呢?
DDS 关心的是“系统如何共存”,MAVROS 关心的是“机器是否被正确控制”。DDS 是秩序,MAVROS 是权力。
2026-01-08 10:50:29
805
原创 TCP / UDP为什么代表着传输规则?
怎么封箱、拆箱?(分包 / 合包)顺序要不要保证?丢了要不要补发?速度优先还是可靠优先?📌不需要知道货物是什么。
2026-01-05 16:39:22
437
原创 为什么 DDS / MAVROS 不叫“语言”,而能叫“交流体系 / 通信制度”?
在 DDS 里:每个都是一个“合法交流主体”📌 系统先承认你是“一个人”,你才有发言权。
2025-12-27 10:10:14
394
原创 MAVLink为什么可以代表着“语言内容”
在通信里,“语言”必须同时满足 4 个条件有固定语法(结构)有固定词汇(字段 / 消息 ID)有明确语义(含义不能随便猜)与传输方式无关我们就用这 4 条来审 MAVLink。MAVLink 消息结构是严格规定的就像一句话:【主语 + 谓语 + 宾语】📌 顺序不能乱📌 长度不能错这就是语法MAVLink 是语言,因为它定义了“你说的每一句话到底是什么意思”;TCP / UDP 只是帮你把话送过去;DDS 决定谁能听、怎么听、听几次。
2025-12-27 10:00:43
380
原创 2.仿真课程讲解rviz篇之制作一个小车urdf模型
上一期已经修改好了Gazebo中的模型小车,但是自主导航的rviz中显示的模型依旧是两轮的,该如何也修改为对应的六轮的呢?
2025-12-26 10:58:48
133
原创 1.DDS(数据分发服务)
在ROS2与ArduPilot二者通信中,除了以往最经典的MAVROS通信,目前在ArduPilot官网也已发布DDS这种通信方式来建立二者之间的通信,但是关于DDS的原理,我还是不懂得,知其然不知其所以然,单单只是会使用他使绝对不够的,在这里,将创建一个专栏来总结整理提炼关于DDS的知识,使我们能够更加明白但都是怎么回事。
2025-12-24 14:50:06
285
原创 zbrover_slam(补充+修改)
编译可能在这里会有一个疑问,为什么不是colcon build --packages-select zbrover_slam?因为我的仓库名字表面叫做zbrover_slam,但实际这个软件包叫做ardupilot_ros。所以编译用下面这个。将红色圈起来的命令换成下面我的这个仓库,其余不变,按照官方的来。克隆源码(这是基于官方ardupilot_ros修改的)
2025-11-09 16:52:28
238
原创 补充+注意(zbrover_nav的搭建)
事先要在sitl_dds_udp.launch.py(ardupilot/Tools/ros2/ardupilot_sitl/launch/sitl_dds_udp.launch.py)中把mavproxy注释掉。这里mavproxy在外面手动启动,不在这里面启动了,所以注释掉。因为在使用Rover模型的时候,如果不是手动启动,Rover则会莫名其妙的向前移动一段距离。本文补充zbrover_nav搭建的指南README。
2025-11-08 22:00:06
175
原创 3.软件的部署与安装到树莓派上。(3.2 Mavros2源码安装)
按照官方链接就可以了,但是在自己树莓派上安装的时候仍有一些需要补充的地方,供参考。
2025-10-30 15:17:23
343
3
原创 4.实验的全流程操作。(4.2 Nav2自主导航【控制器用的是Ardupilot开源飞控】)
首先,请仔细阅读(只是我的个人经验,可能有误),说明我的情况:我刚开始使用的ROS2版本为humble,机载计算机为树莓派5,ubuntu系统用的是24.04(树莓派5只能安装24.04),但是ubuntu24.04由于版本对应有误却不能直接二进制安装ROS2(humble),所以我源码安装编译ROS2(humble)和Navigtaion2软件包,但在我实际运行Navigation时却总是运行失败,具体情况请看我的Gitee的这个链接的评论区里有我的一些经验(
2025-10-30 10:02:00
276
原创 4.实验的全流程操作。4.1 SLAM制图(cartographer算法)
确认雷达数据话题和frame_id确认雷达扫描的最大最小半径,思岚雷达官网(修改.lua文件,目录为,我修改的是s2_sllidar.lua文件同时修改与之对应的launch文件,目录为修改好之后,编译。
2025-10-30 09:30:20
395
3
原创 1.使用的各个硬件的介绍。(1.5Pixhawk6C飞控板)
解决:将AT9S遥控器的右杆的前后设置为油门,因为初始右杆前后是俯仰,现在俯仰改油门,遥控器mode-系统设置-摇杆模式:1(原来是2),改完之后得重新在Mission planner遥控器校准。(4)设置完之后保存,写入参数,重启地面站,保存后再打开,会报错提醒这一步,应该将上面那个对应的伺服器功能改为GPIO,结束。(3)开启继电器,设置继电器输出用硬件的哪一个口,我用的是PWM(AUX)的3456。出现的问题:安装固件之后Pixhawk的FMU的B/E灯一直闪烁,这是不对的。
2025-10-29 17:07:19
1468
原创 1.使用的各个硬件的介绍。(1.4树莓派)
1.下载镜像server版(注意:树莓派的镜像和虚拟机里的镜像文件是不一样的,得找树莓派自己的镜像)用联想浏览器下载更快2.树莓派官方烧录工具2.1 擦除原系统2.2 烧录系统注意文件结尾是raspi.img.xz才对2.3 设置密码1234562.4 写入中2.5 将SD卡插入树莓派,启动树莓派亮机,需要重启一次1.(主机名) login: zhao检查配置WiFi是否正确耐心等待,直到出现查看树莓派IP地址(172.20.10.9)
2025-10-29 17:03:34
218
原创 1.使用的各个硬件的介绍。(1.2电机驱动(带编码器)(小车))
参考链接:https://ardupilot.org/rover/docs/wheel-encoder.html使用TB6612(D153B)电机驱动模块和带霍尔编码器的电机。如上图右侧两个白色接口分别连接两个电机。编码器主要用到以下四个引脚:E2A-AUX3E2B-AUX4E1A-AUX1E1B-AUX21.将所用的AUX的SERVO口设置成GPIO来使用,如下图所示: 2.启用轮式编码器读取 3.电机驱动器的AB相输出引脚与Pixhawk的输入引脚对应 4.设置Pixha
2025-10-29 16:35:58
447
原创 使用ArduPilot与ROS控制实机车进行自主导航
1.1硬件购买链接1.2电机驱动(带编码器)(小车)1.3激光雷达1.4树莓派1.5Pixhawk6C飞控板。
2025-10-24 10:26:31
321
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅