micro-ROS / micro-ROS/micro_ros_setup

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

オープン
#597 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Shell
スター
509
フォーク
183
平均マージ
22時間 26分
マージ済み PR(30日)
7

説明

## 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?

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

Raspberry Pi CM4 で `ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyAMA1 -b 921600 -v 6` を使用して失敗を再現し、記録されたクライアント作成およびシリアル通信のメッセージを出発点としてください。クライアント接続後に agent がセグメンテーションフォルトを起こす理由を特定し、確認済みの原因と、再現可能な修正またはデバッグ結果を記録してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
raspberry-pi
領域
embedded-iot, robotics
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。