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

Using micro-ROS-Agnet as a serialization/deserialization link

Aberta
#183 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
C++
Estrelas
201
Forks
111
Merge médio
1d 6h
PRs com merge (30d)
10

Descrição

I am attempting to connect two computers over a custom serial link (eventually, currently I am testing with ethernet). The micro-ROS-Agent is very appealing for this task as it exposes the underlying API allowing me to program custom driver code for the custom interfaces provided for the project as described [here](https://micro.ros.org/docs/tutorials/advanced/create_custom_transports/). In this project there will be a remote machine running the majority of the code with the ability to down-link telemetry (and receive commanding) over a host of different serial over-the-air links (one directional bit streams).

I understand that fundamentally the XRCE-DDS protocol is implemented around agent-client interaction so I am not particularly surprised that out of the box two micro-ROS-Agents can not connect to each other. I am wondering how to configure (if at all possible) the micro-ROS-Agent to bridge communication across a custom (serial) link between two ROS2 systems.

My understanding is that back in ROS1 days this was something that could have been achieved through rosserial which has been replaced by micro-ROS.

- Hardware description: two linux machines. Connected via serial communication (ethernet for testing is fine)
- Setup static IPs between the two.
- Launch an instance of micro-ROS-Agent on both with the same port
- Unsurprisingly they do not discover each other...

How can I get one of the micro-ROS-Agents double as a client to initiate communication? Is this possible? I would really like to avoid wrapping the [Micro-CDR](https://github.com/eProsima/Micro-CDR) library directly as I like the tools provided by the agent such as discovery...

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo tutorial de transportes personalizados e pelos pontos de entrada do micro-ROS-Agent descritos na issue; em seguida, revise como a comunicação entre agent e client do XRCE-DDS é estruturada. Determine se um agent pode atuar como client ou bridge entre dois sistemas ROS 2 e documente a configuração suportada ou a limitação; Micro-CDR é mencionado como alternativa.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
cpp
Domínio
distributed-systems, networking
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
20/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.