Renesas Community
Renesas Community
  • User
    Join or sign in
  • Site
  • Search Community
  • User
  • Renesas Engineering Community
  • FAQ
  • HELP
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-ROSE DDS-XRCE通信がうまくいきません
  • Forums
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 GR-SAKURA

 GR-KURUMI

 GR-COTTON

 GR-CITRUS

 GR-PEACH

 GR-KAEDE

 GR-ADZUKI

 GR-LYCHEE

 GR-ROSE

 GR-MANGO(*)

 SNShield

 Web Compiler

 IDE for GR

 TOPPERS関連

 女子美コラボ

 その他

 ※プロデューサミーティング中

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他・過去ファイル

  • State Suggested Answer
  • Replies 16 replies
  • Answers 2 answers
  • Subscribers 441 subscribers
  • Views 1721 views
  • Users 0 members are here
Options
  • Share
  • More
  • Cancel
Related Tags
  • 3D
  • analog
  • B3M
  • DDS-XRCE
  • endif
  • esp8266
  • FIT
  • GR-ROSE
  • ICS
  • include
  • MG996R
  • MIC3
  • microSD
  • MPL3115A2
  • OLED
  • pin
  • PMOD
  • ROS
  • ROS2
  • rosserial
  • RS-485
  • RX65N
  • SDHI
  • serial
  • SmartConfigurator
Related

DDS-XRCE通信がうまくいきません

Shirota
Shirota over 1 year ago

始めまして。
1年前にも同じスレがありましたが、若干設定が異なること、解決策まで見当たらなかったため、
新しいスレを立ち上げました。


DDS-XRCE通信がうまくいきません - GR-ROSE - がじぇっとるねさすコミュニティ - Renesas Rulz

環境は以下の通りです。LinuxPCにDocker使って構築してあります。
Ubuntu:18.04
Ros2:Dashing
MicroXRCEDDS:1.1.6

GR-ROSEは「REN_rose-sketch-v106-e2v7_LBR_20200312」をインストールし、「tcp_talker_besteffort.ino」を.cppにコピーしてビルドしてます。
使いたいのは有線のため、ソースコードを「use_ethernet = true」に変更してます。

ツールチェーンは以下のバージョンに変更してます。
ツールチェーン:GCC for Renesas RX 8.3.0.202104

LinuxPC_IP:192.168.2.101(Dockerはホスト設定のため同じだと認識してます)
GR-ROSE_IP:192.168.2.52


状態:GR-ROSEを起動して「Discovery Agent...」表示後に
Linuxでコマンド「./MicroXRCEAgent tcp -p 2018 -d」を実行しても、GR-ROSE側でAgentを見つけません。

Wiresharkで確認すると、LinuxPCにはGR-ROSEから何か飛んできてます。
但し、宛先は「239.255.0.2」です。
参考までに宛先を「192.168.2.101」に変更して実施しましたが、変化なしです。

Linuxやマイコンなどの経験がほとんどなく手探り状態のため、
原因や対策及び調査方法などアドバイスがいただけたらと思います。

以上、よろしくお願いします。

 

  • Reply
  • Cancel
  • Cancel

Top Replies

  • Shirota
    Shirota over 1 year ago in reply to Shirota +1

    どうやらLinuxのマルチキャストの設定が正しくないような感じです。すべてを起動した状態で、「ipref -s -u -B 239.0.0.0 -p 7400 -i 1」って打ち込むと「multicast join failed: No such device」って表示されます。
    対策方法がよくわからないので、明日またネットで探してみようと思います。
    後日、結果発表!

  • よっしー
    0 よっしー over 1 year ago

    初めまして.

    Dockerを使っているとのことですが,コンテナ環境のネットワークが問題かもしれません.コンテナ起動オプションに --network host をつけてみたらどうでしょう

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to よっしー

    よっしーさん、返信ありがとうございます。
    早速、コンテナ起動コマンドを調べてみましたところ
    コンテナ起動は以下のようになっております。
    docker run --rm -it \
    --name ros2-dev\
    --net=host\

    こちらは、自身で設定したのではなく、
    分かる人にファイルにしてもらったので、内容についてはあまり理解できてません。
    --net=hostがよっしーさんの言われるオプションかと認識しており、
    LinuxPCのIPと同じではないかと思ってます。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • よっしー
    0 よっしー over 1 year ago in reply to Shirota

    そうですね,Dockerコマンドには特段問題ないかと思います.あまり関係ないかと思いますが,--privilegedオプションもつけて,コンテナがローレイヤーもアクセスできるようにして見てみてはどうでしょう.

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to よっしー

    ダメでした。。。
    少し話はそれますが、
    GR-ROSEは宛先のポートが7400になってますが、
    Linuxではポート2018を指定してると思われます。
    この場合、開放してないといけないポート番号は
    7400 or 2018どちらになるのでしょうか?
    それともそんな問題ではないのでしょうか? 

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • よっしー
    0 よっしー over 1 year ago in reply to Shirota

    GR-ROSEの宛先ポートはプログラム上7400に指定されていますか?私が実行した時のサンプルプログラムでは指定されておりませんでした.ポートが指定されているのであれば2018になるのかと思います.一つ気になったのは,DDS-XRCE AgentはDockerで実行すると通信ができませんでした.もしコンテナで実行しているのであればホスト上に構築して,Agentを起動してみて下さい.

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to よっしー

    おはようございます。
    ポート番号はプログラムで7400に設定されてます。
    (特に設定しない場合に7400になります)
    ネットで見る限り、特に指定するとか書いてないので
    7400で問題ないのかもしれませんね。
    やはり、Dockerでは動かない可能性があるんですね。
    前回のスレもそこで止まっていたので
    嫌な予感はしてましたが。。。
    今、使っているPCは共有の物でUbuntu20.?が入っています。Ubuntuのバージョンを変更したくないので、Dockerに手を出しましたが、それが原因かもってことですね。
    ところで、Dockerで動かないって記述を見つけれなかったのですが、これはもう周知の事実なんでしょうか?
    とりあえずUbuntu18のPCを探してみます。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • よっしー
    0 よっしー over 1 year ago in reply to Shirota

    Ubuntu20.04でもDDS-XRCEは動くかと思います.

    DockerでROS2ノード(Dashing)を起動し,ホストでAgentを起動する構成で大丈夫だと思います.

    AgentがDockerでは動かないというのは経験からですね.何か設定があるのかわかりませんが,,情報は上がってないですね

    ホストでAgentを動かせば良いので誰も書いていないのかもしれません

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to よっしー

    よっしーさん、色々情報ありがとうございます。
    とりあえずUbuntu18.04.5 LTSのPCに以下の環境を構築
    (問題を切り分けるため、Dockerと同じバージョン) 
    Ros2:Dashing

    DDS-XRCE_Agent:1.1.6

    結果は変わりませんでした。。。


    一旦整理。
    ・LinuxPC(192.168.2.101)からGR-ROSE(192.168.2.52)に
    Pingは通っている。
    ・GR-ROSEからLinuxPCへ何か通信はしている
     (宛先は239.255.0.2;Port:7400ソースで設定)
    ・LinuxPC(192.168.2.101)から192.168.2.255に何か送信してる
    上記からLinuxPCには正常に届いていると思いますが、
    その先が不明です。確認方法など知ってたら教えてください。
    また、DDS-XRCE_Agent:1.1.6に対応しているClientのバージョンと現在使っているClientのバージョンの確認方法とか知ってますか?
    質問ばかりですいませんが、よろしくお願いします。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to Shirota

    以下のHPでAgent:1.1.6とDashingで通信できたって書いてあるので、Clientのライブラリを調べました。
    結果は、ライブラリの中身は同じなので、Clientには差が無いと思います。
    Micro-XRCE-DDSが試せる環境 2020年末版 - Qiita




    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • よっしー
    0 よっしー over 1 year ago in reply to Shirota
    Shirota said:
    GR-ROSEは「REN_rose-sketch-v106-e2v7_LBR_20200312」をインストールし、「tcp_talker_besteffort.ino」を.cppにコピーしてビルドしてます。

    ビルドはe2studioなどでしょうか?e2studioについてはあまり詳しくはないのですが,

    ビルドの設定に問題があるのかもしれませんので,IDE for GRでサンプルコードを書き込んでみてはどうでしょうか.

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • よっしー
    0 よっしー over 1 year ago in reply to よっしー

    追加ですが,宛先の239.255.というipはマルチキャストのようですね.なので相手のipは指定する必要はないようです.ただマルチキャストを使っているのでtcp通信は出来ない気がします.udp_talker_bestefortなどのサンプルで試してみてください.

    こちらの記事が参考になります
    qiita.com/.../c8d6bd7a8a489256e898

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Okamiya Yuuki
    0 Okamiya Yuuki over 1 year ago in reply to Shirota

    がじぇるね岡宮です。

    あまりお役に立てず申し訳ありませんが、以下はdiscoveryが実行された際のIPとポートです。

    >・GR-ROSEからLinuxPCへ何か通信はしている
    > (宛先は239.255.0.2;Port:7400ソースで設定)

    e2studio上で見ることができますが、以下の部分です。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to Okamiya Yuuki

    よっしーさん、岡宮さん
    情報提供ありがとうございます。
    朝から色々試してみましたが、進展ないです。
    ビルドはe2Studioです。
    IDE for GRは外付けデバイスとし書き込むため、セキュリティで蹴られて書き込みができませんでした。
    また、239.255.はマルチキャスト用のため、UDPで通信してます。
    udp_talker_bestefortではtcp_talker_besteffortLinuxPCの返信用(?)のポート(ここでは2020)がUDPになるかTCPになるかが異なっていてGR-ROSEからの通信はどちらもUDPでした。
    午前中にLinuxのポート状況について色々試して気になる点がありました。以下LinuxPCの話です。
    ・Micro-XRCE-DDSを起動したときに朝一はターミナルに7400と2020の「Server Start」みたいのが表示されたのですが、2回目以降はStartの表示がなく、またストップしても2020はストップ表示されますが、7400は何も表示されません。
    ポートの状況を確認しようと「sudo isof -i -P」と入力しても、MicroXRCEは2020と53422(←こちらは起動のたびに変動)を使っていて7400ではないです。
    PCの電源を落ちしても、朝一の状態には戻りません。
    何が起きているか分かります?

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to Shirota

    どうやらLinuxのマルチキャストの設定が正しくないような感じです。すべてを起動した状態で、「ipref -s -u -B 239.0.0.0 -p 7400 -i 1」って打ち込むと「multicast join failed: No such device」って表示されます。
    対策方法がよくわからないので、明日またネットで探してみようと思います。
    後日、結果発表!

    • Cancel
    • Up +1 Down
    • Reply
    • Verify Answer
    • Cancel
  • Shirota
    0 Shirota over 1 year ago in reply to Shirota

    おはようございます。
    上記結果ですが、よくわかりませんでした。
    なんか違う方向に進んでいる気がしますので、
    教えて頂いた記事を参考に再構築してみようと思います。
    ちなみにIDE for GRのプロジェクトをe2studioに読み込ませる方法とかってないですよね。

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
>
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2022 Renesas Electronics Corporation. All rights reserved.