ESP32运行micro-ROS添加订阅器触发错误循环问题求助
ESP32 micro-ROS订阅器添加后触发错误循环排查请求
正在开发基于ESP32的micro-ROS项目,ESP32通过USB串口(UART0)以921600波特率连接PC。仅保留发布器时功能正常,但添加订阅器后,启动micro-ROS agent时ESP32持续进入错误循环。
当前启动命令为ros2 launch robot_launcher robot_launcher.launch.py,启动文件包含micro-ROS agent与测试用Python节点angle_listener。
环境配置
- ESP32控制器(已降级至esp32环境2.0.2以适配micro-ROS兼容性)
- PC端运行micro-ROS agent(Ubuntu 22.04)
- Python ROS2节点
angle_listener.py:订阅编码器数据并发布速度指令 - USB串口(UART0)通信,波特率921600
- 测试环境采用长度为1的数组,后续将扩展至6台电机
硬件限制
所用ESP32板仅UART0可用作USB通信串口,无法添加Serial.print调试语句,调试能力受限。
问题现象
- 仅保留发布器时,ESP32可正常发布编码器数据
- 添加订阅器代码后,ESP32立即进入
error_loop函数 - 错误由
RCCHECK宏检查失败触发
已尝试方案
- 确认ESP32与Python节点的topic名称一致
- 验证topic初始化正确
- 延长ESP32的spin时长,排除CPU资源问题
附相关代码片段(ESP32 C++代码、Python节点代码、launch文件),请求排查导致添加订阅器后触发错误循环的原因。
内容的提问来源于stack exchange,提问作者Giuseppe Festa
相关产品推荐
相关产品推荐

