0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

兆易创新GD32H7系列MCU适配Micro-ROS的完整技术指南

GD32MCU 来源:GD32MCU 2025-12-31 10:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着具身智能技术爆发,机器人从工业场景向消费级、服务级领域快速渗透,小到家庭陪伴机器人,大到工业协作机器人,均对“边缘控制精度”与“生态协同能力”提出更高要求。据行业数据显示,一台中型服务机器人需集成10-15个传感器节点与8-12个执行器控制单元,而人形机器人的自由度关节更是突破20个,这类场景下,传统“MCU+简单控制程序”的模式已无法满足多节点协同需求——需同时实现实时电机控制、传感器数据预处理与云端/主机端数据交互,这也推动了“轻量化机器人操作系统ROS)+高性能MCU”的技术组合成为行业主流。

作为ROS 2的轻量化分支,Micro-ROS凭借“资源适配性强”“生态兼容性高”“实时性优异”三大优势,已成为嵌入式机器人领域的核心框架。其关键价值在于打破资源受限设备与ROS生态的壁垒:仅需几十KB内存即可在MCU端实现完整ROS 2通信能力(包括主题发布/订阅、服务调用、参数管理等核心功能),且能无缝对接Linux主机端的ROS 2节点。在机器人实时电机控制、智能传感器节点、边缘计算预处理等场景实现规模化应用,成为连接“边缘控制层”与“云端算力层”的关键桥梁。

兆易创新GD32H7系列MCU,凭借Cortex-M7内核,高达600MHz主频、1MB级SRAM(含512KB紧耦合内存)、多接口集成等硬件特性,完美匹配Micro-ROS的轻量化与实时性需求,成为国产MCU中适配Micro-ROS的优选方案。

本文将从开发板介绍、环境搭建、适配开发、测试验证四个维度,提供GD32H7系列MCU适配Micro-ROS的完整技术指南。

GD32H7系列MCU适配Micro-ROS的工程代码已在GitHub上开源,欢迎开发者下载使用。

Github仓库链接:

https://github.com/GigaDeviceSemiconductor/GD32H7-micro_ROS

Micro-ROS技术特性与架构

Micro-ROS是专为资源受限嵌入式设备设计的ROS 2轻量级实现框架,其核心特性可概括为七点:

优化的客户端API: 针对MCU资源特性优化,支持所有ROS 2核心概念(节点、话题、服务、参数等);

无缝生态集成: 可直接与Linux主机ROS 2节点通信,无需额外协议转换;

轻量化中间件: 采用DDS-XRCE中间件,内存占用低至8KB,适配资源受限场景;

RTOS支持: 兼容FreeRTOS、Zephyr、NuttX等主流实时操作系统,本文基于FreeRTOS开发;

宽松许可证: 基于Apache 2.0许可证,商用无限制;

活跃社区支持: 提供完善文档、示例代码与问题反馈渠道,生态持续迭代;

长期可维护性: 遵循ROS 2架构规范,确保与后续版本的兼容性。

0036d7d4-e126-11f0-8c8f-92fbcf53809c.png

△micro-ROS的系统架构

(图片来源:micro-ROS官方网站)

GD32H7开发板规格与接口定义

本文适配测试基于两款GD32H7系列开发板:GD32H759I-EVAL与GD32H75EY-EVAL,两者分别支持串口、USB以太网与Micro-ROS Agent通信,核心规格与接口定义如下:

1GD32H759I-EVAL板

主控芯片:GD32H759IMK6(Cortex-M7内核,最高600MHz主频);

供电方式:GD-Link Mini USB接口或DC-005连接器(5V);

核心外设:Ethernet网口、USB HS0接口、3路CAN-FD、SDRAM、SPI-LCD、USARTx(多串口)等;

Micro-ROS关键接口定义:

打印串口:USART0(引脚PA9、PA10);

串口通信(与Agent):USART2(引脚PB10、PB11);

以太网通信(与Agent):ETH0网口(需将JP48、JP51、JP57、JP59、JP60、JP70跳帽接至ETH);

USB通信(与Agent):USB_HS0接口。

009967aa-e126-11f0-8c8f-92fbcf53809c.png

2GD32H75EY-EVAL板

主控芯片:GD32H75EYMJ6(Cortex-M7内核,最高600MHz主频);

供电方式:GD-Link Mini USB接口或DC-005连接器(5V);

核心外设:USB HS0接口、2路CAN-FD、SPI、I2C、USARTx(多串口)等;

Micro-ROS关键接口定义:

打印串口:USART2(引脚PB10、PB11);

串口通信(与Agent):USART0(引脚PB6、PB7);

USB通信(与Agent):USB_HS0接口。

010e0a2e-e126-11f0-8c8f-92fbcf53809c.png

1ROS 2与Micro-ROS开发环境搭建(Host:Ubuntu 22.04)

1.1ROS 2Humble环境安装

ROS 2是Micro-ROS的主机端核心依赖,本文选择稳定版Humble,安装步骤如下:

1.1.1 基础依赖安装

打开Ubuntu终端,执行以下命令安装系统依赖:

sudoapt update &&sudoapt install -y curl gnupg2 lsb-release

1.1.2 环境变量与源配置

确保系统支持UTF-8编码:

sudolocale-gen en_US en_US.UTF-8
sudoupdate-locale LC_ALL=en_US.UTF-8LANG=en_US.UTF-8
exportLANG=en_US.UTF-8

添加ROS 2 apt仓库密钥与源:

sudocurl -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$(lsb_release -cs)main"|sudotee/etc/apt/sources.list.d/ros2.list > /dev/null

1.1.3 ROS 2软件包安装

更新仓库缓存并安装桌面版:

sudoapt update &&sudoapt upgrade -y
sudoapt install -y ros-humble-desktop
# 可选:安装开发工具(编译依赖、调试工具)
sudoapt install -y ros-humble-ros-base python3-colcon-common-extensions python3-rosdep

配置环境变量(每次打开终端需执行,或添加至~/.bashrc):

source/opt/ros/humble/setup.bash

1.1.4 环境验证(Talker-Listener测试)

终端1:运行发布节点(talker):

source/opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

终端2:运行订阅节点(listener):

source/opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp listener

若终端2能接收终端1发布的“Hello World”消息,则ROS 2环境安装成功。

1.2Micro-ROS构建系统安装

Micro-ROS依赖专属工具链实现固件编译与Agent通信,安装步骤如下:

1.2.1 工具链下载与依赖安装

加载ROS 2环境并创建Micro-ROS工作空间:

source/opt/ros/humble/setup.bash
mkdir-p ~/micro_ros_ws/src &&cd~/micro_ros_ws
gitclone-b humble https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

安装依赖(rosdep与pip):

sudo rosdep init && rosdep update
rosdep install--from-pathssrc--ignore-src-y
sudo apt install -ypython3-pip
pip3 install -U colcon-common-extensions

1.2.2 工具链编译与环境加载

编译Micro-ROS工具链:

colcon build --packages-select micro_ros_setup
sourceinstall/local_setup.bash

创建固件工作空间:

ros2run micro_ros_setup create_firmware_ws.sh host

执行后将在~/micro_ros_ws/firmware目录下生成Micro-ROS工程结构,包含示例代码与编译脚本。

1.2.3 Micro-ROS环境验证(Ubuntu主机端测试)

以“ping-pong”示例验证环境(主机端模拟MCU节点):

编译ping-pong固件:

cd~/micro_ros_ws/firmware
colcon build --packages-select micro_ros_demos_rclc
sourceinstall/local_setup.bash

终端1:运行Micro-ROS Agent(UDP模式):

ros2run micro_ros_agent micro_ros_agent udp4 --port8888

终端2:运行ping-pong节点:

source~/micro_ros_ws/firmware/install/local_setup.bash
ros2 run micro_ros_demos_rclc ping_pong

终端3:订阅ping话题验证通信:

source/opt/ros/humble/setup.bash
ros2 topicecho/ping

若终端3能接收ping消息,则Micro-ROS环境搭建成功。

2GD32H7系列MCU适配Micro-ROS开发

2.1核心适配逻辑:静态库集成

由于GD32H7基于FreeRTOS开发,Micro-ROS适配采用“静态库集成”方案:先在Ubuntu主机端编译生成适配Cortex-M7内核的Micro-ROS静态库(含核心API、中间件、通信适配层),再将静态库与头文件导入GD32 Embedded Builder工程,配合底层驱动(串口、USB、以太网)实现通信。

静态库编译参考Micro-ROS官方教程(https://micro.ros.org/docs/tutorials/advanced/create_custom_static_library/),本文已提供预编译完成的静态库(包含libmicroros.a及相关头文件),直接导入工程即可使用。

2.2工程导入与编译(基于GD32 Embedded Builder)

GD32 Embedded Builder是GD32系列MCU的专属IDE,支持工程管理、编译、下载,适配步骤如下:

2.2.1 工程结构与静态库导入

下载GD32H7 Micro-ROS工程包(含GD32H759I_Eval_FreeRTOS_MicroROS与 GD32H75E_MicroROS两个工程);

打开GD32 Embedded Builder,导入目标工程(如 GD32H759I_Eval_FreeRTOS_MicroROS);

将Micro-ROS静态库(libmicroros.a)放入工程Lib目录,头文件放入Inc/microros目录,并在IDE中配置库路径与头文件路径。

2.2.2 不同通信接口的工程编译

GD32H759I-EVAL支持串口(中断/DMA)、USB CDC、以太网UDP三种通信方式,

GD32H75EY-EVAL支持串口(中断/DMA)、USB CDC两种方式,编译时需选择对应目标:

019b6e8c-e126-11f0-8c8f-92fbcf53809c.png

以GD32H759I-EVAL的串口(中断)为例,编译步骤:

右击工程→Build Configuration→Set Active→选择gd32h7_microros_usart_it;

点击“Build”按钮,编译完成后生成.elf与.hex文件;

其他通信方式的编译步骤类似,仅需切换目标工程即可。

3GD32H7 Micro-ROS功能测试

3.1测试准备

硬件:GD32H7开发板、GD-Link调试器、串口线(USB-TTL)、以太网网线(仅GD32H759I-EVAL)、12V电源

软件:Ubuntu 22.04(已装ROS 2与Micro-ROS Agent)、串口调试助手(如SSCOM)。

3.2分接口测试步骤

3.2.1 串口通信测试(以GD32H759I-EVAL为例)

硬件连接:

打印串口:USART0(PA9→TX,PA10→RX)接USB-TTL,用于查看调试信息;

通信串口:USART2(PB10→TX,PB11→RX)接另一USB-TTL,连接Ubuntu主机。

Agent启动(Ubuntu终端):

source/opt/ros/humble/setup.bash
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -b 115200

(注:/dev/ttyUSB0为Ubuntu识别的串口设备,可通过ls/dev/ttyUSB*查看)

固件下载:

在GD32 Embedded Builder中选择gd32h7_microros_usart_it工程,点击“Download”下载固件;

打开串口调试助手(波特率115200),可看到开发板打印的初始化信息。

功能验证:

打开新Ubuntu终端,订阅Micro-ROS节点发布的/gd32h7_microros_publisher话题:

source/opt/ros/humble/setup.bash
ros2 topicecho/gd32h7_microros_publisher

若能接收32位整数数据,则串口通信测试成功。

3.2.2 USB CDC通信测试(以GD32H759I-EVAL为例)

硬件连接:

打印串口:USART0接USB-TTL(查看调试信息);

USB通信:开发板USB_HS0接口接Ubuntu主机。

Agent启动(Ubuntu终端):

source/opt/ros/humble/setup.bash
# 查看USB CDC设备(通常为/dev/ttyACM0)
ls/dev/ttyACM*
# 启动Agent
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyACM0 -b 115200

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19258

    浏览量

    405246
  • 机器人
    +关注

    关注

    214

    文章

    31682

    浏览量

    224599
  • 开发板
    +关注

    关注

    26

    文章

    6524

    浏览量

    121396
  • 兆易创新
    +关注

    关注

    24

    文章

    736

    浏览量

    84330

原文标题:GD32H7 Micro-ROS开发实战:从零到一构建机器人应用

文章出处:【微信号:GD32MCU,微信公众号:GD32MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用menuconfig添加配置micro-ros软件包?

    请问有没有最新的rtthread移植micro-ros移植使用教程,使用menuconfig添加配置micro-ros软件包?
    发表于 09-25 06:37

    Fibocom MCU创新 技术资料

    Fibocom MCU创新 技术资料内容如下:1、【文档】
    发表于 01-09 15:27

    瑞萨将micro-ROS移植到RA MCU

    NEWS 全球半导体解决方案供应商瑞萨电子集团(TSE:6723)与专注于中间件解决方案的SME公司eProsima宣布,基于RA MCU的EK-RA6M5评估套件成为micro-ROS开发框架
    的头像 发表于 09-24 16:22 3176次阅读

    创新全系产品和行业解决方案

    GD32H7系列(Cortex®-M7内核超高性能微控制器) 此次重磅展出基于全新GD32H7系列MC
    的头像 发表于 07-12 11:25 2341次阅读

    IAR全面支持GD32H7系列超高性能MCU开发解决方案

    IAR嵌入式开发解决方案现已全面支持创新GD32H7系列Cortex-M7内核通用
    的头像 发表于 07-17 16:31 3325次阅读

    创新GD32 MCU选型手册,适用于GD32全系列MCU

    创新GD32MCU选型手册,适用于GD32全系列MCUGD32
    发表于 10-19 17:26 53次下载

    创新AN062 基于GD32 MCU的EMC应用指南

    创新AN062基于GD32MCU的EMC应用指南AN062基于GD32MCU的EMC应用
    发表于 10-19 17:26 6次下载

    创新GD32F4xx系列MCU固件库使用指南

    创新GD32F4xx系列MCU固件库使用指南
    发表于 10-19 17:26 43次下载

    AN122 GD32H7系列MCU OSPI flash执行环境用户指南

    电子发烧友网站提供《AN122 GD32H7系列MCU OSPI flash执行环境用户指南.pdf》资料免费下载
    发表于 01-17 15:57 5次下载
    AN122 <b class='flag-5'>GD32H7</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b> OSPI flash执行环境用户<b class='flag-5'>指南</b>

    GD32H7系列MCU安全启动概述

    电子发烧友网站提供《GD32H7系列MCU安全启动概述.pdf》资料免费下载
    发表于 01-17 15:34 1次下载
    <b class='flag-5'>GD32H7</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>安全启动概述

    创新GD32H7系列MCU助力海洋科技人才培养

    近期,创新与浙江大学海洋学院《水下机器人综合设计》教学团队深度合作,基于课程负责团队提出的实验场景需求,经过双方近一年的开发与测试验证,GD32H7
    的头像 发表于 06-07 14:52 2024次阅读

    AI MCU#创新GD32H7系列MCU解读

    创新GD32H7系列MCU是中国首款基于Arm® Cortex®-M
    的头像 发表于 06-27 14:43 4296次阅读

    创新GD32H7系列MCU解锁边缘AI新玩法

    在万物互联向万物智联跃迁的时代,边缘计算正面临前所未有的性能挑战。传统MCU难以承载复杂的AI算法,而云端方案又受限于实时性和隐私问题。创新GD
    的头像 发表于 07-16 16:33 4110次阅读
    <b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>创新</b><b class='flag-5'>GD32H7</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>解锁边缘AI新玩法

    创新GD32H7系列MCU荣获2025中国国际工业博览会集成电路创新成果奖

          9月23日,在第三届上海集成电路产业发展国际高峰论坛上,创新(GigaDevice)旗下 GD32H7系列
    的头像 发表于 09-24 18:08 2326次阅读
    <b class='flag-5'>兆</b><b class='flag-5'>易</b><b class='flag-5'>创新</b><b class='flag-5'>GD32H7</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>荣获2025中国国际工业博览会集成电路<b class='flag-5'>创新</b>成果奖

    创新GD32H7高性能系列MCU强势扩容,以“超高算力+实时通信”双擎驱动未来

    业界领先的半导体器件供应商 创新GigaDevice 今日宣布,正式推出新一代GD32H7系列超高性能
    的头像 发表于 01-22 12:22 1408次阅读