micro-ROS / micro-ROS/micro-ROS-Agent
Deserializing error for string type
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 201
- Fork
- 111
- Merge trung bình
- 1 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 10
Mô tả
**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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện lệnh gọi service trên STM32F767ZI với một trường string bằng ROS 2 Humble, sau đó kiểm tra lỗi của executor tại ucdr_deserialize_sequence_header khi phân tích kiểu message lồng nhau. Issue được hoàn tất khi MCU chấp nhận và xử lý lệnh gọi service mà không có lỗi giải tuần tự hóa, trong khi các lệnh gọi service không có string vẫn tiếp tục hoạt động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- embedded-iot, robotics
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100