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

Deserializing error for string type

Offen
#234 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
201
Forks
111
Ø Merge
1 T. 6 Std.
Gemergte PRs (30 T.)
10

Beschreibung

**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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Serviceaufruf auf dem STM32F767ZI mit einem String-Feld unter ROS 2 Humble und untersuche den Executor-Fehler bei ucdr_deserialize_sequence_header beim Parsen des verschachtelten Nachrichtentyps. Das Issue ist abgeschlossen, wenn der MCU den Serviceaufruf ohne Deserialisierungsfehler akzeptiert und verarbeitet, während Serviceaufrufe ohne String weiterhin funktionieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
embedded-iot, robotics
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.