micro-ROS / micro-ROS/micro_ros_setup

ensuring agent is acting as agent for all that it should

オープン
#560 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

enhancement
主要言語
Shell
スター
509
フォーク
183
平均マージ
22時間 26分
マージ済み PR(30日)
7

説明

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?

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

リンクされている micro-ros_reconnection_example.ino から始め、その rmw_uros_ping_agent、fini*、再初期化のフローを、関連する issue と pull request、特に rmw_microxrcedds の変更と比較してください。XRCE の定期的な再アナウンス、または agent-client 構成のハンドシェイクが実現可能かを明確にし、そのうえで合意した復旧動作と、その検証ケースを定義してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
arduino
領域
distributed-systems, embedded-iot, networking
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
15/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。