micro-ROS / micro-ROS/micro-ROS-Agent
Deserializing error for string type
还没有人认领这个 Issue。
- 主要语言
- C++
- 星标
- 201
- 派生
- 111
- 平均合并
- 1 天 6 小时
- 30 天内合并 PR
- 10
描述
**Describe the bug**
String types in service types cause microROS on the MCU side to fail in the executor due to a deserializing error. Running it through a debugger it fails in ucdr_deserialize_sequence_header when parsing the nested message type.
Service calls with non-string types work as expected. I've verified it's not a buffer overflow since the buffer size >> bytes received. There is also no packet corruption in UDP traffic, the dest packet and src packet match 1:1.
**To Reproduce**
Steps to reproduce the behaviour:
1. On MCU, init service with service type that has a string type
2. On host side, call service
**Expected behaviour**
The MCU accepts the service call and handles accordingly.
**Actual behaviour**
Executor fails due to deserialization error.
**System information (please complete the following information):**
- OS: Ubuntu 22.04
- ROS 2 Humble
- MCU: STM32F767ZI
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
使用 ROS 2 Humble,在 STM32F767ZI 上复现包含 string 字段的服务调用,然后检查解析嵌套消息类型时 ucdr_deserialize_sequence_header 处的 executor 故障。当 MCU 能够接受并处理该服务调用且不发生反序列化错误,同时不包含 string 的服务调用继续正常工作时,该 issue 即完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cpp
- 领域
- embedded-iot, robotics
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100