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

The micro_ros_agent does not relay topic messages

Abierto
#175 24 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
201
Forks
111
Merge medio
1 d 6 h
PR fusionados (30 d)
10

Descripción

**Describe the bug**

Hi, I tried this example [micro-ros_subscriber_twist](https://github.com/micro-ROS/micro_ros_arduino/blob/humble/examples/micro-ros_subscriber_twist/micro-ros_subscriber_twist.ino) using UDP on STM32F407 (Ethernet), but the micro_ros_agent only relays the message to MCU if

```
[Normal]
Step 1: Start the agent
Step 2: Start the program on MCU
Step 3: Publish the twist message (keep publishing)

Twist messages received.
```

If I exchange step 2 with step 3, I cannot receive the message on MCU:

```
[BUG]
Step 1: Start the agent
Step 2: Publish the twist message (keep publishing)
Step 3: Start the program on MCU

No Twist messages.
```

I'm wondering is this an expected behavior or a BUG?

Besides, the [micro-ros_publisher.ino](https://github.com/micro-ROS/micro_ros_arduino/blob/humble/examples/micro-ros_publisher/micro-ros_publisher.ino) example cannot receive the int32 message under both scenarios.

**To Reproduce**

Scenario 1 (BUG):
```
$ Step 1: Start the agent
$ docker run -it -p 9999:9999/udp --privileged microros/micro-ros-agent:galactic udp4 -p 9999 -v 6

$ Step 2: Publish the twist message
$ docker container -it sleepy_rubin /bin/bash
$ # Inside the container
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard

$ Step 3: Start the program on MCU
$ micro_ros_sub twist

# No twist message on MCU
```

Scenario 1 (Normal):
```
$ Step 1: Start the agent
$ docker run -it -p 9999:9999/udp --privileged microros/micro-ros-agent:galactic udp4 -p 9999 -v 6

$ Step 2: Start the program on MCU
$ micro_ros_sub twist

$ Step 3: Publish the twist message
$ docker container -it sleepy_rubin /bin/bash
$ # Inside the container
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard

# Normal twist message on MCU
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduce ambos escenarios de orden con el comando Docker de galactic micro-ROS Agent, teleop_twist_keyboard y los ejemplos micro_ros_subscriber_twist.ino y micro_ros_publisher.ino. Empieza comparando el comportamiento del agente y los logs cuando el programa del MCU se inicia antes o después de publicar; se considera terminado cuando los mensajes esperados se entregan de forma fiable en ambos escenarios documentados, o cuando la limitación esperada queda claramente documentada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp, docker
Área
embedded-iot, networking, robotics
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.