micro-ROS / micro-ROS/micro-ROS-Agent
Subscriptions silently drop when agent branch doesn't match client distro — undocumented
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
Hi,
Spent a while chasing a bug that turned out to be agent ↔ client version mismatch.
- Hardware description: STM32G491 (Cortex-M4), custom board, serial UART transport
- RTOS: Zephyr 4.1.x
- Installation type: modules (`micro_ros_zephyr_module`, jazzy branch)
- Version or commit hash: client on `jazzy` branch; agent `6.0.0`
#### Steps to reproduce the issue
1. Build a Zephyr firmware client from the `jazzy` branch of `micro_ros_zephyr_module`. Add at least one publisher and one subscription on the same node.
2. Run micro_ros_agent 6.0.0 (built from source) with serial transport, pointed at the firmware.
3. From host (ROS 2 jazzy), `ros2 topic echo ` — works, data is visible.
4. From host, `ros2 topic pub ...`. Subscription callback never fires on the firmware. Agent log at `-v6` shows DATA submessages being forwarded toward the client.
5. Stop everything. `git clone` `micro-ROS-Agent`, `git checkout jazzy`, build from source, restart with the same args.
6. Subscription callback fires correctly on the first try.
#### Expected behavior
Either:
- Tagged agent releases interoperate with any matching client, **or**
- A loud error / log line at session-establish when agent and client XRCE protocol versions don't line up.
#### Actual behavior
Subscription messages are silently dropped on the way to the client. No error, no warning, no log line at any verbosity. Publishers in the same direction work fine, so it looks superficially like a working session.
#### Additional information
The README doesn't mention that the agent branch has to match the client's ROS distro at runtime. Two asks:
1. **Docs:** add a compatibility note to the README — the agent must be built from the branch matching the client's distro (`humble`, `jazzy`, `rolling`). Happy to PR this.
2. **Optional:** at session-establish, log both the agent's and the client's claimed XRCE protocol version so a mismatch is loud rather than silent.
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pelo README do repositório e revise as orientações de versão do agente/cliente, usando as branches humble, jazzy e rolling relatadas como casos de compatibilidade. Adicione uma observação clara de que a branch do agente deve corresponder à distribuição ROS do cliente; o trabalho de documentação estará concluído quando esse requisito e o risco de uma falha silenciosa estiverem inequívocos. Nenhum teste é mencionado na issue.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- cpp
- Domínio
- documentation
- Tipo de issue
- Documentação
- Dificuldade
- 1/5
- Tempo estimado
- Menos de uma hora
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 68/100