micro-ROS / micro-ROS/micro-ROS-Agent

Deserializing error for string type

未關閉
#234 3 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 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

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 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

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。