之前写了制作一台ROS导航小车如何在ubuntu下载和使用STM32CubeMX,感兴趣的可以去查看

链接如下:

做一台ROS小车

ubuntu下载以及使用STM32CubeMX

ROS2之间互相通信

我的树莓派5用的是Ubuntu24.04的镜像,所以我的主机也一起使用,并且下载ROS2的 jazzy 版本,现在来完成测试ros之间的通信。

ROS 2 通信底层原理:ROS 2 本身并不实现 DDS,而是通过RMW(ROS Middleware)层对接不同的 DDS 商业 / 开源实现,这些实现都遵循 DDS 标准(由 OMG 组织制定),但在性能、许可证、功能上各有差异。

1. Fast DDS核心特点:

  • ROS 2 Foxy 及之后版本的默认 DDS 实现,对 ROS 2 的适配最深度;
  • 轻量级、低延迟,适合嵌入式和实时系统;
  • 支持 DDS Security(安全认证)、DDS Discovery Server(中心化发现)等高级特性;
  • 完全开源,社区活跃,问题修复快

2.  Cyclone DDS核心特点:

  • 高性能、低资源占用著称,尤其适合实时性要求高的场景;
  • 对网络配置的适配性强,支持小型嵌入式设备;
  • ROS 2 Humble/Iron 等版本中可便捷切换为默认 DDS。

还有一些DDS我就不介绍了,这里我就使用Cyclone DDS

下载Cyclone DDS:

sudo apt update && sudo apt install ros-jazzy-rmw-cyclonedds-cpp

永久生效写入bashrc文件:

echo "export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> ~/.bashrc
source ~/.bashrc

主机和从机分别在bashrc文件末尾追加ROS_DOMAIN_ID,只有在同一个局域网以及ID下才可以通信,ID数字可以自己随便起

echo "export ROS_DOMAIN_ID=88" >> ~/.bashrc

主机和从机分别运行代码进行测试:

ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_py listener

在Ubuntu24.04下载ESP-idf

因为我之后的平衡车想要用到小智ai,用到esp32-S3,所以下个esp-idf。

看了好几个方法,有个博客写的非常详细,跟着那个步骤走又快又好👇

esp-idf下载方法 我这里就把他的简化和关键步骤抄过来

下载依赖

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

获取ESP-idf

打开终端,输入以下命令:

mkdir -p ~/esp && cd ~/esp
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
cd esp-gitee-tools && ./jihu-mirror.sh set
cd .. && git clone --recursive https://github.com/espressif/esp-idf.git

在esp-idf目录执行安装编译工具:

cd ~/esp/esp-idf && export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh

如果终端没啥报错的信息说明下载完成

环境配置

打开 .profile 追加命令:

vim ~/.profile
source esp32/esp-idf/export.sh
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐