micro-ROS / micro-ROS/micro_ros_arduino
Retry client entities creation
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 576
- Forks
- 146
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
We have an issue that during the micro-ros agent and client connection some of the entities (pub/sub) are not created, therefore part of the micro-ros messages (pub/sub) are not available (dead). We would like to have a way to react to this situation and execute an entity creation retry. Is there a way to do that? We read about the HARD_LIVELINESS_CHECK and added this to our micro-ros Arduino as described here [https://discourse.ros.org/t/our-concl...](https://discourse.ros.org/t/our-conclusions-on-trying-to-implement-micro-ros-in-our-robot/24690/4) this change gives us more LOG information, but the entities' creation not improved. When we tried to create the entities in "blocking" mode as described below
Under microxrcedds_client change the following values:
"-DUCLIENT_MAX_SESSION_CONNECTION_ATTEMPTS=3",
"-DUCLIENT_MIN_SESSION_CONNECTION_INTERVAL=100"
Under rmw_microxrcedds
Replace: "-DRMW_UXRCE_ENTITY_CREATION_DESTROY_TIMEOUT=0",
With: "-DRMW_UXRCE_ENTITY_CREATION_TIMEOUT=1000", "-DRMW_UXRCE_ENTITY_DESTROY_TIMEOUT=1000",
This mode solved the issue, but using this mode force us to stop the other tasks which we don't want. Do you have any other way of partially "blocking" that we can get the entities' creation status without blocking the other tasks?
Thanks
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the microxrcedds_client connection-attempt settings and the rmw_microxrcedds entity-creation and destroy timeout settings described in the issue. Determine whether the existing APIs expose entity-creation status or support retrying without blocking other tasks. Done would be a defined, usable approach for partial blocking or asynchronous entity-creation retries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arduino, c
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100