5.5.1 使用“zero-copy”
功能背景
通信是机器人开发引擎的基础功能,原生ROS2 Foxy进行大数据量通信时存在时延较大、系统负载较高等问题。TogetheROS.Bot Foxy基于RDK系统软件库hbmem实现了“zero-copy”功能,数据跨进程传输零拷贝,可大大减少大块数据传输延时和系统资源占用。本节介绍如何使用tros.b Foxy和Humble创建publisher和subscriber node进行大块数据传输,并计算传输延时。
信息
前置条件
已按照安装成功安装tros.b,并已掌握ROS2 node,topic,qos等基础知识,以及如何创建package和使用自定义消息,具体教程可见ROS2官方文档。
ROS2软件包构建、编译等工具。安装命令:sudo apt install ros-dev-tools
任务内容
1. 创建package
打开一个新的终端,source tros.b setup脚本,确保ros2
命令可以运行。
- Foxy
- Humble
source /opt/tros/setup.bash
source /opt/tros/humble/setup.bash
使用以下命令创建一个workspace,详细介绍可见ROS2 官方教程Creating a workspace。
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
运行以下命令创建一个package
ros2 pkg create --build-type ament_cmake hbmem_pubsub