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

Connectivity Drop with More Than 5 Devices in Micro-ROS Agent on Docker (Raspberry Pi 5)

Đang mở
#233 3 bình luận 1 reaction 0 người được giao Xem trên GitHub

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ả

**Description:**
I am running a micro-ROS agent in a Docker container using the prebuilt image (humble) on a Raspberry Pi 5. I have several ESP32 devices with micro-ROS (Humble). When I attempt to connect more than five devices to the agent, I experience connectivity dropouts, where some devices fail to stay connected. With 5 devices, they are successful in subscribing to topics.

I suspect this issue might be related to the configuration flags in the micro-ROS build, particularly those related to client and resource limits. I came across the following parameters:

- `RMW_UXRCE_MAX_CLIENTS`
- `RMW_UXRCE_MAX_SUBSCRIPTIONS`
- `RMW_UXRCE_MAX_SESSIONS`
- `RMW_UXRCE_MAX_NODES`
- `RMW_UXRCE_MAX_PUBLISHERS`
- `RMW_UXRCE_MAX_SERVICES`
- `RMW_UXRCE_MAX_WAIT_SETS`
- `RMW_UXRCE_MAX_GUARD_CONDITION`
- `RMW_UXRCE_MAX_TOPICS`

These parameters seem critical to configuring the agent, especially as I'm dealing with multiple devices where each subscribes to three topics. I suspect increasing the `RMW_UXRCE_MAX_CLIENTS` value might help, but I'm not entirely sure.

**What I've Tried:**
- I attempted to experiment by manually setting `RMW_UXRCE_MAX_CLIENTS` to 1 (as a test), but it did not yield the expected results, as multiple clients could still connect.
- I've tried searching through the documentation, including [Vulcanexus](https://docs.vulcanexus.org/en/latest/rst/tutorials/micro/memory_management/memory_management.html#:~:text=RMW_UXRCE_MAX_NODES%20%3A%20Maximum%20number%20of%20micro,Default%20value%3A%204) for guidance, but I haven't been able to solve the issue.

**Question:**
In order to adjust these flags and rebuild the micro-ROS agent from source, do I need to modify the build configuration in the following file?
- [`src/micro_ros_setup/config/host/generic/client-host-colcon.meta`](https://github.com/micro-ROS/micro_ros_setup/blob/jazzy/config/host/generic/client-host-colcon.meta)

Or should the changes be made in this file instead?
- [`src/uros/rmw_microxrcedds/rmw_microxredds_c/CMakeLists.txt`](https://github.com/micro-ROS/rmw_microxrcedds/blob/jazzy/rmw_microxrcedds_c/CMakeLists.txt)

I believe the latter might be where the flags should be set, but I'm uncertain. Has anyone else experienced similar connectivity issues when connecting more than five devices to a micro-ROS agent on Docker? If so, how did you resolve it?

(I've also noticed a colcon.meta file in the /src folder of my workspace, should the be used?)

Any guidance on where exactly to set the flags for a manual source installation would be greatly appreciated - Or even the correct approach to setting up an agent to allow for more than 20 clients!

Thanks in advance for your help!

**System Details:**
- **Hardware:** Raspberry Pi 5
- **Docker Image:** Prebuilt micro-ROS agent
- **Micro-ROS Version:** Humble on ESP32 devices
- **Number of Devices:** 5+ ESP32 devices
- **Topics per Device:** 3 Topics per device

**Links to Documentation:**
- [Vulcanexus Documentation on Memory Management](https://docs.vulcanexus.org/en/latest/rst/tutorials/micro/memory_management/memory_management.html)
- [micro_ros_setup Repository](https://github.com/micro-ROS/micro_ros_setup/blob/jazzy/config/host/generic/client-host-colcon.meta)
- [rmw_microxrcedds Repository](https://github.com/micro-ROS/rmw_microxrcedds/blob/jazzy/rmw_microxrcedds_c/CMakeLists.txt)

Thank you!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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 so sánh src/micro_ros_setup/config/host/generic/client-host-colcon.meta với src/uros/rmw_microxrcedds/rmw_microxrcedds_c/CMakeLists.txt và /src/colcon.meta của workspace. Tái hiện hiện tượng mất kết nối với hơn năm thiết bị ESP32 trong khi thu thập log của agent và client. Hoàn tất khi đã xác định được đường dẫn cấu hình chính xác và một thiết lập đã được kiểm thử hỗ trợ số lượng client dự kiến mà không bị mất kết nối.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cmake, cpp, docker
Lĩnh vực
devops, 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
30/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.