micro-ROS / micro-ROS/micro_ros_arduino

The session has been established, but the nodes are not functioning correctly.

Open
#1,554 2 comments 0 reactions 0 assignees View on GitHub
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
![imagen_2023-10-29_030953707](https://github.com/micro-ROS/micro_ros_arduino/assets/78943415/7c159208-d62f-435e-96a9-d486572e1e5f)
![imagen_2023-10-29_031008002](https://github.com/micro-ROS/micro_ros_arduino/assets/78943415/469da537-5665-47fa-afee-5baa5f115492)

Feel free if you want to answer me in spanish, I'm from Colombia. Your work is amazing.

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.