PX4V1.14.0与ROS2通讯简单总结

ROS Toolbox

    ROS Toolbox 提供了连接 MATLAB 和 Simulink 与机器人操作系统(ROS 和 ROS 2)的接口。您可以使用该工具箱设计 ROS 节点网络,并将 MATLAB 或 Simulink 生成的 ROS 节点合并到现有 ROS 网络。

    该工具箱包括 MATLAB 函数和 Simulink 模块。这些函数和模块能够通过记录、导入和回放 rosbag 文件来可视化和分析 ROS 数据。您还可以连接到实时 ROS 网络以访问 ROS 消息。

    该工具箱可以让使用桌面仿真以及连接到外部机器人仿真器(如 Gazebo)或硬件来验证 ROS 节点。ROS Toolbox 支持 C++ 和 CUDA 代码生成(需要 MATLAB Coder、Simulink Coder 和 GPU Coder),让您能够基于 MATLAB 脚本或 Simulink 模型自动生成ROS 节点,并部署到仿真硬件或物理硬件上。对 Simulink 外部模式的支持使得您可以在硬件上运行模型的同时查看消息和更改参数。

PX4-ROS通讯架构

    PX4与机载任务机中安装的ROS2进行通讯,主要通过Uxrce-DDS通信中间件实现。

    uXRCE-DDS 中间件由运行在 PX4 上的Micro XRCE-DDS Client和运行在配套计算机上的Micro XRCE-DDS Agent组成,它们之间通过串口、UDP、TCP或自定义链接进行双向数据交换。Micro XRCE-DDS Agent用于发布和订阅全局DDS数据空间中的主题。

Micro XRCE-DDS 介绍

    eProsima Micro XRCE-DDS 是一个强大的库,实现了开放系统与网格组织(OMG)定义的DDS-XRCE协议,旨在让资源受限的设备如微控制器如其他DDS分发者一样在DDS数据空间中进行通讯。这个项目遵循客户端/服务器模式,包括两个核心部分——Micro XRCE-DDS Client 和 Micro XRCE-DDS Agent。前者是轻量级的客户端实体,设计用于极度资源受限的环境,后者则作为代理,连接客户端和DDS世界。

Micro XRCE-DDS 客户端

    Micro XRCE-DDS Client请求对代理执行操作,以发布和/或订阅 DDS 全局数据空间中的主题。还支持 DDS-RPC 标准定义的远程过程调用,允许客户端根据请求/应答范式在 DDS 数据空间中进行通信。在订阅/发布操作的情况下,代理处理这些请求并发回包含操作状态结果和请求数据的响应。 DDS 数据空间中的通信由专门负责创建客户端请求的 DDS 实体(例如参与者、主题、发布者和订阅者)进行解码,这些实体可以与 DDS 全局数据空间进行交互。

    eProsima Micro XRCE-DDS 为用户提供了一个 C API 来创建 Micro XRCE-DDS Client应用程序。该库可以在编译时通过一组 CMake 参数进行配置,允许在编译之前启用或禁用某些配置文件,并操作控制库某些功能的多个参数,这反过来又允许调整库大小。

    Micro XRCE-DDS Client和 Micro XRCE-DDS Agent之间的通信是通过多种内置传输实现的:UDPv4、UDPv6、TCPv4、TCPv6 和串行通信。此外,用户还可以生成自己的自定义传输。

Micro XRCE-DDS 代理端

    Micro XRCE-DDS Agent 接收来自客户端的包含请求操作的消息,以发布和订阅 DDS 全局数据空间中的主题。还支持 DDS-RPC 标准定义的远程过程调用,允许根据请求/应答范式进行通信。然后,Agent处理这些请求,并在订阅/发布操作的情况下发回包含操作状态结果和请求数据的响应。

    Agent通过代表Client动作的专门实体来跟踪客户。通过Client操作在代理上创建 DDS 实体(例如参与者、主题、发布者和订阅者)来实现的,这些实体可以与 DDS 全局数据空间进行交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值