micro-ROS / micro-ROS/micro_ros_setup

micro-ros-agent: [ros2run]: Segmentation fault when trying to set

Ouverte
#597 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Shell
Étoiles
509
Forks
183
Merge moyen
22 h 26 min
PR mergées (30 j)
7

Description

## Segmentation Fault in micro-ros-agent

- Hardware description: The micro-ros-agent was compiled on a raspberry pi CM4 where ROS2 Humble is installed.
- RTOS: I'm trying to setup a connection between the raspberry pi and a PX4 flight controller running NuttX
- Installation type: I have used the [current main branch](https://github.com/PX4/PX4-Autopilot) of the px4-firmware and confirmed that the microdds_client works (I have connected my development computer running ubuntu 20.04 and ros2 galactic and ran the same ros2 testing nodes using the same serial connection).
- Version or commit hash: ros2 humble

#### Steps to reproduce the issue
I have compiled the micro-ros-agent according to the instructions found [here](https://github.com/micro-ROS/micro_ros_setup#building-micro-ros-agent). When running the agent it starts up just fine and as soon as the client side is launched I get the following error:

```
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyAMA1 -b 921600 -v 6
[1669365763.761759] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[1669365763.762643] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6
[1669365794.016024] info | Root.cpp | create_client | create | client_key: 0xAAAABBBB, session_id: 0x81
[1669365794.017208] info | SessionManager.hpp | establish_session | session established | client_key: 0xAAAABBBB, address: 1
[1669365794.017602] debug | SerialAgentLinux.cpp | send_message | [** <> **] | client_key: 0xAAAABBBB, len: 19, data:
0000: 81 00 00 00 04 01 0B 00 00 00 58 52 43 45 01 00 01 0F 00
[1669365794.120910] debug | SerialAgentLinux.cpp | recv_message | [==>> SER <<==] | client_key: 0xAAAABBBB, len: 108, data:
0000: 81 80 00 00 01 05 62 00 00 0A 00 11 01 02 00 00 53 00 00 00 3C 64 64 73 3E 3C 70 61 72 74 69 63
0020: 69 70 61 6E 74 3E 3C 72 74 70 73 3E 3C 6E 61 6D 65 3E 70 78 34 5F 6D 69 63 72 6F 5F 78 72 63 65
0040: 5F 64 64 73 3C 2F 6E 61 6D 65 3E 3C 2F 72 74 70 73 3E 3C 2F 70 61 72 74 69 63 69 70 61 6E 74 3E
0060: 3C 2F 64 64 73 3E 00 00 00 00 00 00
[1669365794.121227] debug | SerialAgentLinux.cpp | recv_message | [==>> SER <<==] | client_key: 0xAAAABBBB, len: 13, data:
0000: 81 00 00 00 0B 01 05 00 00 00 00 00 80
[ros2run]: Segmentation fault
```
On the client side in the NuttX shell I get the following error:
```
ERROR [microdds_client] create entities failed: participant: 255
```

I have tested the client side with other agents where it worked like charm, so I believe that the problem is the agent running on my raspberry pi CM4. What are steps I can take to debug this problem?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Reproduisez l’échec avec `ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyAMA1 -b 921600 -v 6` sur le Raspberry Pi CM4, en utilisant comme point de départ les messages consignés relatifs à la création du client et à la liaison série. Déterminez pourquoi l’agent provoque un segmentation fault après la connexion du client, et documentez une cause confirmée ainsi qu’un correctif reproductible ou un résultat de débogage.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
raspberry-pi
Domaine
embedded-iot, robotics
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.