micro-ROS / micro-ROS/micro_ros_setup

ensuring agent is acting as agent for all that it should

Open
#560 5 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Shell
Stars
509
Forks
183
Avg merge
22h 26m
Merged PRs (30d)
7

Description

How to guarantee that agent is representing all publishers, nodes etc as requested?

related to the following issues and PRs:

https://github.com/micro-ROS/micro_ros_arduino/issues/40
https://github.com/micro-ROS/micro_ros_setup/issues/299
https://github.com/micro-ROS/micro_ros_setup/issues/256
https://github.com/micro-ROS/rmw_microxrcedds/pull/86/files
https://github.com/micro-ROS/micro_ros_setup/issues/347
https://github.com/micro-ROS/rmw_microxrcedds/pull/143/files
https://github.com/micro-ROS/micro_ros_arduino/issues/912

it appears the consensus is to use `rmw_uros_ping_agent` to detect the loss of agent communications, `fini*` and reinit all the bits, as exemplified here https://github.com/micro-ROS/micro_ros_arduino/blob/galactic/examples/micro-ros_reconnection_example/micro-ros_reconnection_example.ino

The communications with the agent is often over UDP, so its possible just to miss one of several init packets?
In this case the agent would be operating normally, and perhaps we wouldnt notice our missing service for a while.

Is it possible to periodically get the XRCE protocol to re-announce to the agent the set of nodes, topics etc, so that it would self recover?
Or is it feasible to implement some kind of "Tell me how you are configured, and I'll compare it to my idea of what I think you should be doing" handshaking in the protocol between agent and microros?

Contributor guide

Open the contributing guide

Research direction

Start with the linked micro-ros_reconnection_example.ino and compare its rmw_uros_ping_agent, fini*, and reinitialization flow with the related issues and pull requests, especially the rmw_microxrcedds changes. Clarify whether periodic XRCE re-announcement or agent-client configuration handshaking is feasible, then define an agreed recovery behavior and its validation cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
arduino
Domain
distributed-systems, embedded-iot, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.