micro-ROS / micro-ROS/micro_ros_arduino
The session has been established, but the nodes are not functioning correctly.
- Dominant language
- C
- Stars
- 576
- Forks
- 146
- PR merge metrics
- No merged PRs in 30d
Description
rpi4master@rpi4master:~$ sudo micro-xrce-dds-agent serial --dev /dev/ttyACM0 -b 115200
[1698546806.114685] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[1698546806.115410] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 4
[1698546806.554954] info | Root.cpp | create_client | create | client_key: 0x25E30594, session_id: 0x81
[1698546806.555178] info | SessionManager.hpp | establish_session | session established | client_key: 0x635635092, address: 0
-Im using a raspberry pi pico rp2040, a raspberry pi 4 4gb and a computer to access via ssh to the raspberry pi
- RTOS: FREERTOS
- Installation type: I use a docker to acces micro ros: https://hub.docker.com/r/microros/micro-ros-agent (Humble)
Also install the micro-xrce-dds-agent following the steps right here: https://snapcraft.io/micro-xrce-dds-agent
- Im using micro ros to connect with ROS2 Humble.
#### Steps to reproduce the issue
Install ROS2 humble using the debian packages.
Follow the instructions that is shown in this pages:
https://hub.docker.com/r/microros/micro-ros-agent (humble)
https://snapcraft.io/micro-xrce-dds-agent
#### Expected behavior
[1698548607.973741] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[1698548608.521272] info | Root.cpp | delete_client | delete | client_key: 0x14642262
[1698548608.521385] info | SessionManager.hpp | destroy_session | session closed | client_key: 0x14642262, address: 0
[1698548608.521434] info | Root.cpp | create_client | create | client_key: 0x4F4067EA, session_id: 0x81
[1698548608.521459] info | SessionManager.hpp | establish_session | session established | client_key: 0x4F4067EA, address: 0
[1698548608.533004] info | ProxyClient.cpp | create_participant | participant created | client_key: 0x4F4067EA, participant_id: 0x000(1)
[1698548608.536969] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x4F4067EA, topic_id: 0x000(2), participant_id: 0x000(1)
[1698548608.539250] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0x4F4067EA, publisher_id: 0x000(3), participant_id: 0x000(1)
[1698548608.542347] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0x4F4067EA, datawriter_id: 0x000(5), publisher_id: 0x000(3)
[1698548608.545870] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x4F4067EA, topic_id: 0x001(2), participant_id: 0x000(1)
[1698548608.548010] info | ProxyClient.cpp | create_subscriber | subscriber created | client_key: 0x4F4067EA, subscriber_id: 0x000(4), participant_id: 0x000(1)
[1698548608.552643] info | ProxyClient.cpp | create_datareader | datareader created | client_key: 0x4F4067EA, datareader_id: 0x000(6), subscriber_id: 0x000(4)
#### Actual behavior
[1698546806.114685] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[1698546806.115410] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 4
[1698546806.554954] info | Root.cpp | create_client | create | client_key: 0x25E30594, session_id: 0x81
[1698546806.555178] info | SessionManager.hpp | establish_session | session established | client_key: 0x635635092, address: 0
The expected behavior was obtained by the computer that has the "micro-ros-agent." When you plug in the Raspberry Pi Pico, everything works fine. However, in the case where we are using a Raspberry Pi 4, we can't install the "micro-ros-agent" because the terminal says that it only works on AMD64 systems, not on ARM64. Therefore, we searched for information and found an alternative called "micro-xrce-dds-agent."
With this latter agent, the connection is initialized, but the nodes don't work


Feel free if you want to answer me in spanish, I'm from Colombia. Your work is amazing.
Contributor guide
Research direction
Start by comparing the Raspberry Pi 4 serial logs with the working computer logs and review the Docker micro-ROS agent and micro-xrce-dds-agent setup described in the issue. Reproduce the connection on ARM64 and verify whether participant, topic, publisher, subscriber, and datareader creation completes; done means the nodes function as they do with the working agent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- distributed-systems, embedded-iot, robotics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100