micro-ROS / micro-ROS/micro-ROS-Agent
The micro_ros_agent does not relay topic messages
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C++
- Sterne
- 201
- Forks
- 111
- Ø Merge
- 1 T. 6 Std.
- Gemergte PRs (30 T.)
- 10
Beschreibung
**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
```
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere beide Reihenfolgeszenarien mit dem galactic micro-ROS Agent Docker-Befehl, teleop_twist_keyboard sowie den Beispielen micro_ros_subscriber_twist.ino und micro_ros_publisher.ino. Beginne damit, das Verhalten des Agents und die Logs zu vergleichen, wenn das MCU-Programm vor oder nach dem Publizieren startet; abgeschlossen ist die Aufgabe, wenn die erwarteten Nachrichten in beiden dokumentierten Szenarien zuverlässig zugestellt werden oder die erwartete Einschränkung eindeutig dokumentiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp, docker
- Bereich
- embedded-iot, networking, robotics
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100