micro-ROS / micro-ROS/micro_ros_espidf_component
Connection Unstable: Frequent Session Re-establishment on micro-ROS Agent over Public Network
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C
- Star
- 419
- Fork
- 124
- Merge trung bình
- 21 giờ 35 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
## Description:
I am experiencing issues with the stability of my micro-ROS Agent when connecting over Public Network. Specifically, when connecting the ESP32 running micro-ROS to the Agent over a public network, the session frequently re-establishes, often within 1 second of each previous attempt. However, when the connection is made over a local area network (LAN), it remains stable without any issues. Here are the details:
## Issue template
- Hardware description: esp32
- RTOS: freeRTOS
- Installation type: micro_ros_setup
- Version or commit hash: humble
- Connection Type: UDP over mobile hotspot (also tested over home WiFi)
#### Steps to reproduce the issue
docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:humble udp6 --port 8090 -v6
#### Expected behavior
[1729343148.590197] info | UDPv6AgentLinux.cpp | init | running... | port: 8090
[1729343148.590364] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6
[1729343156.017862] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x00000000, len: 24, data:
0000: 80 00 00 00 00 01 10 00 58 52 43 45 01 00 01 0F 54 5B 53 B8 81 00 FC 03
[1729343156.018347] info | Root.cpp | create_client | create | client_key: 0x545B53B8, session_id: 0x81
[1729343156.018480] info | SessionManager.hpp | establish_session | session established | client_key: 0x545B53B8, address: 0000:0000:0000:0000:0000:ffff:c0a8:3256:9a1f
[1729343156.018760] debug | UDPv6AgentLinux.cpp | send_message | [** <> **] | client_key: 0x545B53B8, len: 19, data:
0000: 81 00 00 00 04 01 0B 00 00 00 58 52 43 45 01 00 01 0F 00
[1729343156.030584] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x545B53B8, len: 16, data:
0000: 81 00 00 00 0E 01 08 00 0A 00 00 00 D8 11 41 0C
[1729343156.031114] debug | UDPv6AgentLinux.cpp | send_message | [** <> **] | client_key: 0x545B53B8, len: 32, data:
0000: 81 00 00 00 0F 01 18 00 B4 AE 13 67 33 E5 D5 01 B4 AE 13 67 0E DC D5 01 0A 00 00 00 D8 11 41 0C
[1729343156.038679] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x545B53B8, len: 44, data:
0000: 81 80 00 00 01 07 22 00 00 0A 00 01 01 03 00 00 14 00 00 00 00 01 06 00 0C 00 00 00 59 42 5F 43
0020: 61 72 5F 4E 6F 64 65 00 14 00 00 00
[1729343156.058686] info | ProxyClient.cpp | create_participant | participant created | client_key: 0x545B53B8, participant_id: 0x000(1)
[1729343156.058857] debug | UDPv6AgentLinux.cpp | send_message | [** <> **] | client_key: 0x545B53B8, len: 14, data:
0000: 81 80 00 00 05 01 06 00 00 0A 00 01 00 00
[1729343156.058898] debug | UDPv6AgentLinux.cpp | send_message | [** <> **] | client_key: 0x545B53B8, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 01 00 00 00 80
[1729343156.065979] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x545B53B8, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 01 00 00 00 80
[1729343156.070573] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x545B53B8, len: 80, data:
0000: 81 80 01 00 01 07 45 00 00 0B 00 02 02 03 00 00 37 00 00 00 0C 00 00 00 72 74 2F 6F 64 6F 6D 5F
0020: 72 61 77 00 00 01 CD 3F 1F 00 00 00 6E 61 76 5F 6D 73 67 73 3A 3A 6D 73 67 3A 3A 64 64 73 5F 3A
0040: 3A 4F 64 6F 6D 65 74 72 79 5F 00 00 01 00 00 00
#### Actual behavior
[1729346723.687383] info | UDPv6AgentLinux.cpp | init | running... | port: 8090
[1729346723.687553] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6
[1729346724.673238] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x00000000, len: 24, data:
0000: 80 00 00 00 00 01 10 00 58 52 43 45 01 00 01 0F 7E 5C F9 62 81 00 FC 03
[1729346724.673633] info | Root.cpp | create_client | create | client_key: 0x7E5CF962, session_id: 0x81
[1729346724.673767] info | SessionManager.hpp | establish_session | session established | client_key: 0x7E5CF962, address: 0000:0000:0000:0000:0000:ffff:72f6:edbf:bfb8
[1729346724.674175] debug | UDPv6AgentLinux.cpp | send_message | [** <> **] | client_key: 0x7E5CF962, len: 19, data:
0000: 81 00 00 00 04 01 0B 00 00 00 58 52 43 45 01 00 01 0F 00
[1729346725.547183] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x7E5CF962, len: 24, data:
0000: 80 00 00 00 00 01 10 00 58 52 43 45 01 00 01 0F 7E 5C F9 62 81 00 FC 03
[1729346725.547423] info | SessionManager.hpp | establish_session | session re-established | client_key: 0x7E5CF962, address: 0000:0000:0000:0000:0000:ffff:72f6:edbf:bfb8
[1729346725.547811] debug | UDPv6AgentLinux.cpp | send_message | [** <> **] | client_key: 0x7E5CF962, len: 19, data:
0000: 81 00 00 00 04 01 0B 00 00 00 58 52 43 45 01 00 01 0F 00
[1729346726.618333] debug | UDPv6AgentLinux.cpp | recv_message | [==>> UDP <<==] | client_key: 0x7E5CF962, len: 24, data:
0000: 80 00 00 00 00 01 10 00 58 52 43 45 01 00 01 0F 7E 5C F9 62 81 00 FC 03
#### Additional information
Behavior: The session between the ESP32 micro-ROS client and the micro-ROS Agent is frequently re-established (as seen from the micro-ROS Agent logs), sometimes multiple times per second.
Any help or guidance would be appreciated!
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
Bắt đầu bằng cách tái hiện kết nối ESP32-to-Agent bằng lệnh Docker được cung cấp và so sánh hành vi trên mạng công cộng với trên LAN. Kiểm tra các điểm vào được ghi nhật ký trong UDPv6AgentLinux.cpp và SessionManager.hpp, bao gồm các sự kiện create và re-establish. Được xem là hoàn tất khi đã xác định và xử lý nguyên nhân khiến phiên được thiết lập lặp đi lặp lại, kèm bằng chứng về một phiên ổn định trên mạng bị ảnh hưở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ệ
- c
- Lĩnh vực
- embedded-iot, networking
- 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
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100