1、课程导学与环境搭建:ROS2与嵌入式通信概述、Ubuntu系统安装、ROS2 Humble安装、Micro-ROS环境搭建

1.1 为什么我们要学这个?

说实话,我见过太多做ROS2的朋友,一提到跟嵌入式设备通信就头疼。要么是串口数据对不上,要么是WiFi延迟高得离谱。我自己刚入行那会儿,也踩过不少坑。

这门课,说白了就是帮你打通ROS2和嵌入式设备之间的「最后一公里」。我们会从最基础的环境搭建开始,一步步带你掌握Micro-ROS这个利器。你想想看,当你的机器人能流畅地跟STM32、ESP32这些芯片对话时,那种感觉还是很爽的。

我个人习惯是,先把地基打牢。所以第一章,咱们就专心把环境搭好。别嫌麻烦,这一步做好了,后面能省80%的调试时间。

1.2 整体知识框架

先给你看一张图,这是我做课程设计时画的。它把本章要讲的内容串起来了:

ROS2与嵌入式通信实战 通信概述 Ubuntu 22.04 系统安装 ROS2 Humble 安装 Micro-ROS 环境搭建

嗯,这张图就是咱们这章要走的路线。从通信原理到系统安装,再到ROS2和Micro-ROS,一步都不能跳。

1.3 ROS2与嵌入式通信概述

先聊聊通信方式。ROS2跟嵌入式设备通信,常见的有这么几种:

  • 串口(UART):最经典的方式。我在项目里用过它跟STM32通信,稳定可靠,就是速度慢点。
  • WiFi(TCP/UDP):适合距离远的场景。但要注意,WiFi延迟不稳定,实时性要求高的场合要小心。
  • CAN总线:工业级通信,抗干扰强。我之前做AGV小车时,电机控制全靠它。
  • Micro-ROS:这是咱们课程的主角。它把ROS2的通信协议「压缩」到嵌入式设备上,让单片机也能直接发Topic、调Service。

核心观点:Micro-ROS不是替代传统通信方式,而是让嵌入式设备「原生」融入ROS2生态。说白了,就是让单片机像一台迷你ROS2节点一样工作。

1.4 Ubuntu 22.04 系统安装

ROS2 Humble官方推荐用Ubuntu 22.04。我个人习惯用双系统,但如果你不想折腾,虚拟机也行。不过要注意,USB设备透传有时会出问题。

安装步骤其实不复杂:

  1. 去Ubuntu官网下载22.04 LTS的ISO镜像
  2. 用Rufus或balenaEtcher制作启动U盘
  3. BIOS里设置U盘启动,开始安装
  4. 分区时建议:/ 分区给50GB,swap给8GB,剩下的给/home

避坑指南:我曾经在安装时选了「最小安装」,结果后面编译Micro-ROS时缺了一堆依赖。建议选「正常安装」,把基础开发工具都带上。

1.5 ROS2 Humble 安装

ROS2 Humble安装,我推荐用apt方式。干净、省心。别自己从源码编译,除非你想体验一下什么叫「编译两小时,报错三分钟」。

打开终端,逐条执行:

# 设置locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

# 添加ROS2源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# 安装ROS2 Humble桌面版
sudo apt update
sudo apt install ros-humble-desktop

# 设置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

安装完成后,跑一下小乌龟测试:

ros2 run turtlesim turtlesim_node

如果看到小乌龟窗口,恭喜你,ROS2装好了。

小技巧:我习惯把 source /opt/ros/humble/setup.bash 写到 ~/.bashrc 里,这样每次打开终端就不用手动source了。省事。

1.6 Micro-ROS 环境搭建

Micro-ROS的环境搭建,是本章的重头戏。它分两部分:PC端的工具链,和嵌入式端的固件库。

先装PC端工具:

# 安装依赖
sudo apt install python3-pip cmake gcc-arm-none-eabi

# 安装Micro-ROS工具
pip3 install micro_ros_setup

# 创建工作空间
mkdir -p ~/microros_ws/src
cd ~/microros_ws
ros2 run micro_ros_setup create_agent_ws.sh

# 编译Micro-ROS Agent
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash

然后测试一下Agent能否启动:

ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888

如果看到类似 [info] UDP agent initialized 的日志,说明Agent跑起来了。

注意:我曾经在编译Agent时卡在 rmw_microxrcedds 的依赖上。后来发现是CMake版本太低。建议先检查一下:cmake --version,确保版本不低于3.16。

1.7 验证整个链路

环境搭好了,咱们来个快速验证。用Micro-ROS的示例程序,在PC上模拟一个嵌入式节点:

# 启动Agent(新终端)
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888

# 启动示例节点(另一个终端)
ros2 run micro_ros_demos_rclc ping_pong

# 查看话题
ros2 topic list

如果看到 /micro_ros_ping 和 /micro_ros_pong 这两个话题,说明Micro-ROS通信链路已经通了。

到这里,你的环境就全部就绪了。从Ubuntu系统到ROS2 Humble,再到Micro-ROS工具链,每一步都验证通过。后面咱们就可以放心地往嵌入式设备上移植了。

1.8 本章小结

这一章我们做了三件事:理解了ROS2与嵌入式通信的几种方式,装好了Ubuntu 22.04和ROS2 Humble,最后搭起了Micro-ROS环境。嗯,说实话,环境搭建是最枯燥的部分,但也是最重要的。我见过太多人因为环境没配好,后面调试时反复折腾。

你如果跟着做完了,现在应该能跑通Micro-ROS的示例了。如果卡在哪一步,别急,回头检查一下依赖版本和网络连接。我曾经在装ROS2时因为源的问题折腾了一下午,后来换了清华源就搞定了。

下一章,咱们开始写真正的嵌入式代码。到时候你会看到,Micro-ROS在STM32上跑起来的样子,还是挺酷的。


可可精品资料库